Общие принципы проектирования программных систем.

Им. Н. Э. Баумана

 

Калужский филиал

 

конспект лекций по курсу

" Проектирование алгоритмов

и программных систем "

5,6 семестр

 

 

 

Этапы жизненного цикла программной системы.

Определяют 5 этапов:

Проектирование программы:

1) постановка задачи

2) разработка

3) реализация

4) испытание

Использование программы:

5) эксплуатация

1. Постановка задачи:

На этом этапе определяется цель проектирования программной системы. Составляется техническое задание (для России определяется стандартом ГОСТ 19.201-78), составляются и утверждаются соответствующие юридические документы (договор, контракт и т.п.). Результатом (итогом) выполнения данного этапа является техническое задание, в котором определяются все функции разрабатываемой программной системы и предъявляемые к ней требования.

Требования, предъявляемые к программным системам:

1) требование к правильности: предполагает, что программа функционирует в соответствии с техническим заданием.

2) требование к точности: предполагает, что числовые данные выдаваемые прогой имеют допустимые отклонения.

3) требование к надёжности: предполагает, что программа при всех условиях обеспечивает абсолютную повторяемость результатов.

4) требование к универсальности: предполагает, что программа работает при допустимых вариантах исходных данных (то есть входные данные должны проверяться самой программой)

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

6) требование к полезности: предполагает обоснование (доказательство необходимости) разработки программы (техническое, экономическое и т.п.).

7) требование к эффективности: предполагает, что объём ресурсов (например, объем памяти, быстродействие процессора) запрашиваемый программой не превышает заданного предела оговорённых в Техническом Задании (ТЗ).

8) требование к проверяемости: предполагает, проверку правильности и универсальности. Существует два способа проверки правильности: а) опирается на формальные математические выкладки (применим только для очень простых программ) б) неформальные способы (отладка с контрольными остановами).

9) требование к адаптируемости: предполагает, что программа допускает лёгкое приспособление к новым условиям эксплуатации (возможность автоматической настройке к новой среде).

10) требование к совместимости: предполагает, что программа работает должным образом не только автономно, но и как составная часть программной среды (в том числе может совместно работать с другими программами, которые используют тот же самый формат данных, например, некоторый стандартный формат - .doc, .xls, .pdf, или даже просто .txt).

11) требование к документированности. Это означает что создан полный комплект документов, в котором отражены все этапы разработки и создан комплект инструкций для пользователя.

 

2. Разработка:

Это главный этап занимающий основное время работы над проектом:

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

б) Разрабатываются алгоритмы конкретных модулей.

Итог этапа: детализированные алгоритмы и архитектура (в смысле модульная структура в иерархической схемы).

Существуют два подхода к проектированию архитектуры:

а) основывается на структурном анализе, т.е. подразумевает последовательную детализацию задачи путем разбиения её на подзадачи.

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

3. Реализация:

На основе алгоритмов разработанных на этапе 2 пишутся исходные тексты программ на каком-либо языке. Этот этап не главный.

Итог этапа: отлаженные тексты программ.

4. Испытание и приёмка работы:

Идёт разработка приёмов и тестовых задач. После выполнения этих задач программа принимается.

5. Эксплуатация и сопровождение:

Т.к. для сложной системы невозможно теоретически доказать её правильность, поэтому используют неформальные приёмы: длительное тестирование.

Общее замечание по всем этапам: Все этапы следует тщательно планировать, вплоть до составления сетевых графиков: