ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 11.04.2019
Просмотров: 5795
Скачиваний: 8
Таким образом, существует оптимальное количество модулей, которое приводит к минимальной стоимости разработки. Увы, у нас нет необходимого опыта для гарантированного предсказания. Впрочем, разработчики знают, что оптимальный модуль должен удовлетворять двум критериям:
-
снаружи он проще, чем внутри;
-
его проще использовать, чем построить.
-
Виды связности модулей.
Связность - мера прочности соединения функциональных и информационных объектов внутри одного модуля. Если сцепление характеризует качество отделения модулей, то связность характеризует степень взаимосвязи элементов, реализуемых одним модулем. Размещение сильно связанных элементов в одном модуле уменьшает межмодульные связи и, соответственно, взаимовлияние модулей.
Связность — внутренняя характеристика модуля. Чем выше связность модуля, тем лучше результат проектирования
а- функциональная; б- последовательная; в- информационная; г- процедурная; д-временная; е- логическая
1.Связность по совпадению - В модуле связь между элементами мала или отсутствует. Такой модуль значительно усложняет процесс разработки и поддержки системы.
2. Логическая связность - Элементы логически-связного модуля принадлежат к одной категории, но клиент должен сам выбрать выполняемое действие в зависимости от контекста. Например, модуль состоит из разных подпрограмм обработки ошибок. При использовании такого модуля клиент выбирает только одну из подпрограмм. Понять логику работы модулей, содержащих логически связанные компоненты, как правило, сложнее, чем модулей, использующих временную связность, следовательно, их показатели технологичности еще ниже.
3. Временная связность - подразумевает, что эти функции выполняются одновременно или в течение некоторого периода времени. Недостаток: сильная взаимная связь с другими модулями, отсюда — сильная чувствительность внесению изменений.
4. Процедурная связность - При процедурной связности отдельные элементы модуля связаны крайне слабо, так как реализуемые ими действия связаны лишь общим процессом, но они связаны порядком выполняемых ими действий, реализующих некоторый сценарий поведения.
Модуль A
-
ОбработкаДанныхА
-
СчитатьДанные
-
ОбработатьДанныеА
-
СохранитьДанные
Конец модуля
-
Коммуникативная связность - Элементы-обработчики используют одни и те же данные или участвуют в формировании общей структуры данных. При использовании, клиенту может быть предоставлено избыточное количество данных.
Модуль
-
Успеваемость студентов
-
Сгенерировать отчет по успеваемости
-
Выдать отстающих студентов
-
Выдать список отличников
Конец модуля
5.Последовательная связность - Выходные данные одной части используются как входные данные в другой части модуля.
Модуль
-
Прием и проверка записи
-
Прочитать запись из файла
-
Проверить контрольные данные
-
Удалить контрольные поля
-
Вернуть обработанную запись
Конец модуля
-
Функциональная связность - Части модуля вместе реализуют одну функцию. Модуль, элементы которого связаны функционально, имеет четко определенную цель, при его вызове выполняется одна задача. Такой модуль имеет максимальную связность, следствием которой являются его хорошие технологические качества: простота тестирования, модификации и сопровождения.
Модуль
-
Шифрование данных +
-
Зашифровать данные +
-
Расшифровать данные –
-
Сформировать набор ключей ...
Конец модуля
-
Сцепление модулей.
Связанность модулей – это мера, определяющая степень зависимости между модулями. Два модуля называются сильносвязанными, если сильно взаимодействуют друг с другом в процессе работы, таким образом, сильно зависят друг от друга. Сцепление модулей желательно уменьшать.
Связанность по данным. Коммуникация между модулями происходит исключительно посредством обмена необходимыми элементами данных. Все входные и выходные параметры вызываемого модуля — простые элементы данных.
Связанность по образцу. В качестве параметров коммуникации используются структуры данных. Т.к. часто в структуре могут быть лишние, не используемые данные, такой тип связности менее предпочтителен.
Связанность по управлению. Здесь начинаются проблемы со связанностью. Модуль А явно управляет функционированием модуля В (с помощью флагов или переключателей), посылая ему управляющие данные. Предполагается, что вызывающий модуль “знает” логику работы вызываемого, что уменьшает их независимость.
Общая Связанность Модули имеют возможность чтения и модификации некоторого внешнего ресурса (таблицы базы данных, глобальных переменных, файлов). любые изменения в структуре глобальных данных влекут проверку (тестирование) всех сцепленных по общей области модулей.
Связанность по содержанию возникает в том случае, если один модуль имеет возможность на прямую модифицировать данные другого модуля. То есть Один модуль прямо ссылается на содержание другого модуля (не через его точку входа). Например, коды их команд перемежаются друг с другом.
-
Понятие сложности программной системы.
В простейшем случае сложность системы определяется как сумма мер сложности ее модулей. Модуль — фрагмент программного текста, являющийся строительным блоком для физической структуры системы.
Если программная система некорректно разбита на модули, это может привести к значительным сложностям при модификации ПО, и, как следствие, ко смерти проекта.
-
Необходимо соблюдать
-
максимальную степень внутренней связности
-
минимальную степень внешней связанности
Это позволит спроектировать каждый модуль как «черный ящик», т.е. каждый модуль можно будет разрабатывать или модифицировать независимо от остальных компонентов системы.
Таким образом, при комплексной оценке сложности ПС необходимо рассматривать меру сложности модулей ( его длину и объём), меру сложности внешних связей (между модулями) и меру сложности внутренних связей (внутри модулей) [28], [56]. Традиционно со внешними связями сопоставляют характеристику «сцепление», а с внутренними связями — характеристику «связность».
-
Метод структурного проектирования.
-
Типы информационных потоков (преобразование, запрос).
Исходными данными для метода структурного проектирования являются компоненты модели анализа ПС, которая представляется иерархией диаграмм потоков данных. Результат структурного проектирования — иерархическая структура ПС. Действия структурного проектирования зависят от типа информационного потока в модели анализа.
Типы
информациооных потоков
Различают
2 типа информационных потоков:
1)
поток
преобразований;
2)
поток
запросов.
Как
показано на рис. 5.1, в потоке преобразований
выделяют 3 элемента: Входящий поток,
Преобразуемый поток и Выходящий
поток.
Потоки
запросов имеют в своем составе особые
элементы — запросы.
Назначение
элемента-запроса состоит в том, чтобы
запустить поток данных по одному из
нескольких путей. Анализ запроса и
переключение потока данных на один из
путей действий происходит в центре
запросов.
Структуру
потока запроса иллюстрирует рис.
5.2.
Рис.
5.1. Элементы
потока преобразований
Рис.
5.2. Структура
потока запроса
Проектирование для потока данных типа «преобразование»
Шаг
1. Проверка
основной системной модели. Модель
включает: контекстную диаграмму ПДД0,
словарь данных и спецификации процессов.
Оценивается их согласованность с
системной спецификацией.
Шаг
2. Проверки
и уточнения диаграмм потоков данных
уровней 1 и 2. Оценивается согласованность
диаграмм, достаточность детализации
преобразователей.
Шаг
3. Определение
типа основного потока диаграммы потоков
данных. Основной признак потока
преобразований — отсутствие переключения
по путям действий.
Шаг
4. Определение
границ входящего и выходящего потоков,
отделение центра преобразований.
Входящий поток — отрезок, на котором
информация преобразуется из внешнего
во внутренний формат представления.
Выходящий поток обеспечивает обратное
преобразование — из внутреннего формата
во внешний. Границы входящего и выходящего
потоков достаточно условны. Вариация
одного преобразователя на границе слабо
влияет на конечную структуру ПС.
Шаг
5. Определение
начальной структуры ПС. Иерархическая
структура ПС формируется нисходящим
распространением управления. В
иерархической структуре:
-
модули верхнего уровня принимают решения;
-
модули нижнего уровня выполняют работу по вводу, обработке и выводу;
-
модули среднего уровня реализуют как функции управления, так и функции обработки.
Начальная
структура ПС (для потока преобразования)
стандартна и включает главный
контроллер (находится
на вершине структуры) и три подчиненных
контроллера:
1. Контроллер
входящего потока (контролирует
получение входных данных).
2. Контроллер
преобразуемого потока (управляет
операциями над данными во внутреннем
формате).
3. Контроллер
выходящего потока (управляет
получением выходных данных).
Данный
минимальный набор модулей покрывает
все функции управления, обеспечивает
хорошую связность и слабое сцепление
структуры.
Начальная
структура ПС представлена на рис.
5.3.
Диаграмма
потоков данных ПДД
Рис.
5.3. Начальная
структура ПС для потока «преобразование»
Шаг
6. Детализация
структуры ПС. Выполняется отображение
преобразователей ПДД в модули структуры
ПС. Отображение выполняется движением
по ПДД от границ центра преобразования
вдоль входящего и выходящего потоков.
Входящий поток проходится от конца к
началу, а выходящий поток — от начала
к концу. В ходе движения преобразователи
отображаются в модули подчиненных
уровней структуры (рис. 5.4).
Центр
преобразования ПДД отображается иначе
(рис. 5.5). Каждый преобразователь
отображается в модуль, непосредственно
подчиненный контроллеру центра.
Проходится
преобразуемый поток слева направо.
Возможны
следующие варианты отображения:
-
1 преобразователь отображается в 1 модуль; -
2-3 преобразователя отображаются в 1 модуль; -
1 преобразователь отображается в 2-3 модуля.

