Модели разработки и методы проектирования программного обеспечения

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

Для инженерного подхода к проектированию программного обеспечения (ПО) были предложены модели его разработки

Рис. 1. 1 - Анализ требования, спецификация, 2 - архитектурное проектирование, 3 - детальное проектирование, 4 - кодирование, 5 - тестирование, 6 - создание временных прототипов.

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

Еще одна модель жизненного цикла - спиральная модель управления рисками

Рис. 2. 1 - Определение целей, альтернатив и ограничений, 2 - анализ риска, 3 - разработка и верификация, 4 - планирование следующего цикла.

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

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

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

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

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

Инструменты