Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Принцип формальности



Формальность предполагает строгий методический подход.

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

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

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

26. Типовая структура модуля.

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

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

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

Типовую структуру модуля можно представить на рисунке 10.1

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

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

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


27. Модуль. Виды связности.

Связность модуля (Cohesion) — это мера зависимости его частей Связность — внутренняя характеристика модуля. Чем выше связность модуля, тем лучше результат проектирования, то есть тем «черней» его ящик (капсула, защит­ная оболочка модуля), тем меньше «ручек управления» на нем находится и тем проще эти «ручки».

Для измерения связности используют понятие силы связности (СС). Существует 7 типов связности:

1. Связность по совпадению (СС=0). В модуле отсутствуют явно выраженные внутренние связи.

2. Логическая связность (CC=l). Части модуля объединены по принципу функционального подобия. Например, модуль состоит из разных подпрограмм об­работки ошибок. При использовании такого модуля клиент выбирает только одну из подпрограмм.

Недостатки:

– сложное сопряжение;

– большая вероятность внесения ошибок при изменении сопряжения ради одной из функций.

3. Временная связность (СС=3). Части модуля не связаны, но необходимы в один и тот же период работы системы.

Недостаток: сильная взаимная связь с другими модулями, отсюда — сильная чув­ствительность к внесению изменений.

4. Процедурная связность (СС=5). Части модуля связаны порядком выполняе­мых ими действий, реализующих некоторый сценарий поведения.

5. Коммуникативная связность (СС=7). Части модуля связаны по данным (ра­ботают с одной и той же структурой данных).

6. Информационная (последовательная) связность (СС=9). Выходные данные одной части используются как входные данные в другой части модуля.

7. Функциональная связность (СС=10). Части модуля вместе реализуют одну функцию.

Типы связности 1,2,3 — результат неправильного планирования ар­хитектуры, а тип связности 4 — результат небрежного планирования архитектуры приложения.

Общая характеристика типов связности представлена в таблице

Характеристика связности модуля

Тип связности Сопровождаемость Роль модуля
Функциональная   Лучшая сопровождаемость   «Черный ящик»
Информационная (последовательная) Не совсем «черный ящик»
Коммуникативная «Серый ящик»
Процедурная   Худшая сопровождаемость     «Белый» или «просвечивающий ящик»
Временная  
Логическая «Белый ящик»
По совпадению  

28. Модуль. Виды сцепления.

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

Сцепление – внешняя характеристика модуля, которую желательно уменьшать.

Количественно сцепление измеряется степенью сцепления (СЦ). Выделяют 6 типов сцепления.

1) Сцепление по данным (СЦ=1)

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

 
 





Дата публикования: 2015-01-26; Прочитано: 879 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...