«Разработка и стандартизация программных средств и информационных технологий» ЛЕКЦИЯ 4. ПРОЕКТИРОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ СТРУКТУРНЫЙ ПОДХОД Моделирование потоков данных (процессов) Диаграммы потоков данных (DFD) – основное средство моделирования функциональных требований к проектируемой системе. Эти требования представляются в виде иерархии функциональных компонентов (процессов), связанных потоками данных. 1 3 5 1 2 3 2 4 5 Правила построения диаграмм 4 модель системы определяется как иерархия диаграмм потоков данных, описывающих асинхронный процесс преобразования информации от её ввода в систему до выдачи пользователю диаграммы верхних уровней иерархии (контекстные диаграммы) определяют основные процессы или подсистемы с внешними входами и выходами они детализируются при помощи диаграмм нижнего уровня декомпозиция продолжается до тех пор, пока не будет достигнут уровень элементарных процессов источники информации (внешние сущности) порождают информационные потоки, переносящие информацию подсистемам или процессам последние преобразуют информацию и порождают новые потоки, которые передают информацию другим процессам или подсистемам, накопителям данных или внешним сущностям – потребителям информации Состав диаграмм потоков данных Основными компонентами DFD являются: внешние сущности системы и подсистемы процессы накопители данных потоки данных Внешняя сущность представляет собой материальный объект или физическое лицо, представляющее собой источник или приёмник информации (заказчики, персонал, поставщики, клиенты, склад и т.д.). Внешняя сущность находится за пределами анализируемой системы. 1 Налогоплательщик Сложная ИС может быть представлена на одной контекстной диаграмме в виде одной системы как единого целого, либо может быть декомпозирована на ряд подсистем. Поле номера 1 Поле имени Поле физической реализации Подсистема по работе с физическими лицами ГНИ Номер подсистемы служит для её идентификации. Имя – подлежащее с соответствующими определениями и дополнениями. Процесс – преобразование входных потоков данных в выходные в соответствии с определённым алгоритмом. Физически может быть реализован различными способами (подразделение, программа, аппаратное логическое устройство и т.д.) Поле номера 1.1 Поле имени Поле физической реализации Проверить плательщика на задолженность Налоговый инспектор Номер процесса служит для его идентификации. Имя – предложение с активным недвусмысленным глаголом в неопределённой форме (вычислить, рассчитать, определить, создать, проверить и т.д.). Использование неопределённых глаголов (обработать, отредактировать…) – означает непонимание процесса Накопитель данных – абстрактное устройство для хранения информации, которую можно в любой момент поместить в накопитель, через некоторое время извлечь (способы помещения и извлечения – любые). Физически накопитель может быть реализован в виде микрофиши, ящика в картотеке, таблицы в оперативной памяти, файла на магнитном носителе и т.д. Накопитель идентифицируется на DFD буквой D с произвольным числом. D1 Реестр налогоплательщиков Имя накопителя выбирается из соображений наибольшей информативности для проектировщика. Накопитель – прообраз будущей базы данных, описание хранящихся в нём данных должно быть увязано с информационной моделью ERD. Поток данных определяет информацию, передаваемую через некоторое соединение от источника к приёмнику. Реальный поток данных может передаваться по кабелю, по почте (письмами), магнитными носителями и т.д. Поток данных изображается на диаграмме стрелкой, показывающей направление потока. Каждый поток имеет имя, отражающее его содержание. 1.5 Сформировать отчётность по подоходному налогу Отдел отчётности Отчётность по подоходному налогу 1 Региональная ГНИ Построение иерархии диаграмм потоков данных Цель – сделать требования к системе ясными и понятными на каждом уровне детализации, а также разбить эти требования на части с точно определёнными отношениями между ними. Рекомендации Размещать на каждой диаграмме от 3 до 6-7 процессов Не загромождать диаграммы не существенными на данном уровне деталями Декомпозицию потоков данных осуществлять параллельно с декомпозицией процессов Использовать ясные, отражающие суть дела имена процессов; стараться не использовать аббревиатуры Последовательность 1. Построение контекстных диаграмм Обычно строится единственная контекстная диаграмма, в центре которой – главный процесс, соединённый с приёмниками и источниками информации, с помощью которых с системой взаимодействуют пользователи и внешние системы. Строится на основе анализа внешних событий (внешних сущностей). Количество потоков должно быть, по возможности, небольшим. Дальнейшая их детализация может быть проведена на диаграммах следующих уровней. Для проверки – список событий, включающий описание действий внешних сущностей (событий) и реакции системы на эти события. Каждое событие должно соответствовать одному (или более) потоку данных: входные потоки интерпретируются как воздействия, а выходные – как реакция системы. 2. Для сложных систем невозможно ограничиться одной контекстной диаграммой, поэтому строится иерархия контекстных диаграмм. Признаки сложности: Наличие большого количества внешних сущностей (10) Распределённая природа системы Многофункциональность системы с уже сложившейся или выявленной группировкой функций в отдельные подсистемы Контекстная диаграмма верхнего уровня содержит при этом не единственный главный процесс, а набор подсистем, соединённых потоками данных. Контекстные диаграммы следующего уровня детализируют контекст и структуру подсистем. Иерархия контекстных диаграмм определяет взаимодействие основных функциональных подсистем как между собой, так и с внешними входными и выходными потоками данных и внешними объектами. 3. После построения контекстных диаграмм полученную модель следует проверить на полноту исходных данных об объектах системы и изолированность объектов (отсутствие информационных связей с другими объектами). 4. Для каждой подсистемы, присутствующей на контекстных диаграммах, выполняется детализация с помощью DFD. Для каждого события строится диаграмма, на которой событие представляется в виде процесса с соответствующими входными и выходными потоками, накопителями данных, внешними сущностями и ссылками на другие процессы. 5. Каждый процесс может быть детализирован при помощи DFD или спецификации (если процесс элементарный). Правила детализации: правило балансировки – детализирующая диаграмма в качестве внешних источников или приёмников данных может иметь только те компоненты, с которыми имеют информационную связь детализируемые подсистема или процесс на родительской диаграмме правило нумерации – при детализации процессов должна поддерживаться их иерархическая нумерация Спецификация процесса должна формулировать его основные функции таким образом, чтобы в дальнейшем специалист, выполняющий реализацию проекта, смог выполнить их или разработать соответствующую программу. Спецификация является конечной вершиной иерархии DFD. Критерии завершения детализации процесса и использования спецификации наличие у процесса небольшого количества (2-3) входных и выходных потоков данных возможность описания данных в виде последовательного алгоритма выполнение процессом единственной логической функции преобразования входной информации в выходную возможность описания логики процесса в виде спецификации небольшого объёма (20-30 строк) Требования к спецификации для каждого процесса нижнего уровня должна существовать одна и только одна спецификация спецификация должна определять способ преобразования входных потоков в выходные нет необходимости (на стадии формирования требований) определять метод реализации этого преобразования неизбыточность спецификации (не переопределять то, что определено на диаграмме) набор конструкций для построения спецификации должен быть простым и понятным Спецификация представляет собой описание алгоритмов задач, выполняемых процессами. Она содержит номер и/или имя процесса списки входных и выходных данных описание процесса (спецификация алгоритма) Язык описания алгоритмов содержит следующие лексемы: глаголы, ориентированные на действие термины (процедуры, задачи, символы и т.д) предлоги и союзы, использующиеся в логических отношениях математические, физические и технические термины уравнения таблицы, диаграммы, графы комментарии Управляющие конструкции: последовательность выбор цикл (итерация)