Поиск

Полнотекстовый поиск:
Где искать:
везде
только в названии
только в тексте
Выводить:
описание
слова в тексте
только заголовок

Рекомендуем ознакомиться

'Документ'
Нередки случаи, когда квартира передается в собственность по договорам дарения или купли-продажи ближайшему родственнику. Предположим, отец приобрел ...полностью>>
'Программа'
Дисциплина относится к вариативной части гуманитарного, социального и экономического цикла (Б.1) основной образовательной программы, изучается в вось...полностью>>
'Документ'
Конференция является завершающим этапом учебно-исследовательской работы студентов учебного заведения за год. Материалы группируются в секции по циклам...полностью>>
'Семинар'
Иван Петрович Павлов родился 26 сентября 1849 г. в Рязани, в семье священника. Отец мечтал о том, чтобы сын, как и он, посвятил себя церкви. Поначалу...полностью>>

М. В. Красильникова проектирование информационных систем раздел: Теоретические основы проектирования информационных систем Учебное пособие

Главная > Учебное пособие
Сохрани ссылку в одной из сетей:

1

Смотреть полностью

М.В. Красильникова

ПРОЕКТИРОВАНИЕ ИНФОРМАЦИОННЫХ СИСТЕМ

Раздел: Теоретические основы проектирования информационных систем

Учебное пособие

ЭЛЕКТРОСТАЛЬ 2004

Кафедра прикладной информатики

М.В. Красильникова

ПРОЕКТИРОВАНИЕ ИНФОРМАЦИОННЫХ СИСТЕМ

Раздел: Теоретические основы проектирования информационных систем

Учебное пособие

Для студентов специальности 351400

Рекомендовано

редакционно-издательским отделом ЭПИ МИСиС

в качестве учебного пособия

ЭЛЕКТРОСТАЛЬ 2004

Красильникова М.В. Проектирование информационных систем: Учебное пособие – М.: ЭПИ МИСиС, 2004. – 106 с.

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

Предназначено для студентов пятого курса специальности 351400 "Прикладная информатика в экономике".

© Электростальский политехнический институт (филиал) Московского государственного

института стали и сплавов (Технологического университета) (ЭПИ МИСиС), 2004

Содержание

ВВЕДЕНИЕ 6

Понятие консалтинга в области информационных технологий 7

Цели и этапы разработки консалтинговых проектов 8

CASE-технологии – методологическая и инструментальная база консалтинга 13

Понятие структурного анализа 15

Жизненный цикл программного изделия и его критичные этапы 15

Идеи, лежащие в основе структурных методов 18

Принципы структурного анализа 20

Средства структурного анализа и их взаимоотношения 23

ДИАГРАММЫ ПОТОКОВ ДАННЫХ 25

Основные символы диаграммы 26

Контекстная диаграмма и детализация процессов 27

Декомпозиция данных и соответствующие расширения диаграмм потоков данных 30

Построение модели 32

СЛОВАРЬ ДАННЫХ 34

Содержимое словаря данных 35

БНФ-нотация 36

МЕТОДЫ ЗАДАНИЯ СПЕЦИФИКАЦИЙ ПРОЦЕССОВ 38

Структурированный естественный язык 40

Таблицы решений 41

Визуальные языки проектирования спецификаций 44

ДИАГРАММЫ «СУЩНОСТЬ-СВЯЗЬ» 45

Сущности, отношения и связи в нотации Чена 46

Диаграммы атрибутов 48

Категоризация сущностей 49

Построение модели 50

Спецификации управления 54

СРЕДСТВА СТРУКТУРНОГО ПРОЕКТИРОВАНИЯ 56

Структурные карты Константайна 57

Структурные карты Джексона 58

Характеристики хорошей модели реализации 59

Сцепление 59

Связность 60

МЕТОДОЛОГИИ СТРУКТУРНОГО И СИСТЕМНОГО АНАЛИЗА И ПРОЕКТИРОВАНИЯ 61

Методологии структурного анализа Йодана/Де Марко и Гейна-Сарсона 62

SADT – технология структурного анализа и проектирования 63

Иерархия диаграмм 66

Синтаксис диаграмм 70

Разветвление дуг 74

Слияние дуг 74

Синтаксис моделей и работа с ними 75

Синтаксис диаграмм 77

Создание функциональных моделей и диаграмм 80

Сбор информации 80

Типы опроса 81

Процесс опроса 81

Дополнения к диаграммам и моделям 82

Оценка и выбор CASE-средств 84

Критерии оценки и выбора 86

Характеристики CASE-средств 94

Silverrun 94

Vantage Team Builder (Westmount I-CASE) 96

Uniface 97

Designer/2000 + Developer/2000 99

Локальные средства (ERwin, BPwin, S-Designor, CASE.Аналитик) 101

Объектно-ориентированные CASE-средства (Rational Rose) 103

БИБЛИОГРАФИЧЕСКИЙ СПИСОК 106

ВВЕДЕНИЕ

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

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

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

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

  • единая информационная среда предприятия;

  • режим реального времени;

  • независимость от законодательства;

  • интеграция с другими приложениями (в том числе с уже работающими на предприятии системами);

  • поэтапное внедрение и т.п.

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

Понятие консалтинга в области информационных технологий

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

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

Фактически консультантом выполняется два вида работ.

1. Бизнес-консалтинг. Иными словами – это элементарное наведение порядка в организации: бизнес-анализ и реструктуризация (реинжиниринг бизнес-процессов). Любая организация – это довольно сложный организм, функционирование которого одному человеку просто невозможно понять. Руководство в общих чертах представляет себе ход дел, а клерк досконально изучил только то, чем он конкретно занимается, уяснил свою роль в сложившейся системе деловых взаимоотношений. Но как организация функционирует в целом, не знает, как правило, никто. И именно деятельность, направленная на то, чтобы разобраться в функционировании таких организмов, построить соответствующие модели и на их основе выдвинуть некоторые предложения по поводу улучшения работы некоторых звеньев, а еще лучше – бизнес-процессов считается бизнес-консалтингом.

2. Системный анализ и проектирование. Выявление и согласование требований заказчика приводит к пониманию того, что же в действительности необходимо сделать. За этим следует проектирование или выбор готовой системы так, чтобы она в итоге как можно в большей степени удовлетворяла требованиям заказчика.

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

Цели и этапы разработки консалтинговых проектов

Основными целями разработки консалтинговых проектов являются:

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

  • формирование на основании анализа предложений по реорганизации организационно-управленческой структуры;

  • упорядочивание информационных потоков (в том числе документооборота) внутри предприятия;

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

  • анализ требований и проектирование спецификаций корпоративных информационных систем;

  • рекомендации и предложения по применимости и внедрению существующих систем управления предприятиями.

Основные этапы разработки консалтинговых проектов следующие:

  1. Анализ первичных требований и планирование работ.

Данный этап предваряет инициацию работ над проектом. Его основными задачами являются: анализ первичных бизнес-требований, предварительная экономическая оценка проекта, построение план-графика выполнения работ, создание и обучение совместной рабочей группы.

  1. Проведение обследования деятельности предприятия.

В рамках этого этапа осуществляется:

  • предварительное выявление требований, предъявляемых к будущей системе;

  • определение оргштатной и топологической структур предприятия;

  • определение перечня целевых задач (функций) предприятия;

  • анализ распределения функций по подразделениям и сотрудникам;

  • определение перечня применяемых на предприятии средств автоматизации.

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

В качестве исходной информации при проведении обследования и выполнении дальнейших этапов служат:

  • данные по оргштатной структуре предприятия;

  • информация о принятых технологиях деятельности;

  • стратегические цели и перспективы развития;

  • результаты интервьюирования сотрудников (от руководителей до исполнителей нижнего звена);

  • предложения сотрудников по усовершенствованию бизнес-процессов предприятия;

  • нормативно-справочная документация;

  • опыт системных аналитиков в части наличия типовых решений.

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

  1. Построение моделей деятельности предприятия.

На данном этапе осуществляется обработка результатов обследования и построение моделей деятельности предприятия следующих типов:

  • Модели "как есть", представляющей собой "снимок" положения дел на предприятии (оргштатная структура, взаимодействия подразделений, принятые технологии, автоматизированные и неавтоматизированные бизнес-процессы и т.д.) на момент обследования и позволяющий понять, что делает и как функционирует данное предприятие с позиций системного анализа, а также на основе автоматической верификации выявить ряд ошибок и узких мест и сформулировать ряд предложений по улучшению ситуации;

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

Переход от модели "как есть" к модели "как должно быть" осуществляется следующими двумя способами:

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

  2. Радикальное изменение технологий и переосмысление бизнес-процессов ("жесткий" реинжиниринг). Например, вместо попыток улучшения бизнес-процесса проверки кредитоспособности клиента, может быть, следует задуматься, а нужна ли вообще такая проверка? Возможно затраты на такие проверки каждого из клиентов во много раз превышают убытки, которые может понести компания в отдельных случаях (например, когда клиентов много, а закупок мало).

  1. Разработка системного проекта.

Данный этап является первой фазой разработки собственно системы автоматизации (точнее, фазой анализа требований к системе), на которой требования заказчика уточняются, формализуются и документируются. Фактически на этом этапе дается ответ на вопрос: "Что должна делать будущая система?" Именно здесь лежит ключ к успеху всего проекта автоматизации.

На этом этапе определяются:

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

  • интерфейсы и распределение функций между человеком и системой;

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

  • состав людей и работ, имеющих отношения к системе;

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

Системный проект строится на основе модели "как должно быть" и включает функциональную модель будущей системы в соответствии с одним из общеупотребительных стандартов (например, IDEF0 или IDEF3), информационную модель (например, в соответствии со стандартом IDEF1X), а также техническое задание на создание автоматизированной системы (например, в соответствии с ГОСТ 34.602-89).

  1. Разработка предложений по автоматизации предприятия.

На основании системного проекта осуществляется:

  • составление перечня автоматизированных рабочих мест (АРМ) и способов взаимодействия между ними;

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

  • совместное с заказчиком принятие решения о выборе конкретной системы или разработке собственной системы;

  • разработка требований к техническим средствам;

  • разработка требований к программным средствам;

  • разработка предложений по этапам и срокам реализации.

  1. Разработка технического проекта.

На данном этапе на основе системного проекта и принятых решений по автоматизации осуществляется проектирование системы. Этот этап подразделяется на два подэтапа:

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

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

При этом происходит расширение системного проекта за счет его уточнения и построения моделей автоматизированных рабочих мест.

  1. Разработка новой системы или настройка существующей системы.

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

Настройка существующей системы проходит следующие этапы:

  • наполнение системы фактическими данными;

  • построение процедур их обработки;

  • интеграция процедур внутри автоматизированных рабочих мест;

  • интеграция автоматизированных рабочих мест в систему.

CASE-технологии – методологическая и инструментальная база консалтинга

За последние два десятилетия сформировалось новое направление в программотехнике – CASE (Computer-Aided Software/System Engineering). Не существует общепринятого определения CASE. Содержание этого понятия обычно определяется перечнем задач, решаемых с помощью CASE-технологий. Очень грубо, CASE-технология представляет собой совокупность методологий анализа, проектирования, разработки и сопровождения сложных систем программного обеспечения, поддержанную комплексом взаимоувязываемых средств автоматизации. CASE – это инструментарий для системных аналитиков, разработчиков и программистов, который позволяет описывать бизнес-процессы на компьютере, используя полученные схемы при разработке или настройке системы.

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

