60. Индустриальное автоматизированное проектирование
информационных систем
Основные понятия и классификация CASE-технологий
Термин CASE (Computer Aided System/Software Engineering)
используется в довольно широком смысле. Первоначальное значение термина CASE,
ограниченное вопросами автоматизации разработки только лишь программного
обеспечения, в настоящее время приобрело новый смысл, охватывающий процесс
разработки сложных ИС в целом. С самого начала CASE-технологии
развивались с целью преодоления ограничений при использовании структурной
методологии проектирования (сложности понимания, высокой трудоемкости и
стоимости использования, трудности внесения изменений в проектные спецификации и
т.д.) за счет ее автоматизации и интеграции поддерживающих средств. Таким
образом, CASE-технологии не могут считаться
самостоятельными, они только обеспечивают, как минимум, высокую эффективность
их применения, а в некоторых случаях и принципиальную возможность применения
соответствующей методологии. Большинство существующих CASE-систем
ориентировано на автоматизацию проектирования программного обеспечения и
основано на методологиях структурного (в основном) или
объектно-ориентированного проектирования и программирования, использующих
спецификации в виде диаграмм или текстов для описания системных требований,
связей между моделями системы, динамики поведения системы и архитектуры
программных средств. В последнее время стали появляться CASE-системы,
уделяющие основное внимание проблемам спецификации и моделирования технических
средств.
Наибольшая потребность в использовании CASE-систем
испытывается на начальных этапах разработки, а именно на этапах анализа и
спецификации требований к ЭИС, Это объясняется тем, что цена ошибок, допущенных
на начальных этапах, на несколько порядков превышает цену ошибок, выявленных на
более поздних этапах разработки.
Появлению CASE-технологии
предшествовали исследования в области методологии программирования.
Программирование обрело черты системного подхода с разработкой и внедрением
языков высокого уровня, методов структурного и модульного программирования,
языков проектирования и средств их поддержки, формальных и неформальных языков
описания системных требований и спецификаций и т.д. Кроме того, этому
способствовали перечисленные ниже факторы:
•
подготовка аналитиков и программистов, восприимчивых к концепциям модульного и
структурного программирования;
•
широкое внедрение и постоянный рост производительности персональных ЭВМ,
позволяющих использовать эффективные графические средства и автоматизировать
большинство этапов проектирования;
•
внедрение сетевой технологии, предоставившей возможность объединения усилий
отдельных исполнителей в единый процесс проектирования путем использования
разделяемой базы данных, содержащей необходимую информацию о проекте.
Преимущества CASE-технологии по
сравнению с традиционной технологией оригинального проектирования сводятся к
следующему:
•
улучшение качества разрабатываемого программного приложения за счет средств
автоматического контроля и генерации;
•
возможность повторного использования компонентов разработки;
•
поддержание адаптивности и сопровождения ЭИС;
•
снижение времени создания системы, что позволяет на ранних стадиях
проектирования получить прототип будущей системы и оценить его;
•
освобождение разработчиков от рутинной работы по документированию проекта, так
как при этом используется встроенный документатор;
•
возможность коллективной разработки ЭИС в режиме реального времени.
CASE-технология в рамках методологии
включает в себя методы, с помощью которых на основе графической нотации
строятся диаграммы, поддерживаемые инструментальной средой.
Методология определяет шаги и этапность реализации проекта, а
также правила использования методов, с помощью которых разрабатывается проект.
Метод - это процедура или техника генерации описаний
компонентов ЭИС (например, проектирование потоков и структур данных).
Нотация - отображение структуры системы, элементов
данных, этапов обработки с помощью специальных графических символов диаграмм,
а также описание проекта системы на формальных и естественных языках.
Инструментальные средства CASE
- специальные программы, которые поддерживают одну или несколько
методологий анализа и проектирования ИС.
Ядром системы является база данных проекта - репозиторий
(словарь данных). Он представляет собой специализированную базу данных,
предназначенную для отображения состояния проектируемой ЭИС в каждый момент
времени. Объекты всех диаграмм синхронизированы на основе общей информации
словаря данных.
Репозиторий содержит информацию об объектах проектируемой ЭИС
и взаимосвязях между ними, все подсистемы обмениваются данными с ним. В
репозитории хранятся описания следующих объектов:
•
проектировщиков и их прав доступа к различным компонентам системы;
•
организационных структур;
•
диаграмм;
•
компонентов диаграмм;
•
связей между диаграммами;
•
структур данных;
•
программных модулей;
•
процедур;
•
библиотеки модулей и т.д.
Графические средства моделирования предметной области
позволяют разработчикам автоматизированных ИС в наглядном виде изучать
существующую информационную систему, перестраивать ее в соответствии с
поставленными целями и имеющимися ограничениями. Все модификации диаграмм,
выполняемых разработчиками в интерактивном (диалоговом) режиме, вводятся в
словарь данных, контролируются с общесистемной точки зрения и могут
использоваться для дальнейшей генерации действующих функциональных приложений. В
любой момент времени диаграммы могут быть распечатаны для включения в
техническую документацию проекта.
Графический редактор диаграмм предназначен для отображения в
графическом виде в заданной нотации проектируемой ЭИС. Он позволяет выполнять
следующие операции:
•
создавать элементы диаграмм и взаимосвязи между ними;
•
задавать описания элементов диаграмм;
•
задавать описания связей между элементами диаграмм;
•
редактировать элементы диаграмм, их взаимосвязи и описания.
Верификатор диаграмм служит для контроля правильности
построения диаграмм в заданной методологии проектирования ЭИС. Он выполняет
следующие функции:
•
мониторинг правильности построения диаграмм;
•
диагностику и выдачу сообщений об ошибках;
•
выделение на диаграмме ошибочных элементов.
Документатор проекта позволяет получать информацию о состоянии
проекта в виде различных отчетов. Отчеты могут строиться по нескольким
признакам, например по времени, автору, элементам диаграмм, диаграмме или
проекту в целом.
Администратор проекта представляет собой инструменты,
необходимые для выполнения следующих административных функций:
•
инициализации проекта;
•
задания начальных параметров проекта;
•
назначения и изменения прав доступа к элементам проекта;
•
мониторинга выполнения проекта.
Сервис представляет собой набор системных утилит по
обслуживанию репозитория. Данные утилиты выполняют функции архивации данных,
восстановления данных и создания нового репозитория.
Современные CASE-системы
классифицируются по следующим признакам:
1) по поддерживаемым методологиям проектирования:
функционально (структурно)-ориентированные, объектно-ориентированные и
комплексно-ориентированные (набор методологий проектирования);
2) по
поддерживаемым графическим нотациям построения диаграмм: с фиксированной
нотацией, с отдельными нотациями и наиболее распространенными нотациями;
3) по
степени интегрированности: tools (отдельные
локальные средства), toolkit (набор неинтегрированных
средств, охватывающих большинство этапов разработки ЭИС) и
workbench (полностью интегрированные средства, связанные общей базой
проектных данных - репозиторием);
4) по
типу и архитектуре вычислительной техники: ориентированные на ПЭВМ,
ориентированные на локальную вычислительную сеть (ЛВС), ориентированные на
глобальную вычислительную сеть (ГВС) и смешанного типа;
5) по
режиму коллективной разработки проекта: не поддерживающие коллективную
разработку, ориентированные на режим реального времени разработки проекта,
ориентированные на режим объединения подпроектов;
6) по
типу операционной системы (ОС): работающие под управлением
WINDOWS 3.11 и выше; работающие под управлением
UNIX и работающие под управлением различных ОС (WINDOWS,
UNIX, OS/2 и др.).
В разряд CASE-систем попадают как
относительно дешевые системы для персональных компьютеров с ограниченными
возможностями (такие, как редакторы диаграмм), так и дорогостоящие системы для
больших ЭВМ.
Современные CASE-системы охватывают
обширную область поддержки различных технологий проектирования и
программирования: от простых средств анализа и документирования ИС до
полномасштабных средств автоматизации, покрывающих весь жизненный цикл ИС.
Помимо поддержки начальных этапов разработки важное значение
приобретают CASE-системы, ориентированные на
проектирование и генерацию баз данных и пользовательских интерфейсов.
Генерация интерфейсов с базами данных и возможность
преобразования (конвертирования) между различными концептуальными схемами и
моделями данных увеличивает мобильность прикладных систем при переходе в другие
операционные среды. Генерация кода и (или) таблиц, описывающих интерфейс
прикладной системы с базой данных, не только позволяет сократить время
разработки, но и дает возможность отделить разработку приложений от ведения
архива проектной документации.
Наиболее трудоемкими этапами разработки ИС являются этапы
анализа и проектирования, поэтому CASE-системы, как
правило, предназначены для автоматизации отслеживания качества принимаемых
проектных решений и подготовки документации. При этом большую роль играют
методы визуального представления информации. Это предполагает построение
структурных или иных диаграмм в реальном масштабе времени, использование
многообразной цветовой палитры, сквозную проверку синтаксических правил.
Стратегия выбора CASE-систем для
конкретного применения зависит как от целей и потребностей самого проекта, так и
от квалификации вовлеченных в процесс проектирования специалистов. В
большинстве случаев одно средство не может обеспечить все потребности проекта.
Разработчики, как правило, применяют набор средств. Например, одно средство
наилучшим образом подходит для анализа, а другое - для проектирования систем. В
общем случае при выборе CASE-системы необходимо
учитывать следующие аспекты.
• Наличие базы проектных данных, архива или словаря.
СУБД и словари данных обеспечивают высокую степень интеграции данных и
предоставляют широкие возможности для централизованного сбора, хранения и
распределения проектной информации между различными этапами проекта и
выполняемыми операциями.
•
Интерфейсы с другими CASE-системами. В процессе
проектирования ЭИС могут использоваться различные методологии, поэтому важно,
чтобы используемые CASE-системы предоставляли
возможности для эффективного использования нескольких методов. При этом должна
быть обеспечена терминологическая совместимость различных методологий.
•
Возможности экспорта/импорта. Спецификации, полученные на этапах анализа,
проектирования и кодирования для одной ЭИС, могут быть использованы для
проектирования другой системы. Повторное проектирование и кодирование могут быть
обеспечены при помощи средств экспорта/импорта спецификаций в различные
CASE-системы.
•
Многопользовательский режим. Развитые CASE-системы
должны обладать возможностями разделения полномочий персонала разработчиков и
объединения отдельных работ в общий проект.
•
Открытая архитектура. Открытая к доступу проектировщиков информация об
используемых форматах файлов и интерфейсах должна позволять безболезненно
переходить от одной CASE-системы к другой.
•
Расширение новыми методологиями. Как и любое программное средство,
CASE-система должна обладать возможностью
совершенствоваться с учетом появления новых требований или новых предметных
областей.
•
Наличие графических средств поддержки методологий проектирования.
Большинство CASE-систем базируется на графическом
отображении методологий. Графические элементы структурных диаграмм и объекты
словаря должны позволять декомпозировать различные компоненты проекта и
детализировать изображения с той степенью, с какой это необходимо для
понимания проектных решений.
•
Обеспечение качества проектной документации. Это требование относится к
возможностям CASE-системы анализировать и проверять
описания и документацию на полноту и непротиворечивость, а также на
соответствие принятым в данной методологии стандартам и правилам. В результате
анализа должна формироваться информация, указывающая на имеющиеся противоречия
или неполноту проектной документации, находящейся в архиве или словаре.
•
Автоматическая генерация отчетов о проектных решениях. Решения
(спецификации), созданные в процессе проектирования, служат источником
документирования системы. Часто возникает потребность получения твердой копии
спецификаций в текстовой или графической форме.
•
Генерация кодов программ. CASE-системы с жесткой
ориентацией на конкретные СУБД должны обеспечивать возможность генерации
программ в среде этих СУБД.
•
Планирование и управление проектом. Использование CASE-систем
не исключает потребности в эффективном управлении проектом. Многие развитые
CASE-системы имеют в своем составе средства
планирования и управления проектом. Спецификации, которые используются этими
средствами, представляют собой опорные точки управления, позволяющие определять
сроки разработки.
Функционально-ориентированное проектирование ЭИС
Основными идеями функционально-ориентированной
CASE-технологии являются идеи структурного анализа и
проектирования информационных систем. Они заключаются в следующем:
1)
декомпозиция всей системы на некоторое множество иерархически подчиненных
функций;
2)
представление всей информации в виде графической нотации. Систему всегда легче
понять, если она изображена графически.
В качестве инструментальных средств структурного анализа и
проектирования выступают следующие диаграммы:
•
BFD (Bussiness Function Diagram)
- диаграмма бизнес-функций (функциональные спецификации);
•
DFD (Data Flow Diagram) -
диаграмма потоков данных;
•
STD (State Transition Diagram)
- диаграмма переходов состояний (матрицы перекрестных ссылок);
•
ERD (Entity Relationship Diagram)
- ER-модель данных предметной области
(информационно-логические модели «сущность-связь»);
•
SSD (System Structure Diagram)
- диаграмма структуры программного приложения.
Диаграммы функциональных спецификаций позволяют
представить общую структуру ИС, отражающую взаимосвязь различных задач
(процедур) в процессе получения требуемых результатов. Основными объектами
BFD являются:
• Функция
- некоторое действие информационной системы, необходимое для решения
экономической задачи;
•
Декомпозиция функции - разбиение функции на множество подфункций.
Диаграммы потоков данных (ДПД), как правило, жестко
ориентированы на какую-либо технологию обработки данных и отражают передачу
информации от одной функции к другой в рамках заданной технологии обработки. В
узлах диаграммы потоков данных (прямоугольниках) отражаются процедуры, а
стрелками между узлами показываются потоки данных (над стрелками задаются имена
передаваемых/используемых единиц информации - документов, экранных форм,
файлов).
ДПД - показывает внешние по отношению к системе
источники данных и адресатов, которые принимают информацию от системы, а также
идентифицируют хранилища данных (накопители данных), к которым осуществляется
доступ системы. Каждая логическая функция системы (бизнес-функция) описывается
своей ДПД. Причем эта ДПД может иерархически детализировать функцию на ее
подфункции.
Потоки данных - являются механизмами, которые
показывают передачу информации от одного процесса к другому. На схемах они
обычно отражаются направленной стрелкой, которая показывает направление движения
информации или материалов (могут отражаться материальные потоки).
Процесс - его функция состоит в преобразовании входной
информации в выходную. Имя процесса всегда должно содержать глагол в
неопределенной форме с последующим дополнением (например, «нарисовать форму»).
Хранилище информации - позволяет на определенных
участках ДПД сохранить в памяти данные между процессами. Хранилище не
обязательно представлено магнитным носителем (например, папка бумаг). Имя
хранилища должно идентифицировать его, а также его содержимое, выражается
существительным.
Внешняя сущность (источник/приемник данных) -
представляет некоторый объект вне системы, являющийся внешним объектом.
Контекстная диаграмма - самый верхний процесс
(ТОР-уровень) декомпозиции системы, который отражает общие представления о
системе. В контекстной диаграмме есть 1 процесс, с которым связаны внешние
сущности.
Далее контекстная диаграмма декомпозируется на основные
процессы, которые происходят в системе. Каждый основной процесс может быть
декомпозирован на более мелкие процессы. При иерархическом построении ДПД каждый
процесс более низкого уровня нужно соотнести с процессом более высокого уровня.
Обычно для этого используют механизм наследования узлов.
Целью построения иерархически взаимосвязанных ДПД является
необходимость сделать требования к системе ясными на каждом уровне детализации.
Для этого надо пользоваться следующими рекомендациями:
• на
каждом уровне представлять 3-6 процессов и не более;
• не
загромождать диаграмму несущественными моментами на данном уровне детализации;
•
декомпозицию процессов и потоков вести параллельно;
•
выбирать ясные, отражающие суть объектов, имена для всех объектов ДПД;
•
однократно определять функционально идентичные процессы (в других местах просто
ссылаться на этот процесс);
•
использовать ДПД для процессов, которые можно с помощью них описать.
Диаграммы переходов состояний (ДПС) моделируют
поведение системы во времени в зависимости от происшедших событий (нажатая
клавиша, дата отчетного периода и т.д.). Такие диаграммы позволяют осуществить
декомпозицию управляющих процессов, происходящих в системе, и описать отношение
между управляющими потоками. С помощью ДПС можно моделировать последующее
функционирование системы исходя из предыдущих и текущего состояний.
Моделируемая система в текущий момент времени находится только
в одном состоянии из всего множества состояний. В течение времени она может
изменить свое состояние и тем самым перейти в следующее состояние из заданного
множества состояний. Для перехода в состояние нужно какое-либо особое условие –
условие перехода. Оно может быть информационным (условие появления информации)
или временным.
Состояние - рассматривается как устойчивое значение
некоторого свойства в течение определенного времени. Находясь в текущем
состоянии, необходимо знать о предыдущих состояниях, чтобы определить условие
перехода в последующее состояние.
Начальное состояние - это узел ДПС, являющийся
стартовой точкой для начального системного перехода. ДПС имеет только одно
начальное состояние, но может иметь множество конечных состояний.
Переход - определяет перемещение моделируемой системы
из одного состояния в другое. При этом имя перехода - это событие, которое
вызвало этот переход. Переход может быть вызван каким-либо действием ( например,
нажатием клавиши).
Триггер - логическое выражение, написанное на
макроязыке, которое показывает условие перехода в данное состояние.
Условие перехода - событие, вызывающее переход и
идентифицируемое именем перехода.
Диаграммы инфологических моделей «сущность-связь» (ER-диаграммы)
ориентированы на разработку базы данных, структура которой не зависит от
конкретных информационных потребностей и позволяет выполнять любые запросы
пользователей.
ERD-диаграмма «сущность-связь»
представляет собой набор множества объектов и их характеристик, а также
взаимосвязей между ними, нужных для выявленных данных, которые в дальнейшем
используются функциями проектируемой системы.
Сущность - представляет собой множество экземпляров
реальных или абстрактных объектов, которые обладают общими свойствами
(атрибутами).
Отношение - связь между 2 и более сущностями (должны
создать имя в виде глагола).
Независимая сущность - представляет независимые данные,
которые всегда присутствуют в системе.
Зависимая сущность - представляет данные, которые
зависят от других сущностей.
Диаграмма структуры программного приложения (SSD)
задает взаимосвязь функций и программных модулей, которые их реализуют
(меню, формы,отчеты и т.д.)
Структура программного приложения (SSD)
представляет собой иерархическую взаимосвязь программных модулей, которые
реализует ИС SSD служит мостом для перехода от
системных требований, которые отображены в предыдущих диаграммах (BFD,
DFD, STD,
ERD), к реализации информационной системы.
Объектно-ориентированное проектирование ЭИС
Структурная декомпозиция ИС на основе
объектно-ориентированного подхода отличается от функционально-ориентированного
подхода лучшей способностью отражать динамическое поведение системы в
зависимости от возникающих событий. В этом плане модель проблемной области
рассматривается как совокупность взаимодействующих во времени объектов. Тогда
конкретный процесс обработки информации формируется в виде последовательности
взаимодействий объектов. Одна операция обработки данных может рассматриваться
как результат одного взаимодействия объектов.
Конечным результатом процесса объектно-ориентированного
проектирования должно стать множество классов объектов с присоединенными
методами обработки атрибутов. Если в функциональном подходе модели данных и
операций разрабатываются относительно независимо друг от друга и только
координируются между собой, то объектно-ориентированный подход предполагает
совместное моделирование данных и процессов. При этом модели проблемной области
в репозитории постепенно уточняются.
В связи с этим система объектно-ориентированных моделей
последовательно разворачивается по направлению от модели общего представления
функциональности ЭИС к модели динамического взаимодействия объектов, на основе
которой могут быть сгенерированы классы объектов в конкретной
программно-технической среде.
В настоящее время для объектно-ориентированного моделирования
проблемной области широко используется унифицированный язык моделирования
UML (Unified Modeling Language),
который разработан группой ведущих компьютерных фирм мира OMG
(Object Management Group)] и фактически является
стандартом по объектно-ориентированным технологиям. Язык UML
реализован многими фирмами - производителями программного обеспечения в рамках
CASE-технологий, например Rational
Rose (Rational), Natural
Engineering Workbench (Software AG),
ARIS Toolset (IDS prof.
Scheer) и др.
Система объектно-ориентированных моделей в соответствии с
нотациями UML включает в себя следующие диаграммы:
1)
диаграмму прецедентов использования (Use-case
diagram), которая отображает функциональность ЭИС в виде совокупности
выполняющихся последовательностей транзакций;
2)
диаграмму классов объектов (Class diagram), которая
отображает структуру совокупности взаимосвязанных классов объектов аналогично
ER-диаграмме функционально-ориентированного подхода;
3)
диаграммы состояний (Statechart diagram), каждая из
которых отображает динамику состояний объектов одного класса и связанных с ними
событий;
4)
диаграммы взаимодействия объектов (Interaction diagram),
каждая из которых отображает динамическое взаимодействие объектов в рамках
одного прецедента использования;
5)
диаграммы деятельностей (Activity diagram), которые
отображают потоки работ во взаимосвязанных прецедентах использования (могут
декомпозироваться на более детальные диаграммы);
6)
диаграммы пакетов (Package diagram), которые
отображают распределение объектов по функциональным или обеспечивающим
подсистемам (могут декомпозироваться на более детальные диаграммы);
7)
диаграмму компонентов (Component diagram), которая
отображает физические модули программного кода;
8)
диаграмму размещения (Deployment diagram), которая
отображает распределение объектов по узлам вычислительной сети.
Диаграмма прецедентов использования
Диаграмма прецедентов использования выявляет основные
бизнес-процессы как последовательности транзакций, которые должны выполняться
целиком, когда выполнение обособленного подмножества действий не имеет значения
без выполнения всей последовательности. Прецеденты использования инициируются из
внешней среды пользователями ЭИС, называемыми актерами. На этом уровне
моделирования не раскрывается механизм реализации процессов. Представленные
сущности имеют следующие графические обозначения:
Актер инициирует выполнение прецедента использования и
получает от него результаты. Взаимодействие (ассоциация) актера с прецедентом
использования осуществляется в результате события, которое обозначается
поименованной стрелкой. Один актер может участвовать в нескольких прецедентах
использования, а в одном прецеденте использования может быть занято несколько
актеров.
В реализации прецедента использования возможно выделение
нескольких потоков событий:
• основной поток,
событий, который приводит к требуемому результату наиболее коротким путем,
например выполнение заказа без задержек;
• альтернативные
потоки событий, например временное откладывание или полный отказ от выполнения
заказов.
Основной и альтернативный потоки событий в модели пре
цедентов использования описываются в виде неформальных текстовых комментариев.
Несколько прецедентов использования может иметь общую часть,
выделяемую в самостоятельный прецедент использования, с которым устанавливаются
отношения использования (uses). С другой стороны,
некоторые прецеденты использования могут быть расширены деталями. В таком случае
создается дополнительный прецедент использования, с которым устанавливаются
отношения расширения (extends).
Диаграммы классов объектов (Class diagram)
Диаграммы классов объектов (Class diagram)
отображают статическую структуру классов объектов. Эта диаграмма рассматривает
внутреннюю структуру проблемной области, иерархию классов объектов, статические
связи объектов.
Классы объектов могут иметь различные стереотипы поведения:
объекты-сущности, управляющие объекты, интерфейсные объекты:
Интерфейсный объект (Interface Object)
- активный объект, форма взаимодействия информационной системы с пользователем
(экранная форма, меню, командная строка, кнопка).
Управляющий
объект (Control Object) - активный объект,
координирующий выполнение функций.
Сущность
(Entity Object) - пассивный объект, над которым
выполняются операции обработки процесса.
Объекты, отражаемые в диаграмме классов объектов, связываются
статическими отношениями, которые отражают постоянные связи между объектами
независимо от выполнения конкретного бизнес-процесса. К статическим отношениям
относятся обобщение, агрегация, ассоциация объектов:
В прямоугольниках в верхней части даны имена классов
объектов, в средней части - имена атрибутов, в нижней части - имена методов.
Диаграммы состояний (Statechart diagram)
Диаграмма состояний отображает поведение объектов одного
класса в динамике, связь состояний объектов с событиями и определяет:
• какие
типичные состояния проходит объект;
• какие
события ведут к изменению состояния объекта;
• какие
действия объект выполняет, когда он получает сообщение об изменении состояния;
• как
объекты создаются и уничтожаются (входные и выходные точки диаграммы).
Ниже представлены используемые в диаграмме состояний понятия и
их графическое обозначение:
Входная точка определяет событие, которое образует
начальное состояние объекта. В точку входа нельзя перейти из состояния
объекта.
Выходная точка определяет завершение существования
объекта. Из точки выхода нет перехода состояния.
Состояние представляет ситуацию, в течение которой
выполняется непрерывная деятельность или объект находится в стационарном
положении. Состояние определяется как набор значений атрибутов и отношений,
связанных с объектом. Имя состояния должно быть уникальным только внутри класса
объекта, для которого оно определяется.
С каждым состоянием связано одно событие или более, которые
могут его изменить. Для состояния задаются имена всех связанных с ним переходов
в другие состояния.
Переход состояний определяет изменение в состоянии
объекта, которое происходит в результате события, возникшего в то время, когда
объект находился в данном состоянии. Каждый переход состояний должен иметь
уникальное имя.
Переход состояний описывается следующими атрибутами.
Назначение - состояние объекта, в которое перейдет
объект после перехода состояния.
Вызов - имя события, которое вызывает переход
состояний. Имена событий должны быть идентичными в определении класса и
состояния. Вызываемые события могут быть либо внешними, осуществляемыми
актерами, либо внутренними, связанными с поведением других объектов, либо
временными, связанными с истечением заданного интервала времени.
Условие перехода - это логическое выражение, связанное
с атрибутами объекта, которое должно быть проверено для выбора перехода
состояния. Условие перехода задается в том случае, если происходит событие, в
результате которого может произойти неоднозначный переход состояний. Условия
переходов для одного исходного состояния должны быть взаимоисключающими.
Действие - атрибут, информационно описывающий сущность
действия, которое должно выполняться при переходе состояний. Этому действию
будет соответствовать некоторая процедура, реализующая метод класса объектов.
Переход состояний графически помечается меткой линии, на
которой задается по крайней мере один из следующих атрибутов: Вызов, Условие
перехода, Действие.
Диаграмма взаимодействия объектов (interaction
diagram)
Для каждого прецедента использования может быть построена
модель динамического взаимодействия объектов, которая представляется в одной из
двух форм:
• в
форме диаграммы последовательностей (sequence diagram),
показывающей последовательность взаимодействий на графе;
• в
форме кооперативной диаграммы (collaboration diagram),
показывающей взаимодействие объектов в табличной форме.
• В
диаграмме последовательностей взаимодействие объектов отображается в виде
стрелки между объектами, которая соответствует событию или сообщению от одного
объекта к другому, вызывающему выполнение метода, реагирующего на событие
(сообщение) объекта. Номер стрелки соответствует номеру события в
последовательности.
Диаграмма кооперативного поведения представляется в табличном
виде по следующим правилам.
1. В столбцах таблицы
указываются объекты всех типов, участвующие в реализации прецедента
использования. Порядок расположения активных и пассивных объектов произволен и
должен быть удобен для понимания модели. Актеры прецедента использования
отображаются на правой и левой границах таблицы.
2.
По горизонтали проводятся поименованные стрелки, отражающие
взаимодействие (коммуникацию) объектов в рамках одной операции. Эта стрелка
означает, что первый объект в рамках выполняемой операции посылает сообщение
второму объекту о необходимости выполнения действия. При получении сообщения
второй объект выполняет действие.
3. На пересечении строк и столбца вертикально отображается
условный отрезок времени, в течение которого выполняется то или иное действие
над объектом.
Диаграмма деятельностей
Диаграммы взаимодействий не отражают детально порядок
выполнения операций в части разветвлений, циклических повторений,
параллельности/произвольности действий. Диаграмма деятельностей исправляет
данные недостатки. Под деятельностью будем понимать некоторую работу, которая
может быть декомпозирована на совокупность действий.
Диаграмма деятельностей может отражать взаимодействие объектов
из нескольких прецедентов использования, в частности реализующих отдельно
стандартные и альтернативные пути обработки объектов.
Блок, соответствующий одной деятельности, может отражать
несколько событий и быть декомпозирован аналогично блоку
функционально-ориентированного подхода.
Диаграммы пакетов
В объектно-ориентированном подходе пакет содержит
множество взаимосвязанных классов объектов и соответствует понятию «подсистема
функционально-ориентированного подхода». Один прецедент использования может
требовать классы объектов из разных пакетов. Класс объектов обычно назначается
одному пакету, но с позиции достижения разных подцелей может входить в состав
разных пакетов.
Пакетная технология группирования классов объектов позволяет
упростить:
•
разработку и эксплуатацию ИС;
•
гибкую адаптацию типовых компонентов с позиции их повторного использования;
• оптимизацию клиент-серверной архитектуры ИС.
Обычно ИС разбивается на функциональные и обеспечивающие
пакеты. Функциональные пакеты, соответствующие решаемым проблемам (задачам),
объединяются в один общий пакет «Проблемная область». Каждый пакет, в свою
очередь, может быть разбит на подпакеты в соответствии с семантической близостью
и теснотой взаимодействия классов объектов. Обычно пакеты проблемной области
содержат иерархии обобщения и агрегации. Классы объектов, требуемые в
несколькихподсистемах, выделяются в самостоятельные пакеты. В одном пакете, как
правило, определяется не более 20 компонентов, обычно 5-15.
С обеспечивающей точки зрения ЭИС разбивают на пять основных
пакетов:
•
«Интерфейс», объекты которого реализуют функции взаимодействия пользователей с
ЭИС по вводу-выводу информации и обмен сообщениями между подсистемами;
• «База
данных», объекты которого выполняют доступ к данным во внешней памяти;
•
«Управление задачами», объекты которого осуществляют функции диспетчеризации и
маршрутизации обработки объектов, например в системе управления рабочими
потоками;
•
«Утилиты», объекты которого осуществляют вспомогательные функции, например
преобразование форматов данных;
•
Обеспечивающие пакеты, т.е. работающие по принципу «клиент-серверной»
архитектуры, выполняющие серверные функции для функциональных
объектов-клиентов. Таким образом, обеспечивающие пакеты освобождают пользователя
от знания деталей программно-технической реализации ЭИС.
Диаграммы компонентов и размещения
Диаграмма компонентов отображает зависимости программных
компонентов, которые представляются в виде исходных, откомпилированных и
исполняемых программных кодов объектов. Один компонент, как правило,
соответствует программному коду одного пакета классов объектов.
Компонент в своем составе имеет интерфейсный класс объектов,
через который осуществляется доступ к остальным классам объектов компонента. С
помощью интерфейса объекты других компонентов обращаются не к конкретным
объектам рассматриваемого компонента, а к его интерфейсному объекту. Таким
образом упрощается взаимодействие компонентов между собой, когда при доступе к
компоненту из других компонентов не требуется знать внутреннюю структуру этого
компонента. Компонент, к которому осуществляется обращение, может быть
необъектно-ориентированным. Достаточно, чтобы у такого компонента был только
один интерфейсный класс объектов, который транслирует запросы к компоненту в
вызовы обычных процедур. У компонентов может быть несколько интерфейсов.
Прототипное проектирование ЭИС (RAD-технология)
С появлением корпоративных экономических информационных
систем, базирующихся на архитектуре «клиент-сервер», появляется естественная
возможность ускорения разработки приложений за счет параллельного создания
клиентской и серверной частей. Однако реально использовать преимущества такой
архитектуры оказалось очень непросто из-за резко возросшей сложности создания
приложений в гетерогенной среде. Кроме естественной сложности создания
приложений в неоднородной среде существует тенденция к усложнению приложений с
течением времени. В этих условиях процесс разработки информационных систем
традиционным каскадным методом может затянуться на длительное время, а
соответствие результата потребностям заказчика не гарантируется.
Основное желание заказчика ИС - получить готовое приложение
высокого качества быстро при минимальных затратах на его разработку. Кроме того,
вкладывая значительные средства на создание системы, заказчики желают
контролировать процесс разработки. Критерием качества должно быть наиболее
полное удовлетворение требований заказчиков на момент введения системы в
эксплуатацию.
Одним из условий обеспечения высокого качества создаваемых ИС
является активное вовлечение конечных пользователей в процесс разработки
предназначенных для них интерактивных систем, что нашло отражение в методологии
прототипного проектирования. Ядром этой методологии является быстрая разработка
приложений RAD (Rapid Application
Development).
Область самостоятельной разработки информационных систем
(точнее, приложений) конечными пользователями ограничена. Такой вариант может
быть применим для решения простых задач информационно-поискового и сводного
характера.
При создании более сложных корпоративных ИС пользователям
необходимо работать совместно с проектировщиками на протяжении всего периода
разработки. Одним из путей повышения качества и эффективности создаваемых таким
образом систем является применение технологии прототипного проектирования.
Данная технология обеспечивает создание на ранней стадии
реализации действующей интерактивной модели системы, так называемой
системы-прототипа, позволяющей наглядно продемонстрировать пользователю
будущую систему, уточнить его требования, оперативно модифицировать интерфейсные
элементы: формы ввода сообщений, меню, выходные документы, структуру диалога,
состав реализуемых функций.
В процессе работы с системой-прототипом пользователь реально
осознает возможности будущей системы и определяет наиболее удобный для него
режим обработки данных, что значительно повышает качество создаваемых систем.
Осуществляются проверка принципиальных проектных решений по составу и структуре
ИС и оценка основных ее эксплуатационных характеристик.
Вовлечение пользователей в процесс проектирования и
конструирования приложения позволяет получать замечания и дополнения к
требованиям непосредственно в процессе проектирования приложения, сокращая
время разработки. Представители заказчика получают возможность контролировать
процесс создания системы и влиять на ее функциональное наполнение. Результатом
является сдача в эксплуатацию системы, учитывающей большинство потребностей
заказчиков.
Согласованная система-прототип служит спецификацией для
дальнейшей разработки ЭИС, что позволяет на ранних этапах проектирования выявить
возможные ошибки проектирования и определить параметры будущей системы.
Все приемы для быстрой разработки приложений
RAD служат одновременно для обеспечения высокого
качества продукта и низкой стоимости разработки. К числу этих приемов
относятся:
1)
разработка приложения итерациями;
2)
необязательность полного завершения работ на каждом из этапов жизненного цикла
для начала работ на следующем;
3)
обязательное вовлечение пользователей в процесс проектирования и построения
системы;
4) высокая
параллельность работ,
5)
повторное использование частей проекта;
6)
необходимое применение CASE-средств, обеспечивающих
техническую целостность на этапах анализа и проектирования;
7)
применение средств управления конфигурациями, облегчающее внесение изменений в
проект и сопровождение готовой системы;
8)
использование автоматических генераторов (мастеров);
9)
использование прототипирования, позволяющего полнее выяснить и удовлетворить
потребности конечного пользователя;
10) тестирование и развитие проекта, осуществляемые
одновременно с разработкой нескольких версий прототипа.
Каждое из перечисленных положений в отдельности способствует
повышению скорости, улучшению качества, но только их совместное применение
вызывает качественные изменения в процессе разработки.
Неполное завершение работ на каждом этапе позволяет
переходить на следующий этап, не дожидаясь полного завершения работы на текущем
этапе. При итеративном способе разработки ЭИС недостающую работу можно будет
выполнить на следующей итерации. Главная же задача - как можно быстрее показать
пользователям системы работоспособный продукт, тем самым активизируя процесс
уточнения и дополнения требований.
Основная проблема процесса разработки ИС по
RAD-технологии заключается в определении момента перехода на следующий
этап. Для ее решения необходимо ввести временные ограничения на каждый из
этапов жизненного цикла. Переход осуществляется в соответствии с планом, даже
если не вся запланированная работа закончена. План составляется на основе
статистических данных, полученных в предыдущих проектах, и личного опыта
разработчиков с использованием инструментов автоматизации процесса
планирования. Средства автоматизации планирования являются важным элементом при
разработке приложений по методологии RAD. Они
применяются для определения состава и объема работ, необходимого числа
разработчиков, распределения работ между участниками проекта, контроля за ходом
выполнения работ и динамической корректировкой плана.
Для реализации технологии прототипного проектирования
необходимо применять высокоуровневые инструментальные средства, которые
позволяют быстро преобразовать прототип системы в функционирующую версию и
внести в нее в дальнейшем необходимые изменения.