23
Инструментально-программный методический комплекс Методы и средства проектирования информационных систем и технологий Технология разработки программного обеспечения Часть 8. Разработка структуры программы и модульное программирование

1_08 - МиСПИСТ (ТРПО Структура)

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: 1_08 - МиСПИСТ (ТРПО Структура)

Инструментально-программный

методический комплекс

Методы и средства проектирования информационных систем и технологий

Технология разработкипрограммного обеспечения

Часть 8.

Разработка структуры программы

и модульное программирование

Page 2: 1_08 - МиСПИСТ (ТРПО Структура)

2

8.1. Цель модульного программирования

Цель - упростить программную систему. Средство

борьбы со сложностью программ

Программный модуль это любой фрагмент

описания процесса, оформляемый как

самостоятельный программный продукт,

пригодный для использования в описаниях

процесса.

Page 3: 1_08 - МиСПИСТ (ТРПО Структура)

3

8.2. Основные характеристики программного модуля

• размер модуля,

• прочность модуля,

• сцепление с другими модулями,

• рутинность модуля (независимость от предыстории

обращений к нему).

Характеристики программного модуля [Г.Майерс]:

Page 4: 1_08 - МиСПИСТ (ТРПО Структура)

4

• Измеряется числом содержащихся в нем операторов или строк.

• Модуль не должен быть слишком маленьким или слишком

большим.

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

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

их оформлением.

• Большие модули неудобны для изучения и изменений, они могут

существенно увеличить суммарное время повторных трансляций

программы при отладке программы.

• Обычно рекомендуются программные модули размером от

нескольких десятков до нескольких сотен операторов.

Размер модуля

Page 5: 1_08 - МиСПИСТ (ТРПО Структура)

5

Это мера его внутренних связей.

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

от внешней по отношению к нему части программы и,

следовательно, тем больший вклад в упрощение программы он

может внести.

Прочность модуля

Page 6: 1_08 - МиСПИСТ (ТРПО Структура)

6

• Это такой модуль, между элементами которого нет осмысленных

связей.

• Такой модуль может быть выделен, например, при обнаружении в

разных местах программы повторения одной и той же

последовательности операторов, которая и оформляется в

отдельный модуль.

• Необходимость изменения этой последовательности в одном из

контекстов может привести к изменению этого модуля, что может

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

Прочность модуля по совпадению

Page 7: 1_08 - МиСПИСТ (ТРПО Структура)

7

• Это модуль, выполняющий (реализующий)

одну какую-либо определенную функцию.

• При реализации этой функции такой модуль

может использовать и другие модули.

Функционально прочный модуль

Page 8: 1_08 - МиСПИСТ (ТРПО Структура)

8

• Это модуль, выполняющий (реализующий) несколько операций

(функций) над одной и той же структурой данных (информационным

объектом), которая считается неизвестной вне этого модуля.

• Для каждой из этих операций в таком модуле имеется свой вход со

своей формой обращения к нему.

• Такой класс следует рассматривать как класс программных модулей

с высшей степенью прочности.

Информационно прочный модуль

Page 9: 1_08 - МиСПИСТ (ТРПО Структура)

9

• Это мера его зависимости по данным от других модулей.

• Независимые модули могут быть модифицированы без

переделки других модулей

• Характеризуется способом передачи данных. Чем слабее

сцепление модуля с другими модулями, тем сильнее его

независимость от других модулей (тем лучше).

Сцепление модуля

Page 10: 1_08 - МиСПИСТ (ТРПО Структура)

10

Сцепление по содержимому. Таким является сцепление двух модулей,

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

(например, на константу, содержащуюся в другом модуле).

Сцепление по общей области это такое сцепление модулей, когда

несколько модулей используют одну и ту же область памяти.

Параметрическое сцепление это случай, когда данные передаются

модулю либо при обращении к нему как значения его параметров, либо

как результат его обращения к другому модулю для вычисления

некоторой функции.

Оценки степени сцепления модулей

Page 11: 1_08 - МиСПИСТ (ТРПО Структура)

11

• Это его независимость от предыстории обращений к нему.

• Модуль называется рутинным, если результат (эффект)

обращения к нему зависит только от значений его параметров (и

не зависит от предыстории обращений к нему).

• Модуль называется зависящим от предыстории, если результат

(эффект) обращения к нему зависит от внутреннего состояния

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

к нему.

Рутинность модуля

Page 12: 1_08 - МиСПИСТ (ТРПО Структура)

12

• В большинстве случаев надо делать модуль рутинным, т.е.

независимым от предыдущих обращений.

• Зависящие от предыстории модули следует использовать

только в тех случаях, когда это необходимо для сцепления

по данным

• В спецификации зависящего от предыстории модуля

должна быть четко сформулирована эта зависимость,

чтобы пользователи имели возможность прогнозировать

поведение такого модуля

Рутинность модуля (рекомендации)

Page 13: 1_08 - МиСПИСТ (ТРПО Структура)

13

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

В основу положен модульный подход

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

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

Модуль 1

Модуль 2

Модуль 4

Модуль 3

Page 14: 1_08 - МиСПИСТ (ТРПО Структура)

14

Спецификация программного модуля

1. Синтаксическую спецификацию его входов,

позволяющую построить на используемом языке

программирования синтаксически правильное

обращение к нему (к любому его входу)

2. Функциональную спецификацию модуля

(описание семантики функций, выполняемых этим

модулем по каждому из его входов).

Содержит:

Page 15: 1_08 - МиСПИСТ (ТРПО Структура)

15

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

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

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

Классический (водопадный) подход

Модульная структура программы была разработана до

начала программирования (кодирования) модулей.

Page 16: 1_08 - МиСПИСТ (ТРПО Структура)

16

Модуль 1

Модуль 3

Модуль 4

Модуль 2

Модуль 51

2

3

4

5

Последовательность разработки

и тестирования

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

Page 17: 1_08 - МиСПИСТ (ТРПО Структура)

17

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

Модуль 1

Модуль 3

Модуль 4

Модуль 2

Модуль 55

4

3

2

1

Последовательность разработки и тестирования

Page 18: 1_08 - МиСПИСТ (ТРПО Структура)

18

Модификация нисходящей разработки, при которой

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

формируется в процессе программирования модулей.

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

Конструктивный подход

Page 19: 1_08 - МиСПИСТ (ТРПО Структура)

19

1-й шаг разработки структуры программыКонструктивный подход

Текст головного модуля

Спецификация программы(головного модуля)

Спецификация 1-й подзадачи

Спецификация 2-й подзадачи

Спецификация 3-й подзадачи

Page 20: 1_08 - МиСПИСТ (ТРПО Структура)

20

Конструктивный подход

Текст головного модуля

Спецификация программы(головного модуля)

Спецификация 1-й подзадачи

Спецификация 2-й подзадачи

Спецификация 3-й подзадачи

Текст головного модуля 1-й подзадачи

Текст головного модуля 3-й подзадачи

Текст головного модуля 2-й подзадачи

Спецификация 2.1-й подзадачи

Спецификация 2.1-й подзадачи

2-й шаг разработки структуры программы

Page 21: 1_08 - МиСПИСТ (ТРПО Структура)

21

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

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

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

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

Page 22: 1_08 - МиСПИСТ (ТРПО Структура)

22

Классификация методов разработки структуры программ

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

Нисходящие Восходящие

Классический подход

Конструктивный подход

Классический подход

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

Page 23: 1_08 - МиСПИСТ (ТРПО Структура)

23

8.4. Контроль структуры программы

1. Статический контроль.

2. Смежный контроль.

3. Сквозной контроль.