Помимо автоматизации структурных методологий и, как следствие, возможности применения современных методов системной и программной инженерии, CASE обладают следующими достоинствами:

  • улучшают качество создаваемого ПО за счет средств автоматического контроля (прежде всего, контроля проекта);

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

  • ускоряют процесс проектирования и разработки;

  • поддерживают развитие и сопровождение разработки;

  • поддерживают технологии повторного использования компонент разработки.

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

Понятие структурного анализа

Жизненный цикл программного изделия и его критичные этапы

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

Традиционно выделяют следующие основные этапы ЖЦ ПО:

  • анализ требований;

  • проектирование;

  • кодирование (программирование);

  • тестирование и отладка;

  • эксплуатация и сопровождение.

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

Существующие модели ЖЦ определяют порядок исполнения этапов в ходе разработки, а также критерии перехода от этапа к этапу. В соответствии с этим наибольшее распространение получили три следующие модели:

  1. КАСКАДНАЯ МОДЕЛЬ – предполагает переход на следующий этап после полного окончания работ по предыдущему этапу.

  2. ПОЭТАПНАЯ МОДЕЛЬ С ПРОМЕЖУТОЧНЫМ КОНТРОЛЕМ – итерационная модель разработки ПО с циклами обратной связи между этапами. Преимущество такой модели заключается в том, что межэтапные корректировки обеспечивают меньшую трудоемкость по сравнению с каскадной моделью; с другой стороны, время жизни каждого из этапов растягивается на весь период разработки.

  3. СПИРАЛЬНАЯ МОДЕЛЬ – делает упор на начальные этапы ЖЦ: анализ требований, проектирование спецификаций, предварительное и детальное проектирование. На этих этапах проверяется и обосновывается реализуемость технических решений путем создания прототипов. Каждый виток спирали соответствует поэтапной модели создания фрагмента или версии программного изделия, на нем уточняются цели и характеристики проекта, определяется его качество, планируются работы следующего витка спирали. Таким образом, углубляются и последовательно конкретизируются детали проекта и в результате выбирается обоснованный вариант, который доводится до реализации.

Можно отметить следующие преимущества спиральной модели:

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

  • ориентация на развитие и модификацию ПО в процессе его проектирования;

  • анализ риска и издержек в процессе проектирования.

Главная особенность индустрии ПО состоит в концентрации сложности на начальных этапах ЖЦ (анализ, проектирование) при относительно невысокой сложности и трудоемкости последующих этапов. Более того, нерешенные вопросы и ошибки, допущенные на этапах анализа и проектирования, порождают на последующих этапах трудные, часто неразрешимые проблемы и, в конечном счете, приводят к неуспеху всего проекта. Рассмотрим эти этапы более подробно.

АНАЛИЗ ТРЕБОВАНИЙ является первой фазой разработки ПО, на которой требования заказчика уточняются, формализуются и документируются. Фактически на этом этапе дается ответ на вопрос: "Что должна делать будущая система?".

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

  • совокупность условий, при которых предполагается эксплуатировать будущую систему (аппаратные и программные ресурсы, предоставляемые системе; внешние условия ее функционирования; состав людей и работ, имеющих к ней отношение);

  • описание выполняемых системой функций;

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

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

  • архитектура системы, ее функции, внешние условия, распределение функций между аппаратурой и ПО;

  • интерфейсы и распределение функций между человеком и системой;

  • требования к программным и информационным компонентам ПО, необходимые аппаратные ресурсы, требования к БД, физические характеристики.

ЭТАП ПРОЕКТИРОВАНИЯ дает ответ на вопрос "Как (каким образом) система будет удовлетворять предъявленным к ней требованиям?". Задачей этого этапа является исследование структуры системы и логических взаимосвязей ее элементов, причем здесь не рассматриваются вопросы, связанные с реализацией на конкретной платформе. Проектирование определяется как "(итерационный) процесс получения логической модели системы вместе со строго сформулированными целями, поставленными перед нею, а также написания спецификаций физической системы, удовлетворяющей этим требованиям". Обычно этот этап разделяют на два подэтапа:

  • Проектирование архитектуры ПО, включающее разработку структуры и интерфейсов компонент, согласование функций и технических требований к компонентам, методам и стандартам проектирования, производство отчетных документов;

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

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

Идеи, лежащие в основе структурных методов

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

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

  • Конструирование системы черных ящиков существенно упрощается. Намного легче разработать магнитофон или проигрыватель, если не беспокоиться о создании встроенного усилительного блока.

  • Облегчается тестирование таких систем. Если появляется плохой звук одной из колонок, можно поменять колонки местами. Если неисправность переместилась с колонкой, то именно она подлежит ремонту; если нет, тогда проблема в усилителе, магнитофоне или местах их соединения.

  • Имеется возможность простого ре-конфигурирования системы черных ящиков. Если колонка неисправна, то Вы можете отправить ее в ремонтную мастерскую, а сами пока продолжать слушать свои записи в моно-режиме.

  • Облегчается доступность для понимания и освоения. Можно стать специалистом по магнитофонам без углубленных знаний о колонках.

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

Таким образом, первым шагом упрощения сложной системы является ее разбиение на черные ящики, при этом такое разбиение должно удовлетворять следующим критериям:

  • каждый черный ящик должен реализовывать единственную функцию системы;

  • функция каждого черного ящика должна быть легко понимаема независимо от сложности ее реализации (например, в системе управления ракетой может быть черный ящик для расчета места ее приземления: несмотря на сложность алгоритма, функция черного ящика очевидна – "расчет точки приземления");

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

  • связи между черными ящиками должны быть простыми, насколько это возможно, для обеспечения независимости между ними.

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


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

Рис. 1. Графическая нотация.

На рис. 1 изображен черноволосый мужчина, одетый в серое двубортное пальто. Мужчина держит в левой руке дипломат и т.д. Вообще говоря, нет необходимости комментировать это: читатель впитывает вышеизложенное описание с первого взгляда.

Однако можно добавить дополнительные подробности, которые не явствуют из рисунка. Например, мужчину зовут Борис Борисович, ему 45 лет.

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

Принципы структурного анализа

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

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

  • аналитику сложно получить исчерпывающую информацию для оценки требований к системе с точки зрения заказчика;

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

  • аналитик сталкивается с чрезмерным количеством подробных сведений, как о предметной области, так и о новой системе;

  • спецификация системы из-за объема и технических терминов часто непонятна для заказчика;

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

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

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

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

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

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

  2. Принцип формализации заключается в необходимости строгого методического подхода к решению проблемы.

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

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

  1. Принцип полноты заключается в контроле на присутствие лишних элементов.

  2. Принцип непротиворечивости заключается в обоснованности и согласованности элементов.

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

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

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

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

Соблюдение указанных принципов необходимо при организации работ на начальных этапах ЖЦ независимо от типа разрабатываемого ПО и используемых при этом методологий.

Средства структурного анализа и их взаимоотношения

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

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

  • отношения между данными;

  • зависящее от времени поведение системы (аспекты реального
    времени).

Среди всего многообразия средств решения данных задач в методологиях структурного анализа наиболее часто и эффективно применяемыми являются следующие:

  • DFD (Data Flow Diagrams) – диаграммы потоков данных совместно со словарями и спецификациями процессов или миниспецификациями;

  • ERD (Entity-Relationship Diagrams) – диаграммы "сущность-связь";

  • STD (State Transition Diagrams) – диаграммы переходов состояний.

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

Логическая DFD показывает внешние по отношению к системе источники истоки (адресаты) данных, идентифицирует логические функции (процессы) и группы элементов данных, связывающие одну функцию с другой (потоки), а также идентифицирует хранилища (накопители) данных, к которым осуществляется доступ. Структуры потоков данных и определения их компонент хранятся и анализируются в словаре данных. Каждая логическая функция (процесс) может быть детализирована с помощью DFD нижнего уровня; когда дальнейшая детализация перестает быть полезной, переходят к выражению логики функции при помощи спецификации процесса (миниспецификации). Содержимое каждого хранилища также помещают в словаре данных, модель данных хранилища раскрывается с помощью ERD. В случае наличия реального времени DFD дополняется средствами описания, зависящего от времени поведения системы, раскрывающимися с помощью STD. Эти связи показаны на рис. 2.

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



Рис.2. Компоненты логической модели.

ДИАГРАММЫ ПОТОКОВ ДАННЫХ

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

Диаграммы потоков данных известны очень давно. Приведу следующий пример использования DFD для реорганизации переполненного клерками офиса, относящийся к 20-м годам. Осуществлявший реорганизацию консультант обозначил кружком каждого клерка, а стрелкой – каждый документ, передаваемый ими друг другу. Используя такую диаграмму, он предложил схему реорганизации, в соответствии с которой двое клерков, обменивающиеся множеством документов, были посажены рядом, а клерки с малым взаимодействием были посажены на большом расстоянии. Так родилась первая модель, представляющая собой потоковую диаграмму – предвестника DFD.

Для изображения DFD традиционно используются две различные нотации: Йодана (Yourdon) и Гейна-Сарсона (Gane-Sarson). Мы будем при построении примеров использовать нотации Йодана.

О
сновные символы диаграммы

Основные символы DFD изображены на рис. 3.

Рис.3. Основные компоненты диаграммы потоков данных.

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

ПОТОКИ ДАННЫХ являются механизмами, использующимися для моделирования передачи информации (или даже физических компонент) из одной части системы в другую. Важность этого объекта очевидна: он дает название целому инструменту. Потоки на диаграммах обычно изображаются именованными стрелками, ориентация которых указывает направление движения информации.

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

Назначение ПРОЦЕССА состоит в продуцировании выходных потоков из входных в соответствии с действием, задаваемым именем процесса. Это имя должно содержать глагол в неопределенной форме с последующим дополнением (например, ВЫЧИСЛИТЬ МАКСИМАЛЬНУЮ ВЫСОТУ). Кроме того, каждый процесс должен иметь уникальный номер для ссылок на него внутри диаграммы. Этот номер может использоваться совместно с номером диаграммы для получения уникального индекса процесса во всей модели.

ХРАНИЛИЩЕ (НАКОПИТЕЛЬ) ДАННЫХ позволяет на определенных участках определять данные, которые будут сохраняться в памяти между процессами. Фактически хранилище представляет "срезы" потоков данных во времени. Информация, которую оно содержит, может использоваться в любое время после ее определения, при этом данные могут выбираться в любом порядке. Имя хранилища должно идентифицировать его содержимое и быть существительным. В случае, когда поток данных входит или выходит в/из хранилища, и его структура соответствует структуре хранилища, он должен иметь то же самое имя, которое нет необходимости отражать на диаграмме.

ВНЕШНЯЯ СУЩНОСТЬ (или ТЕРМИНАТОР) представляет сущность вне контекста системы, являющуюся источником или приемником системных данных. Ее имя должно содержать существительное, например, СКЛАД ТОВАРОВ. Предполагается, что объекты, представленные такими узлами, не должны участвовать ни в какой обработке.

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

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

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

DFD первого уровня строится как декомпозиция процесса, который присутствует на контекстной диаграмме.

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

При таком построении иерархии DFD каждый процесс более низкого уровня необходимо соотнести с процессом верхнего уровня. Обычно для этой цели используются структурированные номера процессов. Так, например, если мы детализируем процесс номер 2 на диаграмме первого уровня, раскрывая его с помощью DFD, содержащей три процесса, то их номера будут иметь следующий вид: 2.1, 2.2 и 2.3. При необходимости можно перейти на следующий уровень, т.е. для процесса 2.2 получим 2.2.1, 2.2.2 и т.д.

