ISO/IEC/IEEE 12207 Системная и программная инженерия – Процессы жизненного цикла программного обеспечения [1] – это международный стандарт для процессов жизненного цикла программного обеспечения. Впервые представленный в 1995 году, он призван стать основным стандартом, определяющим все процессы, необходимые для разработки и поддержки программных систем , включая результаты и/или действия каждого процесса.
ISO/IEC/IEEE 12207:2017 — новейшая версия, опубликованная в ноябре 2017 года. [1] IEEE Computer Society напрямую присоединилось к ISO/IEC JTC 1/SC 7 /WG 7 в процессе редактирования этой версии. Значительным изменением является то, что она принимает модель процесса, идентичную модели процесса ISO/IEC/IEEE 15288 :2015 (есть одно изменение названия, процесс 15288 «Определение требований к системе» переименован в процесс «Определение требований к системе/программному обеспечению»). Эта гармонизация двух стандартов привела к удалению отдельных процессов разработки программного обеспечения и повторного использования программного обеспечения, в результате чего общее количество процессов с 12207 сократилось с 43 до 30, определенных в 15288. Это также вызвало изменения в деятельности и результатах процессов управления качеством и обеспечения качества . Кроме того, были обновлены определение « аудита » и связанных с ним аудиторских мероприятий. [2] [3] [4] Приложение I к стандарту ISO/IEC/IEEE 12207:2017 содержит сопоставление процессов между версией 2017 года и предыдущей версией, включая основные согласования процессов между двумя версиями; это призвано обеспечить прослеживаемость и упростить переход для пользователей предыдущей версии.
Предыдущие версии включают:
До того, как IEEE Computer Society официально присоединилось к процессу редактирования (став основным заинтересованным лицом) для выпуска 2017 года, IEEE поддерживало свои собственные версии ISO/IEC 12207, изначально с изменениями, внесенными совместно с Electronic Industries Alliance (EIA). [10] [11] [12] С обновлением 2008 года появилась «общая стратегия ISO/IEC JTC 1/SC 7 и IEEE по гармонизации их соответствующих сборников стандартов», что привело к появлению идентичных стандартов, но с немного разными названиями. [12] Эти версии IEEE включали:
Также стоит отметить, что IEEE/EIA 12207 официально заменил MIL-STD-498 (выпущенный в декабре 1994 года [11] ) для разработки программных систем Министерства обороны 27 мая 1998 года. [9] [11]
Стандарт устанавливает набор процессов для управления жизненным циклом программного обеспечения . Стандарт «не предписывает конкретную модель жизненного цикла программного обеспечения, методологию разработки , метод, подход к моделированию или технику». [1] Вместо этого стандарт (а также ISO/IEC/IEEE 15288) различает «стадию» и «процесс» следующим образом:
Стадии (или фазы) не то же самое, что процессы, и этот стандарт определяет только конкретные процессы - он не определяет какие-либо конкретные стадии. Вместо этого стандарт признает, что жизненные циклы программного обеспечения различаются и могут быть разделены на стадии (также называемые фазами), которые представляют собой основные периоды жизненного цикла и приводят к основным шлюзам принятия решений. Никакой конкретный набор стадий не является нормативным, но он упоминает два примера:
Процессы жизненного цикла, определяемые стандартом, не привязаны к какому-либо конкретному этапу жизненного цикла ПО. Действительно, процессы жизненного цикла, включающие планирование, производительность и оценку, «должны рассматриваться для использования на каждом этапе». На практике процессы происходят всякий раз, когда они необходимы на любом этапе.
ISO/IEC/IEEE 12207:2017 делит процессы жизненного цикла программного обеспечения на четыре основные группы процессов: соглашение, организационное обеспечение проекта, техническое управление и технические процессы. [1] [4] В каждой из этих четырех групп процессов есть множество подкатегорий, включая основные виды деятельности по приобретению и поставке (соглашение); конфигурация (техническое управление); и эксплуатация, обслуживание и утилизация (технические). [1] [16]
Здесь ISO/IEC/IEEE 12207:2017 включает процессы приобретения и поставки, [1] [2] [16] , которые являются действиями, связанными с установлением соглашения между поставщиком и приобретателем. Приобретение охватывает все действия, связанные с инициированием проекта. Фаза приобретения может быть разделена на различные действия и результаты, которые выполняются в хронологическом порядке. На этапе поставки разрабатывается план управления проектом . Этот план содержит информацию о проекте, такую как различные вехи, которые необходимо достичь.
Здесь подробно описаны процессы управления моделью жизненного цикла, управления инфраструктурой , управления портфелем , управления человеческими ресурсами , управления качеством и управления знаниями . [1] [2] [16] Эти процессы помогают бизнесу или организации обеспечивать, контролировать и поддерживать жизненный цикл системы и связанные с ней проекты. Управление моделью жизненного цикла помогает обеспечить поддержку усилий по приобретению и поставке, в то время как управление инфраструктурой и портфелем поддерживает бизнес-инициативы, специфичные для проекта, в течение всего жизненного цикла системы. Остальные обеспечивают наличие необходимых ресурсов и контроля качества для поддержки проектов и системных усилий бизнеса. Если у организации нет соответствующего набора организационных процессов, проект, выполняемый организацией, может вместо этого применять эти процессы непосредственно к проекту. [1]
ISO/IEC/IEEE 12207:2017 помещает сюда восемь различных процессов: [1] [2] [16]
Эти процессы связаны с планированием, оценкой и контролем программного обеспечения и других проектов на протяжении жизненного цикла, обеспечивая качество на всем протяжении.
Технические процессы ISO/IEC/IEEE 12207:2017 охватывают 14 различных процессов, [1] [2] [16] некоторые из которых произошли от старых процессов, специфичных для программного обеспечения, которые были постепенно исключены из версии 2008 года. [2]
Полный список включает: [1] [2] [16]
Эти процессы включают в себя технические действия и персонал ( информационные технологии , специалисты по устранению неполадок, специалисты по программному обеспечению и т. д.) во время предварительной, последующей и во время эксплуатации. Процессы анализа и определения на раннем этапе закладывают основу для того, как внедряются программное обеспечение и проекты. Дополнительные процессы интеграции, проверки, перехода и валидации помогают обеспечить качество и готовность. Фазы эксплуатации и обслуживания происходят одновременно, причем фаза эксплуатации состоит из таких действий, как помощь пользователям в работе с внедренным программным продуктом, а фаза обслуживания состоит из задач по обслуживанию для поддержания продукта в рабочем состоянии. Процесс утилизации описывает, как система/проект будет выведена из эксплуатации и очищена, если это необходимо. [1]
Пункт 4 описывает предполагаемое использование документа и требования к соответствию. Ожидается, что в конкретных проектах «не обязательно использовать все процессы, предусмотренные в этом документе». На практике соответствие этому стандарту обычно включает выбор и объявление набора подходящих процессов. Это можно сделать либо через «полное соответствие», либо через «специальное соответствие».
«Полное соответствие» может быть заявлено одним из двух способов. «Полное соответствие задачам» может быть заявлено, если выполнены все требования к действиям и задачам заявленных процессов. «Полное соответствие результатам» может быть заявлено, если выполнены все требуемые результаты заявленных процессов. Последнее допускает больше вариаций.
«Индивидуальное соответствие» может быть заявлено, когда определенные положения выбираются или изменяются посредством процесса адаптации, также определенного в документе.
Краеугольные стандарты ISO/IEC JTC 1/SC 7, ISO/IEC/IEEE 12207:2017 и ISO/IEC/IEEE 15288:2015, недавно были пересмотрены с целью отразить унифицированный модельный набор процессов приобретения, организационного, технического управления и технических процессов для систем и программного обеспечения.