Жизненный цикл программного продукта лекции

Жизненный цикл программного продукта лекции thumbnail

Аннотация: Понятие жизненного цикла программных систем (ЖЦ ПС) является одним из базовых в программной инженерии.

5.1. Понятие жизненного цикла программных систем

ЖЦ ПС определяется как период времени, который начинается с момента принятия решения о необходимости создания ПС и закачивается в момент ее полного изъятия из эксплуатации. Основным нормативным документом, регламентирующим состав процессов ЖЦ ПС, является международный стандарт ISO/IEC 12207: 1995 “rmation Technology – Software Life Cycle Process” (ISO – International Organization for Standardization – Международная организация по стандартизации, IEC – International Electrotechnical Commission – Международная комиссия по электротехнике). Этот стандарт определяет структуру ЖЦ, содержащую процессы, действия и задачи, которые должны быть выполнены во время создания ПС.

В данном стандарте ПС (или программный продукт) определяется как набор компьютерных программ, процедур и, возможно, связанной с ними документацией и данных. Процесс определяется как совокупность взаимосвязанных действий, преобразующих некоторые входные данные в выходные (Г. Майерс называет это трансляцией данных [11]). Каждый процесс характеризуется определенными задачами и методами их решения. В свою очередь, каждый процесс разделен на набор действий, а каждое действие – на набор задач. Каждый процесс, действие или задача инициируется и выполняется другим процессом по мере необходимости, причем не существует заранее определенных последовательностей выполнения (естественно, при сохранении связей по входным данным).

Следует отметить, что в Советском Союзе, а затем в России создание программного обеспечения (ПО) первоначально, в 70-е годы прошлого столетия, регламентировалось стандартами ГОСТ ЕСПД (Единой системы программной документации – серии ГОСТ 19.ХХХ), которые были ориентированы на класс относительно простых программ небольшого объема, создаваемых отдельными программистами. В настоящее время эти стандарты устарели концептуально и по форме, их сроки действия закончились и использование нецелесообразно.

Процессы создания автоматизированных систем (АС), в состав которых входит и ПО, регламентированы стандартами ГОСТ 34.601-90 “Информационная технология. Комплекс стандартов на автоматизированные системы. Стадии создания”, ГОСТ 34.602-89 “Информационная технология. Комплекс стандартов на автоматизированные системы. Техническое задание на создание автоматизированной системы” и ГОСТ 34.603-92 “Информационная технология. Виды испытаний автоматизированных систем”. Однако многие положения этих стандартов устарели, а другие отражены недостаточно, чтобы их можно было применять для серьезных проектов создания ПС. Поэтому в отечественных разработках целесообразно использовать современные международные стандарты.

В соответствии со стандартом ISO/IEC 12207 все процессы ЖЦ ПО разделены на три группы (рис.5.1).

Процессы жизненного цикла программного обеспечения

Рис. 5.1. Процессы жизненного цикла программного обеспечения

В группах определено пять основных процессов: приобретение, поставка, разработка, эксплуатация и сопровождение. Восемь вспомогательных процессов обеспечивают выполнение основных процессов, а именно документирование, управление конфигурацией, обеспечение качества, верификация, аттестация, совместная оценка, аудит, разрешение проблем. Четыре организационных процесса обеспечивают управление, создание инфраструктуры, усовершенствование и обучение.

5.2. Основные процессы ЖЦ ПС

Процесс приобретения состоит из действий и задач заказчика, приобретающего ПС. Данный процесс охватывает следующие действия [2]:

  1. инициирование приобретения;
  2. подготовку заявочных предложений;
  3. подготовку и корректировку договора;
  4. надзор за деятельностью поставщика;
  5. приемку и завершение работ.

Инициирование приобретения включает следующие задачи:

  1. определение заказчиком своих потребностей в приобретении, разработке или усовершенствовании системы, программных продуктов или услуг;
  2. анализ требований, предъявляемых к системе;
  3. принятие решения относительно приобретения, разработки или усовершенствования существующего ПО;
  4. проверку наличия необходимой документации, гарантий, сертификатов, лицензий и поддержки в случае приобретения программного продукта;
  5. подготовку и утверждение плана приобретения, включающего требования к системе, тип договора, ответственность сторон и т.д.

Заявочные предложения должны содержать:

  1. требования, предъявляемые к системе;
  2. перечень программных продуктов;
  3. условия приобретения и соглашения;
  4. технические ограничения (например, по среде функционирования системы).

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

