Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Коваленко 5 курс.docx
Скачиваний:
2
Добавлен:
20.09.2019
Размер:
198.47 Кб
Скачать

14. Методы разработки структуры программной системы

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

Программный модуль – автономная программная единица.

Каждый программный модуль комперируется, программируется и отлаживается отдельно от других.

Программный модуль можно рассматривать как:

1.средство борьбы со сложным программированием

2. средство борьбы с дублированием в программировании.

Для оценки приемлемости выделяют модуля, используя следующие характеристики:

1.прочность модуля;

2.сцепление с другими модулями;

3.рутинность модуля (независимо от предыстории обращения к нему);

Размер модуля – измерение числом, содержащихся в нём операторов.

Рекомендуемые программные модули размножаются от нескольких десятков до нескольких сотен.

Прочность модуля – мера его внутренних связей.

Чем выше прочность модуля, тем больше связей он может спрятать от внешней части программы.

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

И он может быть определен при обнаружении в разных местах программ повторения 1 и той же последовательности оператора, которая оформляется в отдельный модуль.

Т.е. такой класс модулей не пригоден для использования.

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

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

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

Сцепление модуля – мера его зависимости по данным от других модулей и характеризуется оно способом передачи данных.

Худшим видом сцепления модулей является сцепление по содержимому – сцепление 2-х модулей, когда 1 их них имеет прямые ссылки на содержание другого модуля.

Например: на константу, содержащуюся в другом модуле. Такое сцепление модулей не допустимо.

Не рекомендуется также использовать сцепление по общей области – это сцепление модулей, когда несколько модулей используют 1 и ту же область памяти.

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

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

Модуль называется рутинным, если результат обращения к нему не зависит от предыстории. И модуль называется зависящим от предыстории, если результат обращения к нему зависит от внутреннего состояния этого модуля, хранящего следы предыдущего обращения.

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

В процессе разработки программы, её модульная структура может по-разному формироваться.

Поэтому выделяют 2 метода разработки структуры программы:

1.метод восходящей разработки

2.метод нисходящей разработки

Метод восходящей разработки

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

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

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

Современная технология не рекомендует восходящий метод по 3 причинам:

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

Для тестирования модуля можно использовать имитаторы или заглушки.

2.каждая программа (модуль) подчиняется внутренней для неё, но глобальной для её модулей информацией.

Принципы реализации программы, предположения, структуры данных и т.п. Такая информация формируется в процессе разработки программ и для модулей нижних уровней ещё не ясна в полном объеме, поэтому эти модули приходится перепрограммировать.

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

Нисходящий метод

Начинается со строительства модульной структуры программы в виде дерева.

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

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

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

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

Недостаток

Необходимость абстрагироваться от базовых возможностей использования языка программирования.

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

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

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

Архитектурный подход

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

Цель: повышение уровня использования языка программирования, а не разработка конкретных программ.

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

Далее программируют отдельные модули, выполняющие эти функции.