
- •СОДЕРЖАНИЕ
- •1.1. Основные понятия и определения
- •1.2. Жизненный цикл программных средств
- •2.1. Стратегии разработки программных средств и систем
- •2.1.1. Базовые стратегии разработки программных средств и систем
- •2.1.2. Каскадная стратегия разработки программных средств и систем
- •2.1.3. Инкрементная стратегия разработки программных средств и систем
- •2.1.4. Эволюционная стратегия разработки программных средств и систем
- •2.2.1. Общие сведения о каскадных моделях
- •2.2.2. Классическая каскадная модель
- •2.2.3. Каскадная модель с обратными связями
- •2.2.5. V-образная модель
- •2.3.1. Базовая RAD-модель
- •2.4.1. Общие сведения об инкрементных моделях
- •2.4.2. Инкрементная модель с уточнением требований на начальных этапах разработки
- •2.5.1. Общие сведения об эволюционных моделях
- •2.5.3. Структурная эволюционная модель быстрого прототипирования
- •2.5.5. Спиральная модель Боэма
- •2.5.6. Упрощенные варианты спиральной модели
- •3.1. Классификация проектов по разработке программных средств и систем
- •3.2. Процедура выбора модели жизненного цикла разработки программных средств и систем
- •3.3. Адаптация модели жизненного цикла разработки ПС и систем к условиям конкретного проекта
- •4.1. Модульное проектирование программ
- •4.2. Метод нисходящего проектирования
- •4.2.1. Пошаговое уточнение
- •4.2.2. Кодирование программы с помощью псевдокода и управляющих конструкций структурного программирования
- •4.2.3. Использование комментариев для описания обработки данных
- •4.2.4. Анализ сообщений
- •4.3. Метод восходящего проектирования
- •4.4. Метод иерархического проектирования модулей (метод Джексона)
- •4.4.1. Основные конструкции построения структур данных
- •4.4.2. Построение структур данных
- •4.4.3. Проектирование структур программ
- •4.4.4. Этапы конструирования программы
- •4.5.1. Связность модуля
- •4.5.2. Сцепление модулей
- •5.1. Общие сведения о CASE-технологиях
- •5.2. Методология структурного анализа и проектирования SADT
- •5.2.2. Основные понятия IDEF0-модели
- •5.2.3. Синтаксис диаграмм
- •5.2.4. Синтаксис моделей
- •5.2.6. Процесс моделирования в IDEF0
- •5.3. Информационное моделирование
- •5.3.1. Сущности
- •5.3.2. Атрибуты
- •5.3.3. Способы представления сущностей с атрибутами
- •5.3.4. Классификация атрибутов
- •5.3.5. Правила атрибутов
- •5.3.6. Связи
- •5.3.7. Безусловные связи
- •5.3.8. Условные формы связи
- •5.3.9. Формализация связи
- •5.3.10. Подтипы и супертипы
- •5.3.11. Рабочие продукты информационного моделирования
- •6.1. Эволюция Case-средств
- •6.2. Концептуальные основы Case–средств
- •6.3.1. Поддержка графических моделей
- •6.3.2. Контроль ошибок
- •6.3.3. Организация и поддержка репозитория
- •6.3.4. Поддержка процесса проектирования и разработки
- •6.4. Классификация CASE–средств
- •6.4.1. Классификация по типам
- •6.4.2. Классификация по категориям
- •6.4.3. Классификация по уровням
- •6.5. Инструментальные средства компании Telelogic, предназначенные для автоматизации жизненного цикла программных средств и систем
- •6.5.1. Telelogic DOORS
- •6.5.2. Telelogic TAU
- •6.5.3. Telelogic SYNERGY
- •6.5.4. Telelogic DocExpress
- •6.5.5. Telelogic TAU Logiscope
- •7.2. Реализация процесса документирования в соответствии со стандартом ISO/IEC 15910:1999
- •7.2.2. Выполнение процесса документирования
- •7.2.3. Содержание плана документирования
- •7.2.4. Требования к содержанию спецификации стиля документации
- •ЛИТЕРАТУРА

4.4.3. |
Проектирование структур программ |
Джексон |
доказал, что конструкции, используемые для построения |
структур данных, могут быть применены и для построения структур программ. Программы могут быть составлены из последовательностей, выборов и повторений таким же способом, как и данные.
Наиболее часто используются программы, обрабатывающие некоторые
входные |
данные |
и создающие |
некоторые выходные .данныеСтруктура |
выходных |
данных |
получается в |
результате некоторого преобразовани |
структуры входных данных, то есть в результате процесса, выполняемого программой.
Таким образом, для проектирования программы необходимо определить взаимосвязь между входными данными, выходными данными и процессом преобразования.
Пример 4.3.
Рассмотрим простейший пример. Пусть необходимо найти суммы элементов строк в таблице, состоящей из 10 строк и 8 столбцов.
Рисунок 4.21 иллюстрирует структуры данных, представляющие входные и выходные данные процесса. Очевидно, что между обеими структурами
имеется |
непосредственная взаимосвязь. Компонент «Сумма |
строки» из |
|||||
структуры |
«Выход» появляется |
столько же ,разсколько раз |
компонент |
||||
«Строка» появляется во входной структуре «Таблица» и в том же порядке. |
|||||||
|
|
Входная |
|
Выходная |
|
||
|
|
структура |
|
структура |
|
||
|
|
данных |
|
данных |
|
||
|
|
|
|
|
|
|
|
|
|
Таблица |
|
Выход |
|
|
|
|
|
|
|
|
|
Строка |
* |
(10) |
Сумма |
* |
(10) |
||
|
|
||||||
|
|
|
|
строки |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
* (8)
Элемент
Рисунок 4.21 – Таблица: структуры входных и выходных данных
87

Соответствие |
между |
структурами |
входных |
и |
выходных |
данн |
|||||
представляет рисунок 4.22. Линии соответствия между компонентами входной |
|||||||||||
и выходной структур |
данных принято |
|
изображать |
жирной |
линией |
||||||
двусторонними стрелками. |
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблица |
|
|
Выход |
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* |
|
Сумма |
* |
|
Строка (10) |
(10) |
|||
|
|
|
строки |
|
|
|
|
|
|
|
|
|
|
|
*
Элемент (8)
Рисунок 4.22 –Соответствие между структурами входных и выходных данных
Каждая пара соответствующих компонентов входных и выходных данных образует основу одного компонента программы. Поэтому простую структуру программы обработки таблиц можно создать, «сливая» соответствующие компоненты структур входных и выходных данных, то есть размещая вместо линий соответствия компоненты программы, которым присваивается соответствующее имя (рисунок 4.23).
Слияние двух повторяемых компонентов данных сформирует один повторяющийся компонент программы.
88

Вход |
|
Программа |
|
Выход |
||
|
|
|
|
|
|
|
Таблица |
|
Программа |
|
Выход |
||
|
обработки |
|
||||
|
|
|
|
|
|
|
|
|
|
таблицы |
|
|
|
|
|
|
|
|
|
|
* |
* |
* |
Строка |
Обработка |
Сумма |
|
строки |
строки |
*
Элемент
|
Рисунок 4.23 – Соответствие данных и программы |
|
|
|
Пример 4.4. |
|
|
|
|
Рассмотрим более сложный пример. Пусть |
результат |
предыдущего |
||
примера необходимо получить в виде отчета с заголовком и завершителем. |
||||
Структуры входных и выходных данных и соответствия |
между |
ними для |
||
данного случая представляет рисунок 4.24. |
|
|
|
|
На |
первом подэтапе на основании линий |
соответствия формируется |
||
упрощенный вариант структуры программы (рисунок 4.25). |
|
|
||
На |
следующих подэтапах рассматриваются |
те компоненты |
структур |
|
данных, которым ничего не соответствует. |
|
|
|
На втором подэтапе рассматриваются компоненты во входной структуре данных, которые ничему не соответствуют.
Таким компонентом во входной структуре данных является«Элемент». Ему не соответствует ни один компонент в структуре выходных данных. Но он
образует |
подкомпоненты, составляющие |
компонент «Строка», а «Строка» |
|||
сливается |
с компонентом«Сумма строки», формируя |
компонент «Обработка |
|||
строки». Поэтому «Элемент» можно |
трактовать |
как |
повторяемый |
||
подкомпонент компонента «Обработка |
строки» и |
переименовать |
его в |
||
компонент «Обработка элемента» (рисунок 4.26). |
|
|
|
89

Таблица |
|
Отчет |
||
|
|
|
|
|
|
|
|
|
|
*
Строка |
Заголовок |
Тело отчета |
Завершитель |
|
|
|
|
|
|
Элемент |
* |
|
|
|
|
|
|
* |
|||
|
|
|
|
Сумма |
|
|
|
|
|||
|
|
|
|
строки |
|
|
|
|
|
|
|
Рисунок 4.24 – Расширенные структуры входных и выходных данных
Подэтап 1 Программа обработки таблицы
*
Обработка
строки
Рисунок 4.25 – Первый подэтап формирования структуры программы
90

Подэтап 2 Программа обработки таблицы
*
Обработка
строки
*
Обработка
элемента
Рисунок 4.26 – Второй подэтап формирования структуры программы
На третьем |
подэтапе рассматриваются |
компоненты |
в |
выходной |
|
структуре данных, которые ничему не соответствуют. Этими компонентами |
|||||
являются «Заголовок», |
«Тело отчёта», «Завершитель» |
(см. рисунок 4.24). По |
|||
аналогии с компонентом «Элемент» каждый из этих компонентов помещается в |
|||||
то относительное положение в структуре программы, в котором он появляется |
|||||
в структурах |
данных. |
И соответственно меняется имя данных компонентов |
|||
(добавляется |
слово «Получение», «Формирование», |
«Обработка» |
и |
т..п). |
Рисунок 4.27 содержит полученную в результате структуру программы.
Таким образом, выше на простых примерах показан процесс генерации структуры программы из структур входных и выходных данных по методу Джексона. Следующий подраздел посвящен формализации этого процесса.
91