- •Обучающий курс
- •Основные понятия и определения
- •Модели жизненного цикла разработки программных средств и систем
- •Стратегии
- •Каскадная модель жизненного цикла разработки программных средств и систем
- •Преимущества каскадной модели жизненного цикла
- •Недостатки каскадной модели жизненного цикла
- •Область применения каскадной модели
- •V-образная модель жизненного цикла разработки программных средств и систем
- •Преимущества V-образной модели жизненного цикла
- •Недостатки V-образной модели жизненного цикла
- •Область применения V-образной модели
- •Структурная эволюционная модель быстрого прототипирования жизненного цикла разработки программных средств и систем
- •Преимущества структурной эволюционной модели быстрого прототипирования
- •Недостатки структурной эволюционной модели быстрого прототипирования
- •Область применения структурной эволюционной модели быстрого прототипирования
- •Модель быстрой разработки приложений rad
- •Преимущества модели быстрой разработки
- •Недостатки модели быстрой разработки
- •Область применения модели быстрой разработки rad
- •Инкрементная модель жизненного цикла разработки программных средств и систем
- •Преимущества инкрементной модели жизненного цикла
- •Недостатки инкрементной модели жизненного цикла
- •Область применения инкрементной модели
- •Спиральная модель жизненного цикла разработки программных средств и систем
- •Преимущества спиральной модели жизненного цикла
- •Недостатки спиральной модели жизненного цикла
- •Область применения спиральной модели
- •Упрощенные варианты спиральной модели
- •Классические технологии проектирования программ
- •Модульное проектирование программ
- •Метод нисходящего проектирования
- •Пошаговое уточнение
- •Анализ сообщений
- •Связность модуля
- •Типы и силы связности модулей.
- •Сцепление модулей
- •Типы и степени сцепления модулей.
- •Метод восходящего проектирования
- •Методы расширения ядра
- •Метод иерархического проектирования модулей (метод Джексона)
- •Case-технологии проектирования программного обеспечения
- •Общие сведения о case-технологиях
- •Информационное моделирование
- •Сущности
- •Атрибуты
- •Способы представления сущностей с атрибутами
- •5. Студент (с)
- •Классификация атрибутов
- •Правила атрибутов
- •Безусловные связи
- •Условные формы связи
- •Формализация связи
- •Подтипы и супертипы
- •Рабочие продукты информационного моделирования
- •Пример информационной модели
- •Методология структурного анализа и проектирования sadt
- •Синтаксис и применение диаграмм
- •Синтаксис моделей и работа с ними
- •Стратегии декомпозиции при sadt-моделировании
- •Процесс sadt-моделирования
- •Инструментальные средства проектирования программного обеспечения
- •Классификация case средств
Типы и силы связности модулей.
-
№ п.п.
Связность
Сила связности
1
Функциональная
10 (сильная)
2
Последовательная
9
3
Коммуникативная
7
4
Процедурная
5
5
Временная
3
6
Логическая
1
7
Связность по совпадению
0 (слабая)
Модуль с функциональной связностью не может быть разбит на 2 других модуля, имеющих связность того же типа. Он выполняет единственную функцию и реализуется последовательностью операций в виде единичного цикла.
Модуль, имеющий последовательную связность, может быть разбит на последовательные части, выполняющие независимые функции, но совместно реализует единственную функцию. Модуль с последовательной связностью реализуется как последовательность циклов или операций.
Модуль, имеющий коммуникативную связь, может быть разбит на независимые модули, разделяющие общую структуру данных. В основе данного модуля лежит общая структура данных
Модули высшего уровня иерархической структуры программы должны иметь функциональную или последовательную связь. Для модуля обслуживания предпочтительнее коммуникативная связь.
Процедурная связность характерна для модуля, управляющие конструкции которого организованы так, как изображены на схеме программы. Такая структура модуля может возникнуть при расчленении длинной программы на части в соответствии с передачами управления, но без определения ??? функций при выборе разделительных точек.
Модуль, содержащий функционально несвязные части, но необходимые в один и то же момент обработки имеет временную связность или связность по классу.
Если в модуле объединены операторы только по принципу их функционального подобия, а для настройки модуля применяется алгоритм переключения, то модуль имеет логическую связность.
Модуль имеет связность по совпадению, если его операторы объединяются произвольным образом.
Вывод: следует добиваться функциональной связности модуля.
Сцепление модулей
Это мера относительной независимости модулей, которая определяет их читабельность и сохранность.
Модули являются полностью независимыми, если каждый из них не содержит о другом никакой информации. Чем больше информации в них используется, тем менее они независимы и тем более сцеплены. Чем очевиднее взаимодействие двух связных друг с другом модулей, тем проще определить необходимость корректировки одного модуля, зависящего от другого модуля.
Типы и степени сцепления модулей.
-
№ п.п.
Сцепление
Степень сцепления
1
Независимые
0
2
Сцепление по данным
1
3
По образу
3
4
По общей области
4
5
По управлению
5
6
По внешним ссылкам
7
7
По кодам
9(сильное сцепление)
Независимое сцепление возможно только в том случае, если модули не вызывают друг друга и не обрабатывают одну и ту же информацию.
Модули сцеплены по данным, если они имеют общие простые элементы данных, которые передаются от одного модуля к другому, как параметры. Вызывающий модуль знает только имя вызываемого модуля, а также типы и значения переменных, передаваемых как параметры. в этом случае изменение в структуре данных не влияет на другой модуль. Модули со сцеплением по данным не имеет общей области данных или неявных параметров.
Модули сцеплены по образцу, если в качестве параметров используются структуры данных. Недостаток такого сцепления в том, что оба модуля должны знать о внутренней структуре данных, и если модифицируется структура в одном модуле, то необходимо модифицировать и в другом, значит, увеличивается вероятность появления ошибок при сопровождении программы.
Модули сцеплены по общей области, если они разделяют одну и ту де глобальную структуру данных. В этом случае возможность появления ошибок при модификации намного больше.
Модули сцеплены по управлению, если какой-то из них управляет решениями внутри другого с помощью передачи флагов, переключателей, то есть один из модулей знает о внутренней структуре другого. Например, модуль имеет логическую связь и при его вызове используется переключатель ????, то оба модуля сцеплены по умолчанию.
Модули сцеплены по внешним ссылкам, если у 1 модуля есть доступ к данным другого модуля через внешнюю точку входа. Сцепление этого типа возникает, когда внутренние структуры оперируют с глобальными переменными, с которыми оперирует второй модуль.
Модули сцеплены по кодам, если коды их команд перемешаны друг с другом. Например, для одного из модулей доступны внутренние области другого модуля, то есть модули используют один участок памяти.
Если модули косвенно обращаются друг к другу, между ними также существует сцепление.
Вывод: сцепление модулей зависит от спроектированной структуры данных и способов взаимодействия между модулями. Необходимо использовать простые параметры и не применять глобальных данных.