Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SRS2.docx
Скачиваний:
11
Добавлен:
12.04.2017
Размер:
144.85 Кб
Скачать

Монолитно-модульная структура

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

Модульно-последовательная структура

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

Модульно-иерархическая структура

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

Иерархическо-модульная структура

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

Модульно-хаотическое.

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

   Cцепления модуля с другими модулями

Сцепление (coupling) — мера относительной независимости модуля от других модулей. Независимые модули могут быть модифицированы без переделки других модулей. Чем слабее сцепление модуля, тем лучше. Рассмотрим различные типы сцепления.

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

Сцепление по данным (параметрическое) — это сцепление, когда данные передаются модулю, как значения его параметров, либо как результат его обращения к другому модулю для вычисления некоторой функции. Этот вид сцепления реализуется в языках программирования при обращении к функциям (процедурам). Две разновидности этого сцепления определяются характером данным.

  • Сцепление по простым элементам данных.

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

Методы проектирования программ

Методы проектирования программ, основанные на модульном принципе, делятся на три группы: 

  • методы нисходящего проектирования, 

  • методы расширения ядра

  • методы восходящего проектирования. 

На практике обычно применяются различные сочетания этих методов. В любом методе проектирования программ должны предусматриваться возможности для управления программой при переходе обработки от одной группы записей к другой, для проверки правильности данных, а также для одновременной обработки данных, поступающих в разное время. Кроме того, каждый метод должен объединять средства управления физической организацией некоторых данных (например, распределением информации по страницам) с логической организацией обработки. 1. Метод нисходящего проектирования Метод нисходящего проектирования подобен методу получения детального изображения из более общего вида с помощью телескопического увеличения. На начальном шаге формируется предложение, описывающее функцию всей программы. Затем определяются ее подфункции. Эта процедура является рекурсивной, т. е., следуя ей, каждая из подфункций может расчленяться до тех пор, пока ее составные части не будут окончательно уточнены. Метод нисходящего проектирования, иногда называемый функциональной декомпозицией, основан на двух стратегиях: пошаговом уточнении и анализе сообщений. Эти стратегии отличаются способами определения начальных спецификаций, методами, используемыми при разбиении задачи на части, и правилами записи.