Рис.
5.4. Отображение
преобразователей ПДД в модули
структуры
Рис.
5.5. Отображение
центра преобразования ПДД
Для
каждого модуля полученной структуры
на базе спецификаций процессов модели
анализа пишется сокращенное описание
обработки.
Шаг
7. Уточнение
иерархической структуры ПС. Модули
разделяются и объединяются для:
1)
повышения связности и уменьшения
сцепления;
2)
упрощения реализации;
3)
упрощения тестирования;
4)
повышения удобства сопровождения.
Проектирование для потока данных типа «запрос»
Шаг
1. Проверка
основной системной модели. Модель
включает: контекстную диаграмму ПДДО,
словарь данных и спецификации процессов.
Оценивается их согласованность с
системной спецификацией.
Шаг
2. Проверки
и уточнения диаграмм потоков данных
уровней 1 и 2. Оценивается согласованность
диаграмм, достаточность детализации
преобразователей.
Шаг
3. Определение
типа основного потока диаграммы потоков
данных. Основной признак потоков запросов
— явное переключение данных на один из
путей действий.
Шаг
4. Определение
центра запросов и типа для каждого из
потоков действия. Если конкретный поток
действия имеет тип «преобразование»,
то для него указываются границы входящего,
преобразуемого и выходящего потоков.
Шаг
5. Определение
начальной структуры ПС. В начальную
структуру отображается та часть диаграммы
потоков данных, в которой распространяется
поток запросов.
Начальная структура ПС для потока
запросов стандартна и включает входящую
ветвь и диспетчерскую ветвь.
Структура
входящей ветви формируется так же, как
и в предыдущей методике.
Диспетчерская
ветвь включает диспетчер, находящийся
на вершине ветви, и контроллеры потоков
действия, подчиненные диспетчеру; их
должно быть столько, сколько имеется
потоков действий.
Диаграмма потоков данных

