1.44M
Category: softwaresoftware

Введение в программную инженерию. Жизненный цикл программных средств, ч. 1

1.

В. В. Шилов
ВВЕДЕНИЕ
В ПРОГРАММНУЮ ИНЖЕНЕРИЮ
Жизненный цикл
программных средств, ч. 1
Москва, 13 апреля 2017 года

2.

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

3.

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

4.

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

5.

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

6.

Согласно стандарту ISO / IEC 12207, все процессы
ЖЦ ПО разделены на три группы.

7.

I. Основные процессы
5 основных процессов:
• приобретение,
• поставка,
• разработка,
• эксплуатация,
• сопровождение.

8.

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

9.

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

10.

I. Основные процессы
I.1
I.1. Процесс приобретения.
Действие: Подготовка заявочных предложений
Заявочные предложения должны содержать:
- требования, предъявляемые к системе;
- перечень программных продуктов;
- условия приобретения и соглашения;
- технические ограничения (например, по среде
функционирования системы).
Заявочные предложения направляются к выбранному поставщику
(в случае тендера – нескольким поставщикам).
Поставщик – организация, которая заключает договор с
заказчиком на поставку системы или ПО на условиях, оговоренных
в договоре.

11.

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

12.

I. Основные процессы
I.1. Процесс приобретения.
Действие: Надзор за деятельностью поставщика
Надзор за деятельностью поставщика осуществляется в
соответствии с действиями, предусмотренными в процессах
совместной оценки и аудита.
I.1. Процесс приобретения.
Действие: Приемка и завершение работ
В процессе приемки подготавливаются и выполняются
необходимые тесты. Работы по договору завершаются при
удовлетворении всех условий приемки.
I.1

13.

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

14.

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

15.

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

16.

I. Основные процессы
I.3
I.3. Процесс разработки.
Действие: Подготовительная работа
Подготовительная работа начинается с выбора модели
ЖЦ ПО, соответствующей масштабу, значимости и сложности
проекта. Действия и задачи процесса разработки должны
соответствовать выбранной модели. Разработчик должен выбирать,
адаптировать к условиям проекта и использовать согласованные с
заказчиком стандарты, методы и средства разработки, а также
составить план выполнения работ.
Действие: Анализ требований, предъявляемых к системе
Анализ требований, предъявляемых к системе –
определение ее функциональных возможностей, пользовательских
требований, требований к надежности, безопасности, требований к
внешним интерфейсам, производительности и т.д. Требования к
системе оцениваются, исходя из критериев реализуемости и
возможности проверки при тестировании.
<…>

17.

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

18.

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

19.

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

20.

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

21.

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

22.

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

23.

II.2
Процесс управления конфигурацией
Конфигурация ПО - совокупность его функциональных и
физических характеристик, установленных в технической
документации и реализованных в ПО.
Стандарт IEEE-90
Управление конфигурацией позволяет организовать,
систематически учитывать и контролировать внесение
изменений в ПО на всех стадиях ЖЦ.
Стандарт ISO / IEC 15288
"Information Technology. Software Life Cycle Process. Configuration
Management for Software".
II. Вспомогательные процессы

24.

II. Вспомогательные процессы
II.2. Процесс управления конфигурацией.
II.2
Действия:
- подготовительная работа (планирование управления
конфигурацией);
- идентификация конфигурации (установление правил, с помощью
которых однозначно идентифицируются компоненты ПО и их
версии. При этом каждому компоненту однозначно соответствует
комплект документации);
- контроль конфигурации – систематическая оценка предлагаемых
модификаций ПО и их координированная реализация с учетом
эффективности каждой модификации и затрат на ее выполнение;
- учет состояния конфигурации – регистрация состояния
компонентов ПО. Обеспечивает подготовку отчетов о
реализованных и отвергнутых модификациях версий компонентов
ПО. Совокупность отчетов дает однозначное отражение текущего
состояния системы и ее компонентов, а также обеспечивает
ведение истории модификаций.

25.

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

26.

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

27.

II. Вспомогательные процессы
II.3. Процесс обеспечения качества.
II.3
Действия:
- подготовительная работа (координацию с другими
вспомогательными процессами и планирование самого процесса
обеспечения качества ПО с учетом используемых стандартов,
методов, процедур и средств);
- обеспечение качества продукта, подразумевающего
гарантированное полное соответствие ПО и его документации
требованиям заказчика, предусмотренным в договоре;
- обеспечение качества процесса, предполагающее
гарантированное соответствие процессов ЖЦ ПО, методов
разработки, среды разработки и квалификации персонала
условиям договора, установленным стандартам и процедурам;
- обеспечение прочих показателей качества ПО, осуществляемое в
соответствии с условиями договора и стандартом качества ISO
9001.

28.

II. Вспомогательные процессы
II.4
Процесс верификации – установление того факта,
что результирующее ПО полностью удовлетворяет требованиям.
Процесс верификации включает анализ, оценку, тестирование.
В ходе верификации проверяются:
- непротиворечивость требований, предъявляемых к системе, и
степень учета потребностей пользователей;
- возможность поставщика выполнить заданные требования;
- соответствие выбранных процессов ЖЦ ПО условиям
договора;
- адекватность стандартов, процедур и среды разработки
процессам ЖЦ ПО;
- соответствие проектных спецификаций ПО заданным
требованиям;

29.

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

30.

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

31.

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

32.

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

33.

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

34.

III. Организационные процессы
4 организационных процесса:
• управление,
• создание инфраструктуры,
• усовершенствование,
• обучение.

35.

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

36.

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

37.

III.3
Процесс усовершенствования – оценка,
измерение, контроль и собственно усовершенствование процессов
ЖЦ ПО.
Действия:
- создание процесса;
- оценка процесса;
- усовершенствование процесса.
Цель – повышение производительности труда всех участвующих в
них специалистов.
Посредством: совершенствования используемой технологии,
методов управления, выбора инструментальных средств и обучения
персонала.
Основано на анализе достоинств и недостатков каждого процесса.
Анализу способствует накопление в организации исторической,
технической, экономической и иной информации по реализованным
проектам.
III. Организационные процессы

38.

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

39.

Классы программ
Малые. Сравнительно небольшие программы, создаваемые
одним специалистом или небольшим коллективом.
• Назначение: получение конкретных результатов при автоматизации
научных исследований, анализ относительно простых процессов самими
разработчиками программ;
• Не предназначены для массового тиражирования и распространения
как программного продукта на рынке;
• Не имеют конкретного независимого заказчика-потребителя,
определяющего требования к программам и их финансирование;
• Не ограничены стоимостью, трудоемкостью и сроками создания,
требованиями заданного качества и документирования;
• Не подлежат независимому тестированию, гарантированию качества
и/или сертификации.
Их ЖЦ носит непредсказуемый характер по всем
параметрам.

40.

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

41.

СПАСИБО
ЗА ВНИМАНИЕ!
English     Русский Rules