Проиллюстрируем контекстную диаграмму на примере.

П
ример
. Рассмотрим процесс СДАТЬ ЭКЗАМЕН. У нас есть две сущности: СТУДЕНТ и ПРЕПОДАВАТЕЛЬ. Опишем потоки данных, которыми обменивается наша проектируемая система с внешними объектами.

Рис. 4. DFD-диаграмма процесса "Сдать экзамен".

Со стороны сущности СТУДЕНТ опишем информационные потоки. Для сдачи экзамена необходимо, чтобы у СТУДЕНТА была ЗАЧЕТКА, а также чтобы он имел ДОПУСК К ЭКЗАМЕНУ. Результатом сдачи экзамена, т.е. выходными потоками, будут ОЦЕНКА ЗА ЭКЗАМЕН и ЗАЧЕТКА, в которую будет проставлена ОЦЕНКА.

Со стороны сущности ПРЕПОДАВАТЕЛЬ информационные потоки следующие. ЭКЗАМЕНАЦИОННАЯ ВЕДОМОСТЬ, согласно которой будет известно, что СТУДЕНТ допущен до экзамена, а также официальна бумага, куда будет занесен результат экзамена, т.е. ОЦЕНКА ЗА ЭКЗАМЕН, ПРОСТАВЛЕННАЯ В ВЕДОМОСТЬ.

Теперь детализируем процесс 1. СДАЧА ЭКЗАМЕНА. Этот процесс будет содержать следующие процессы:

    1. Вытянуть билет;

    2. Подготовиться к ответу;

    3. Ответы на билет;

    4. П
      роставление оценки.

Рис. 5. Декомпозиция 1-го уровня.

Декомпозиция данных и соответствующие расширения диаграмм потоков данных

Индивидуальные данные в системе часто являются независимыми. Однако иногда необходимо иметь дело с несколькими независимыми данными одновременно. Например, в системе имеются потоки ЯБЛОКИ, АПЕЛЬСИНЫ и ГРУШИ. Эти потоки могут быть сгруппированы с помощью введения нового потока ФРУКТЫ. Для этого необходимо определить формально поток ФРУКТЫ как состоящий из нескольких элементов-потомков. Такое определение задается с помощью формы Бэкуса-Наура (БНФ) в словаре данных. В свою очередь, поток ФРУКТЫ сам может содержаться в потоке-предке ЕДА вместе с потоками ОВОЩИ, МЯСО и др. Такие потоки, объединяющие несколько потоков, получили название групповых.

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

Рис. 6. Элементы, используемые при расщеплении.

При расщеплении также необходимо формально определить подпотоки в словаре данных (с помощью БНФ).

Аналогичным образом осуществляется и декомпозиция потоков через границы диаграмм, позволяющая упростить детализирующую DFD. Пусть имеется поток ФРУКТЫ, входящий в детализируемый процесс. На детализирующей этот процесс диаграмме потока ФРУКТЫ может не быть вовсе, но вместо него могут быть потоки ЯБЛОКИ и АПЕЛЬСИНЫ (как будто бы они переданы из детализируемого процесса). В этом случае должно существовать БНФ-определение потока ФРУКТЫ, состоящего из подпотоков ЯБЛОКИ и АПЕЛЬСИНЫ, для целей балансирования.

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

Для обеспечения декомпозиции данных и некоторых других сервисных возможностей к DFD добавляются следующие типы объектов:

  1. ГРУППОВОЙ УЗЕЛ. Предназначен для расщепления и объединения потоков. В некоторых случаях может отсутствовать (т.е. фактически вырождаться в точку слияния/расщепления потоков на диаграмме).

  2. УЗЕЛ-ПРЕДОК. Позволяет увязывать входящие и выходящие потоки между детализируемым процессом и детализирующей DFD.

  3. НЕИСПОЛЬЗУЕМЫЙ УЗЕЛ. Применяется в ситуации, когда декомпозиция данных производится в групповом узле, при этом требуются не все элементы входящего в узел потока.

  4. УЗЕЛ ИЗМЕНЕНИЯ ИМЕНИ. Позволяет неоднозначно именовать потоки, при этом их содержимое эквивалентно. Например, если при проектировании разных частей системы один и тот же фрагмент данных получил различные имена, то эквивалентность соответствующих потоков данных обеспечивается узлом изменения имени. При этом один из потоков данных является входным для данного узла, а другой – выходным.

  5. Текст в свободном формате в любом месте диаграммы.

Построение модели

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

  1. Размещать на каждой диаграмме от 3 до 6-7 процессов. Верхняя граница соответствует человеческим возможностям одновременного восприятия и понимания структуры сложной системы с множеством внутренних связей, нижняя граница выбрана по соображениям здравого смысла: нет необходимости детализировать процесс диаграммой, содержащей всего один или два процесса.

  2. Не загромождать диаграммы несущественными на данном уровне деталями.

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

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

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

  6. Пользоваться простейшими диаграммными техниками: если что-либо возможно описать с помощью DFD, то это и необходимо делать, а не использовать для описания более сложные объекты.

  7. Отделять управляющие структуры от обрабатывающих структур (т.е. процессов), локализовать управляющие структуры.

В соответствии с этими рекомендациями процесс построения модели разбивается на нижеследующие этапы.

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

  2. Идентификация внешних объектов, с которыми система должна быть связана.

  3. Идентификация основных видов информации, циркулирующей между системой и внешними объектами.

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

  5. Изучение предварительной контекстной диаграммы и внесение
    в нее изменений по результатам ответов на возникающие при этом
    изучении вопросы по всем ее частям.

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

  7. Формирование DFD первого уровня на базе процессов предварительной контекстной диаграммы.

  8. Проверка основных требований по DFD первого уровня.

  9. Декомпозиция каждого процесса текущей DFD с помощью детализирующей диаграммы или спецификации процесса.

  10. Проверка основных требований по DFD соответствующего уровня.

  11. Добавление определений новых потоков в словарь данных при каждом их появлении на диаграммах.

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

  13. После построения двух-трех уровней проведение ревизии с целью проверки корректности и улучшения понимаемости модели.

  14. Построение спецификации процесса (а не простейшей диаграммы) в случае, если некоторую функцию сложно или невозможно выразить комбинацией процессов.

СЛОВАРЬ ДАННЫХ

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

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

  • описанием значений потоков и хранилищ, изображенных на DFD;

  • описанием композиции агрегатов данных, движущихся вдоль потоков, т.е. комплексных данных, которые могут расчленяться на элементарные символы (например, АДРЕС ПОКУПАТЕЛЯ содержит ПОЧТОВЫЙ ИНДЕКС, ГОРОД, УЛИЦУ и т.д.);

  • описанием композиции групповых данных в хранилище;

  • специфицированием значений и областей действия элементарных фрагментов информации в потоках данных и хранилищах;

  • описанием деталей отношений между хранилищами.

Содержимое словаря данных

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

По типу потока в словаре содержится информация, идентифицирующая:

  • простые (элементарные) или групповые (комплексные) потоки;

  • внутренние (существующие только внутри системы) или внешние (связывающие систему с другими системами) потоки;

  • потоки данных или потоки управления;

  • непрерывные (принимающие любые значения в пределах определенного диапазона) или дискретные (принимающие определенные значения) потоки.

Атрибуты потока данных включают:

  • имена-синонимы потока данных в соответствии с узлами изменения имени;

  • БНФ-определение в случае группового потока;

  • единицы измерения потока;

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

  • список значений и их смысл для дискретного потока;

  • список номеров диаграмм различных типов, в которых поток встречается;

  • список потоков, в которые данный поток входит (как элемент БНФ-определения);

  • комментарий, включающий дополнительную информацию (например, о цели введения данного потока).

БНФ-нотация

БНФ-нотация позволяет формально описать расщепление/объединение потоков. Поток может расщепляться на собственные отдельные ветви, на компоненты потока-предка или на то и другое одновременно. При расщеплении/объединении потока существенно, чтобы каждый компонент потока-предка являлся именованным.

Если поток расщепляется на подпотоки, необходимо, чтобы все подпотоки являлись компонентами потока-предка. И, наоборот, при объединении потоков каждый компонент потока-предка должен по крайней мере однажды встречаться среди подпотоков. Отметим, что при объединении подпотоков нет необходимости осуществлять включение общих компонент, а при расщеплении подпотоки могут иметь такие общие (одинаковые) компоненты.

Важно понимать, что точные определения потоков содержатся в словаре данных, а не на диаграммах. Например, на диаграмме может иметься групповой узел с входным потоком X и выходными подпотоками Y и Z. Однако это вовсе не означает, что соответствующее определение в словаре данных обязательно должно быть X=Y+Z. Это определение может быть следующим:

Х=А+В+С; Y=A+B; Z=B+C.

Такие определения хранятся в словаре данных в так называемой БНФ-статье. БНФ-статья используется для описания компонент данных в потоках данных и в хранилищах. Ее синтаксис имеет вид:

@БНФ = <простой оператор>! <БНФ-выражение>,

где <простой оператор> есть текстовое описание, заключенное в '", а <БНФ-выражение> есть выражение в форме Бэкуса-Наура, допускающее следующие операции отношений:

= - означает "композиция из",

+ - означает "И",

[!] - означает "ИЛИ",

( ) - означает, что компонент в скобках не обязателен,

{ } - означает итерацию компонента в скобках,

" " - означает литерал.

Итерационные скобки могут иметь нижний и верхний предел, например:

3{болт} 7 - от 3 до 7 итераций

1 {болт} - 1 и более итераций

{шайба}3 - не более 3 итераций

БНФ-выражение может содержать произвольные комбинации операций:

@БНФ = [ винт ! болт + 2 {гайка}2 + (прокладка) ! клей ]

Ниже приведен пример описания потока данных с помощью БНФ:

@ = ВОСЬМЕРИЧНАЯ ЦИФРА

@ТИП=дискретный поток

@БНФ=["0"!"1"!"2"!"3"!"4"!"5"!"6"!"7"]

Рассмотрим элементы словаря данных для примера, в котором описан процесс "Сдача экзамена".

Рассмотрим информационный поток "Приглашение тянуть билет":

@ИМЯ = ПРИГЛАШЕНИЕ ТЯНУТЬ БИЛЕТ

@ТИП = управляющий поток

@БНФ = /указывает, что студент допущен к экзамену/

Рассмотрим еще один поток "Сформированное мнение о знаниях студента"

@ИМЯ = СФОРМИРОВАННОЕ МНЕНИЕ О ЗНАНИЯХ СТУДЕНТА

@ТИП = внутренний поток

@БНФ = /на основании этого потока формируется оценка студента/

МЕТОДЫ ЗАДАНИЯ СПЕЦИФИКАЦИЙ ПРОЦЕССОВ

Спецификация процесса (СП) используется для описания функционирования процесса в случае отсутствия необходимости детализировать его с помощью DFD (т.е. если он достаточно невелик и его описание может занимать до одной страницы текста). Фактически СП представляют собой алгоритмы описания задач, выполняемых процессами: множество всех СП является полной спецификацией системы. СП содержат номер и/или имя процесса, списки входных и выходных данных и тело (описание) процесса, являющееся спецификацией алгоритма или операции, трансформирующей входные потоки данных в выходные. Известно большое число разнообразных методов, позволяющих задать тело процесса, соответствующий язык может варьироваться от структурированного естественного языка или псевдокода до визуальных языков проектирования (типа FLOW-форм и диаграмм Насси-Шнейдермана) и формальных компьютерных языков.

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

@ВХОД = <имя символа данных>

@ВЫХОД = <имя символа данных>

@ВХОДВЫХОД = <имя символа данных>,

где <имя символа данных> соответствующее имя из словаря данных.

Эти ключевые слова должны использоваться перед определением СП, например,

@ВХОД = СЛОВА ПАМЯТИ

@ВЫХОД = ХРАНИМЫЕ ЗНАЧЕНИЯ

@СПЕЦПРОЦ

Для всех СЛОВ ПАМЯТИ выполнить:

Распечатать ХРАНИМЫЕ ЗНАЧЕНИЯ

@

Ситуация, когда символ данных является одновременно входным и выходным, может быть описана двумя способами: либо символ описывается два раза с помощью @ВХОД и @ВЫХОД, либо один раз с помощью @ВХОДВЫХОД.

Иногда в СП задаются пред- и пост-условия выполнения данного процесса. В пред-условии записываются объекты, значения которых должны быть истинны перед началом выполнения процесса, что обеспечивает определенные гарантии безопасности для пользователя. Аналогично, в случае наличия пост-условия гарантируется, что значения всех входящих в него объектов будут истинны при завершении процесса.

Спецификации должны удовлетворять следующим требованиям:

  • для каждого процесса нижнего уровня должна существовать одна и только одна спецификация;

  • спецификация должна определять способ преобразования входных потоков в выходные;

  • нет необходимости (на данном этапе) определять метод реализации этого преобразования;

  • спецификация должна стремиться к ограничению избыточности – не следует переопределять то, что уже было определено на диаграмме или в словаре данных;

  • набор конструкций для построения спецификации должен быть простым и стандартным.

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

Структурированный естественный язык

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

В состав языка входят следующие основные символы:

  • глаголы, ориентированные на действие и применяемые к объектам;

  • термины, определенные на любой стадии проекта ПО (например, задачи, процедуры, символы данных и т.п.);

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

  • общеупотребительные математические, физические и технические термины;

  • арифметические уравнения;

  • таблицы, диаграммы, графы и т.п.;

  • комментарии.

Управляющие структуры языка имеют один вход и один выход. К ним относятся:

  1. последовательная конструкция:
    ВЫПОЛНИТЬ функция1
    ВЫПОЛНИТЬ функция2
    ВЫПОЛНИТЬ функция3

  2. конструкция выбора:
    ЕСЛИ <условие> ТО
    ВЫПОЛНИТЬ
    функция1
    ИНАЧЕ

ВЫПОЛНИТЬ функция2

КОНЕЦЕСЛИ

3) итерация:
ДЛЯ <условие>
ВЫПОЛНИТЬ функция
КОНЕЦДЛЯ

или

ПОКА <условиё>

ВЫПОЛНИТЬ функция

КОНЕЦПОКА

При использовании структурированного естественного языка приняты следующие соглашения:

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

  2. ключевые слова ЕСЛИ, ВЫПОЛНИТЬ, ИНАЧЕ и т.д. должны быть написаны заглавными буквами;

  3. слова или фразы, определенные в словаре данных, должны
    быть написаны заглавными буквами;

  4. глаголы должны быть активными, недвусмысленными и
    ориентированными на целевое действие (заполнить, вычислить,
    извлечь,
    а не модернизировать, обработать);

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

Таблицы решений

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

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

Таблица решений состоит из двух частей. Верхняя часть таблицы используется для определения условий. Обычно условие является ЕСЛИ-частью оператора ЕСЛИ-ТО и требует ответа "да-нет". Однако иногда в условии может присутствовать и ограниченное множество значений, например, ЯВЛЯЕТСЯ ЛИ ДЛИНА СТРОКИ БОЛЬШЕЙ, МЕНЬШЕЙ ИЛИ РАВНОЙ ГРАНИЧНОМУ ЗНАЧЕНИЮ?

Нижняя часть таблицы решений используется для определения действий, т.е. ТО-части оператора ЕСЛИ-ТО. Так, в конструкции ЕСЛИ ИДЕТ ДОЖДЬ, ТО РАСКРЫТЬ ЗОНТ. ИДЕТ ДОЖДЬ является условием, а РАСКРЫТЬ ЗОНТ действием.

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

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

  1. если очередная вещь является верхней одеждой, то взять и положить в свою сумку;

  2. если своя сумка полная, то закончить поиск верхней одежды;

  3. если корзина с вещами пуста, то закончить поиск;

  4. иначе поместить вещь в контейнер для просмотренных вещей.

Таблица решений для данного примера выглядит следующим образом:

Таблица 1

УСЛОВИЯ

1

2

3

4

5

6

7

8

С1

id_wear(c)

Д

Н

Д

Н

Д

Н

Д

Н

С2

Full_bag()

Н

Д

Д

Д

Н

Н

Д

Н

С3

Clear_kor()

Н

Д

Н

Н

Д

Д

Д

Н

ДЕЙСТВИЯ

D1

Put_bag(c)

1

1

D2

End_search()

1

1

1

2

1

1

D3

Put_kont(c)

1

Заметим, что если выполняется условие C2, то нет необходимости в проверке условий C1 и С3. Поэтому комбинации 2,3,4 и 7 могут быть заменены обобщающей комбинацией (-,Д,-), где "-" означает любую из возможных альтернатив (в нашем случае, Д или Н). Тогда мы получим редуцированную1 таблицу решений:

Таблица 2

УСЛОВИЯ

1

2

3

4

5

С1

id_wear(c)

Д

-

Д

Н

Н

С2

Full_bag()

Н

Д

Н

Н

Н

С3

Clear_kor()

Н

-

Д

Д

Н

ДЕЙСТВИЯ

D1

Put_bag(c)

1

1

D2

End_search()

1

2

1

D3

Put_kont(c)

1

Построение таблицы решений рекомендуется осуществлять по следующим шагам:

  1. идентифицировать все условия (или переменные) в спецификации. Идентифицировать все значения, которые каждая переменная может иметь;

  2. вычислить число комбинаций условий. Если все условия являются бинарными, то существует 2**N комбинаций N переменных;

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

  4. построить пустую таблицу, включающую все возможные условия и действия, а также номера комбинаций условий;

  5. выписать и занести в таблицу все возможные комбинации
    условий;

  6. редуцировать комбинации условий;

  7. проверить каждую комбинацию условий и идентифицировать соответствующие выполняемые действия;

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

  9. обсудить построенную таблицу.

Визуальные языки проектирования спецификаций

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

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

Символы FLOW-форм приведены на рис. 7. Каждый символ является блоком обработки. Каждый прямоугольник внутри любого символа также представляет собой блок обработки.

A

if A

case of

Then

B

1

A1

B

2

A2

C

else

C

n

AN

Последовательная обработка

Условный выбор

Case-выбор

While A

do

B

For A

Do

B

until A

do

B

Циклы

Рис. 7. Символы FLOW-форм.

Д
альнейшее развитие FLOW-формы получили в диаграммах Насси-Шнейдермана. На этих диаграммах символы последовательной обработки и цикла изображаются также. В символах условного выбора и case-выбора само условие располагается в верхнем треугольнике, а вбираемые варианты – на нижних сторонах треугольника, а блоки обработки располагаются под выбираемыми вариантами. Диаграмма Насси-Шенейдермана представлена на рис. 8.

Рис. 8. Диаграмма Насси-Шнейдермана.

ДИАГРАММЫ «СУЩНОСТЬ-СВЯЗЬ»

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

Данная нотация была введена Ченом (Chen) и получила дальнейшее развитие в работах Баркера (Barker). Нотация Чена предоставляет богатый набор средств моделирования данных, включая собственно ERD, а также диаграммы атрибутов и диаграммы декомпозиции. Эти диаграммные техники используются прежде всего для проектирования реляционных баз данных (хотя также могут с успехом применяться и для моделирования как иерархических, так и сетевых баз данных).

Сущности, отношения и связи в нотации Чена

СУЩНОСТЬ представляет собой множество экземпляров реальных или абстрактных объектов (людей, событий, состояний, идей, предметов и т.п.), обладающих общими атрибутами или характеристиками. Любой объект системы может быть представлен только одной сущностью, которая должна быть уникально идентифицирована. При этом имя сущности должно отражать тип или класс объекта, а не его конкретный экземпляр (например, АЭРОПОРТ, а не ВНУКОВО).

ОТНОШЕНИЕ в самом общем виде представляет собой связь между двумя и более сущностями. Именование отношения осуществляется с помощью грамматического оборота глагола (ИMEET, ОПРЕДЕЛЯЕТ, МОЖЕТ ВЛАДЕТЬ и т.п.).

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

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

  • использование этой информации различными приложениями.

Символы ERD, соответствующие сущностям и отношениям, приведены на рис. 9.

Рис. 9. Символы ERD в нотации Чена.

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

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

Для идентификации требований, в соответствии с которыми сущности вовлекаются в отношения, используются СВЯЗИ. Каждая связь соединяет сущность и отношение и может быть направлена только от отношения к сущности.

ЗНАЧЕНИЕ связи характеризует ее тип и, как правило, выбирается из следующего множества:

{"0 или 1", "0 или более", "1", "1 или более", "p:q" ( диапазон )}.

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

  1. 1*1 (один-к-одному). Отношения данного типа используются, как правило, на верхних уровнях иерархии модели данных, а на нижних уровнях встречаются сравнительно редко.

  2. 1*n (один-к-многим). Отношения данного типа являются наиболее часто используемыми.

  3. n*m (многие-к-многим). Отношения данного типа обычно используются на ранних этапах проектирования с целью прояснения ситуации. В дальнейшем каждое из таких отношений должно быть преобразовано в комбинацию отношений типов 1 и 2 (возможно, с добавлением вспомогательных сущностей и введением новых отношений).

Диаграммы атрибутов

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

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

Категоризация сущностей

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

Д
ля демонстрации декомпозиции сущности на категории используются диаграммы категоризации. Такая диаграмма содержит общую сущность, две и более сущности-категории и специальный узел-дискриминатор, который описывает способы декомпозиции сущностей (рис. 10).

Рис. 10. Узел-дискриминатор.

Существуют 4 возможных типа дискриминатора:

  1. Полное и обязательное вхождение Е/М (exclusive/mandatory) – сущность должна быть одной и только одной из следуемых категорий.

  2. Полное и необязательное вхождение Е/О (exclusive/optional) – сущность может быть одной и только одной из следуемых категорий.

  3. Неполное и обязательное вхождение I/M (inclusive/mandatory) – сущность должна быть, по крайней мере, одной из следуемых категорий.

  4. Неполное и необязательное вхождение I/O (inclusive/optional) – сущность может быть, по крайней мере, одной из следуемых категорий.

Построение модели

Разработка ERD включает следующие этапы:

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

  2. Идентификация отношений между сущностями и указаний типов отношений.

  3. Разрешение неспецифических отношений (отношений n*m).

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

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

Пример НФ. Рассмотрим все три нормальные формы на примере Группы Студентов. У Студента ключом является реквизит Номер (№ личного дела), к описательным реквизитам относятся: Фамилия (Фамилия студента), Имя (Имя студента), Отчество (Отчество студента), Дата (Дата рождения), Группа (N группы). Если отсутствует реквизит Номер, то для однозначного определения характеристик конкретного студента необходимо использование составного ключа из трех реквизитов: Фамилия + Имя + Отчество.

Первая нормальная форма