Подготовка и корректировка договора включает следующие задачи:

  1. определение заказчиком процедуры выбора поставщика, включающей критерии оценки предложений возможных поставщиков;
  2. выбор конкретного поставщика на основе анализа предложений;
  3. подготовку и заключение договора с поставщиком;
  4. внесение изменений (при необходимости) в договор в процессе его выполнения.

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

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

  1. инициирование поставки;
  2. подготовку ответа на заявочные предложения;
  3. подготовку договора;
  4. планирование работ по договору;
  5. выполнение и контроль договорных работ и их оценку;
  6. поставку и завершение работ.

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

  1. принятие решения поставщиком относительно выполнения работ своими силами или с привлечением субподрядчика;
  2. разработку поставщиком плана управления проектом, содержащего организационную структуру проекта, разграничение ответственности, технические требования к среде разработки и ресурсам, управление субподрядчиками и др.
Читайте также:  Жизненный цикл наших волос

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

Процесс разработки включает следующие действия:

  1. подготовительную работу;
  2. анализ требований, предъявляемых к системе;
  3. проектирование архитектуры системы;
  4. анализ требований, предъявляемых к программному обеспечению;
  5. проектирование архитектуры программного обеспечения;
  6. детальное проектирование программного обеспечения;
  7. кодирование и тестирование программного обеспечения;
  8. интеграцию программного обеспечения;
  9. квалификационное тестирование программного обеспечения;
  10. интеграцию системы;
  11. квалификационное тестирование системы;
  12. установку программного обеспечения;
  13. приемку программного обеспечения.

Подготовительная работа начинается с выбора модели ЖЦ ПО, соответствующей масштабу, значимости и сложности проекта. Действия и задачи процесса разработки должны соответствовать выбранной модели. Разработчик должен выбирать, адаптировать к условиям проекта и использовать согласованные с заказчиком стандарты, методы и средства разработки, а также составить план выполнения работ.

Анализ требований, предъявляемых к системе, подразумевает определение ее функциональных возможностей, пользовательских требований, требований к надежности, безопасности, требований к внешним интерфейсам, производительности и т.д. Требования к системе оцениваются, исходя из критериев реализуемости и возможности проверки при тестировании.

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

Анализ требований к программному обеспечению предполагает определение следующих характеристик для каждого компонента ПО [11]:

  1. функциональных возможностей, включая характеристики производительности и среды функционирования компонента;
  2. внешних интерфейсов;
  3. спецификаций надежности и безопасности;
  4. эргономических требований;
  5. требований к используемым данным;
  6. требований к установке и приемке;
  7. требований к пользовательской документации;
  8. требований к эксплуатации и сопровождению.

Требования к программному обеспечению оцениваются, исходя из критериев соответствия требованиям, предъявляемым к системе в целом, реализуемости и возможности проверки при тестировании.

Проектирование архитектуры ПО включает следующие задачи для каждого компонента ПО:

  1. трансформацию требований к ПО в архитектуру, определяющую на высоком уровне структуру ПО и состав его компонентов;
  2. разработку и документирование программных интерфейсов ПО и баз данных (БД);
  3. разработку предварительной версии пользовательской документации;
  4. разработку и документирование предварительных требований к тестам и плана интеграции ПО.

Детальное проектирование ПО включает следующие задачи:

  1. описание компонентов ПО и интерфейсов между ними на более низком уровне, достаточном для последующего кодирования и тестирования;
  2. разработку и документирование детального проекта базы данных;
  3. обновление (при необходимости) пользовательской документации;
  4. разработку и документирование требований к тестам и плана тестирования компонентов ПО;
  5. обновление плана интеграции ПО.

Кодирование и тестирование ПО включает следующие задачи:

  1. кодирование и документирование каждого компонента ПО и базы данных, а также подготовку совокупности тестовых процедур и данных для их тестирования;
  2. тестирование каждого компонента ПО и БД на соответствие предъявляемым к ним требованиям с последующим документированием результатов тестирования;
  3. обновление документации (при необходимости);
  4. обновление плана интеграции ПО.

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

Квалификационное тестирование ПО проводится разработчиком в присутствии заказчика (по возможности) для демонстрации того, что ПО удовлетворяет своим спецификациям и готово к использованию в заданных условиях эксплуатации. Такое тестирование выполняется для каждого компонента программного продукта по всем разделам требований при широком варьировании тестов. При этом также проверяется полнота технической и пользовательской документации и ее адекватность самим компонентам ПО.

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

Установка ПО осуществляется разработчиком в соответствии с планом в той среде и на том оборудовании, которые предусмотрены договором. В процессе установки проверяется работоспособность ПО и БД. Если устанавливаемое ПО заменяет существующую систему, разработчик должен обеспечить их параллельное функционирование в соответствии с договором.

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

Процесс эксплуатации охватывает действия и задачи организации оператора, эксплуатирующего систему. Процесс эксплуатации включает следующие действия.

  1. Подготовительная работа, которая включает проведение оператором следующих задач:

    1. планирование действий и работ, выполняемых в процессе эксплуатации, и установка эксплуатационных стандартов;
    2. определение процедур локализации и разрешения проблем, возникающих в процессе эксплуатации.
  2. Эксплуатационное тестирование, осуществляемое для каждой очередной редакции программного продукта, после чего эта редакция передается в эксплуатацию.
  3. Собственно эксплуатация системы, которая выполняется в предназначенной для этого среде в соответствии с пользовательской документацией.
  4. Поддержка пользователей – оказание помощи и консультаций при обнаружении ошибок в процессе эксплуатации ПО.
Читайте также:  Жизненный цикл минеральной воды

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

Изменения, вносимые в соответствующее ПО, не должны нарушать его целостность. Процесс сопровождения включает его перенос в другую среду (миграцию) и заканчивается снятием ПО с эксплуатации.

Процесс сопровождения охватывает следующие действия:

  1. подготовительную работу (планирование действий и работ, определение процедур локализации и разрешения проблем, возникающих в процессе сопровождения);
  2. анализ проблем и запросов на модификацию ПО (анализ сообщений о возникшей проблеме или запроса на модификацию, оценка масштаба, стоимости модификации, получаемого эффекта, оценка целесообразности модификации);
  3. модификацию ПО (внесение изменений в компоненты программного продукта и документацию в соответствии с правилами процесса разработки);
  4. проверку и приемку (в части целостности модифицируемой системы);
  5. перенос ПО в другую среду (конвертирование программ и данных, параллельная эксплуатация ПО в старой и новой среде в течение некоторого периода времени);
  6. снятие ПО с эксплуатации по решению заказчика при участии эксплуатирующей организации, службы сопровождения и пользователей. При этом программные продукты и документации подлежат архивированию в соответствии с договором.

Источник

Жизненный цикл программ

Программный продукт (ПП) представляет собой набор компь­ютерных программ, процедур и связанной с ними документации и данных.

Жизненный цикл программного продукта – это период времени, начинающийся с момента принятия решения о необходимости создания ПП и заканчивающийся в момент его полного изъятия из эксплуатации.

Структуру жизненного цикла ПП, состав процессов, действия и задачи, которые должны быть выполнены во время создания ПП, определяет и регламентирует международный стандарт ISO/IEC 12207:1995 «rmation Technology – Software Life Cycle Processes» (ISO – International Organization for Standardization – Междуна­родная организация по стандартизации; IEC – International Electrotechnical Commission – Международная комиссия по элек­тротехнике; название стандарта «Информационные технологии – Процессы жизненного цикла программ»).

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

Каждый процесс разделен на набор действий, каждое дей­ствие – на набор задач. Запуск и выполнение процесса, действия или задачи осуществляются другими процессами.

В соответствии со стандартом ISO/IEC 12207 все процессы жиз­ненного цикла ПП разделены на три базовые группы:

· основные процессы;

· вспомогательные (поддерживающие) процессы;

· организационные процессы.

1.2. Основные процессы жизненного цикла программного продукта

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

К основным относятся процессы приобретения, поставки, разработки, эксплуатации и сопровождения.

Процесс приобретения (acquisition process) охватывает действия заказчика по приобретению ПП.

Процесс поставки (supply process) охватывает действия и зада­чи поставщика при снабжении заказчика ПП или услугой.

Процесс разработки (development process) охватывает действия и задачи.

Процесс эксплуатации (operation process) охватывает действия и задачи оператора – организации, занимающейся эксплуатаци­ей разработанного ПП или системы.

Процесс сопровождения (maintenance process) охватывает дей­ствия и задачи сопровождающей организации (службы сопровож­дения).

1.3. Вспомогательные (поддерживающие) процессы жизненного цикла программного продукта

Основной целью вспомогательных (поддерживающих) процес­сов является создание надежного, полностью удовлетворяющего требованиям заказчика ПП в установленные договором сроки. К вспомогательным относятся процессы документирования, уп­равления конфигурацией, обеспечения качества, верификации, аттестации, совместной оценки, аудита, разрешения проблем.

Процесс документирования (documentation process) предусматри­вает формализованное описание информации, созданной в тече­ние жизненного цикла ПП. Данный процесс состоит из набора дей­ствий, с помощью которых планируют, проектируют, разрабаты­вают, выпускают, редактируют, распространяют и сопровождают документы, необходимые для всех заинтересованных лиц, таких как руководство, технические специалисты и пользователи системы.

Процесс управления конфигурацией (configuration management process) предполагает применение административных и техниче­ских процедур на всем протяжении жизненного цикла ПП.

Процесс обеспечения качества (quality assurance process) обес­печивает соответствующие гарантии того, что ПП и процессы его жизненного цикла соответствуют заданным требованиям и утвер­жденным планам. Под качеством ПП понимается совокупность свойств, которые характеризуют способность ПП удовлетворять заданным требованиям.

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

Процесс верификации (verification process) состоит в доказатель­стве того, что ПП, являющиеся результатами некоторого дей­ствия, полностью удовлетворяют требованиям или условиям, за­висящим от предшествующих действий.

Верификация в узком смысле означает формальное доказатель­ство правильности ПП.

Процесс аттестации (validation process) предусматривает опре­деление полноты соответствия заданных требований к создаваемой системе или ПП функциональному назначению последних. Под аттестацией обычно понимают подтверждение и оценку достовер­ности проведенного тестирования ПП.

Процесс совместной оценки (joint review process) предназначен для оценки состояния работ по проекту и ПП, создаваемому при выполнении данных работ. Он заключается в основном в контроле за планированием и управлением ресурсами, персоналом, аппа­ратурой и инструментальными средствами проекта.

Процесс аудита (audit process) представляет собой определе­ние соответствия требованиям, планам и условиям договора как хода выполнения работ по созданию ПП, так и самого ПП. Аудит может выполняться двумя любыми сторонами, участвующими в договоре, когда одна сторона проверяет другую.

Аудит – это ревизия (проверка), проводимая компетентным органом (лицом) в.целях обеспечения независимой оценки сте­пени соответствия ПП или проводимых работ установленным тре­бованиям, планам, условиям договора и контракта.

1.4. Организационные процессы жизненного цикла программного продукта

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

Процесс управления (management process) состоит из действий и задач, которые могут выполняться любой стороной, управля­ющей своими процессами. Данная сторона (менеджер) отвечает за управление выпуском продукта, проектом и задачами соответ­ствующих процессов, таких как Приобретение, поставка, разра­ботка, эксплуатация, сопровождение и др.

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

Процесс усовершенствования (improvement process) предусмат­ривает оценку, измерение, контроль и усовершенствование про­цессов жизненного цикла ПП

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

Процесс обучения (training process) охватывает первоначальное обучение и последующее постоянное повышение квалификации персонала. Приобретение, поставка, разработка, эксплуатация и сопровождение программного продукта в значительной степени зависят от уровня знаний и квалификации персонала. Например, разработчики ПП должны пройти необходимое обучение методам и средствам программной инженерии. Содержание процесса обу­чения определяется требованиями к проекту. Для этого процесса должны быть запланированы необходимые ресурсы и технические средства обучения. Кроме того, должны быть разработаны и представлены методические материалы, необходимые для обучения пользователей в соответствии с учебным планом.

1.5. Взаимосвязь между процессами жизненного цикла программного продукта

Процессы жизненного цикла ПП, регламентируемые стандар­том ISO/IEC 12207, могут использоваться различными организа­циями в конкретных проектах самым различным образом. Тем не менее, стандарт предлагает некоторый базовый набор взаимосвя­зей между процессами с различных точек зрения, или в различ­ных аспектах (договорном, управления, эксплуатации, инженер­ном, поддержки), который показан на рис. 1.1. Штриховые стрел­ки показывают связь действующих лиц процессов (заказчик, по­ставщик и т.д.) с конкретными процессами, а сплошные стрел­ки – связь процессов или групп процессов между собой.

В договорном аспекте заказчик и поставщик вступают в дого­ворные отношения и реализуют соответственно процессы приоб­ретения и поставки.

В аспекте управления заказчик, поставщик, разработчик, опе­ратор, служба сопровождения и другие стороны, участвующие в жизненном цикле ПП, управляют выполнением своих процессов. Менеджер является связующим звеном между организационными и основными процессами.

В аспекте эксплуатации оператор, эксплуатирующий систему, предоставляет необходимые услуги пользователям.

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

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

Рис. 1.1. Связь между процессами жизненного цикла программного про­дукта

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

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

Взаимосвязи между процессами, описанные в стандарте, но­сят статический характер. Более важные динамические связи меж­ду процессами и реализующими их сторонами устанавливаются в реальных проектах.

Читайте также:  Этнос и его жизненный цикл

Источник