Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
структурный подход.docx
Скачиваний:
7
Добавлен:
26.11.2019
Размер:
290.14 Кб
Скачать

2.2.2 Функциональная иерархия данных

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

Переменные, которые рассчитываются и используются внутри программного модуля, называются локальными.

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

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

2.2.3. Иерархия программных компонентов

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

  • уровень операторов и операндов, который соответствует компонентам текста программы на ЯП,

  • уровень программных модулей, оформленных, как законченные компоненты текста программ ,

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

  • уровень комплекса, оформленного, как завершенное ПО.

Графически это можно представить следующим образом:

У

КП

ровень

к

ФГ1

ФГ2

ФГ n

омплекса

У ровень

функциональных

г рупп

программ

М1

М2

М n

Уровень

Программных

м одулей

уровень

о

Оп2

Оп1

Oпn

ператоров и

операндов

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

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

      1. Восходящее и нисходящее проектирование

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

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

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

В этом случае легко привлечь к проектированию и разработке системы достаточно большую группу специалистов.

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

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

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