Нисходящее проектирование

Нисходящее проектирование строится на вышеперечисленных принципах.

При нисходящем проектировании происходит:

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

2) каждая из полученных подзадач также анализируется для возможного разбиения на подзадачи, и, при возможности, производится разбиение;

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

Результат этот процесса, зафиксированный в графической форме, является основой для построения структурной схемы программы, которая показывает:

во-первых, что делает вся программа в целом и ее отдельные части,

во-вторых, отображает взаимосвязь подзадач друг с другом.

Структурная схема

· показывает, что делает программа, но

· не показывает, как это делается.

На основе структурной схемы программы выполняется реализация подзадач в виде отдельных модулей.

Модуль – отдельная процедура или функция небольшого объема, выполняющая логически законченный алгоритм.

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

В состав минимальной спецификации на модуль должно входить следующее:

1) название модуля;

2) назначение модуля;

3) полный заголовок модуля - первая строка процедуры или функции, включая список параметров;

4) описание входных параметров: имя, тип, назначение;

5) описание выходных параметров: имя, тип, назначение;

6) перечень имён подпрограмм, вызываемых из данного модуля.

На основании спецификаций происходит согласование интерфейсов модулей.

Весь обмен информацией между модулями осуществляется исключительно через параметры.

Следует отметить, что результаты разбиения задачи на подзадачи неоднозначны. Они зависят и от объективных, и от субъективных причин.

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

Этап выбора алгоритмов очень важен, так именно здесь и достигается настоящая эффективность программы, а не за счёт экономии в количестве используемых полей переменных и написанных строк исходного кода.

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



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: