- •СОДЕРЖАНИЕ
- •ВВЕДЕНИЕ
- •РАЗДЕЛ 1. ВВЕДЕНИЕ В ТЕХНОЛОГИИ РАЗРАБОТКИ ПРОГРАММНЫХ СРЕДСТВ
- •1.1. Основные понятия и определения
- •ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ
- •2.2.1. Общие сведения о каскадных моделях
- •2.2.2. Классическая каскадная модель
- •2.2.3. Каскадная модель с обратными связями
- •2.2.5. V-образная модель
- •2.3.1. Базовая RAD-модель
- •2.5.5. Спиральная модель Боэма
- •ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ
- •РАЗДЕЛ 3. ВЫБОР МОДЕЛИ ЖИЗНЕННОГО ЦИКЛА ДЛЯ КОНКРЕТНОГО ПРОЕКТА
- •ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ
- •РАЗДЕЛ 4. КЛАССИЧЕСКИЕ МЕТОДОЛОГИИ РАЗРАБОТКИ ПРОГРАММНЫХ СРЕДСТВ
- •4.1. Структурное программирование
- •4.3. Методы нисходящего проектирования
- •4.3.1. Пошаговое уточнение
- •4.3.4. Анализ сообщений
- •4.4. Методы восходящего проектирования
- •4.5. Методы расширения ядра
- •4.6. Метод JSP Джексона
- •4.6.1. Основные конструкции данных
- •4.6.2. Построение структур данных
- •4.6.3. Проектирование структур программ
- •4.7.1. Связность модуля
- •4.7.2. Сцепление модулей
- •ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ
- •РАЗДЕЛ 5. CASE-ТЕХНОЛОГИИ СТРУКТУРНОГО АНАЛИЗА И ПРОЕКТИРОВАНИЯ ПРОГРАММНЫХ СРЕДСТВ
- •5.1. Общие сведения о CASE-технологиях
- •5.2.1. Общие сведения о методологии SADT
- •5.2.2. Основные понятия IDEF0-модели
- •5.2.3. Синтаксис IDEF0-диаграмм
- •5.2.4. Синтаксис IDEF0-моделей
- •5.3.1. Основные понятия DFD-модели
- •5.3.2. Синтаксис DFD-диаграмм
- •5.3.3. Синтаксис DFD-моделей
- •5.4.3. Атрибуты
- •5.4.5. Правила атрибутов
- •5.4.9. Формализация соединительных связей
- •5.4.11. Неспецифические связи
- •5.4.13. Связи категоризации в IDEF1X
- •5.5.1. Метод JSD Джексона
- •5.5.2. Диаграммы Варнье–Орра
- •ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ
- •6.1.3. Основы языка UML
- •6.3. Диаграмма вариантов использования
- •ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ
- •РАЗДЕЛ 7. ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
- •7.1. История развития CASE-средств
- •7.4. Классификация CASE-средств
- •7.4.1. Классификация по типам
- •7.4.2. Классификация по категориям
- •7.4.3. Классификация по уровням
- •ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ
- •ЛИТЕРАТУРА
Выходные данные управляющего компонента отображаются как входные для вызываемых им компонентов. Поэтому компонент-исток имеет выходные данные, сток – входные данные, преобразователь – и те, и другие.
Резюме
Анализ сообщений основывается на анализе потоков данных, обрабатываемых программным средством. Первоначальный поток данных разбивается на три потока: исток, преобразователь и сток. Процесс декомпозиции заключается в рекурсивном использовании метода разбиения на исток – преобразователь – сток на отдельных ветвях иерархической структуры программы. Описание иерархической структуры должно содержать таблицу взаимодействия компонентов, показывающую передачу данных между ними.
Таблица 4.1
Таблица связей между компонентами
Компо- |
Вход |
Выход |
|
нент |
|||
|
|
||
1 |
— |
Правильные даты |
|
|
|
|
|
2 |
Правильные даты |
Результаты |
|
|
|
|
|
3 |
Результаты |
— |
|
|
|
|
|
4 |
— |
Прочитанная дата |
|
|
|
|
|
5 |
Прочитанная дата |
Правильная дата |
|
Неправильная дата |
|||
|
|
||
6 |
Неправильная дата |
— |
|
|
|
|
|
7 |
Правильная дата |
Обработанная дата |
|
|
|
|
|
8 |
Обработанная дата |
Правильный результат |
|
Неправильный результат |
|||
|
|
||
9 |
Правильный результат |
— |
|
|
|
|
4.4. Методы восходящего проектирования
При использовании восходящего проектирования в первую очередь выделяются функции нижнего уровня, которые должно выполнять программное средство. Эти функции реализуются с помощью программных модулей самых нижних уровней. Затем на основе этих модулей проектируются программные компоненты более высокого уровня. Данные компоненты реализуют функции
107
более высокого уровня. Процесс продолжается, пока не будет завершена разработка всего программного средства.
В чистом виде метод восходящего проектирования используется крайне редко. Основным его недостатком является то, что программисты начинают разработку программного средства с несущественных, вспомогательных деталей. Это затрудняет проектирование программного средства в целом.
Метод восходящего проектирования целесообразно применять в следующих случаях:
существуют разработанные модули, которые могут быть использованы для выполнения некоторых функций разрабатываемой программы;
заранее известно, что некоторые простые или стандартные модули потребуются нескольким различным частям программы (например, подпрограмма анализа ошибок, ввода-вывода и т.п.).
Обычно используется сочетание методов нисходящего и восходящего проектирования [22]. Такое сочетание возможно различными способами. Ниже рассмотрены два из них.
Первый способ сочетания
Выделяются ключевые (наиболее важные) модули промежуточных уровней разрабатываемой программы. Затем проектирование ведется нисходящим и восходящим методами одновременно (рис. 4.27).
Второй способ сочетания
Проектируются модули нижнего уровня (те, которые необходимо спроектировать заранее). Затем программа проектируется одновременно нисходящим и восходящим методами (рис. 4.28).
При таком способе проектирования наиболее важной задачей является согласование интерфейса между верхними и нижними уровнями программы, выполняемое в последнюю очередь. Это является существенным недостатком данного способа сочетания. Разработчики должны обладать достаточно высокой квалификацией, чтобы не оказалось, что верхняя и нижняя части программы несовместимы между собой.
Резюме
При использовании метода восходящего проектирования в первую очередь реализуются функции нижнего уровня программы. На основе полученных модулей проектируются программные компоненты более высокого уровня. Часто используется сочетание методов нисходящего и восходящего проектирования. Такое сочетание возможно различными способами.
108
Восходящее проектирование на базе ключевых модулей
Ключевые модули промежуточных уровней (разрабатываются вначале)
Нисходящее проектирование ключевых модулей
Рис. 4.27. Проектирование программы нисходящим и восходящим методами на базе ключевых модулей
Нисходящее
проектирование
Интерфейс между верхним и нижним уровнями программы
Восходящее
проектирование
Модули нижнего уровня, проектируемые в 1-ю очередь
Рис. 4.28. Проектирование программы нисходящим и восходящим методами на базе модулей нижнего уровня
109
