Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
[2 курс] Программная инженерия.docx
Скачиваний:
10
Добавлен:
20.08.2020
Размер:
47.85 Кб
Скачать

Разработка структуры программы и модульное программирование

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

  1. Размер модуля определяется количеством использованных в нем операторов. Модуль не может быть слишком маленьким или слишком большим. Обычно рекомендуются модули до нескольких сотен операторов.

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

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

Не рекомендуется к использованию.

    1. Функционально-прочный модуль – модуль, реализующий одну определенную функцию. При реализации такой функции модуль может использовать другие модули. НАИБОЛЕЕ рекомендуемый для использования.

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

  1. Сцепление модуля – мера зависимости от других модулей, характеризуется способом передачи данных. Чем выше независимость модуля от других, тем слабее сцепление. Виды сцепления бывают следующими:

    1. Сцепление по содержимому (худший вариант) – это сцепление двух модулей, когда один модуль имеет прямые ссылки на содержимое другого модуля.

    2. Сцепление по общей области (также не рекомендуется) – разные модули используют одну и ту же область памяти (например, глобальные переменные).

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

  2. Рутинность модуля – независимость модуля от предыстории (не зависит от предыдущих вызовов). В рутинном модуле результат однозначно определяется входными данными, которые формируются в момент вызова модуля. Если же модуль зависит от истории, то он называется зависящим от предыстории. Такой модуль всегда хранит результаты предыдущих обращений. Такие модули применять не рекомендуется, за исключением тех случаев, когда без них нельзя. Применение таких модулей может приводить к непредсказуемым результатам.

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