Цель – сделать требования к системе ясными и понятными на

advertisement
«Разработка и стандартизация программных средств и
информационных технологий»
ЛЕКЦИЯ 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 строк)
Требования к спецификации
 для каждого процесса нижнего уровня должна существовать одна и только
одна спецификация
 спецификация должна определять способ преобразования входных потоков в
выходные
 нет необходимости (на стадии формирования требований) определять метод
реализации этого преобразования
 неизбыточность спецификации (не переопределять то, что определено на
диаграмме)
 набор конструкций для построения спецификации должен быть простым и
понятным
Спецификация представляет собой описание алгоритмов задач, выполняемых
процессами. Она содержит
 номер и/или имя процесса
 списки входных и выходных данных
 описание процесса (спецификация алгоритма)
Язык описания алгоритмов содержит следующие лексемы:
 глаголы, ориентированные на действие
 термины (процедуры, задачи, символы и т.д)
 предлоги и союзы, использующиеся в логических отношениях
 математические, физические и технические термины
 уравнения
 таблицы, диаграммы, графы
 комментарии
Управляющие конструкции:
 последовательность
 выбор
 цикл (итерация)
Download