Глава 8. Детальное проектирование и изготовление программного изделия 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Глава 8. Детальное проектирование и изготовление программного изделия



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Кодирование модулей

Когда завершено проектирование каждого модуля и проведены его обзор и утверждение, можно начинать кодирование (написание программ). При этом также должны быть установлены и докумен­тированы требования кодирования, которые определяют правила:

• представления комментариев в программах;

• наименования программ, подпрограмм, файлов, переменных;

• ограничения размеров модулей;

• использования библиотек;

• определения констант; • использования специальных средств компилятора, которых нет в языке;

• обработки ошибок и т.п.

Каждый модуль должен иметь заголовок, оформленный по стандарту, который включается в "шапку" модуля.

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

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

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

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



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 471; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.147.89.85 (0.005 с.)