Работы, выполняемые на этапе структурного системного анализа, осуществляются как правило, специальным лицом – системным аналитиком.

СТРУКТУРНЫЙ СИСТЕМНЫЙ АНАЛИЗ

 

1. Место системного структурного анализа в жизненном цикле программного обеспечения

 

Структурный системный анализ проводится на начальном этапе разработки программного обеспечения – при создании спецификаций требований. Анализ предусматривает сбор и систематизацию сведений о предметной области, в которой должна функционировать разрабатываемая система. В результате проведения анализа создается система формальных спецификаций, ядром которой являются диаграммы потоков данных (ДПД).

Работы, выполняемые на этапе структурного системного анализа, осуществляются как правило, специальным лицом – системным аналитиком.

Системный аналитик проводит опрос будущих пользователей системы с целью выявления их потребностей и требований к системе автоматизации. Итогом исследования предметной области системным аналитиком являются диаграммы потоков данных, предоставляемые для проверки и согласования заказчику, а также будущим пользователям системы. Диаграммы потоков данных используются разработчиками системы (проектировщиками и программистами) при создании программного продукта. Системный аналитик консультирует разработчиков системы, а при необходимости проводит повторный опрос пользователей и уточняет ДПД.

При выполнении анализа, как правило, возникают проблемы, основными из которых являются следующие.

1. Аналитику сложно получить всю необходимую информацию о предметной области, так как зачастую сами пользователи затрудняются в формулировке алгоритмов, логики обработки информации и принятия решений, руководствуясь в своей практической деятельности интуитивными соображениями.

2. Пользователи будущей системы не обладают достаточными знаниями в области обработки информации, для того чтобы судить, что является выполнимым, а что нет, в каких рамках возможна и наиболее эффективна автоматизация.

3. При создании реальных систем количество понятий, выделяемых в результате проведения анализа, может достигать десятков тысяч; следовательно, аналитику необходимы средства для систематизации данных, а также возможность «рассматривать» систему как в целом, так и по частям.

4. Собранные аналитиком сведения должны быть проверены и согласованы с заказчиками и будущими пользователями системы, поэтому они должны быть представлены, с одной стороны, на языке, доступном людям, не обладающим специальными знаниями, а с другой стороны – на языке, не допускающем многозначной интерпретации фактов. Наилучшим способом разъяснения пользователям функций системы является создание ее прототипа, но эта работа может потребовать значительного времени и средств.

5. Собранные аналитиком сведения используются разработчиками системы, а следовательно, должны быть достаточно полными, формализованными и понятными специалистам в области обработки информации и создания программного обеспечения.

Методология структурного системного анализа нацелена на то, что бы помочь аналитику решить перечисленные выше проблемы. Предлагаемая методика не позволяет автоматически получать хорошие проекты, вместе с тем, она вводит некоторую «технологическую дисциплину», которая может обеспечить сокращение сроков и трудозатрат при создании качественного, а следовательно, более надежного, программного обеспечения.

 

2. Этапы структурного системного анализа

 

Структурный системный анализ может быть разбит на несколько этапов:

построение диаграмм потоков данных;

составление словаря данных;

определение логики процессов;

описание накопителей данных.

На первом этапе строятся диаграммы потоков данных, содержащие элементы четырех типов:

внешняя сущность;

процесс;

накопитель данных;

поток данных.

На этапе составления словаря данных производится уточнение каждого из понятий, указанного на диаграмме потоков данных. Например, на рис. использован термин «Заявка». Какую структуру она имеет? Какая информация о заказчике и книге заносится в заявку? На все подобные вопросы должны быть даны ответы при составлении словаря. В данном примере структура заявки могла бы быть следующей:

ЗАЯВКА

ДАТА

НОМЕР

ЗАКАЗЧИК

ФАМИЛИЯ

ИМЯ

АДРЕС

ИНДЕКС

ГОРОД

УЛИЦА

ДОМ

КВАРТИРА

КНИГА

ИЗДАТЕЛЬСТВО

ГОД ИЗДАНИЯ

ШИФР ПО КАТАЛОГУ ИЗДАТЕЛЬСТВА

АВТОР

НАЗВАНИЕ

КОЛИЧЕСТВО ЭКЗЕМПЛЯРОВ

Приведенное описание дает исчерпывающее представление о логической структуре заявки и вместе с тем не несет никакой информации о типах, размерах, правилах кодирования полей. В общем случае словарь данных должен содержать исчерпывающее описание для каждого неэлементарного потока данных, встречающегося на диаграмме.

Описание логики процессов позволяет раскрыть внутреннее содержание, правила выполнения процессов. Для описания логики используются:

деревья решений;

таблицы решений;

структурный естественный язык.

На рис. 3 приведено дерево решений, определяющее размер скидки в зависимости от типа покупателя и количества приобретаемых экземпляров книг. Количество уровней в дереве определяется числом анализируемых условий, а каждая ветвь соответствует некоторой комбинации вариантов.

 

 

Рис. 3. Дерево решений для определения скидки при покупке книг