Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие по ПО 4.doc
Скачиваний:
71
Добавлен:
21.11.2018
Размер:
2.9 Mб
Скачать

1.2. Стратегии разработки программного продукта

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

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

Основным зарубежным нормативным документом, наиболее полно и подробно регламентирующим ЖЦ ПО, является международный стандарт ISO/IEC 12207 . ( ISO - International Organization of Standardization - Международная организация по стандартизации, IEC - International Electrotechnical Commission - Международная комиссия по электротехнике.)

Модель ЖЦ зависит от специфики ПО и специфики условий, в которых оно создается и функционирует. Стандарт ISO/IEC 12207 не предлагает конкретную модель ЖЦ и методы разработки ПО. Его регламенты являются общими для любых моделей ЖЦ, методологий и технологий разработки. Стандарт ISO/IEC 12207 описывает структуру процессов ЖЦ ПО, но не конкретизирует в деталях, как реализовать или выполнить действия и задачи, включенные в эти процессы.

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

1.2.1. Водопадная или каскадная стратегия конструирования

Водопадная модель. Эта стратегия была разработана в 1970 году Уинстоном Ройсом и основана на классическом жизненном цикле программного продукта. По этой теории разработка программного обеспечения рассматривается как линейная последовательность этапов, таких как системный анализ, анализ требований, проектирование, кодирование, тестирование и сопровождение. Переход на следующий, иерархически нижний этап проводится после полного завершения работ на текущем этапе (рис. 1.1).

Рис. 1.1. Классический жизненный цикл разработки ПО

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

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

Все определения документируются в спецификации анализа. Здесь же завершается решение задачи планирования проекта.

Этап проектирования состоит в создании представлений:

  • архитектуры ПО;

  • модульной структуры ПО;

  • алгоритмической структуры ПО;

  • структуры данных;

  • входного и выходного интерфейса (входных и выходных форм данных).

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

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

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

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

Сопровождение — процесс поддержки программного продукта. На данном этапе устраняются ошибки («баги»), вносятся изменения в эксплуатируемое ПО с целью улучшить продукт. Эта стадия в жизненном цикле, как правило, занимает большую часть времени

Цели изменений:

  • исправление ошибок;

  • адаптация к изменениям внешней для ПО среды;

  • усовершенствование ПО по требованиям заказчика.

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

Как и любая инженерная схема, классический жизненный цикл имеет достоинства и недостатки.

Достоинства классического жизненного цикла: дает план и временной график по всем этапам проекта, упорядочивает ход конструирования.

Недостатки классического жизненного цикла:

1) реальные проекты часто требуют отклонения от стандартной последовательности шагов;

2) цикл основан на точной формулировке исходных требований к ПО (реально в начале проекта требования заказчика определены лишь частично);

3) результаты проекта доступны заказчику только в конце работы.

Каскадная модель с промежуточным контролем (водоворот). Модернизация каскадной модели усовершенствовалась до 1980 гг. Одна из модернизированных моделей является каскадная модель с промежуточным контролем (Рис.1.2). Данная модель является почти эквивалентной по алгоритму предыдущей модели, однако при этом имеет обратные связи с каждым этапом жизненного цикла, при этом порождает очень весомый недостаток: 10-ти кратное увеличение затрат на разработку.

Рис. 1.2. Поэтапная модель с промежуточным контролем

Каскадная стратегия применяется разработчиками при создании первоначальной версии программного обеспечения.