Пример использования структурного подхода

Пример использования структурного подхода

2.5.1. Описание предметной области

В данном примере используется методология Yourdon [12], реализованная в CASE-средстве Vantage Team Builder [14]. 

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

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

Администрация библиотеки регулярно готовит отчеты за определенный период времени о членах библиотеки, поставщиках лент, выдаче определенных лент и лентах, приобретенных библиотекой. 

Организация проекта

Весь проект разделяется на 4 фазы: анализ, глобальное проектирование (проектирование архитектуры системы), детальное проектирование и реализация (программирование). 

На фазе анализа строится модель среды (Environmental Model). Построение модели среды включает: 

анализ поведения системы (определение назначения ИС, построение начальной контекстной диаграммы потоков данных (DFD) и формирование матрицы списка событий (ELM), построение контекстных диаграмм); 

анализ данных (определение состава потоков данных и построение диаграмм структур данных (DSD), конструирование глобальной модели данных в виде ER-диаграммы). 

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

Например, в данном случае назначение ИС формулируется следующим образом: ведение базы данных о членах библиотеки, фильмах, аренде и поставщиках. При этом руководство библиотеки должно иметь возможность получать различные виды отчетов для выполнения своих задач. 

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

Из описания предметной области следует, что в процессе работы библиотеки участвуют следующие группы людей: клиенты, поставщики и руководство. Эти группы являются внешними объектами. Они не только взаимодействуют с системой, но также определяют ее границы и изображаются на начальной контекстной DFD как терминаторы (внешние сущности). 

Начальная контекстная диаграмма изображена на рисунке 2.42. В отличие от нотации Gane/Sarson внешние сущности обозначаются обычными прямоугольниками, а процессы - окружностями. 



Рис. 2.42. Начальная контекстная диаграмма

Список событий строится в виде матрицы (ELM) и описывает различные действия внешних сущностей и реакцию ИС на них. Эти действия представляют собой внешние события, воздействующие на библиотеку. Различают следующие типы событий: 

Аббревиатура

Тип

NC

Нормальное управление

ND

Нормальные данные

NCD

Нормальное управление/данные

TC

Временное управление

TD

Временные данные

TCD

Временное управление/данные

Все действия помечаются как нормальные данные. Эти данные являются событиями, которые ИС воспринимает непосредственно, например, изменение адреса клиента, которое должно быть сразу зарегистрировано. Они появляются в DFD в качестве содержимого потоков данных. 

Матрица списка событий имеет следующий вид: 

№

Описание

Тип

Реакция

1

Клиент желает стать членом библиотеки

ND

Регистрация клиента в качестве члена библиотеки

2

Клиент сообщает об изменении адреса

ND

Регистрация измененного адреса клиента

3

Клиент запрашивает аренду фильма

ND

Рассмотрение запроса

4

Клиент возвращает фильм

ND

Регистрация возврата

5

Руководство предоставляет полномочия новому поставщику

ND

Регистрация поставщика

6

Поставщик сообщает об изменении адреса

ND

Регистрация измененного адреса поставщика

7

Поставщик направляет фильм в библиотеку

ND

Получение нового фильма

8

Руководство запрашивает новый отчет

ND

Формирование требуемого отчета для руководства

Для завершения анализа функционального аспекта поведения системы строится полная контекстная диаграмма, включающая диаграмму нулевого уровня. При этом процесс "библиотека" декомпозируется на 4 процесса, отражающие основные виды административной деятельности библиотеки. Существующие "абстрактные" потоки данных между терминаторами и процессами трансформируются в потоки, представляющие обмен данными на более конкретном уровне. Список событий показывает, какие потоки существуют на этом уровне: каждое событие из списка должно формировать некоторый поток (событие формирует входной поток, реакция - выходной поток). Один "абстрактный" поток может быть разделен на более чем один "конкретный" поток. 

Потоки на диаграмме верхнего уровня

Потоки на диаграмме нулевого уровня

Информация от клиента

Данные о клиенте, Запрос об аренде

Информация для клиента

Членская карточка, Ответ на запрос об аренде

Информация от руководства

Запрос отчета о новых членах, Новый поставщик, Запрос отчета о поставщиках, Запрос отчета об аренде, Запрос отчета о фильмах

Информация для руководства

Отчет о новых членах, Отчет о поставщиках, Отчет об аренде, Отчет о фильмах

Информация от поставщика

Данные о поставщике, Новые фильмы

На приведенной DFD (рисунок 2.43) накопитель данных "библиотека" является глобальным или абстрактным представлением хранилища данных. 

