СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Программная инженерия и сущность инженерного подхода к созданию программного обеспечения

Категория: Информатика

Нажмите, чтобы узнать подробности

Данный методический материал предназначен для подготовки и проведения уроков при изучении дисциплины "Инженерный подход к разработке программного обеспечения" специальности 09.02.03 "Программирование в компьютерных системах" СПО углубленной подготовки.

Просмотр содержимого документа
«Программная инженерия и сущность инженерного подхода к созданию программного обеспечения»

Программная инженерия и сущность инженерного подхода к созданию программного обеспечения

Программная инженерия и сущность инженерного подхода к созданию программного обеспечения

 Программная инженерия – это интегрирование принципов информатики и компьютерных наук с инженерными подходами, разработанными для материального производства.  Используя достижения информатики, программная инженерия занимается решением задач удешевления программных продуктов за счёт разработки методов массового производства высококачественного программного обеспечения.  Термин «инженерия программного обеспечения» появился впервые в 1968 году на Конференции НАТО «Инженерия программного обеспечения» и предназначался, чтобы спровоцировать размышления относительно текущего в то время «кризиса программного обеспечения»

Программная инженерия – это интегрирование принципов информатики и компьютерных наук с инженерными подходами, разработанными для материального производства.

Используя достижения информатики, программная инженерия занимается решением задач удешевления программных продуктов за счёт разработки методов массового производства высококачественного программного обеспечения.

Термин «инженерия программного обеспечения» появился впервые в 1968 году на Конференции НАТО «Инженерия программного обеспечения» и предназначался, чтобы спровоцировать размышления относительно текущего в то время «кризиса программного обеспечения»

В 1972 году IEEE* выпустил первый номер Transactions on Software Engineering – Труды по Программной Инженерии. Первый целостный взгляд на эту область профессиональной деятельности появился 1979 году, когда Компьютерное Общество IEEE подготовило стандарт IEEE Std 730 по качеству программного обеспечения. После 7 лет напряженной работы, в 1986 году IEEE выпустило IEEE Std 1002 “Taxonomy of Software Engineering Standards”. Наконец, в 1990 году началось планирование всеобъемлющих международных стандартов, в основу которых легли концепции и взгляды стандарта IEEE Std 1074 и результатов работы образованной в 1987 году совместной комиссии ISO/IEC JTC 1**.
  • В 1972 году IEEE* выпустил первый номер Transactions on Software Engineering – Труды по Программной Инженерии. Первый целостный взгляд на эту область профессиональной деятельности появился 1979 году, когда Компьютерное Общество IEEE подготовило стандарт IEEE Std 730 по качеству программного обеспечения. После 7 лет напряженной работы, в 1986 году IEEE выпустило IEEE Std 1002 “Taxonomy of Software Engineering Standards”.
  • Наконец, в 1990 году началось планирование всеобъемлющих международных стандартов, в основу которых легли концепции и взгляды стандарта IEEE Std 1074 и результатов работы образованной в 1987 году совместной комиссии ISO/IEC JTC 1**.
В 1995 году группа этой комиссии SC7 “Software Engineering” выпустила первую версию международного стандарта ISO/IEC 12207 “Software Lifecycle Processes”. Этот стандарт стал первым опытом создания единого общего взгляда на программную инженерию. Соответствующий национальный стандарт России – ГОСТ Р ИСО/МЭК 12207-99 содержит полный аутентичный перевод текста международного стандарта ISO/IEC 12207-95 (1995 года). В свою очередь, IEEE и ACM ***, начав совместные работы еще в 1993 году с кодекса этики и профессиональной практики в данной области (ACM/IEEE-CS Code of Ethics and Professional Practice), к 2004 году сформулировали два ключевых описания того, что сегодня мы и называем основами программной инженерии:
  • В 1995 году группа этой комиссии SC7 “Software Engineering” выпустила первую версию международного стандарта ISO/IEC 12207 “Software Lifecycle Processes”. Этот стандарт стал первым опытом создания единого общего взгляда на программную инженерию. Соответствующий национальный стандарт России – ГОСТ Р ИСО/МЭК 12207-99 содержит полный аутентичный перевод текста международного стандарта ISO/IEC 12207-95 (1995 года).
  • В свою очередь, IEEE и ACM ***, начав совместные работы еще в 1993 году с кодекса этики и профессиональной практики в данной области (ACM/IEEE-CS Code of Ethics and Professional Practice), к 2004 году сформулировали два ключевых описания того, что сегодня мы и называем основами программной инженерии:
Guide to the Software Engineering Body of Knowledge (SWEBOK), IEEE 2004 Version - Руководство к Своду Знаний по Программной Инженерии, в дальнейшем просто “SWEBOK”; 2.  Software Engineering 2004. Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering – Учебный План для Преподавания Программной Инженерии в ВУЗах* (данное название на русском языке представлено в вольном смысловом переводе) [SE, 2004]. * IEEE - Computer Society of the Institute for Electrical and Electronic Engineers, IEEE Computer Society – IEEE-CS ( Компьютерное  Общество ) или  просто IEEE. http://www.ieee.org ** ISO – International Organization for Standardization. http://www.iso.ch ; IEC – International Electrotechnical Commission; JTC 1 – Joint Technical Committee 1, Information technology *** ACM – Association of Computer Machinery
  • Guide to the Software Engineering Body of Knowledge (SWEBOK), IEEE 2004 Version - Руководство к Своду Знаний по Программной Инженерии, в дальнейшем просто “SWEBOK”;
  • 2. Software Engineering 2004. Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering – Учебный План для Преподавания Программной Инженерии в ВУЗах* (данное название на русском языке представлено в вольном смысловом переводе) [SE, 2004].
  • * IEEE - Computer Society of the Institute for Electrical and Electronic Engineers, IEEE Computer Society – IEEE-CS ( Компьютерное Общество ) или просто IEEE. http://www.ieee.org
  • ** ISO – International Organization for Standardization. http://www.iso.ch ; IEC – International Electrotechnical Commission; JTC 1 – Joint Technical Committee 1, Information technology
  • *** ACM – Association of Computer Machinery
Оба стандарта стали результатом консенсуса ведущих представителей индустрии и признанных авторитетов в области программной инженерии – по аналогии с тем, как был создан PMI PMBOK. Следовательно, программная инженерия возникла как ответ на кризисы программирования и в качестве науки решает задачу повышения эффективности и качества, главным образом, самого процесса создания, внедрения и сопровождения программных средств. В этой связи программная инженерия гораздо шире, чем собственно программирование и является скорее практическим применением, набирающей популярность в последнее время, системной инженерии
  • Оба стандарта стали результатом консенсуса ведущих представителей индустрии и признанных авторитетов в области программной инженерии – по аналогии с тем, как был создан PMI PMBOK.
  • Следовательно, программная инженерия возникла как ответ на кризисы программирования и в качестве науки решает задачу повышения эффективности и качества, главным образом, самого процесса создания, внедрения и сопровождения программных средств. В этой связи программная инженерия гораздо шире, чем собственно программирование и является скорее практическим применением, набирающей популярность в последнее время, системной инженерии
Системная инженерия программного обеспечения Системная инженерия - это практическое применение научных, инженерных и управленческих навыков, необходимых для преобразования операционных требований в описание конфигурации системы, которая наилучшим образом удовлетворяет этим требованиям. Это общий процесс решения проблем, который применяется ко всему техническому управлению в проекте, посвященном разработке системы, предоставляя механизм формулирования и совершенствования определений изделий и процессов системы. Стандарт IEEE Std. 1220-1998 описывает процесс системной инженерии и ее применение на протяжении всего цикла жизни изделия. Системная инженерия порождает документы, а не оборудование. Документы связывают процессы разработки с циклом жизни проекта. Они определяют предполагаемые окружения процессов, интерфейсы и инструменты управления рисками в рамках всего проекта.
  • Системная инженерия программного обеспечения
  • Системная инженерия - это практическое применение научных, инженерных и управленческих навыков, необходимых для преобразования операционных требований в описание конфигурации системы, которая наилучшим образом удовлетворяет этим требованиям. Это общий процесс решения проблем, который применяется ко всему техническому управлению в проекте, посвященном разработке системы, предоставляя механизм формулирования и совершенствования определений изделий и процессов системы.
  • Стандарт IEEE Std. 1220-1998 описывает процесс системной инженерии и ее применение на протяжении всего цикла жизни изделия. Системная инженерия порождает документы, а не оборудование. Документы связывают процессы разработки с циклом жизни проекта. Они определяют предполагаемые окружения процессов, интерфейсы и инструменты управления рисками в рамках всего проекта.
 Системная инженерия включает в себя пять функций. - Определение проблемы - указание потребностей и ограничений путем анализа требований и взаимодействия с заказчиком. - Анализ решений - выделение набора возможных способов удовлетворения потребностей и ограничений, их анализ и выбор оптимального. - Планирование процессов - определение задач, которые должны быть выполнены, объема ресурсов и затрат, необходимых для создания изделия, очередности задач и потенциальных рисков. - Контроль процессов - определение методов мониторинга проекта и процессов, измерение прогресса, оценка промежуточных изделий и принятие по мере необходимости корректирующих действий. - Оценка изделий - определение качества и количества создаваемых изделий путем оценочного планирования, тестирования, демонстрации, анализа, верификации и контроля.

