Содержание фазы разработки
системный анализ;
проектирование;
программирование (кодирование);
отладка и тестирование;
Жизненный цикл программного продукта состоит из трех крупных фаз (рис. 1.1):
1) разработка;
2) использование (эксплуатация);
3) сопровождение и продолжающаяся разработка.
Фазы жизненного цикла программного продукта
В фазе разработки программный продукт разрабатывается и выпускается.
В фазе эксплуатации созданный продукт используется на практике конкретными потребителями.
В фазе сопровождения и продолжающейся разработки продукт модифицируется и развивается.
Традиционно считается, что самая трудная фаза — первая, поэтому на нее приходится тратить больше всего времени и средств. Однако в больших программах стоимость сопровождения и продолжающейся разработки часто превышает половину суммарных затрат за всю “жизнь” программы.
Фазу разработки обычно разделяют на следующие логические этапы [15, 11]:
1) системный анализ;
2) проектирование;
3) программирование (кодирование);
4) отладка и тестирование;
5) документирование;
6) выпуск.
В ЕСПД описываются следующие формальные этапы работ:
1) техническое задание;
2) эскизный проект",
3) технический проект;
4) рабочий проект;
5) внедрение.
На этапе системного анализа происходит анализ необходимости самого программного продукта, выявляются наиболее общие требование к нему.
В терминах ЕСПД (Единая система программной документации) это этап технического задания.
Результатом системного анализа является выработка спецификации требований на программный продукт, содержащая указанные требования в формальном виде. ЕСПД называет такую спецификацию техническим заданием (ТЗ).
Спецификация (ТЗ), полученная на этапе системного анализа, является исходным пунктом в этапе проектирования.
При проектировании общие требования к программному продукту пошагово и итерационно преобразуются в подробный проект, в деталях описывающий будущую структуру программной системы, форматы данных, алгоритмы, интерфейс и т.д. ЕСПД описывает проектирование в этапах эскизного проекта и технического проекта.
Этап кодирования при наличии достаточно детального проекта (каковым является технический проект) является рутинным. Фактически, кодирование — это в некоторой степени механический процесс реализации спроектированных алгоритмов на конкретном языке программирования с использованием конкретного инструментария. Результатом кодирования являются собственно программы как в исходном тексте, так и в бинарном виде, пригодном к исполнению.
Этап отладки и тестирования предназначен для выявления и устранения ошибок в программах. Тестирование есть процесс выявления ошибок и установления соответствия созданного продукта его спецификации. Отладка есть процесс локализации и устранения ошибок. Результатом данного этапа являются отлаженные (насколько возможно) программы, для которых тестированием установлено (опять же, насколько возможно) соответствие спецификации.
На этапе документирования к созданной программной системе подготавливается пакет документации, разносторонне описывающей будущий продукт как с внешней, так и с внутренней стороны. Каждый документ подготавливается для конкретного типа читателей: конечных пользователей, системных администраторов, программистов и тд. Сами файлы продукта размещаются на носителях информации (дискетах, компакт-дисках и т.д.) и снабжаются программой установки.
На этапе выпуска продукт проходит испытания по утвержденной методике, после чего поставляется, внедряется или продается.
На проектирование, кодирование и тестирование приходится более 75% стоимости конструирования ПС.
Принятые здесь решения оказывают решающее воздействие на успех реализации ПС и легкость, с которой ПС будет сопровождаться.
Важность проектирования можно определить одним словом — качество. Проектирование — этап, на котором «выращивается» качество разработки ПС. Справедлива следующая аксиома разработки: может быть плохая ПС при хорошем проектировании, но не может быть хорошей ПС при плохом проектировании.
Ироническое изображение процесса разработки ПО
Проектирование подразумевает выработку свойств системы на основе анализа постановки задачи
Требования к ПО определяют внешние (видимые) свойства программы, рассматриваемой как чёрный ящик.
Определению внутренних свойств системы и детализации её внешних свойств собственно и посвящено проектирование.
В зависимости от класса создаваемого ПО, процесс проектирования может обеспечиваться как «ручным» проектированием, так и различными средствами его автоматизации.
Проектированию обычно подлежат:
Архитектура ПО
Устройство компонентов ПО
Пользовательские интерфейсы
В процессе проектирования ПО для выражения его характеристик используются различные нотации — блок-схемы, ER-диаграммы, UML-диаграммы, DFD-диаграммы, а также макеты.
В понятие продукта разработки включается не только программный код — сюда относятся различные артефакты, такие как планы, отчеты, диаграммы.
В русскоязычной практике результат проектирования представляется в виде комплекса документов под названием «Эскизный проект», «Технический проект», в зарубежной — Software Architecture Document, Software Design Document.