- •Структурный системный анализ
- •Место системного структурного анализа в жизненном цикле программного обеспечения
- •Этапы структурного системного анализа
- •Элементы и правила построения диаграмм потоков данных
- •Пример диаграммы потоков данных (компьютерные курсы)
- •Пример диаграммы потоков данных («КоммИнфо»)
- •Построение словаря данных
- •Способы построения структур данных
- •Описание логики процессов
- •Для определения размера скидки абонентам “КоммИнфо”
- •Стандартная форма таблицы решений
- •Стандартная форма таблицы решений для определения размера скидки абонентам “КоммИнфо”
- •Модифицированная таблица решений для определения размера скидки абонентам “КоммИнфо”
- •Расширения диаграмм потоков данных
- •Анализ диаграмм потоков данных
Этапы структурного системного анализа
Структурный системный анализ может быть разбит на несколько этапов:
построение диаграмм потоков данных;
составление словаря данных;
определение логики процессов;
описание накопителей данных.
На первом этапе строятся диаграммы потоков данных, содержащие элементы четырех типов:
внешняя сущность;
процесс;
накопитель данных;
поток данных.
Пример диаграммы потоков данных приведен на рис. 2.2. Представленная на рис. диаграмма описывает процесс рассылки уведомлений о поступивших в продажу книгах. Книги поступают из издательства, являющегося внешней сущностью по отношению к рассматриваемой системе. Процесс получения книг фиксирует информацию о поступивших книгах в накопителе данных («Книги, имеющиеся в продаже»). Процесс печати почтовых карточек обрабатывает информацию о заказах и книгах из накопителей данных и направляет уведомление внешней сущности «Читатель». Заметим, что диаграмма потоков данных описывает логику функционирования системы безотносительно к какой-либо реализации. Так, информация о заказах на книги может храниться в базе данных, файле, картотеке; печать карточки может осуществляться с помощью компьютера или пишущей машинки и т. д. Решения о границах автоматизации, способах организации и представления информации, реализации процессов должны приниматься проектировщиком на более поздних стадиях создания системы; задача этапа системного анализа – это сбор по возможности наиболее полной информации о функционировании системы.
На этапе составления словаря данных производится уточнение каждого из понятий, указанного на диаграмме потоков данных. Например, на рис. 2.2 использован термин «Заявка». Какую структуру она имеет? Какая информация о заказчике и книге заносится в заявку? На все подобные вопросы должны быть даны ответы при составлении словаря. В данном примере структура заявки могла бы быть следующей:
ЗАЯВКА
ДАТА
НОМЕР
ЗАКАЗЧИК
ФАМИЛИЯ
ИМЯ
АДРЕС
ИНДЕКС
ГОРОД
УЛИЦА
ДОМ
КВАРТИРА
КНИГА
ИЗДАТЕЛЬСТВО
ГОД ИЗДАНИЯ
ШИФР ПО КАТАЛОГУ ИЗДАТЕЛЬСТВА
АВТОР
НАЗВАНИЕ
КОЛИЧЕСТВО ЭКЗЕМПЛЯРОВ
Приведенное описание дает исчерпывающее представление о логической структуре заявки и вместе с тем не несет никакой информации о типах, размерах, правилах кодирования полей. В общем случае словарь данных должен содержать исчерпывающее описание для каждого неэлементарного потока данных, встречающегося на диаграмме.
Описание логики процессов позволяет раскрыть внутреннее содержание, правила выполнения процессов. Для описания логики используются:
деревья решений;
таблицы решений;
структурный естественный язык.
На рис. 2.3 приведено дерево решений, определяющее размер скидки в зависимости от типа покупателя и количества приобретаемых экземпляров книг. Количество уровней в дереве определяется числом анализируемых условий, а каждая ветвь соответствует некоторой комбинации вариантов.

Рис. 2.3. Дерево решений для определения
скидки при покупке книг
Иногда (при большом количестве условий) информацию целесообразнее представлять в виде таблицы. Табл. 2.1 – это пример таблицы решений, соответствующей дереву решений на рис. 2.3.
Таблица 2.1
Таблица решений для определения размера скидки
|
Тип покупателя |
Количество экземпляров |
Скидка |
|
|
5..9 |
5% |
|
Частное лицо |
10..19 |
10% |
|
|
20 и более |
15% |
|
|
10..49 |
5% |
|
Организация |
50..99 |
7% |
|
|
100..999 |
10% |
|
|
1000 и более |
20% |
Деревья и таблицы решений являются удобными формами описания действий, связанных с выбором при принятии решения. Для описания вычислений, пошагового выполнения процессов используется структурный естественный язык. Рассмотрим процесс печати почтовой карточки-уведомления, приведенный на рис. 2.2.
Вполне естественным требованием является обслуживание в первую очередь тех заказов, которые имеют более раннюю дату; тогда логика выполнения этого процесса может быть описана следующим образом:
выбрать очередную книгу;
ПОВТОРЯТЬ, ПОКА не исчерпаны заказы;
выбрать очередной заказ;
ЕСЛИ издательство, год и шифр книги совпадают с
указанными в заказе,
ТО печатать реквизиты заказа.
Накопители данных играют роль хранилищ информации, обработка которой должна быть по каким-либо причинам отложена. Структура накопителей данных, так же как и потоков, должна быть описана и занесена в словарь. При реализации системы накопителю будет соответствовать некоторая база данных, поэтому при проектировании накопителей может быть использована техника проектирования данных с помощью моделей “сущность - связь” и других моделей данных.
Важным вопросом при описании накопителей является спецификация схем доступа к данным (возможных запросов). На рис. 2.4 приведена схема прямого доступа к данным для накопителя, содержащего заказы на книги (см. рис. 2.2). В соответствии с рис. 2.4 прямой доступ возможен по фамилии автора, дате, названию, шифру и невозможен, например, по фамилии заказчика и количеству экземпляров.

Рис. 2.4. Схема прямого доступа к данным
