Разработка сложных программных изделий


Основные виды деятельности


Фаза детального проектирования и изготовления может быть названа "фазой реализации" в ЖЦПИ. Цель этой фазы — детали­зация проекта, описанного в предыдущем документе. Она включает кодирование, тестирование и документирование. Ответственными за выполнение работ в этой фазе являются программисты, специа­листы другого профиля подключаются для консультаций. Верифи­кация программного изделия может проводиться независимо специ­алистами, не принимавшими участия в разработке.

До начала кодирования (написания программ) важно рассмот­реть адекватность и достаточность для разработки компьютерных ресурсов. Нельзя также говорить о начале кодирования, если отсут­ствуют операционная система и системные программы для ЭВМ. Производительность труда программистов может существенно упасть, если ресурсов окажется недостаточно.

Работы на этой фазе должны выполняться в соответствии с пла­ном, принятым на предыдущей фазе. Выполнение пунктов плана должно тщательно отслеживаться и документироваться.

Детальное проектирование и изготовление программного изде­лия базируются на следующих трех принципах:

• нисходящая декомпозиция;

• структурное программирование;

• одновременное изготовление и документирование.

Эти принципы должны находить отражение как в проекте про­граммного изделия, так и в организации работ. Их использование помогает своевременному выполнению работ и соблюдению бюд­жетных расходов. Они оказывают положительное влияние и на ка­чество программного изделия, на его надежность и пригодность к сопровождению.

Нисходящая декомпозиция жизненно важна для управления сложностью и для реализации принципа "сокрытия информации".

Цель структурного программирования — стремление избежать ошибок при конструировании модулей и при написании программ. Использование структурного программирования с пошаговым со­вершенствованием проекта до уровня кодирования с использовани­ем трех базовых структур приводит к заметному уменьшению числа ошибок кода, а также позволяет резко сократить время, затрачивае­мое на тестирование и отладку программ.
Структурное программи­ рование делает код более понятным, уменьшая затраты на сопро­вождение программного изделия в дальнейшем.

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

Детальное проектирование программного изделия связано с декомпозицией компонент нижнего уровня архи­тектурного проекта до модулей на выбранном языке программиро­вания. При этом модуль рассматривается в виде программного блока, который может отдельно компилироваться и отдельно загру­жаться и объединяться с другими блоками.

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

• начинаем с функциональной спецификации и спецификации интерфейсов;

• концентрируем внимание на потоках управления;

• откладываем объявление данных до фазы кодирования;

• шаги совершенствования делаем небольшими, чтобы упрос­тить верификацию внесенных изменений;

• проводим обзор каждого шага после его выполнения. Обзор каждого модуля может быть выполнен путем сквозного просмотра, после чего он утверждается для кодирования.


Содержание раздела