- •Методические указания по выполнению курсовой работы по дисциплине «моделирование систем»
- •Функциональная архитектура
- •2. Разработка описания программного продукта
- •Разработка функциональной модели программы
- •4. Диаграммы потоков данных (dfd)
- •5. Разработка спецификаций программных компонентов
- •6. Оценка размера программного продукта на основе функциональных точек
- •7. Рекомендуемая литература
- •8. Нормативные документы
- •1. Общие положения
- •2. Требования к содержанию документов
- •2.1. Пояснительная записка к проекту
- •2.2. Общее описание асу
- •2.3. Смета затрат
- •2.4. Расчет экономической эффективности
- •2.5. План мероприятий по подготовке объекта к вводу асу в эксплуатацию
- •2.6. Ведомость документов технического проекта
- •2.11. Ведомость держателей подлинников
- •1. Общие положения
- •2. Требования к содержанию документа
- •1. Общие положения
- •2. Требования к содержанию документов
- •1. Общие положения
- •2. Стадии и этапы создания ас
- •Содержание работ
- •Перечень организаций, участвующих в работах по созданию ас.
- •1. Общие положения.
- •2. Состав и содержание тэо асу.
- •1. Общие положения
- •2. Общие требования
- •Форма спецификации
- •1. Правила выполнения схем
- •2. Правила применения символов
- •1. Перечень, наименование, обозначение символов и отображаемые ими функции
- •2. Соотношение геометрических элементов символов
- •Символы, выполненные с помощью печатающих устройств
2. Разработка описания программного продукта
Структура спецификации информационного продукта имеет следующий вид:
Уникальное название информационного продукта.
Имя задачи управления (блока функциональной модели), с которой соотнесен информационный продукт. Используется для позиционирования информационного продукта с точки зрения информационной поддержки управления сложным объектом.
Имя пользователя (отдела, специалиста, другого информационного продукта), информационного продукта («имя собственное» продукта).
«Повествовательное» резюме, дающее общее представление об информационном продукте в терминологии пользователя (обычно достаточно одного абзаца).
Описание функций, реализуемых комплексом программ, функциональных групп программ, пакетом прикладных программ.
Этапы создания продукта: классов входных данных и функций обработки, необходимых для получения продукта:
Описание классов входных данных предполагает указание состава данных, источников данных.
Описанию функций обработки ставятся в соответствие имена программных продуктов (компонент), реализующих эти функции.
Частота использования: отчет о том, как часто продукт будет использоваться различными пользователями.
Анализ важности информационного продукта с точки зрения управления сложным объектом.
Ограничения, накладываемые на информационные продукты, определяемые с позиций поддержки реализации задач управления.
Система ориентиров и критериев, позволяющих вынести однозначное заключение о качестве программной разработки.
Схему тестирования интеграции источников данных и программных продуктов (компонент) в составе подсистемы, обеспечивающей получение информационного продукта.
Схемы верификации, испытаний, аттестации, тестирования внешних функций, тестирования приемлемости. В качестве основы для организации испытаний может быть выбран ГОСТ 34.603-92 «Виды испытаний автоматизированных систем». Документирование испытаний описывается ниже.
Ограничения на среду эксплуатации (требования к минимальным характеристикам комплекса технических средств, обеспечивающего функционирование программного продукта).
Разработка функциональной модели программы
Функциональными называют диаграммы, в первую очередь отражающие взаимосвязи функций разрабатываемого программного обеспечения.
Они создаются на ранних этапах проектирования систем, для того чтобы помочь проектировщику выявить основные функции и составные части проектируемой системы и, по возможности, обнаружить и устранить существенные ошибки. Современные методы структурного анализа и проектирования предоставляют разработчику определенные синтаксические и графические средства проектирования функциональных диаграмм информационных систем.
В качестве примера рассмотрим методологию SADT, предложенную Дугласом Россом. На ее основе разработана, в частности, известная методология IDEF0 (Icam DEFinition). Методология SADT представляет собой набор методов, правил и процедур, предназначенных для построения функциональной модели объекта какой-либо предметной области.
Функциональная модель SADT отображает функциональную структуру объекта, т. е. производимые им действия и связи между этими действиями. Основные элементы этой методологии основываются на следующих концепциях:
• графическое представление блочного моделирования. На SADT-диаграмме функции представляются в виде блока, а интерфейсы входа-выхода – в виде дуг, соответственно входящих в блок и выходящих из него. Интерфейсные дуги отображают взаимодействие функций друг с другом;
строгость и точность отображения.
Правила SADT включают:
уникальность меток и наименований;
ограничение количества блоков на каждом уровне декомпозиции;
синтаксические правила для графики;
связность диаграмм;
отделение организации от функции;
разделение входов и управлений.
Методология SADT может использоваться для моделирования и разработки широкого круга систем, удовлетворяющих определенным требованиям и реализующих требуемые функции. В уже разработанных системах методология SADT может быть использована для анализа выполняемых ими функций, а также для указания механизмов, посредством которых они осуществляются. Диаграммы – главные компоненты модели, все функции программной системы и интерфейсы на них представлены как блоки и дуги. Место соединения дуги с блоком определяет тип интерфейса. Дуга, обозначающая управление, входит в блок сверху, в то время как информация, которая подвергается обработке, представляется дугой с левой стороны блока, а результаты обработки – дугами с правой стороны. Механизм (человек или автоматизированная система), который осуществляет операцию, представляется в виде дуги, входящей в блок снизу (рис. 3).
Рис. 3. Функциональный блок и интерфейсные дуги
Блоки на диаграмме размещают по «ступенчатой» схеме в соответствии с последовательностью их работы или доминированием, которое понимается как влияние, оказываемое одним блоком на другие. В функциональных диаграммах SADT различают пять типов влияний блоков друг на друга :
вход-выход блока подается на вход блока с меньшим доминированием, т. е. следующего (рис. 4а);
управление. Выход блока используется как управление для блока с меньшим доминированием (рис. 4.б);
обратная связь по входу. Выход блока подается на вход блока с большим доминированием (рис. 4.в);
обратная связь по управлению. Выход блока используется как управляющая информация для блока с большим доминированием (рис. 4.г);
выход-исполнитель. Выход блока используется как механизм для другого блока (рис. 4.д);
Одной из наиболее важных особенностей методологии SADT является постепенное введение все больших уровней детализации по мере создания диаграмм, отображающих модель.
Рис.4 Типы влияний блоков:
а – вход; б – управление; в – обратная связь по входу;
г – обратная связь по управлению; д – выход-исполнитель
На рис.5 приведены четыре диаграммы и их взаимосвязи, показывающие структуру SADT-модели. Каждый компонент модели может быть декомпозирован на другой диаграмме. Детальная диаграмма иллюстрирует внутреннее строение блока «родительской» диаграммы.
Рис. 5 Структура SADT-модели. Декомпозиция диаграмм
Иерархия диаграмм
Прежде всего, вся система представляется в виде простейшей компоненты – одного блока и дуг, представляющих собой интерфейсы с внешними по отношению к данной системе функциями. Имя блока является общим для всей системы .
Затем блок, который представляет систему в целом, детализируется на следующей диаграмме. Он представляется в виде нескольких блоков, соединенных интерфейсными дугами. Каждый блок детальной диаграммы представляет собой подфункцию, границы которой определены интерфейсными дугами. Каждый из блоков детальной диаграммы может быть также детализирован на следующей в иерархии диаграмме. На каждом шаге декомпозиции более общая диаграмма называется родительской ' для более детальной диаграммы.
Все диаграммы связывают друг с другом иерархической нумерацией блоков: первый уровень – А0, второй – Al, A2 [и т. п., третий — A11, A12, А13 и т. п., где первые цифры – номер родительского блока, а последняя – номер конкретного блока детальной диаграммы.
Во всех случаях каждая подфункция может содержать только те элементы, которые входят в исходную функцию, причем никакие из них не могут быть опущены. То есть родительский блок и его интерфейсы обеспечивают контекст. К нему нельзя ничего добавить, и из него не может быть ничего удалено. Дуги, входящие в блок и выходящие из него на диаграмме верхнего уровня, являются точно теми же самыми, что и дуги, входящие в диаграмму нижнего уровня и выходящие из нее, потому что блок и диаграмма представляют одну и ту же часть системы.
На рис. 6-8 представлены различные варианты выполнения функций и соединения дуг с блоками.
Последовательность операций, время их выполнения не указываются на SADT-диаграммах. Обратные связи, итерации, продолжающиеся процессы и перекрывающиеся (по времени) функции могут быть изображены с помощью дуг. Обратные связи могут выступать в виде комментариев, замечаний, исправлений и т. д. (см. рис. 8).
Рис. 6. Одновременное выполнение
Рис. 7. Соответствие родительской и детальной диаграмм
Рис. 8. Пример обратной связи
Пример 1. Разработку функциональных диаграмм продемонстрируем на примере уточнения спецификации программы сортировки одномерного массива с использованием нескольких методов.
Диаграмма, представленная на рис. 9, а, является диаграммой верхнего уровня. Она иллюстрирует исходные данные программы и ожидаемые результаты.
Рис. 9. Функциональные диаграммы для программы сортировки массива:
а – диаграмма верхнего уровня; б – уточняющая диаграмма
Диаграмма, представленная на рис. 9, б, детализирует функции программы. На ней показаны три блока: Меню, Сортировка, Вывод результата. Для каждого блока определены исходные данные, управляющие воздействия и результаты. На детализирующей диаграмме используются следующие обозначения:
11 – размер массива;
12 – массив;
С1 – выбор метода;
R1 – вывод описания метода;
R2 – отсортированный массив.