Отношение называется нормализованным или приведенным к первой нормальной форме, если все его атрибуты простые (далее неделимы). Преобразование отношения к первой нормальной форме может привести к увеличению количества реквизитов (полей) отношения и изменению ключа.

Например, отношение Студент = (Номер, Фамилия, Имя, Отчество, Дата, Группа) находится в первой нормальной форме.

Вторая нормальная форма

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

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

Функциональная зависимость реквизитов – зависимость, при которой в экземпляре сущности (в нашем случае, сущность – это студент) определенному значению ключевого реквизита соответствует только одно значение описательного реквизита.

Такое определение функциональной зависимости позволяет при анализе всех взаимосвязей реквизитов предметной области выделить самостоятельные информационные объекты.

В случае составного ключа вводится понятие функционально полной зависимости.

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

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

Отношение Студент = (Номер, Фамилия, Имя, Отчество, Дата, Группа) находится в первой и во второй нормальной форме одновременно, так как описательные реквизиты однозначно определены и функционально зависят от ключа Номер. Отношение Успеваемость = (Номер, Фамилия, Имя, Отчество, Дисциплина, оценка) находится в первой нормальной форме и имеет составной ключ Номер + Дисциплина. Это отношение не находится во второй нормальной форме, так как атрибуты Фамилия, Имя, Отчество не находятся в полной функциональной зависимости с составным ключом отношения.

Третья нормальная форма

Понятие третьей нормальной формы основывается на понятии нетранзитивной зависимости.

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

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

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

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

Пример. Студент группы представляется в виде совокупности правильно структурированных информационных объектов (Студент и Группа), реквизитный состав которых тождественен исходному объекту. Отношение Студент = (Номер, Фамилия, Имя, Отчество, Дата, Группа) находится одновременно в первой, второй и третьей нормальной форме.

3НФ является наиболее простым способом представления данных, отражающим здравый смысл. Построив 3НФ, мы фактически выделяем базовые сущности предметной области.

Этап 2 служит для выявления и определения отношений между сущностями, а также для идентификации типов отношений. Некоторые отношения на данном этапе могут быть неспецифическими (n*m многие-ко-многим). Такие отношения потребуют дальнейшей детализации на этапе 3.

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

Пример. Связь "1-к-1". Человек и его паспорт. Связь "1-ко-многим": Человек и телефоны.

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

Рис. 11. Пример разрешения неспецифического отношения.

Спецификации управления

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

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

STD состоит из следующих объектов:

СОСТОЯНИЕ – оно может рассматриваться как условие устойчивости для системы. Находясь в определенном состоянии, мы имеем достаточно информации о прошлой истории системы, чтобы определить очередное состояние в зависимости от текущих входных событий. Имя состояния должно отражать реальную ситуацию, в которой находится система, например, НАГРЕВАНИЕ, ОХЛАЖДЕНИЕ и т.п.

НАЧАЛЬНОЕ СОСТОЯНИЕ – узел STD, являющийся стартовой точкой для начального системного перехода. STD имеет ровно одно начальное состояние, соответствующее состоянию системы после ее инсталляции, но перед началом реальной обработки, а также любое (конечное) число завершающих состояний.

ПЕРЕХОД определяет перемещение моделируемой системы из одного состояния в другое. При этом имя перехода идентифицирует событие, являющееся причиной перехода и управляющее им. Это событие обычно состоит из управляющего потока (сигнала), возникающего как во внешнем мире, так и внутри моделируемой системы при выполнении некоторого условия (например, СЧЕТЧИК = 999 или КНОПКА НАЖАТА). Следует отметить, что, вообще говоря, не все события необходимо вызывают переходы из отдельных состояний. С другой стороны, одно и то же событие не всегда вызывает переход в то же самое состояние.

Таким образом, УСЛОВИЕ представляет собой событие (или события), вызывающее переход и идентифицируемое именем перехода. Если в условии участвует входной управляющий поток управляющего процесса-предка, то имя потока должно быть заключено в кавычки, например, "ПАРОЛЬ" = 666, где ПАРОЛЬ – входной поток.

Кроме условия, с переходом может связываться действие или ряд действий, выполняющихся, когда переход имеет место. То есть ДЕЙСТВИЕ – это операция, которая может иметь место при выполнении перехода. Если действие необходимо для выбора выходного управляющего потока, то имя этого потока должно заключаться в кавычки, например:

"ВВЕДЕННАЯ КАРТА" = TRUE,

где ВВЕДЕННАЯ КАРТА – выходной поток.

На STD состояния представляются узлами, а переходы – дугами (рис. 12). Условия (по-другому называемые стимулирующими событиями) идентифицируются именем перехода и возбуждают выполнение перехода. Действия или отклики на события привязываются к переходам и записываются под соответствующим условием. Начальное состояние на диаграмме должно иметь входной переход, изображаемый потоком из подразумеваемого стартового узла (иногда этот стартовый узел изображается небольшим квадратом и п
ривязывается к входному состоянию).

Рис. 12. Пример STD узлов.

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

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

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

СРЕДСТВА СТРУКТУРНОГО ПРОЕКТИРОВАНИЯ

Ранее мы с вами рассмотрели средства структурного анализа, которые позволяют строить модель требований (или еще называют логической моделью), состоящую из множества взаимоувязанных диаграмм, словаря данных и описаний спецификаций процессов. Используемые при этом диаграммные техники включают DFD, ERD и SDT диаграммы и спецификации процессов. Модель требований описывает то, что должна делать проектируемая система без ссылок на то, как это реализуется.

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

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

Структурные карты Константайна

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

  1. модуль состоит из множества операторов языка программирования, записанных последовательно;

  2. модуль имеет имя, по которому к нему можно ссылаться как к единому фрагменту;

  3. модуль может принимать и/или передавать данные, как параметры в вызывающей последовательности или связывать данные через фиксированные ячейки.

Структурные карты Константайна являются моделью отношений иерархии между программными модулями (рис. 13).

Основные элементы структурных карт.

Типы модулей

Рис. 13. Основные элементы и типы модулей структурных карт.

Структурные карты Джексона

Техника структурных карт Джексона основана на методологии структурного программирования Джексона. Эта техника позволяет осуществлять проектирование нижнего уровня структуры ПО и на этом этапе является близкой к традиционным блок-схемам.

Диаграмма Джексона включает объекты следующего типа:

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

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

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

Для взаимоувязывания блоков используются связи следующих типов:

  • последовательная связь;

  • параллельная связь;

  • условная связь;

  • итерационная связь.

Характеристики хорошей модели реализации

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

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

Сцепление

Сцепление является мерой взаимозависимости модулей. В хорошем проекте сцепления должны быть минимизированы, т.е. модули должны быть слабо зависимыми настолько, насколько это возможно.

Существуют три типа нормального сцепления: сцепление по данным, сцепление по образцу, сцепление по управлению.

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

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

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

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

Связность

Связность – мера прочности соединения функциональных и информационных объектов внутри одного модуля.

Выделяют следующие уровни связности:

  • функциональная (функционально связный модуль содержит объекты, предназначенные для выполнения единственной задачи, пример: расчет заработной платы);

  • последовательная (модуль имеет последовательную связность, если его объекты охватывают подзадачи, для которых выходные данные одной из подзадач служат входными данными для следующей, пример: открыть файл – прочитать запись – закрыть файл);

  • информационная (информационно связный модуль содержит объекты, использующие одни и те же входные или выходные данные);

  • процедурная (процедурно связный модуль является модулем, объекты которого включены в различные подзадачи, в которых управление переходит от каждой подзадачи к последующей, пример: последовательность утренних процедур);

  • временная (временно связным модулем является модуль, объекты которого включены в подзадачи, связанные временем исполнения, пример: установившаяся последовательность действий перед сном);

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

  • случайная (случайно связным модулем является модуль, объекты которого соответствуют подзадачам, незначительно связанным друг с другом, пример: 1. Ремонтировать автомобиль 2. Пить пиво. 3. Смотреть телевизор).

МЕТОДОЛОГИИ СТРУКТУРНОГО И СИСТЕМНОГО АНАЛИЗА И ПРОЕКТИРОВАНИЯ

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

В настоящее время успешно используются такие методологии, как SADT (Structure Analysis and Design Technique), структурный системный анализ Гейна-Сарсона, структурный анализ и проектирование Йодана/Де Марко, развитие систем Джексона и другие.

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

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

  • диаграммы потоков данных в нотации Йодана/Де Марко или Гейна-Сарсона, обеспечивающие анализ требований и функциональное проектирование информационных систем;

  • расширения Хатли и Уорда-Меллора для проектирования систем реального времени, основанные на диаграммах переходов состояний, таблицах решений, картах и схемах потоков управления;

  • диаграммы "сущность-связь" (в нотации Чена или Баркера) для проектирования структур данных, схем БД, форматов файлов как части всего проекта;

  • структурные карты Джексона и/или Константайна для проектирования межмодульных взаимодействий и внутренней структуры модулей.

Разработка ПО основана на модели ВХОД-ОБРАБОТКА-ВЫХОД: данные входят в систему, обрабатываются или преобразуются и выходят из системы. Такая модель используется во всех структурных методологиях. При этом важен порядок построения модели. Традиционный процедурно-ориентированный подход регламентирует первичность проектирования функциональных компонент по отношению к проектированию структур данных: требования к данным раскрываются через функциональные требования. При подходе, ориентированном на данные, вход и выход являются наиболее важными – структуры данных определяются первыми, а процедурные компоненты являются производными от данных.

Методологии структурного анализа Йодана/Де Марко и Гейна-Сарсона

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

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

  1. DFD-диаграммы потоков данных. Являются графическими иерархическими спецификациями, описывающими систему с позиций потоков данных.

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

  3. Миниспецификации обработки, описывающие DFD-процессы нижнего уровня и являющиеся базой для кодогенерации. Фактически миниспецификации представляют собой алгоритмы описания задач, выполняемых процессами. Множество всех миниспецификаций является полной спецификацией системы.

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

Главной отличительной чертой методологии Гейна-Сарсона является наличие этапа моделирования данных, определяющего содержимое хранилищ данных (БД и файлов) в DFD в третьей нормальной форме. Этот этап включает построение списка элементов данных, располагающихся в каждом хранилище данных; анализ отношений между данными и построение соответствующей диаграммы связей между элементами данных; представление всей информации по модели в виде связанных нормализованных таблиц.

SADT – технология структурного анализа и проектирования

SADT – одна из самых известных методологий анализа и проектирования информационных систем, введенная в 1973 году Россом.

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

Методология SADT представляет собой совокупность методов, правил и процедур, предназначенных для построения функциональной модели объекта какой-либо предметной области. Функциональная модель SADT отображает функциональную структуру объекта, т.е. производимые им действия и связи между этими действиями. Основные элементы этой методологии основываются на следующих концепциях:

  • графическое представление блочного моделирования. Графика блоков и дуг SADT-диаграммы отображает функцию в виде блока, а интерфейсы входа/выхода представляются дугами, соответственно входящими в блок и выходящими из него. Взаимодействие блоков друг с другом описываются посредством интерфейсных дуг, выражающих "ограничения", которые, в свою очередь, определяют, когда и каким образом функции выполняются и управляются;

  • строгость и точность. Выполнение правил SADT требует достаточной строгости и точности, не накладывая в то же время чрезмерных ограничений на действия аналитика.