Шаг
6. Детализация
структуры ПС. Производится отображение
в структуру каждого потока действия.
Каждый поток действия имеет свой тип.
Могут встретиться поток-«преобразование»
(отображается по предыдущей методике)
и поток запросов. На рис. 5.6 приведен
пример отображения потока действия 1.
Подразумевается, что он является потоком
преобразования.
Шаг
7. Уточнение
иерархической структуры ПС. Уточнение
выполняется для повышения качества
системы. Как и при предыдущей методике,
критериями уточнения служат: независимость
модулей, эффективность реализации и
тестирования, улучшение сопровождаемости.
-
Метод проектирования Джексона.
Основная идея методики Джексона состоит в том, что «форма», или структура подлежащих обработке данных будет определять «форму» или структуру обрабатывающей программы. В этой методике основные конструкции структурного программирования применяются для построения структуры входных и выходных данных, и те же структуры используются для построения программы. При этом одна и та же нотация служит для обозначения и данных, и программ.
Метод JSD предназначен для анализа требований и проектирования систем.
Метод JSD состоит из шести шагов, объединенных в три стадии:
1-ястадия – стадия анализа, называемая стадией моделирования
(Modelling Stage); состоит из двух шагов:
сущность/действие (Entity/Action Step);
структуры сущностей (Entity Structures Step);
2-ястадия – стадия проектирования, называемая стадией сети (Network Stage); состоит из трех шагов:
начальная модель (Initial Model Step);
функции (Function Step);
согласование системы по времени (System Timing Step);
3-ястадия – стадия реализации (Implementation Stage); состоит из одного шага:
реализация (Implementation Step).
На стадии моделирования выделяются сущности системы, выполняемые
ими действия, устанавливается последовательность действий в жизненном цикле сущностей, определяются атрибуты сущностей и действий и строятся диаграммы.
В основе диаграмм Джексона лежит предположение о том, что структуры данных, как и структуры программ, можно строить на основе трех конструкций: последовательности, выбора и повторения. Каждая конструкция представляется в виде двухуровневой иерархии, на верхнем уровне расположен блок конструкции, на нижнем – блоки элементов. Типы конструкций различаются специальными символами в правом верхнем углу блоков элементов. Нотация Джексона для представления конструкций (а – последовательность, б – выбор, в – повторение):
Конструкция A состоит из элементов B, C и D,
Конструкция S состоит либо из элемента P, либо из элемента Q, либо из элемента R.
Конструкция I может не содержать элементов или содержать один и более элементов X
Сущность представляет собой некоторый объект моделируемой системы.
С сущностями связана совокупность выполняемых ими действий. Действия характеризуются следующими особенностями:
действия имеют место в определенный момент времени; процесс не является действием, так как он выполняются в течение определенного периода времени;
На шаге структуры сущностей действия располагаются в порядке их выполнения.
На стадии сети разрабатывается модель системы, представляемая в видеSSD-диаграммы(ND-диаграммы).ND-диаграммыотражают процессы моделируемой системы и их связи друг с другом. На данных диаграммах процессы изображаются прямоугольниками, связи между ними определяются посредством векторов состояний (State Vector,SV) или потоков данных (DataStream,D) [38]. ПримерND-диаграммыприведен на рис. 5.50.
Потоки данных определяют информацию, которой процессы обмениваются. Поток данных изображается кругом на связи между процессами (на рис. 5.50 процессы 4 и 5 связаны потоком данных D1).
Векторы состояния представляют собой альтернативные пути соединения процессов. Они определяют характеристики или состояние сущностей, используемых процессами, то есть условия перехода от одного процесса к другому. Вектор состояния изображается ромбом на связи между процессами (на рис. 5.50 представлены альтернативные связи между процессом 1 и процессами 2 и 4, а также между процессом 2 и процессами 3 и 5).