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

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

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

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

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

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

  1. Типовая структура программного комплекса

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

Независимо от профиля решаемых задач каждый программный комплекс включает четыре группы программ:

-решения функциональных задач,

-обмена с внешними абонентами,

-организации вычислительного процесса,

-контроля и обеспечения надежности.

  1. Структурированная программа. Элементарные базовые конструкции, используемые для ее создания.

Простота исходных конструкций структурного программирования предотвращает появление сложных информационных связей. Каждая программа может быть создана на основе элементарных базовых конструкций 3-типов:

-простой вычислительной последовательности,

-выбора или альтернативы,

-повторения или итерации.

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

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

Альтернатива состоит в проверке некоторого условия и в выборе одного из двух операторов преобразования данных. При ветвлении происходит однократный проход по одной из ветвей решения задачи.

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

Структурированной считается программа, которая:

-не имеет переходов внутрь циклов или условных операторов,

-не имеет выходов из внутренней части циклов и условных операторов,

-число итераций должно быть задано до входа в цикл.

-ограничено использование оператора GO TO.

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