Правила SADT включают:

  • ограничение количества блоков на каждом уровне декомпозиции (правило 3-6 блоков);

  • связность диаграмм (номера блоков);

  • уникальность меток и наименований (отсутствие повторяющихся имен);

  • синтаксические правила для графики (блоков и дуг);

  • разделение входов и управлений (правило определения роли данных).

  • отделение организации от функции, т.е. исключение влияния организационной структуры на функциональную модель.

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

Результатом применения методологии SADT является модель, которая состоит из диаграмм, фрагментов текстов и глоссария, имеющих ссылки друг на друга. Диаграммы – главные компоненты модели, все функции ИС и интерфейсы на них представлены как блоки и дуги. Место соединения дуги с блоком определяет тип интерфейса. Управляющая информация входит в блок сверху, в то время как информация, которая подвергается обработке, показана с левой стороны блока, а результаты выхода показаны с правой стороны. Механизм (человек или автоматизированная система), который осуществляет операцию, представляется дугой, входящей в блок снизу (рисунок 14).

Рис. 14. Функциональный блок и интерфейсные дуги.

Одной из наиболее важных особенностей методологии SADT является постепенное введение все больших уровней детализации по мере создания диаграмм, отображающих модель.

На рисунке 15, где приведены четыре диаграммы и их взаимосвязи, показана структура SADT-модели. Каждый компонент модели может быть декомпозирован на другой диаграмме. Каждая диаграмма иллюстрирует "внутреннее строение" блока на родительской диаграмме.

Рис. 15. Структура SADT-модели. Декомпозиция диаграмм.

Иерархия диаграмм

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

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

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

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

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

На рисунках 16-18 представлены различные варианты выполнения функций и соединения дуг с блоками.

Рис. 16. Одновременное выполнение.

Рис. 17. Соответствие должно быть полным и непротиворечивым.

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

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

Рис. 18. Пример обратной связи.

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

Рис. 19. Пример механизма.

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

Для того, чтобы указать положение любой диаграммы или блока в иерархии, используются номера диаграмм. Например, А11 является диаграммой, которая детализирует блок 1 на диаграмме А1. Аналогично, А1 детализирует блок 1 на диаграмме А0, которая является самой верхней диаграммой модели. На рисунке 20 показано типичное дерево диаграмм.

Рис. 20. Иерархия диаграмм.

Синтаксис диаграмм

Как уже отмечалось, каждая SADT-диаграмма содержит блоки и дуги. Блоки изображают функции системы, дуги связывают блоки и отображают взаимодействия и взаимосвязи между ними. Диаграмме дается название, которое располагается внизу.

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

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

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

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

Между объектами и функциями возможны 4 отношения: вход, управление, выход и механизм. Каждое из этих отношений изображается дугой и связано с определенной стороной блока (левая сторона – входные дуги, правая сторона – выходные дуги, верхняя сторона – управляющие дуги, нижняя сторона – дуги механизма).

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

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

В методологии SADT требуется только пять типов взаимосвязей между блоками для описания их отношений: управление, вход, обратная связь по управлению, обратная связь по входу, выход-механизм. Рассмотрим на примере.

Р
ис. 21. Пример
SADT-диаграммы.

Связи по управлению и входу являются простейшими, поскольку они отражают прямые воздействия, которые интуитивно понятны и очень просты. Отношение управления возникает тогда, когда выход одного блока непосредственно влияет на блок с меньшим доминированием. Пример: блок "управлять выполнением задания" влияет на блок "выполнить задание" в соответствии с планом выполнения задания.

Отношение входа возникает тогда, когда выход одного блока становится входом для блока с меньшим доминированием. Пример: выход "законченное или незаконченное задание" является входом функции "контролировать качество выполнения" при выполнении функции "выполнить задание".

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

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

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

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

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

Бывают варианты, когда две разные дуги объединяются и образуют больший набор объектов.

Для объяснения того, как дуги представляют разъединение и соединение наборов объектов, в SADT были разработаны специальные соглашения.

Разветвление дуг

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

  • Непомеченные ветви содержат все объекты, указанные в метке дуги перед разветвлением (т.е. все объекты принадлежат этим ветвям);

  • Ветви, помеченные после точки разветвления, содержат все объекты или их часть, указанные в метке дуги перед разветвлением (т.е. каждая метка ветви уточняет, что именно содержит ветвь).

Слияние дуг

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

Кроме того, каждая ветвь перед слиянием может помечаться или не помечаться в соответствии со следующими правилами:

  • непомеченные ветви содержат все объекты, указанные в общей метке дуги после слияния (т.е. все объекты исходят из всех ветвей);

  • помеченные перед слиянием ветви содержат все или некоторые объекты из перечисленных в общей метке после слияния (т.е. метка ветви ясно указывает, что содержит ветвь).

Синтаксис моделей и работа с ними

Одна SADT-диаграмма сложна сама по себе, поскольку содержит от трех до шести блоков, связанных множеством дуг. Для адекватного описания системы требуется несколько таких диаграмм. Диаграммы, собранные и связанные вместе, становятся SADT-моделью. В SADT дополнительно к синтаксису диаграмм существуют правила синтаксиса моделей.

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

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

Кроме этого, на контекстной диаграмме отображается цель системы и точка зрения.

Понятие цели системы

SADT-модель дает полное, точное и адекватное описание системы, имеющее конкретное назначение. Это назначение называют целью системы. Таким образом, целью модели является получение ответов на совокупность вопросов. Если модель отвечает не на все вопросы или ее ответы недостаточно точны, то говорят о том, что модель не достигла своей цели. Определяя модель таким образом, SADT закладывает основы практического моделирования.

Точка зрения модели

С определением модели тесно связана позиция, с которой наблюдается система и создается ее модель. Эта позиция и называется "точкой зрения" данной модели. "Точку зрения" лучше всего представлять себе как место (позицию) человека или объекта, в которое надо встать, чтобы увидеть систему в действии.

Построим контекстную диаграмму модели изготовления нестандартной детали (рис. 22).

Определим для начала цель и точку зрения модели.

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

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

SADT-модели развиваются в процессе структурной декомпозиции сверху вниз. Сначала декомпозируется один блок, являющийся границей модели. Название диаграммы совпадает с названием декомпозируемого блока. В методологии SADT идентифицируется каждая диаграмма данной модели посредством того, что называется "номер узла". Номер узла для контекстной диаграммы имеет следующий вид: название модели или аббревиатура, косая черта, заглавная буква A (activity в функциональных диаграммах), дефис и ноль.

Номером узла диаграммы, декомпозирующей контекстную диаграмму, является тот же номер узла, но без дефиса.

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

Синтаксис диаграмм

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


Рис. 23. SADT-диаграмма А0.

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


Рис. 24. SADT-диаграмма А1.

Как только образуется направленная вниз связь, на диаграмме-потомке формируется ссылка на родительскую диаграмму. В области контекста SADT (правый верхний угол) автор изображает каждый блок родительской диаграммы маленькими квадратиками, заштриховывает тот квадратик, который декомпозирует и помещает С-номер родительской диаграммы. Это образует "направленную вверх" (к родительской диаграмме) связь.

Кроме этого, в SADT принята система обозначений, позволящая аналитику точно идентифицировать и проверять связи по дугам между диаграммами. Эта схема кодирования дуг – "ICOM" – получила название по первым буквам английских эквивалентов слов вход (Input), управление (Control), выход (Output) и механизм (Mechanism).

Существуют правила присваивания кодов ICOM внешним дугам новой диаграммы:

  1. Присвоить код каждой внешней дуге. Используйте I - для входных дуг, C – для связей между дугами управления, O – для связей между выходными дугами, M – для связей между дугами механизма.

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

Создание функциональных моделей и диаграмм

Сбор информации

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

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

  • чтение документов;

  • наблюдение за выполняемыми операциями;

  • анкетирование;

  • использование собственных знаний;

  • составление описания.

Документы – наиболее хороший источник информации, потому что они чаще всего доступны и их можно "опрашивать" в удобном для себя темпе. Чтение документов – прекрасный способ получить первоначальное представление о системе и сформулировать вопросы к экспертам.

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

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

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

Еще одна полезная стратегия – придумать описание и дать его экспертам для корректировки. Придуманные описания могут дать альтернативные схемы функционирования системы – схемы.

Типы опроса

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

  • опросы для сбора фактов;

  • опросы для определения проблем;

  • совещания для принятия решений;

  • диалоги автор/читатель.

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

Процесс опроса

Приведем несколько советов, которые позволяют понять основные шаги в процессе опроса:

  1. определите, является ли информация фактом или скорее мнением, задавая уточняющие вопросы; всегда спрашивайте о числах и количествах (когда речь идет о времени, объеме, затратах). Числовые характеристики придают сказанному достоверность.

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

Умение проводить хорошие опросы так же важно, как и умение строить хорошие диаграммы и модели.

Дополнения к диаграммам и моделям

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

SADT-диаграммы могут быть дополнены информацией в виде текстов, рисунков и глоссариев.

Текст обычно представляет собой рассказ об одной из частей диаграммы.

Рисунки – это картинки, поясняющие отдельные моменты.

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

Рассмотрим составление глоссария на примере процесса "подготовить рабочее место" в экспериментально-механическом цехе (рис. 25).


Рис. 25. SADT-диаграмма процесса "подготовить рабочее место".



Глоссарий используется для того, чтобы собрать вместе и определить новые понятия, которые вводятся диаграммой, декомпозирующей блок, особенно если это первая декомпозиция родительского блока. Для функциональных SADT-диаграмм такими понятиями могут быть новые функции, либо новые объекты, представляемые дугами, либо декомпозиция внешних дуг.

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

Рис. 26. Пример глоссария для процесса "подготовить рабочее место".

Оценка и выбор CASE-средств

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

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

  • оценка нескольких CASE-средств и выбор одного или более из них;

  • оценка одного или более CASE-средств и сохранение результатов для последующего использования;

  • выбор одного или более CASE-средств с использованием результатов предыдущих оценок.

Р
ис. 27. Процесс выбора
CASE-средства.

Как видно из рисунка 27, входной информацией для процесса оценки является:

  • определение пользовательских потребностей;

  • цели и ограничения проекта;

  • данные о доступных CASE-средствах;

  • список критериев, используемых в процессе оценки.

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

Элементы процесса включают:

  • цели, предположения и ограничения, которые могут уточняться в ходе процесса;

  • потребности пользователей, отражающие количественные и качественные требования пользователей к CASE-средствам;

  • критерии, определяющие набор параметров, в соответствии с которыми производится оценка и принятие решения о выборе;

  • формализованные результаты оценок одного или более средств;

  • рекомендуемое решение (обычно либо решение о выборе, либо дальнейшая оценка).

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

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

Определение списка критериев основано на пользовательских требованиях и включает:

  • выбор критериев для использования из приведенного далее перечня;

  • определение дополнительных критериев;

  • определение области использования каждого критерия (оценка, выбор или оба процесса);

  • определение одной или более метрик для каждого критерия оценки;

  • назначение веса каждому критерию при выборе.

Критерии оценки и выбора

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

  • числовые меры в широком диапазоне значений, например, объем требуемой памяти;

  • числовые меры в ограниченном диапазоне значений, например, простота освоения, выраженная в баллах от 1 до 5;

  • двоичные меры (истина/ложь, да/нет), например, способность генерации документации в формате Postscript;

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

Типичный процесс оценки и/или выбора может использовать набор критериев различных типов.

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

Рис. 28. Функциональные характеристики.

Критерии первого класса предназначены для определения функциональных характеристик CASE-средства. Они, в свою очередь, подразделяются на ряд групп и подгрупп.

1. Среда функционирования

