Программное обеспечение (ISO/IEC 12207) - набор компьютерных программ, процедур и связанных с ними документации и конфигурационных данных, необходимых для работы программы. Специалисты по программной инженерии разрабатывают конечные продукты, которые могут быть проданы конечному потребителю. В зависимости от того, для кого разрабатывается программный продукт (конкретного заказчика программного продукта) выделяют два типа продуктов: 1) коробочные продукты; 2) заказные; в зависимости от того, кто определяет и специфицирует требования: 1) разработчик; 2) заказчик. Программная инженерия - это инженерная дисциплина, связанная со всеми аспектами производства программного обеспечения, от начальных стадий создания спецификаций до поддержки системы после сдачи в эксплуатацию. Методы программной инженерии - это структурные решения, которые предназначены для разработки программного обеспечения и которые включают системные модели, формализованные нотации, правила проектирования, а также способы управления процессом создания программного обеспечения. Информатика занимается теорией и методами вычислительных и программных систем, в то время как программная инженерия занимается практическими проблемами создания ПО. При этом программная инженерия должна быть поддержана некоторыми теориями информатики. Таким образом, программные инженеры чаще всего используют приёмы, применимые в конкретных условиях и не могут быть обобщены на другие случаи, а теории информатики не всегда могут быть применимы к реальным большим системам. Отличия программной инженерии: 1) компьютерная программа - это не материальный объект; 2) программа - искусственный объект; 3) программная инженерия - молодая дисциплина. Профессиональные и этические требования к специалистам по программной инженерии: 1) конфиденциальность: не разглашать никакие сведения о работодателе и клиентах; 2) компетентность: специалист не должен скрывать свой уровень компетенции и не должен браться за работу, которая не соответствует его уровню; 3) защита прав на интеллектуальную собственность: специалист не должен нарушать права интеллектуальную собственность; 4) злоупотребление компьютером: специалист не должен наносить вред компьютерам других людей. Кодекс этики (согласно стандарту IEEE-CS/ACM): программные инженеры должны руководствоваться следующими восемью принципами: 1) общество: программные инженеры будут действовать в соотвестствии с общественными интересами; 2) клиент и работодатель: программные инженеры будут действовать в интересах клиентов и работодателей согласно общественным интересам; 3) продукт: программные инженеры будут добиваться, чтобы сделанные ими продукты и их модификации соответствовали высоким профессиональным стандартам; 4) суждения: программные инженеры будут добиваться честности и независимости в своих профессиональных суждениях; 5) менеджмент: менеджеры и лидеры программных инженеров будут руководствоваться этическим подходом к руководству разработкой и сопровождением программного обеспечения, а также будут продвигать и развивать этот подход; 6) профессия: программные инженеры будут улучшать целостность и репутацию своей профессии в соответствии с интересами общества; 7) коллеги: программные инженеры будут честными по отношению к своим коллегам и будут всячески их поддерживать; 8) личность: программные инженеры на протяжении всей своей жизни будут учиться практике своей профессии и будут продвигать этический подход к практике своей профессии. Технология - это подробное описание того, как нужно производить то или иное изделие и наука о составлении таких описаний. Стандарт - это утверждённый компетентными органами нормативно-технический документ, устанавливающий комплекс норм и правил относительно предмета стандартизации. Сертификация считается основным достоверным способом подтверждения соответствия продукции, процесса или услуги заданным требованиям. Типы стандартов: 1) корпоративный стандарт: разрабатываются крупными фирмами (корпорациями) с целью повышения качества продукции на основе собственного опыта и с учётом требований мировых стандартов. Корпоративные стандарты не сертифицируются, но обязательны для применения в рамках заданной корпорации; 2) отраслевые стандарты: действуют в пределах организации, определённой отрасли или министерства; разрабатываются с учётом требований мирового опыта и специфики отрасли; являются обязательными для отрасли и подлежат сертификации; 3) государственные стандарты (ГОСТ): принимаются государственными органами и имеют силу закона; разрабатываются с учётом мирового опыта или на основе отраслевых стандартов; могут иметь как рекомендательный, так и обязательный характер; для сертификации создаются государственные и лицензированные органы спецификации; 4) международные стандарты: разрабатываются специальными международными организациями на основе мирового опыта и лучших корпоративных стандартов; имеют сугубо рекомендательный характер; право сертификации получают организации, государственные или частные, прошедшие лицензирование в международных организациях. Основные разработчики стандартов в области программной инженерии: 1) International Organization for Standartization; 2) Association for Computer Machinery; 3) Software Engineering Institute; 4) Project Management Institute; 5) Institute of Electrical and Electronic Engineers