1
Лекция 2. Стандарты и модели жизненного цикла программного обеспечения
Понятие жизненного цикла программного обеспечения
Жизненный цикл (ЖЦ) программного обеспечения (ПО) – это непрерывный процесс, который определяется как период времени, который начинается с момента принятия решения о необходимости создания ПО и заканчивается в момент его полного изъятия из эксплуатации.
Существует ряд стандартов, регламентирующих ЖЦ ПО, а в некоторых случаях и процессы разработки.
Международный стандарт ISO/IEC 12207: 1995 “Information Technology - Software Life Cycle Processes” (ISO - International Organization for Standardization - Международная организация по стандартизации, IEC - International Electrotechnical Commission - Международная комиссия по электротехнике) - основной нормативный документ, регламентирующий состав процессов ЖЦ ПО.
ISO/IEC 12207:1995 - стандарт на процессы и организацию жизненного цикла. Распространяется на все виды заказного ПО. Стандарт не содержит описания фаз, стадий и этапов. Он определяет структуру ЖЦ, содержащую процессы, действия и задачи, которые должны быть выполнены во время создания ПО.
Среди других известных стандартов можно выделить следующие:
ГОСТ 34601 - 90. «Информационная технология. Комплекс стандартов на автоматизированные системы. Автоматизированные системы. Стадии создания» - распространяется на автоматизированные системы и устанавливает стадии и этапы их создания. Также в стандарте содержится описание содержания работ на каждом этапе. Стадии и этапы работы, закрепленные в стандарте, в большей степени соответствуют каскадной модели жизненного цикла.
Custom Development Method (CDM) по разработке прикладных ИС - технологический материал,
детализированный до уровня заготовок проектных документов, рассчитанных на использование в проектах с применением Oracle. Применяется CDM для классической модели ЖЦ (предусмотрены все работы/задачи и этапы), а также для технологий "быстрой разработки" или "облегченного подхода",
рекомендуемых в случае малых проектов.
Rational Unified Process (RUP) предлагает итеративную модель разработки, включающую четыре фазы: начало, исследование, построение и внедрение. Каждая фаза может быть разбита на этапы, в
результате которых выпускается версия для внутреннего или внешнего использования. Прохождение через четыре основные фазы называется циклом разработки, каждый цикл завершается генерацией версии системы. Суть работы - это создание и сопровождение моделей на базе UML.
Microsoft Solution Framework (MSF) сходна с RUP, также включает четыре фазы: анализ,
проектирование, разработка, стабилизация. MSF является итерационной, предполагает использование объектно-ориентированного моделирования, ориентирована на разработку бизнес-приложений.
Extreme Programming (XP) - экстремальное программирование. В основе методологии командная работа, коммуникация между заказчиком и исполнителем в течение всего проекта по разработке ИС, а
разработка ведется с использованием последовательно дорабатываемых прототипов.
2
Процессы жизненного цикла ПО ISO/IEC 12207
Международный стандарт ISO/IEC 12207: ПО (или программный продукт) определяется как набор компьютерных программ, процедур и, возможно, связанной с ними документации и данных.
Процесс ЖЦ определяется как совокупность взаимосвязанных действий, преобразующих некоторые входные данные в выходные. Каждый процесс характеризуется определенными задачами и методами их решения, исходными данными, полученными от других процессов, и результатами.
Каждый процесс разделен на набор действий, каждое действие – на набор задач. Каждый процесс, действие или задача инициируется и выполняется другим процессом по мере необходимости,
причем не существует заранее определенных последовательностей.
В соответствии с ISO/IEC 12207: 1995 все процессы ЖЦ ПО разделены на три группы (рис. 1):
1.Основные процессы: приобретение; поставка; разработка; эксплуатация; сопровождение.
2.Вспомогательные процессы: документирование; управление конфигурацией; обеспечение качества; верификация; аттестация; совместная оценка; аудит; разрешение проблем.
3.Организационные процессы: управление; усовершенствование; создание инфраструктуры;
обучение.
|
Основные процессы |
|
|
|
Вспомогательные процессы |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Приобретение |
|
|
|
|
|
|
ДокументиПриоброваетение |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Поставка |
|
|
|
|
|
|
Управление |
|
|
|
|
|
|
|
|
|
|
|
|
|
конфигурацией |
|
|
|
|
|
|
|
|
|
|||||||||
|
|
Разработка |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Эксплуатация |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Обеспечение качества |
|
|
||
|
|
Сопровождение |
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Верификация |
|
|
|
|
|
|
Организационные |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
процессы |
|
|
|
|
Аттестация |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Управление |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Совместная оценка |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Усовершенствование |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Аудит |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Создание |
|
|
|
|
|
|
|
|
|
|
|
|
|
инфраструктуры |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Разрешение проблем |
|
|||
|
|
Обучение |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис.1. Структура процессов ЖЦ ПО
3
Основные процессы
Процесс приобретения - действия заказчика: инициирование приобретения; подготовка заявочных предложений, содержащих требования к системе; подготовка и корректировка договора;
надзор за деятельностью поставщика; приемка.
Процесс поставки - действия поставщика: инициирование поставки (рассмотрение поставщиком заявочных предложений); планирование.
Процесс разработки предусматривает действия, выполняемые разработчиком:
-Подготовка: выбор модели ЖЦ, стандартов, методов, средств разработки, составление плана работ.
-Анализ требований к системе: определение ее функциональных возможностей, требований:
пользовательских, к надежности и безопасности, к внешним интерфейсам и т.д.
- Проектирование архитектуры ПО: определение компонентов оборудования, ПО и операций,
выполняемых персоналом.
-Анализ требований к ПО: определение функциональных возможностей (характеристики производительности; среды функционирования; внешних интерфейсов; спецификаций надежности и безопасности; эргономических требований; требований к используемым данным, к установке и приемке, к пользовательской документации, к эксплуатации и сопровождению).
-Проектирование архитектуры ПО: определение структуры ПО, документирование интерфейсов компонентов, разработка предварительной версии пользовательской документации,
требований к тестам и плана интеграции.
-Детальное проектирование ПО: подробное описание компонентов ПО и интерфейсов между ними, обновление пользовательской документации, разработка и документирование требований к тестам и плана тестирования компонентов ПО; обновление плана интеграции ПО.
-Кодирование и тестирование ПО: разработка и документирование каждого компонента ПО и БД, совокупности тестовых процедур и данных для их тестирования; тестирование компонентов,
обновление пользовательской документации и плана интеграции ПО.
-Интеграция ПО: сборка компонентов ПО в соответствии с планом интеграции и тестирование ПО на соответствие квалификационным требованиям.
-Квалификационное тестирование: тестирование ПО в присутствии заказчика для демонстрации его соответствия и готовности к эксплуатации, проверка полноты документации.
-Интеграция системы: сборка всех ее компонентов, включая ПО и оборудование. После интеграции система подвергается квалификационному тестированию на соответствие совокупности требований к ней. Производится оформление и проверка полного комплекта документации на систему.
-Установка ПО на оборудовании заказчика и проверка его работоспособности.
-Приемка ПО: оценка результатов квалификационного тестирования ПО и системы в целом и документирование результатов оценки совместно с заказчиком.
Процесс эксплуатации - действия и задачи оператора – организации, эксплуатирующей
систему: подготовительная работа (планирование действий и работ); эксплуатационное тестирование;
4
эксплуатация системы (в предназначенной среде в соответствии с пользовательской документацией);
поддержка пользователей (оказание помощи и консультаций при обнаружении ошибок).
Процесс сопровождения - выполняется службой сопровождения. В соответствии со стандартом
IEEE-90: сопровождение - внесение изменений в ПО в целях исправления ошибок, повышения производительности или адаптации к изменившимся условиям работы или требованиям. Вносимые изменения не должны нарушать целостность ПО. Процесс сопровождения включает перенос ПО в другую среду (миграцию) и заканчивается снятием ПО с эксплуатации.
Действия: подготовительная работа; анализ запросов на модификацию ПО; модификация ПО
(внесение необходимых изменений); проверка и приемка; перенос ПО в другую среду; снятие ПО с эксплуатации (по решению заказчика при участии эксплуатирующей организации).
Вспомогательные процессы ЖЦ ПО
Процесс документирования - формализованное описание информации, созданной в течение ЖЦ ПО. Действия: подготовка; проектирование и разработка; выпуск документации; сопровождение.
Процесс управления конфигурацией - позволяет организовать, систематически учитывать и контролировать внесение изменений в ПО на всех стадиях ЖЦ ПО.
Согласно стандарту IEEE – 90: конфигурация ПО - совокупность ее функциональных и физических характеристик, установленных в технической документации и реализованных в ПО.
Действия: подготовительная работа; идентификация конфигурации (каждому компоненту и его версиям соответствует однозначно обозначаемый комплект документации); контроль конфигурации;
учет состояния и оценка конфигурации; управление выпуском и поставку.
Процесс обеспечения качества - обеспечивает гарантии того, что ПО и процессы его ЖЦ соответствуют заданным требованиям и утвержденным планам. Качество ПО - совокупность свойств,
которые характеризуют способность ПО удовлетворять заданным требованиям.
Процесс обеспечения качества должен происходить независимо от субъектов, непосредственно связанных с разработкой ПО. Действия: подготовительная работа; обеспечение качества продукта
(гарантирование соответствия программных продуктов и документации требованиям заказчика);
обеспечение качества процесса (гарантирование соответствия процессов ЖЦ ПО, методов разработки,
среды разработки, квалификации персонала условиям договора и стандартам). Обеспечение прочих показателей качества - в соответствии с условиями договора и стандартом ISO 9001.
Процесс верифиации - определение того, что программные продукты, являющиеся результатами некоторого действия, удовлетворяют требованиям или условиям, обусловленным предшествующими действиями. Верификация в узком смысле означает формальное доказательство правильности ПО.
Верификация может проводиться с различными степенями независимости: от выполнения верификации самим исполнителем или специалистом организации до ее выполнения специалистом другой организации. Если процесс верификации осуществляется организацией, не зависящей от поставщика, разработчика или службы сопровождения, то - процесс независимой верификации.
Процесс верификации включает действия: подготовительную работу; верификацию;
5
В процесс верификации проверяются условия:
непротиворечивость требований к системе и степень учета потребностей пользователей;
возможности поставщика выполнять заданные требования;
соответствие выбранных процессов ЖЦ ПО условиям договора;
адекватность стандартов, процедур и среды разработки процесса ЖЦ ПО;
соответствие проектных спецификаций ПО заданным требованиям;
корректность описания в спецификациях входных/выходных данных, интерфейсов, логики;
соответствие кода проектным спецификациям и требованиям;
тестируемость и корректность кода, его соответствие принятым стандартам кодирования;
корректность интеграции компонентов ПО в систему;
адекватность, полнота и непротиворечивость документации.
Процесс аттестации - определение полноты соответствия заданных требований и созданного программного продукта их конечному функциональному назначению. Аттестация - подтверждение и оценка достоверности проеденного тестирования. Аттестация должна гарантировать соответствие ПО спецификациям, требованиям и документации. Аттестацию выполняют тестированием во всех возможных ситуациях. Аттестация может осуществляться с различными степенями независимости.
Если процесс аттестации выполняется организацией, не зависящей от поставщика, разработчика и др.,
то он называется процессом независимой аттестации.
Процесс совместной оценки - для оценки состояния работ по проекту и ПО: контроль планирования, управления ресурсами, персоналом, аппаратурой и инструментальными средствами.
Выполняется двумя любыми сторонами, участвующими в договоре, при этом одна сторона проверяет другую. Действия: подготовительная работа; оценка управления проектом; техническая оценка.
Процесс аудита - определение соответствия требованиям, планам и условиям договора. Аудит выполняется двумя любыми сторонами, участвующими в договоре, одна сторона проверяет другую.
Аудит – это ревизия (проверка), проводимая компетентным органом (лицом) для обеспечения независимой оценки степени соответствия ПО установленным требованиям. Аудит служит для установления соответствия реальных работ и отчетов требованиям, планам и контракту. Аудиторы не должны прямо зависеть от разработчиков ПО.
Процесс разрешения проблем - анализ и решение обнаруженных проблем независимо от их происхождения. Проблема должна быть идентифицирована, описана, проанализирована и разрешена.
Организационные процессы ЖЦ ПО
Процесс управления - менеджер отвечает за управление выпуском продукта, управление проектом и задачами процессов. Действия: определение области управления, планирование
(составление графиков выполнения работ; оценка затрат; выделение ресурсов; распределение ответственности; оценка рисков, создание инфраструктуры управления).
Процесс создания инфраструктуры - выбор и поддержка стандартов и инструментальных