Проектная среда:

  • поддержка процессов жизненного цикла. Определяет набор процессов ЖЦ, которые поддерживает CASE-средство. Примерами таких процессов являются анализ требований, проектирование, реализация, тестирование и оценка, сопровождение, обеспечение качества, управление конфигурацией и управление проектом, причем они зависят от принятой пользователем модели ЖЦ.

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

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

ПО/технические средства:

  • требуемые технические средства. Оборудование, необходимое для функционирования CASE-средства, включая тип процессора, объем оперативной и дисковой памяти.

  • поддерживаемые технические средства. Элементы оборудования, которые могут использоваться CASE-средством, например, устройства ввода/вывода.

  • требуемое ПО. ПО, необходимое для функционирования CASE-средства, включая операционные системы и графические оболочки.

  • поддерживаемое ПО. Программные продукты, которые могут использоваться CASE-средством.

Технологическая среда:

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

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

  • поддерживаемая методология. Набор методов и методик, поддерживаемых CASE-средством. Примерами являются структурный или объектно-ориентированный анализ и проектирование.

  • поддерживаемые языки. Все языки, используемые CASE-средством. Примерами таких языков являются языки программирования (Кобол, Ада, С), языки баз данных и языки запросов (DDL, SQL), графические языки (Postscript, HPGL), языки спецификации проектных требований и интерфейсы операционных систем (языки управления заданиями).

2. Функции, ориентированные на фазы жизненного цикла

Моделирование:

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

  • построение диаграмм. Возможность создания и редактирования диаграмм различных типов, представляющих интерес для пользователя. Наиболее распространенные типы диаграмм описаны в разделе 2.

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

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

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

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

  • моделирование процессов. Возможность ввода и редактирования информации, описывающей процессы системы и их отношения.

  • проектирование архитектуры ПО. Проектирование логической структуры ПО – структуры модулей, интерфейсов и др.

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

  • прототипирование. Возможность проектирования и генерации предварительного варианта всей системы или ее отдельных компонент на основе спецификаций требований и/или проектных спецификаций.

  • генерация экранных форм. Возможность генерации экранных форм на основе спецификаций требований и/или проектных спецификаций.

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

  • синтаксический и семантический контроль проектных спецификаций. Контроль синтаксиса диаграмм и типов их элементов, контроль декомпозиции функций, проверка спецификаций на полноту и непротиворечивость.

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

  • автоматизированное проектирование отчетов.

Реализация:

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

  • синтаксически управляемое редактирование. Возможность ввода и редактирования исходных кодов на одном или нескольких языках с одновременным синтаксическим контролем.

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

  • компиляция кода.

  • конвертирование исходного кода. Возможность преобразования кода из одного языка в другой.

  • анализ надежности. Возможность количественно оценивать параметры надежности ПО, такие, как количество ошибок и др.

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

  • реструктуризация исходного кода. Возможность модификации формата и/или структуры существующего исходного кода.

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

  • отладка. Типичные функции отладки – трассировка программ, выделение узких мест и наиболее часто используемых фрагментов кода и т.д.

Тестирование:

Критерии тестирования включают следующее:

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

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

  • автоматический запуск тестовых примеров.

  • регрессионное тестирование. Возможность повторения и модификации ранее выполненных тестов для определения различий в системе и/или среде.

  • автоматизированный анализ результатов тестирования. Типичные возможности включают сравнение ожидаемых и реальных результатов, сравнение файлов, статистический анализ результатов и др.

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

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

  • анализ исключительных ситуаций в процессе тестирования.

  • динамическое моделирование среды. В частности, возможность автоматически генерировать моделируемые входные данные системы.

3. Общие функции

Приведенные ниже критерии определяют функции CASE-средств, охватывающие всю совокупность фаз ЖЦ. Поддержка всех этих функций осуществляется посредством репозитория.

Документирование:

  • редактирование текстов и графики. Возможность вводить и редактировать данные в текстовом и графическом формате.

  • редактирование с помощью форм. Возможность поддерживать формы, определенные пользователями, вводить и редактировать данные в соответствии с формами.

  • возможности издательских систем.

  • поддержка функций и форматов гипертекста.

  • соответствие стандартам документирования.

  • автоматическое извлечение данных из репозитория и генерация документации по спецификациям пользователя.

Управление конфигурацией:

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

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

  • управление версиями. Ведение и контроль данных о версиях системы и всех ее коллективно используемых компонентах.

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

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

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

Управление проектом:

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

  • оценка. Возможность оценивать затраты, график и другие проектные параметры, вводимые пользователями.

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

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

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

Характеристики CASE-средств

Silverrun

CASE-средство Silverrun американской фирмы Сomputer Systems Advisers, Inc. (CSA) используется для анализа и проектирования ИС бизнес-класса и ориентировано в большей степени на спиральную модель ЖЦ. Оно применимо для поддержки любой методологии, основанной на раздельном построении функциональной и информационной моделей (диаграмм потоков данных и диаграмм "сущность-связь").

Структура и функции

Silverrun имеет модульную структуру и состоит из четырех модулей:

  • Модуль построения моделей бизнес-процессов в форме диаграмм потоков данных (BPM – Business Process Modeler) позволяет моделировать функционирование обследуемой организации или создаваемой ИС. Диаграммы могут изображаться в нескольких предопределенных нотациях, включая Yourdon/DeMarco и Gane/Sarson.

  • Модуль концептуального моделирования данных (ERX – Entity-Relationship eXpert) обеспечивает построение моделей данных "сущность-связь", не привязанных к конкретной реализации. Этот модуль имеет встроенную экспертную систему, позволяющую создать корректную нормализованную модель данных посредством ответов на содержательные вопросы о взаимосвязи данных. Возможно автоматическое построение модели данных из описаний структур данных. Анализ функциональных зависимостей атрибутов дает возможность проверить соответствие модели требованиям третьей нормальной формы и обеспечить их выполнение. Проверенная модель передается в модуль RDM.

  • Модуль реляционного моделирования (RDM – Relational Data Modeler) позволяет создавать детализированные модели "сущность-связь", предназначенные для реализации в реляционной базе данных. В этом модуле документируются все конструкции, связанные с построением базы данных: индексы, триггеры, хранимые процедуры и т.д.

  • Менеджер репозитория рабочей группы (WRM – Workgroup Repository Manager) применяется как словарь данных для хранения общей для всех моделей информации, а также обеспечивает интеграцию модулей Silverrun в единую среду проектирования.

Взаимодействие с другими средствами

Для автоматической генерации схем баз данных у Silverrun существуют мосты к наиболее распространенным СУБД: Oracle, Informix, DB2, Ingres, Progress, SQL Server, SQLBase, Sybase. Для передачи данных в средства разработки приложений имеются мосты к языкам 4GL: JAM, PowerBuilder, SQL Windows, Uniface, NewEra, Delphi.

Среда функционирования

Имеются реализации Silverrun трех платформ – MS Windows, Macintosh и OS/2 Presentation Manager – с возможностью обмена проектными данными между ними.

Vantage Team Builder (Westmount I-CASE)

Vantage Team Builder представляет собой интегрированный программный продукт, ориентированный на реализацию каскадной модели ЖЦ ПО и поддержку полного ЖЦ ПО.

Структура и функции

Vantage Team Builder обеспечивает выполнение следующих функций:

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

  • проектирование диаграмм архитектуры системы – SAD (проектирование состава и связи вычислительных средств, распределения задач системы между вычислительными средствами, моделирование отношений типа "клиент-сервер", анализ использования менеджеров транзакций и особенностей функционирования систем в реальном времени);

  • генерация кода программ на языке 4GL целевой СУБД с полным обеспечением программной среды и генерация SQL-кода для создания таблиц БД, индексов, ограничений целостности и хранимых процедур;

  • программирование на языке C со встроенным SQL;

  • управление версиями и конфигурацией проекта;

  • многопользовательский доступ к репозиторию проекта;

  • генерация проектной документации по стандартным и индивидуальным шаблонам;

  • экспорт и импорт данных проекта в формате CDIF (CASE Data Interchange Format).

Vantage Team Builder поставляется в различных конфигурациях в зависимости от используемых СУБД (ORACLE, Informix, Sybase или Ingres) .

Среда функционирования

Vantage Team Builder функционирует на всех основных UNIX-платформах (Solaris, SCO UNIX, AIX, HP-UX) и VMS.

Vantage Team Builder можно использовать в конфигурации "клиент-сервер", при этом база проектных данных может располагаться на сервере, а рабочие места разработчиков могут быть клиентами.

Uniface

Uniface 6.1 – продукт фирмы Compuware (США) – представляет собой среду разработки крупномасштабных приложений в архитектуре "клиент-сервер" и имеет следующую компонентную архитектуру:

  • Application Objects Repository (репозиторий объектов приложений) содержит метаданные, автоматически используемые всеми остальными компонентами на протяжении жизненного цикла ИС (прикладные модели, описания данных, бизнес-правил, экранных форм, глобальных объектов и шаблонов). Репозиторий может храниться в любой из баз данных, поддерживаемых Uniface;

  • Application Model Manager поддерживает прикладные модели (E-R модели), каждая из которых представляет собой подмножество общей схемы БД, с точки зрения данного приложения, и включает соответствующий графический редактор;

  • Rapid Application Builder – средство быстрого создания экранных форм и отчетов на базе объектов прикладной модели. Оно включает графический редактор форм, средства прототипирования, отладки, тестирования и документирования. Реализован интерфейс с разнообразными типами оконных элементов управления (Open Widget Interface) для существующих графических интерфейсов – MS Windows (включая VBX), Motif, OS/2. Универсальный интерфейс представления (Universal Presentation Interface) позволяет использовать одну и ту же версию приложения в среде различных графических интерфейсов без изменения программного кода;

  • Developer Services (службы разработчика) используются для поддержки крупных проектов и реализуют контроль версий (Uniface Version Control System), права доступа (разграничение полномочий), глобальные модификации и т.д. Это обеспечивает разработчиков средствами параллельного проектирования, входного и выходного контроля, поиска, просмотра, поддержки и выдачи отчетов по данным системы контроля версий;

  • Deployment Manager (управление распространением приложений) – средства, позволяющие подготовить созданное приложение для распространения, устанавливать и сопровождать его (при этом платформа пользователя может отличаться от платформы разработчика). В их состав входят сетевые драйверы и драйверы СУБД, сервер приложений (полисервер), средства распространения приложений и управления базами данных. Uniface поддерживает интерфейс практически со всеми известными программно-аппаратными платформами, СУБД, CASE-средствами, сетевыми протоколами и менеджерами транзакций;

  • Personal Series (персональные средства) используются для создания сложных запросов и отчетов в графической форме (Personal Query и Personal Access – PQ/PA), а также для переноса данных в такие системы, как WinWord и Excel;

  • Distributed Computing Manager – средство интеграции с менеджерами транзакций Tuxedo, Encina, CICS, OSF DCE.

В состав компонент Uniface 7 входят:

  • Uniface Application Server – сервер приложений для распределенных систем;

  • WebEnabler – серверное ПО для эксплуатации приложений в Internet и Intrаnet;

  • Name Server – серверное ПО, обеспечивающее использование распределенных прикладных ресурсов;

  • PolyServer – средство доступа к данным и интеграции различных систем.

В список поддерживаемых СУБД входят DB2, VSAM и IMS; PolyServer обеспечивает также взаимодействие с ОС MVS. Среда функционирования Uniface – все основные UNIX – платформы и MS Windows.

Designer/2000 + Developer/2000

