Общие принципы проектирования программных систем.
Им. Н. Э. Баумана
Калужский филиал
конспект лекций по курсу
" Проектирование алгоритмов
и программных систем "
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. Эксплуатация и сопровождение:
Т.к. для сложной системы невозможно теоретически доказать её правильность, поэтому используют неформальные приёмы: длительное тестирование.
Общее замечание по всем этапам: Все этапы следует тщательно планировать, вплоть до составления сетевых графиков: