- •Введение
- •1.Жизненный цикл программного обеспечения
- •2.Постановка задачи. Разработка технического задания
- •3.Анализ требований и определение спецификаций программного обеспечения при структурном подходе
- •3.1.Спецификации программного обеспечения при структурном подходе
- •3.2.Диаграмма переходов состояний
- •3.3.Функциональные диаграммы
- •3.4.Диаграммы потоков данных
- •3.5.Диаграммы отношений компонентов данных
- •4.Проектирование программного обеспечения при структурном подходе
- •4.1.Разработка структурной и функциональной схем
- •4.2.Использование метода пошаговой детализации для проектирования структуры программного обеспечения
- •4.3.Структурные карты Константайна
- •5.Анализ требований и определение спецификаций программного обеспечения при объектном подходе
- •5.2.Определение вариантов использования
- •Типичный ход событий
- •5.3.Построение концептуальной модели предметной области
- •5.4.Описание поведения. Системные события и операции
- •6.Проектирование программного обеспечения при объектном подходе
- •6.1.Разработка структуры программного обеспечения при объектном подходе
- •6.2.Определение отношений между объектами
- •6.3.Уточнение отношений классов
- •6.4.Проектирование классов
- •6.5.Компоновка программных компонентов
- •6.6.Проектирование размещения программных компонентов для распределенных программных систем
- •7.Правила оформления пояснительной записки
- •7.1.Оформление текстового и графического материала
- •7.2.Оформление рисунков, схем алгоритмов, таблиц и формул
- •7.3.Оформление текстов программ
- •7.4.Оформление приложений
- •7.5.Оформление списка литературы
- •Список литературы
- •Приложение 1. Титульный лист и пример технического задания
- •1. Введение
- •2. Основание для разработки
- •3. Назначение
- •4. Требования к программе или программному изделию
- •5. Требования к программной документации
- •6. Этапы разработки
- •Приложение 2. Титульный лист расчетно-пояснительной записки
- •Приложение 3. Примеры содержания расчетно-пояснительных записок
- •К курсовой работе по «Технологии программирования» (объектный подход):
- •К курсовой работе по Технологии программирования (структурный подход):
- •3. К квалификационной работе бакалавра (порядок частей – произвольный):
- •5. Компоновка программных компонентов 38
- •4. К дипломному проекту (порядок частей – произвольный):
- •5. Компоновка программных компонентов 63
4.3.Структурные карты Константайна
На структурной карте отношения между модулями представляют в виде графа, вершинам которого соответствуют модули и общие области данных, а дугам – межмодульные вызовы и обращения к общим областям данных.
Различают четыре типа вершин:
модуль – подпрограмма;
подсистема – программа;
библиотека – совокупность подпрограмм, размещенных в отдельном модуле;
область данных – специальным образом оформленная совокупность данных, к которой возможно обращение извне.
Обозначения соответствующих вершин приведены на рис. 4.6. (Обозначения даны в соответствии со стандартами IBM, ISO и ANSI.)
Если стрелка, изображающая вызов касается блока, то обращение происходит к модулю целиком, а если входит в блок, то – к элементу внутри модуля.
При необходимости на структурной карте можно уточнить особые условия вызова: циклический вызов (рис. 4.7, а), условный вызов (рис. 4.7, б) и однократный вызов – при повторном вызове основного модуля однократно вызываемый модуль не активизируется (рис. 4.7, в).
Связи по данным и управлению обозначают стрелками, параллельными дуге вызова, причем направление стрелки указывает направление связи (рис. 4.8).
Структурные карты Константайна позволяют наглядно представить результат декомпозиции программы на модули и оценить ее качество, т.е. соответствие рекомендациям структурного программирования.
Пример 4.2. Представим в виде структурной карты Константайна полную структурную схему, полученную в предыдущем примере (рис. 4.5).
Подпрограммы Очистка окна, Вывод прямоугольника, Вывод строки текста, Вывод отрезка прямой, Задание цвета рисования и Задания цвета фона являются частью библиотеки графических примитивов практически в любой среде программирования универсального языка, поэтому их включать в структурную карту не будем.
Для остальных подпрограмм покажем особые условия вызова и типы связей (рис. 4.9).
Модули Расчет значений функции, Вывод таблицы и Построение графика связаны с основной программой по образцу, так как параметры X и Y структурные (массивы), следовательно, программа считается сцепленной по образцу.
Примечание. Анализ показывает, что количество сцеплений по образцу в программе можно уменьшить, если подпрограмму Расчет значений функции перенести на следующий уровень и вызывать из функций Вывод таблицы и Построение графика. Однако в этом случае мы при смене вида результата лишний раз будем считать таблицу значений.
Аналогично можно перенести Разбор формулы на более низкий уровень и вызывать ее, например, из подпрограммы Расчет значений функции, но поскольку велика вероятность многократного расчета значений одной функции на разных интервалах, вряд ли это целесообразно.
После внесения соответствующих изменений в алгоритм следует определить полную спецификацию модулей. Спецификация должна включать: имя, краткое описание назначения, перечень входных и выходных параметров с указанием типа и области допустимых входных и выходных значений. Затем можно приступать к реализации модулей.
В соответствии с требованиями нисходящей разработки (комбинированный подход) можно предложить следующий порядок реализации модулей: Основная программа – Вывод окна с текстом – Вывод заголовка и меню – Разбор формулы – Расчет значений функции – Вывод таблицы – Построение графика.
В завершении этого этапа необходимо убедиться, что разработанная иерархия корректно реализует спецификации проектируемой системы.
