
- •Отношения между прецедентами
- •Взаимосвязи
- •Ассоциации
- •Агрегация
- •Композиция
- •Различия между композицией и агрегацией
- •Обобщение (наследование)
- •Реализация
- •Зависимость
- •Уточнения отношений
- •Мощность отношений (Кратность)
- •Диаграмма обзора взаимодействия
- •Диаграмма синхронизации
- •Диаграмма развёртывания
- •Основные сведения
- •Использование
- •История
- •[Править]uml 2.X
- •Основные понятия er-диаграмм
Использование
Использование UML не ограничивается моделированием программного обеспечения. Его также используют для моделирования бизнес-процессов, системного проектирования и отображения организационных структур.
UML позволяет также разработчикам программного обеспечения достигнуть соглашения в графических обозначениях для представления общих понятий (таких как класс, компонент, обобщение (англ. generalization), агрегация (англ. aggregation) и поведение) и больше сконцентрироваться на проектировании и архитектуре.
История
До UML 1.x
В 1994 году Гради Буч и Джеймс Рамбо, работавшие в компании Rational Software, объединили свои усилия для создания нового языка объектно-ориентированного моделирования. За основу языка ими были взяты методы моделирования, разработанные Бучем и Рамбо (Object-Modeling Technique, OMT). OMT был ориентирован на анализ, а Booch — на проектирование программных систем. В октябре 1995 года была выпущена предварительная версия 0.8 унифицированного метода (англ. Unified Method). Осенью 1995 года к компании Rational присоединился Ивар Якобсон, автор метода Object-Oriented Software Engineering — OOSE. OOSE обеспечивал превосходные возможности для спецификации бизнес-процессов и анализа требований при помощи сценариев использования. OOSE был также интегрирован в унифицированный метод.
На этом этапе основная роль в организации процесса разработки UML перешла к консорциуму OMG (Object Management Group). Группа разработчиков в OMG, в которую также входили Буч, Рамбо и Якобсон, выпустила спецификации UML версий 0.9 и 0.91 в июне и октябре 1996 года.
UML 1.x
На волне растущего интереса к UML к разработке новых версий языка в рамках консорциума UML Partners присоединились такие компании, как Digital Equipment Corporation, Hewlett-Packard, i-Logix, IntelliCorp, IBM, ICON Computing, MCI Systemhouse, Microsoft, Oracle Corporation, Rational Software, Texas Instruments и Unisys. Результатом совместной работы стала спецификация UML 1.0, вышедшая в январе1997 года. В ноябре того же года за ней последовала версия 1.1, содержавшая улучшения нотации, а также некоторые расширения семантики.
Последующие релизы UML включали версии 1.3, 1.4 и 1.5, опубликованные, соответственно, в июне 1999, сентябре 2001 и марте 2003 года.
[Править]uml 2.X
Формальная спецификация последней версии UML 2.0 опубликована в августе 2005 года. Семантика языка была значительно уточнена и расширена для поддержки методологии Model Driven Development — MDD (англ.). Последняя версия UML 2.4.1 опубликована в августе 2011 года.
UML 1.4.2 принят в качестве международного стандарта ISO/IEC 19501:2005.
Структурный (функциональный) и процессный подходы к разработке информационных систем
Сущность структурного подхода к разработке ИС заключается в ее декомпозиции (разбиении) на автоматизируемые функции: система разбивается на функциональные подсистемы, которые в свою очередь делятся на подфункции, подразделяемые на задачи и так далее. Процесс разбиения продолжается вплоть до конкретных процедур. При этом автоматизируемая система сохраняет целостное представление, в котором все составляющие компоненты взаимоувязаны. При разработке системы "снизу-вверх" от отдельных задач ко всей системе целостность теряется, возникают проблемы при информационной стыковке отдельных компонентов.
Все наиболее распространенные методологии структурного подхода [9,11,12,13] базируются на ряде общих принципов [3]. В качестве двух базовых принципов используются следующие:
принцип "разделяй и властвуй" - принцип решения сложных проблем путем их разбиения на множество меньших независимых задач, легких для понимания и решения;
принцип иерархического упорядочивания - принцип организации составных частей проблемы в иерархические древовидные структуры с добавлением новых деталей на каждом уровне.
Выделение двух базовых принципов не означает, что остальные принципы являются второстепенными, поскольку игнорирование любого из них может привести к непредсказуемым последствиям (в том числе и к провалу всего проекта). Основными из этих принципов являются следующие:
принцип абстрагирования - заключается в выделении существенных аспектов системы и отвлечения от несущественных;
принцип формализации - заключается в необходимости строгого методического подхода к решению проблемы;
принцип непротиворечивости - заключается в обоснованности и согласованности элементов;
принцип структурирования данных - заключается в том, что данные должны быть структурированы и иерархически организованы.
В структурном анализе используются в основном две группы средств, иллюстрирующих функции, выполняемые системой и отношения между данными. Каждой группе средств соответствуют определенные виды моделей (диаграмм), наиболее распространенными среди которых являются следующие:
SADT (Structured Analysis and Design Technique) модели и соответствующие функциональные диаграммы (подраздел 2.2);
DFD (Data Flow Diagrams) диаграммы потоков данных (подраздел 2.3);
ERD (Entity-Relationship Diagrams) диаграммы "сущность-связь" (подраздел 2.4).
На стадии проектирования ИС модели расширяются, уточняются и дополняются диаграммами, отражающими структуру программного обеспечения: архитектуру ПО, структурные схемы программ и диаграммы экранных форм.
Перечисленные модели в совокупности дают полное описание ИС независимо от того, является ли она существующей или вновь разрабатываемой. Состав диаграмм в каждом конкретном случае зависит от необходимой полноты описания системы.
Процессный подход к анализу и моделированию бизнес-процессов и последующей разработке требований к информационным системам, позволяет оперативно сопровождать (изменять и дорабатывать) описанные рациональные технологии работ, безболезненно (параллельно с эксплуатацией) для пользователей модернизировать информационную систему Компании, наращивать мощность базы данных и поддерживать её в актуальном состоянии.
Другим важнейшим преимуществом применения процессного подхода является возможность формализации технологии выполнения работ по реорганизации деятельности предприятий и проектированию информационных систем поддержки рациональных бизнес-процессов. На основе формализации были созданы методическое обеспечение и соответствующая ему автоматизированная технология выполнения работ по бизнес- и ИТ-консалтингу. Данная технология была успешно применена и используется в настоящее время при выполнении проектов для компаний, функционирующих в различных вертикальных нишах рынка.
Управление требованиями к информационной системе. ГОСТы и методология RUP
Перед тем, как управлять требованиями разберемся, что такое требование и что такое управление требованиями и зачем это нужно. Управление требованиями — процесс, включающий идентификацию, выявление, документацию, анализ, отслеживание, приоретизацию требований, достижение соглашений по требованиям и затем управление изменениями и уведомление заинтересованных лиц. Управление требованиями — непрерывный процесс на протяжении всего жизненного цикла продукта. Требование — это любое условие, которому должна соответствовать разрабатываемая система или программное средство. Требованием может быть возможность, которой система должна обладать и ограничение, которому система должна удовлетворять. В соответствии с Глоссарием терминов программной инженерии IEEE, являющимся общепринятым международным стандартным глоссарием, требование это:
Условия или возможности, необходимые пользователю для решения проблем или достижения целей;
Условия или возможности, которыми должна обладать система или системные компоненты, чтобы выполнить контракт или удовлетворять стандартам, спецификациям или другим формальным документам;
Документированное представление условий или возможностей для пунктов 1 и 2. В соответствии со стандартом разработки требований ISO/IEC 29148, требование — это утверждение, которое идентифицирует эксплуатационные, функциональные параметры, характеристики или ограничения проектирования продукта или процесса, которое однозначно, проверяемо и измеримо. Необходимо для приемки продукта или процесса (потребителем или внутренним руководящим принципом обеспечения качества) Так же глоссарий ITILv3 определяет такое понятие, как набор требований — документ, содержащий все требования к продукту, а также к новой или измененной ИТ-услуге. Требование должно обладать следующими характеристиками:
Единичность — требование описывает одну и только одну вещь.
Завершенность — требование полностью определено в одном месте и вся необходимая информация присутствует.
Последовательность — требование не противоречит другим требованиям и полностью соответствует документации.
Атомарность — требование нельзя разделить на более мелкие.
Отслеживаемость — требование полностью или частично соответствует деловым нуждам как заявлено заинтересованными лицами и задокументировано.
Актуальность — требование не стало устаревшим с течением времени.
Выполнимость — требование может быть реализовано в рамках проекта.
Недвусмысленность — требование определено без обращения к техническому жаргону, акронимам и другим скрытым формулировкам. Оно выражает объекты и факты, а не субъективные мнения. Возможна одна и только одна его интерпретация. Определение не содержит нечетких фраз, использование отрицательных и составных утверждений запрещено.
Обязательность — требование представляет собой определенную заинтересованным лицом характеристику, отсутствие которой ведет к неполноценности решения, которая не может быть проигнорирована. Необязательное требование — противоречие самому понятия требования.
Проверяемость — реализованность требования может быть проверена.
В соответствии с ITILv3 все требования в проекте можно разделить на следующие группы:
Функциональные (Functional) — реализуют саму бизнес-функцию.
Управленческие (Manageability) — требования к доступным и безопасным сервисам; относятся к размещению системы, администрированию и безопасности.
Эргономические (Usability) — к удобству работы конечных пользователей.
Архитектурные (Architectural) — требования к архитектуре системы.
Взаимодействия (Interface) — к взаимосвязям между существующими приложениями и программным средствами и новым приложением.
Сервисного уровня (Service Level) — описывают поведение сервиса, качество его выходных данных и другие качественные аспекты, измеряемые заказчиком.
Существуют различные подходы к созданию информационных систем, основанные на определенной модели их жизненного цикла (каскадной, поэтапной с промежуточным контролем, спиральной). Но все эти походы предусматривают обязательное построение бизнес-модели организации, которое выполняется на одном из начальных этапов проекта по созданию или внедрению КИС. Например, канонический подход, рекомендуемый ГОСТ 34.601-90, предусматривает следующие стадии создания КИС: формирование требований к системе; разработка ее концепции; разработка и утверждение технического задания; эскизное проектирование; техническое проектирование; разработка технической документации; ввод в действие; сопровождение системы.
На стадии формирования требований к КИС в качестве первого этапа работ проводится информационное обследование объекта, основным результатом которого является модель деятельности организации.
Модельно-ориентированный подход к типовому проектированию заключается в адаптации состава и характеристик типовой информационной системы к модели объекта автоматизации. Модель строится путем выбора и адаптации фрагментов базовой модели в соответствии с особенностями деятельности организации, выявленными в результате экспертного опроса.
Одним из подходов к разработке программного обеспечения в рамках спиральной модели жизненного цикла является методология быстрой разработки RAD (Rapid Application Development). Создание системы по методологии RAD включает четыре фазы: анализ и планирование требований; проектирование; построение; внедрение.
Здесь функции, которые должна выполнять система, определяют в основном пользователи по результатам информационного обследования на фазе анализа и планирования требований.
В основе методологии RUP (Rational Unified Process), как и многих других программных методологий, объединяющих инженерные методы создания программного обеспечения, лежит «пошаговый подход». Он определяет этапы жизненного цикла, контрольные точки, правила работ для каждого этапа, что позволяет упорядочить проектирование и разработку информационной системы. RUP содержит четыре фазы жизненного цикла проекта по ее созданию: разработка технического задания; разработка технического проекта; создание; внедрение.
Помимо фаз, определяющих временную последовательность работ, в RUP выделяется девять процессов, обычно выполняемых в ходе любого проекта по созданию системы. При этом одним из основных является процесс моделирования бизнес-процессов организации.
Моделирование потоков данных. Основные компоненты диаграмм
В основе данной методологии (методологии Gane/Sarson [11]) лежит построение модели анализируемой ИС - проектируемой или реально существующей. В соответствии с методологией модель системы определяется как иерархия диаграмм потоков данных (ДПД или DFD), описывающих асинхронный процесс преобразования информации от ее ввода в систему до выдачи пользователю. Диаграммы верхних уровней иерархии (контекстные диаграммы) определяют основные процессы или подсистемы ИС с внешними входами и выходами. Они детализируются при помощи диаграмм нижнего уровня. Такая декомпозиция продолжается, создавая многоуровневую иерархию диаграмм, до тех пор, пока не будет достигнут такой уровень декомпозиции, на котором процесс становятся элементарными и детализировать их далее невозможно.
Источники информации (внешние сущности) порождают информационные потоки (потоки данных), переносящие информацию к подсистемам или процессам. Те в свою очередь преобразуют информацию и порождают новые потоки, которые переносят информацию к другим процессам или подсистемам, накопителям данных или внешним сущностям - потребителям информации. Таким образом, основными компонентами диаграмм потоков данных являются:
внешние сущности;
системы/подсистемы;
процессы;
накопители данных;
потоки данных.
Методология функционального моделирования SADT
Методология SADT разработана Дугласом Россом. На ее основе разработана, в частности, известная методология IDEF0 (Icam DEFinition). Методология SADT представляет собой совокупность методов, правил и процедур, предназначенных для построения функциональной модели объекта какой-либо предметной области. Функциональная модель SADT отображает функциональную структуру объекта, т.е. производимые им действия и связи между этими действиями. Основные элементы этой методологии основываются на следующих концепциях:
графическое представление блочного моделирования. Графика блоков и дуг SADT-диаграммы отображает функцию в виде блока, а интерфейсы входа/выхода представляются дугами, соответственно входящими в блок и выходящими из него. Взаимодействие блоков друг с другом описываются посредством интерфейсных дуг, выражающих "ограничения", которые в свою очередь определяют, когда и каким образом функции выполняются и управляются;
строгость и точность. Выполнение правил SADT требует достаточной строгости и точности, не накладывая в то же время чрезмерных ограничений на действия аналитика. Правила SADT включают:
ограничение количества блоков на каждом уровне декомпозиции (правило 3-6 блоков);
связность диаграмм (номера блоков);
уникальность меток и наименований (отсутствие повторяющихся имен);
синтаксические правила для графики (блоков и дуг);
разделение входов и управлений (правило определения роли данных).
отделение организации от функции, т.е. исключение влияния организационной структуры на функциональную модель.
Методология SADT может использоваться для моделирования широкого круга систем и определения требований и функций, а затем для разработки системы, которая удовлетворяет этим требованиям и реализует эти функции. Для уже существующих систем SADT может быть использована для анализа функций, выполняемых системой, а также для указания механизмов, посредством которых они осуществляются.
Диаграмма «сущность–связь» (ERD). Сущность (Entity). Связь (Relationship). Атрибут. Виды идентификации. Подтипы и супертипы
В реальном проектировании структуры базы данных применяются метод - так называемое,семантическое моделирование. Семантическое моделирование представляет собой моделирование структуры данных, опираясь на смысл этих данных. В качестве инструмента семантического моделирования используются различные варианты диаграмм сущность-связь (ER - Entity-Relationship).
Первый вариант модели сущность-связь был предложен в 1976 г. Питером Пин-Шэн Ченом [37]. В дальнейшем многими авторами были разработаны свои варианты подобных моделей (нотация Мартина, нотация IDEF1X, нотация Баркера и др.). Кроме того, различные программные средства, реализующие одну и ту же нотацию, могут отличаться своими возможностями. По сути, все варианты диаграмм сущность-связь исходят из одной идеи - рисунок всегда нагляднее текстового описания. Все такие диаграммы используют графическое изображение сущностей предметной области, их свойств (атрибутов), и взаимосвязей между сущностями.
Мы опишем работу с ER-диаграммами близко к нотации Баркера, как довольно легкой в понимании основных идей. Данная глава является скорее иллюстрацией методов семантического моделирования, чем полноценным введением в эту область.