Анализ функционального аспекта поведения системы дает представление об обмене и преобразовании данных в системе. Взаимосвязь между "абстрактными" потоками данных и "конкретными" потоками данных на диаграмме нулевого уровня выражается в диаграммах структур данных (рисунок 2.44). 

На фазе анализа строится глобальная модель данных, представляемая в виде диаграммы "сущность-связь" (рисунок 2.45). 

Между различными типами диаграмм существуют следующие взаимосвязи: 

ELM-DFD: события - входные потоки, реакции - выходные потоки 

DFD-DSD: потоки данных - структуры данных верхнего уровня 

DFD-ERD: накопители данных - ER-диаграммы 

DSD-ERD: структуры данных нижнего уровня - атрибуты сущностей 

На фазе проектирования архитектуры строится предметная модель. Процесс построения предметной модели включает в себя: 

детальное описание функционирования системы; 

дальнейший анализ используемых данных и построение логической модели данных для последующего проектирования базы данных; 

определение структуры пользовательского интерфейса, спецификации форм и порядка их появления; 

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



Рис. 2.43. Контекстная диаграмма 



Рис. 2.44. Диаграмма структур данных 

Результатами проектирования архитектуры являются: 

модель процессов (диаграммы архитектуры системы (SAD) и миниспецификации на структурированном языке); 

модель данных (ERD и подсхемы ERD); 

модель пользовательского интерфейса (классификация процессов на интерактивные и неинтерактивные функции, диаграмма последовательности форм (FSD - Form Sequence Diagram), показывающая, какие формы появляются в приложении и в каком порядке. На FSD фиксируется набор и структура вызовов экранных форм. Диаграммы FSD образуют иерархию, на вершине которой находится главная форма приложения, реализующего подсистему. На втором уровне находятся формы, реализующие процессы нижнего уровня функциональной структуры, зафиксированной на диаграммах SAD. 



Рис. 2.45. Диаграмма "сущность-связь" 

На фазе детального проектирования строится модульная модель. Под модульной моделью понимается реальная модель проектируемой прикладной системы. Процесс ее построения включает в себя: 

уточнение модели базы данных для последующей генерации SQL-предложений; 

уточнение структуры пользовательского интерфейса; 

построение структурных схем, отражающих логику работы пользовательского интерфейса и модель бизнес-логики (Structure Charts Diagram - SCD) и привязка их к формам. 

Результатами детального проектирования являются: 

модель процессов (структурные схемы интерактивных и неинтерактивных функций); 

модель данных (определение в ERD всех необходимых параметров для приложений); 

модель пользовательского интерфейса (диаграмма последовательности форм (FSD), показывающая, какие формы появляются в приложении и в каком порядке, взаимосвязь между каждой формой и определенной структурной схемой, взаимосвязь между каждой формой и одной или более сущностями в ERD). 

На фазе реализации строится реализационная модель. Процесс ее построения включает в себя: 

генерацию SQL-предложений, определяющих структуру целевой БД (таблицы, индексы, ограничения целостности); 

уточнение структурных схем (SCD) и диаграмм последовательности форм (FSD) с последующей генерацией кода приложений. 

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

Литература

Вендров А.М. Один из подходов к выбору средств проектирования баз данных и приложений. "СУБД", 1995, №3. 

Зиндер Е.З. Бизнес-реинжиниринг и технологии системного проектирования. Учебное пособие. М., Центр Информационных Технологий, 1996 

Калянов Г.Н. CASE. Структурный системный анализ (автоматизация и применение). М., "Лори", 1996. 

Марка Д.А., МакГоуэн К. Методология структурного анализа и проектирования. М., "МетаТехнология", 1993. 

Международные стандарты, поддерживающие жизненный цикл программных средств. М., МП "Экономика", 1996 

Создание информационной системы предприятия. "Computer Direct", 1996, N2 

Шлеер С., Меллор С. Объектно-ориентированный анализ: моделирование мира в состояниях. Киев, "Диалектика", 1993. 

Barker R. CASE*Method. Entity-Relationship Modelling. Copyright Oracle Corporation UK Limited, Addison-Wesley Publishing Co., 1990. 

Barker R. CASE*Method. Function and Process Modelling. Copyright Oracle Corporation UK Limited, Addison-Wesley Publishing Co., 1990. 

Boehm B.W. A Spiral Model of Software Development and Enhancement. ACM SIGSOFT Software Engineering Notes, Aug. 1986 

Chris Gane, Trish Sarson. Structured System Analysis. Prentice-Hall, 1979. 

Edward Yourdon. Modern Structured Analysis. Prentice-Hall, 1989. 

Tom DeMarco. Structured Analysis and System Specification. Yourdon Press, New York, 1978.