Системная инженерия включает в себя пять функций.

  • - Определение проблемы - указание потребностей и ограничений путем анализа требований и взаимодействия с заказчиком.
  • - Анализ решений - выделение набора возможных способов удовлетворения потребностей и ограничений, их анализ и выбор оптимального.
  • - Планирование процессов - определение задач, которые должны быть выполнены, объема ресурсов и затрат, необходимых для создания изделия, очередности задач и потенциальных рисков.
  • - Контроль процессов - определение методов мониторинга проекта и процессов, измерение прогресса, оценка промежуточных изделий и принятие по мере необходимости корректирующих действий.
  • - Оценка изделий - определение качества и количества создаваемых изделий путем оценочного планирования, тестирования, демонстрации, анализа, верификации и контроля.
 Термин «системная инженерия программного обеспечения» (СИПО) появился в начале 80-х годов, и его приписывают Уинстону Ройсу . СИПО отвечает за общее техническое управление системой и подтверждение корректности окончательных системных продуктов. Как и системная инженерия, СИПО порождает документы, а не компоненты. В этом она отличается от программной инженерии (ПрИ), порождающей компьютерные программы и руководства пользователей.  СИПО начинается, когда системные требования разделены на аппаратные и программные подсистемы. СИПО формирует основу для всей разработки программного обеспечения в проекте и, как и ПрИ, представляет собой одновременно и технический и управленческий процесс. Технический процесс СИПО - аналитическая работа, необходимая для преобразования операционных требований в:

Термин «системная инженерия программного обеспечения» (СИПО) появился в начале 80-х годов, и его приписывают Уинстону Ройсу . СИПО отвечает за общее техническое управление системой и подтверждение корректности окончательных системных продуктов. Как и системная инженерия, СИПО порождает документы, а не компоненты. В этом она отличается от программной инженерии (ПрИ), порождающей компьютерные программы и руководства пользователей.

СИПО начинается, когда системные требования разделены на аппаратные и программные подсистемы. СИПО формирует основу для всей разработки программного обеспечения в проекте и, как и ПрИ, представляет собой одновременно и технический и управленческий процесс. Технический процесс СИПО - аналитическая работа, необходимая для преобразования операционных требований в:

 Описание программной системы; - Дизайн программного обеспечения заданного размера, конфигурации и качества; - Документацию программной системы в виде требований и спецификаций для проектирования; - Процедуры, необходимые для верификации, тестирования и принятия окончательного программного продукта; - Документацию, необходимую для его использования и сопровождения.  СИПО не является описанием работ. Это процесс, который выполняют многие люди и организации: системные инженеры, менеджеры, программные инженеры, программисты и, не стоит забывать пользователи.  По мере того как крупные системы все больше зависят от программ, применение методов системной инженерии к разработке программного обеспечения в состоянии помочь избежать существенных проблем.

Описание программной системы;

  • - Дизайн программного обеспечения заданного размера, конфигурации и качества;
  • - Документацию программной системы в виде требований и спецификаций для проектирования;
  • - Процедуры, необходимые для верификации, тестирования и принятия окончательного программного продукта;
  • - Документацию, необходимую для его использования и сопровождения.

СИПО не является описанием работ. Это процесс, который выполняют многие люди и организации: системные инженеры, менеджеры, программные инженеры, программисты и, не стоит забывать пользователи.

По мере того как крупные системы все больше зависят от программ, применение методов системной инженерии к разработке программного обеспечения в состоянии помочь избежать существенных проблем.

 Процесс управления проектом включает в себя оценку рисков и затрат на создание программной системы, определение графика выполнения, объединение различных специалистов и инженерных групп, конфигурационное управление и постоянный аудит, позволяющий гарантировать, что проект укладывается в сроки и смету и соответствует техническим требованиям

Процесс управления проектом включает в себя оценку рисков и затрат на создание программной системы, определение графика выполнения, объединение различных специалистов и инженерных групп, конфигурационное управление и постоянный аудит, позволяющий гарантировать, что проект укладывается в сроки и смету и соответствует техническим требованиям

 А рисунке показаны управленческие связи между системной инженерией программного обеспечения(SwSE ), программной инженерией(SwE) и проектным менеджментом.  Руководство проектом включает в себя общее управление распределением работ в проекте и полномочия предоставления ресурсов. SwSE определяет технический подход, принимает технические решения, взаимодействует с техническими представителями заказчика, а также одобряет и принимает конечный программный продукт. SwE отвечает за разработку программного дизайна, кодирование и разработку программных компонентов.

А рисунке показаны управленческие связи между системной инженерией программного обеспечения(SwSE ), программной инженерией(SwE) и проектным менеджментом.

Руководство проектом включает в себя общее управление распределением работ в проекте и полномочия предоставления ресурсов. SwSE определяет технический подход, принимает технические решения, взаимодействует с техническими представителями заказчика, а также одобряет и принимает конечный программный продукт. SwE отвечает за разработку программного дизайна, кодирование и разработку программных компонентов.