CASE-средство Designer/2000 2.0 фирмы ORACLE является интегрированным CASE-средством, обеспечивающим в совокупности со средствами разработки приложений Developer/2000 поддержку полного ЖЦ ПО для систем, использующих СУБД ORACLE.

Структура и функции

Designer/2000 представляет собой семейство методологий и поддерживающих их программных продуктов.

На этапе проектирования разрабатывается подробная архитектура ИС, проектируется схема реляционной БД и программные модули, устанавливаются перекрестные ссылки между компонентами ИС для анализа их взаимного влияния и контроля за изменениями.

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

В состав Designer/2000 входят следующие компоненты:

  • Repository Administrator – средства управления репозиторием (создание и удаление приложений, управление доступом к данным со стороны различных пользователей, экспорт и импорт данных);

  • Repository Object Navigator – средства доступа к репозиторию, обеспечивающие многооконный объектно-ориентированный интерфейс доступа ко всем элементам репозитория;

  • Process Modeller – средство анализа и моделирования деловой деятельности, основывающееся на концепциях реинжиниринга бизнес-процессов (BPR – Business Process Reengineering) и глобальной системы управления качеством (TQM – Total Quality Management);

  • Systems Modeller – набор средств построения функциональных и информационных моделей проектируемой ИС, включающий средства для построения диаграмм "сущность-связь" (Entity-Relationship Diagrammer), диаграмм функциональных иерархий (Function Hierarchy Diagrammer), диаграмм потоков данных (Data Flow Diagrammer) и средство анализа и модификации связей объектов репозитория различных типов (Matrix Diagrammer);

  • Systems Designer – набор средств проектирования ИС, включающий средство построения структуры реляционной базы данных (Data Diagrammer), а также средства построения диаграмм, отображающих взаимодействие с данными, иерархию, структуру и логику приложений, реализуемую хранимыми процедурами на языке PL/SQL (Module Data Diagrammer, Module Structure Diagrammer и Module Logic Navigator);

  • Server Generator – генератор описаний объектов БД ORACLE (таблиц, индексов, ключей, последовательностей и т.д.). Помимо продуктов ORACLE, генерация и реинжиниринг БД может выполняться для СУБД Informix, DB/2, Microsoft SQL Server, Sybase, а также для стандарта ANSI SQL DDL и баз данных, доступ к которым реализуется посредством ODBC;

  • Forms Generator (генератор приложений для ORACLE Forms). Генерируемые приложения включают в себя различные экранные формы, средства контроля данных, проверки ограничений целостности и автоматические подсказки. Дальнейшая работа с приложением выполняется в среде Developer/2000;

  • Repository Reports – генератор стандартных отчетов, интегрированный с ORACLE Reports и позволяющий русифицировать отчеты, а также изменять структурное представление информации.

Взаимодействие с другими средствами

Designer/2000 можно интегрировать с другими средствами, используя открытый интерфейс приложений API (Application Programming Interface). Кроме того, можно использовать средство ORACLE CASE Exchange для экспорта/импорта объектов репозитория с целью обмена информацией с другими CASE-средствами.

Developer/2000 обеспечивает разработку переносимых приложений, работающих в графической среде Windows, Macintosh или Motif. В среде Windows интеграция приложений Developer/2000 с другими средствами реализуется через механизм OLE и управляющие элементы VBX. Взаимодействие приложений с другими СУБД (DB/2, DB2/400, Rdb) реализуется с помощью средств ORACLE Client Adapter для ODBC, ORACLE Open Gateway и API.

Среда функционирования

Среда функционирования Designer/2000 и Developer/2000 – Windows 3.x, Windows 95, Windows NT.

Локальные средства (ERwin, BPwin, S-Designor, CASE.Аналитик)

ERwin – средство концептуального моделирования БД, использующее методологию IDEF1X (ERD). ERwin реализует проектирование схемы БД, генерацию ее описания на языке целевой СУБД (ORACLE, Informix, Ingres, Sybase, DB/2, Microsoft SQL Server, Progress и др.) и реинжиниринг существующей БД. ERwin выпускается в нескольких различных конфигурациях, ориентированных на наиболее распространенные средства разработки приложений 4GL. Версия ERwin/OPEN полностью совместима со средствами разработки приложений PowerBuilder и SQLWindows и позволяет экспортировать описание спроектированной БД непосредственно в репозитории данных средств.

Для ряда средств разработки приложений (PowerBuilder, SQLWindows, Delphi, Visual Basic) выполняется генерация форм и прототипов приложений. Сетевая версия Erwin ModelMart обеспечивает согласованное проектирование БД и приложений в рамках рабочей группы.

BPwin – средство функционального моделирования, реализующее методологию IDEF0 (SADT).

S-Designor 4.2 представляет собой CASE-средство для проектирования реляционных баз данных. По своим функциональным возможностям и стоимости он близок к CASE-средству ERwin, отличаясь внешне используемой на диаграммах нотацией. S-Designor реализует стандартную методологию моделирования данных и генерирует описание БД для таких СУБД, как ORACLE, Informix, Ingres, Sybase, DB/2, Microsoft SQL Server и др. Для существующих систем выполняется реинжиниринг БД.

S-Designor совместим с рядом средств разработки приложений (PowerBuilder, Uniface, TeamWindows и др.) и позволяет экспортировать описание БД в репозитории данных средств. Для PowerBuilder выполняется также прямая генерация шаблонов приложений.

CASE.Аналитик 1.1 является практически единственным в настоящее время конкурентоспособным отечественным CASE-средством функционального моделирования и реализует построение диаграмм потоков данных в соответствии с методологией. Его основные функции:

  • построение и редактирование DFD;

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

  • получение разнообразных отчетов по проекту;

  • генерация макетов документов в соответствии с требованиями ГОСТ 19.ХХХ и 34.ХХХ.

Среда функционирования: процессор – 386 и выше, основная память – 4 Мб, дисковая память – 5 Мб, MS Windows 3.x или Windows 95.

База данных проекта реализована в формате СУБД Paradox и является открытой для доступа. С помощью отдельного программного продукта (Catherine) выполняется обмен данными с CASE-средством ERwin. При этом из проекта, выполненного в CASE.Аналитике, экспортируется описание структур данных и накопителей данных, которое по определенным правилам формирует описание сущностей и их атрибутов.

Объектно-ориентированные CASE-средства (Rational Rose)

Rational Rose – CASE-средство фирмы Rational Software Corporation (США) – предназначено для автоматизации этапов анализа и проектирования ПО, а также для генерации кодов на различных языках и выпуска проектной документации. Rational Rose использует синтез-методологию объектно-ориентированного анализа и проектирования, основанную на подходах трех ведущих специалистов в данной области: Буча, Рамбо и Джекобсона. Разработанная ими универсальная нотация для моделирования объектов (UML – Unified Modeling Language) претендует на роль стандарта в области объектно-ориентированного анализа и проектирования. Конкретный вариант Rational Rose определяется языком, на котором генерируются коды программ (C++, Smalltalk, PowerBuilder, Ada, SQLWindows и ObjectPro). Основной вариант – Rational Rose/C++ – позволяет разрабатывать проектную документацию в виде диаграмм и спецификаций, а также генерировать программные коды на С++. Кроме того, Rational Rose содержит средства реинжиниринга программ, обеспечивающие повторное использование программных компонент в новых проектах.

Структура и функции

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

В составе Rational Rose можно выделить 6 основных структурных компонент: репозиторий, графический интерфейс пользователя, средства просмотра проекта (browser), средства контроля проекта, средства сбора статистики и генератор документов. К ним добавляются генератор кодов (индивидуальный для каждого языка) и анализатор для С++, обеспечивающий реинжиниринг – восстановление модели проекта по исходным текстам программ.

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

Средства автоматической генерации кодов программ на языке С++, используя информацию, содержащуюся в логической и физической моделях проекта, формируют файлы заголовков и файлы описаний классов и объектов. Создаваемый таким образом скелет программы может быть уточнен путем прямого программирования на языке С++. Анализатор кодов С++ реализован в виде отдельного программного модуля. Его назначение состоит в том, чтобы создавать модули проектов в форме Rational Rose на основе информации, содержащейся в определяемых пользователем исходных текстах на С++. В процессе работы анализатор осуществляет контроль правильности исходных текстов и диагностику ошибок. Модель, полученная в результате его работы, может целиком или фрагментарно использоваться в различных проектах. Анализатор обладает широкими возможностями настройки по входу и выходу.

Таким образом, Rational Rose/С++ обеспечивает возможность повторного использования программных компонент.

В результате разработки проекта с помощью CASE-средства Rational Rose формируются следующие документы:

  • диаграммы классов;

  • диаграммы состояний;

  • диаграммы сценариев;

  • диаграммы модулей;

  • диаграммы процессов;

  • спецификации классов, объектов, атрибутов и операций;

  • заготовки текстов программ;

  • модель разрабатываемой программной системы.

Среда функционирования

Rational Rose функционирует на различных платформах: IBM PC (в среде Windows), Sun SPARC stations (UNIX, Solaris, SunOS), Hewlett-Packard (HP UX), IBM RS/6000 (AIX).

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

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

  2. Вендров А.М. CASE-технологии. Современные методы и средства проектирования информационных систем: интернет-издание. Адрес сайта: /library/vendrov/index.htm

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

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

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

КРАСИЛЬНИКОВА Мария Владимировна

ПРОЕКТИРОВАНИЕ ИНФОРМАЦИОННЫХ СИСТЕМ

Рецензент доц. Громов С.В.

Редактор Г.В. Атмашкина

________________________________________________________

Уч.-изд. л. 1,8 Тираж 100 экз.

Заказ Цена «С» Регистрационный №

Электростальский политехнический институт (филиал)

Московского государственного института стали и сплавов

(Технологического университета) (ЭПИ МИСиС)

144000, Московская обл., г. Электросталь, ул. Первомайская, д. 7.

1 Редуцированный – уменьшенный, пониженный

1

Смотреть полностью


Скачать документ

Похожие документы:

  1. Программы учебных дисциплин Допущено Учебно-методическим объединением по направлениям педагогического образования Министерства образования и науки РФ в качестве учебно-методических материалов по направлению «050700 Педагогика»

    Документ
    П 44 Подготовка магистра в сфере дошкольного и начального образования (программы учебных дисциплин). В 3-х ч. Часть 2./ Под ред. Г.И.Вергелес, М.И.Калинина, Л.
  2. Секция 4 Учебники и учебные пособия

    Учебники и учебные пособия
    In the work questions of merit of use of electronic learning means for students are considered. The possibility of freedom of choice of different parameters of acquisition knowledge process is singled out as basic merit.
  3. Т. В. Дергилева формирование и развитие информационно-библиотечной системы российской академии наук (организационно-методический аспект) Учебное пособие

    Учебное пособие
    В учебном пособии изложена история формирования и развития информационно-библиотечной системы Российской академии наук с момента организации первых академических библиотек до 2003 г.
  4. В. В. Гура Теоретические основы педагогического проектирования личностно-ориентированных электронных образовательных ресурсов и сред

    Монография
    Гура В.В. Теоретические основы педагогического проектирования личностно-ориентированных электронных образовательных ресурсов и сред. Ростов н/Д: Изд-во Южного федерального ун-та, 2007.
  5. 1992 2010 Анисимов О. С

    Документ
    Анцупов А.Я. Социально-психологические проблемы: предупреждение и разрешение межличностных конфликтов во взаимоотношениях офицеров. - М.: ГА ВС, 1992.

Другие похожие документы..