Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГОС_ПИС.doc
Скачиваний:
19
Добавлен:
26.09.2019
Размер:
2.38 Mб
Скачать

Элементы объектной системы (состояние, поведение, класс, атрибут)

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

12. Язык моделирования uml и его применение

UML (англ. Unified Modeling Language — унифицированный язык моделирования) — Объектно-ориентированный графический язык для визуализации, специфицирования, конструирования и документирования систем, где большая роль отводится описанию бизнес-процессов в информационных системах. UML является языком широкого профиля, это открытый стандарт, использующий графические обозначения для создания абстрактной модели системы, которая называется UML моделью. UML был создан для определения, визуализации, проектирования и документирования по большей части программных систем.

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

UML представляет собой объектно-ориентированнный язык моделирования обладающий следующими основными характеристиками

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

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

языка.

Преимущества UML

-UML объектно-ориентирован, в результате чего методы описания результатов анализа и проектирования семантически близки к методам программирования на современных объектно-ориентированных языках;

-UML позволяет описать систему практически со всех возможных точек зрения и разные аспекты поведения системы;

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

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

-UML получил широкое распространение и динамично развивается.

http://ooad.asf.ru/standarts/UML/ModelOrganizationsUML/

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

UML-модель применительно к бизнес-моделированию может включать в себя следующие диаграммы:

1. Структурный аспект: Use-Case-диаграммы, идентифицирующие бизнес-процессы и бизнес-транзакции, их взаимосвязь, соподчиненность и взаимодействие; Package-диаграммы, структурно организующие предметную область и иерархически упорядоченную структуру организации.

2. Динамический аспект: Behavior-диаграммы (Activity, Statechart, Collaboration, Sequence), описывающие поведение (жизненный цикл) бизнес-процесов в их взаимодействии во времени и в пространстве с привязкой к используемым ресурсам и получаемым результатам.

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

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

UML-модель в части бизнес-модели позволяет получить детальные ответы на ряд типичных вопросов деятельности организации:

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

- какие функционируют бизнес-процессы (функциональный аспект);

-кто и где выполняет бизнес-процессы (организационный аспект);

-как выполняются бизнес-процессы (методический аспект);

-когда выполняются бизнес-процессы (динамический аспект);

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

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

Аспект моделирования---UML-диаграмма

Предметно-структурный аспект---Package-диаграммы

Функциональный аспект---Use-Case-диаграммы

Организационный аспект---Package-диаграммы, Class-диаграммы

Методический аспект---Activity-диаграммы

Динамический аспект---Statechart-, Collaboration-, Sequence-диаграммы

Сущностно-элементный аспект---Class-диаграммы

Технологический аспект----Deployment-диаграммы

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

В UML используются следующие виды диаграмм

Структурные диаграммы: Диаграммы поведения:

Диаграмма классов Диаграмма деятельности

Диаграмма компонентов Диаграмма состояний

Композитной/составной структуры Диаграмма прецедентов

Диаграмма кооперации (UML2.0)

Диаграмма развёртывания

Диаграмма объектов

Диаграмма пакетов

Диаграмма профилей (UML2.2)

Диаграммы взаимодействия:

Диаграмма коммуникации (UML2.0) / Диаграмма кооперации (UML1.x)

Диаграмма обзора взаимодействия (UML2.0)

Диаграмма последовательности

Диаграмма синхронизации (UML2.0)

Диаграмма вариантов использования

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

В UML для вариантов использования и действующих лиц поддерживается несколько типов связей:

- связь коммуникаций (association relationship) – это связь между вариантами использования и действующим лицом

- включение (include relationship) – применяется в тех случаях, когда имеется какой-либо фрагмент поведения системы, которая повторяется более чем в одном варианте использования

- связь с расширением (extend relationship) – применяется при наличии изменений в нормальном поведении системы, которые также вносятся в отдельный вариант использования

- связь-обобщение (generalization relationship) служит для указания того факта, что некоторый вариант использования А может быть обобщен до варианта использования В.

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

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

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

Диаграммой последовательностей (Sequence diagram) называется диаграмма взаимодействия, на которой изображаются участвующие во взаимодействии объекты и последовательность сообщений, которыми они обмениваются. Одно из основных назначений данной диаграммы – отобразить последовательность действий для части или целого варианта использования (use case). На диаграмме последовательности объект изображается в виде прямоугольника на вершине пунктирной вертикальной линии. Эта линия называется "линией жизни" (life line) объекта. Сообщения появляются в том порядке, как они показаны на стрелке - сверху вниз.

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

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

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

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

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

Диаграмма деятельности (действий)

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

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

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

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

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

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

Диаграмма компонентов

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

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

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

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

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

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

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

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

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

Диаграмма компонентов

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

Диаграмма композитной/составной структуры (Composite structure diagram) — статическая структурная диаграмма, демонстрирует внутреннюю структуру классов и, по возможности, взаимодействие элементов (частей) внутренней структуры класса.

Подвидом диаграмм композитной структуры являются диаграммы кооперации (Collaboration diagram, введены в UML 2.0), которые показывают роли и взаимодействие классов в рамках кооперации. Кооперации удобны при моделировании шаблонов проектирования.

Диаграммы композитной структуры могут использоваться совместно с диаграммами классов.

Диаграмма развёртывания (Deployment diagram) — служит для моделирования работающих узлов (аппаратных средств, англ. node) и артефактов, развёрнутых на них. В UML 2 на узлах разворачиваются артефакты (англ. artifact), в то время как в UML 1 на узлах разворачивались компоненты. Между артефактом и логическим элементом (компонентом), который он реализует, устанавливается зависимость манифестации.

Диаграмма объектов (Object diagram) — демонстрирует полный или частичный снимок моделируемой системы в заданный момент времени. На диаграмме объектов отображаются экземпляры классов (объекты) системы с указанием текущих значений их атрибутов и связей между объектами.

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

Диаграмма деятельности (Activity diagram) — диаграмма, на которой показано разложение некоторой деятельности на её составные части. Под деятельностью (англ. activity) понимается спецификация исполняемого поведения в виде координированного последовательного и параллельного выполнения подчинённых элементов — вложенных видов деятельности и отдельных действий (англ. action), соединённых между собой потоками, которые идут от выходов одного узла к входам другого.

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

Диаграмма вариантов использования (Use case diagram) — диаграмма, на которой отражены отношения, существующие между акторами и вариантами использования.

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

Диаграмма автомата (State Machine diagram, диаграмма конечного автомата, диаграмма состояний) — диаграмма, на которой представлен конечный автомат с простыми состояниями, переходами и композитными состояниями.

Конечный автомат (англ. State machine) — спецификация последовательности состояний, через которые проходит объект или взаимодействие в ответ на события своей жизни, а также ответные действия объекта на эти события. Конечный автомат прикреплён к исходному элементу (классу, кооперации или методу) и служит для определения поведения его экземпляров.

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

Диаграмма коммуникации (Communication diagram, в UML 1.x — диаграмма кооперации, collaboration diagram) — диаграмма, на которой изображаются взаимодействия между частями композитной структуры или ролями кооперации. В отличие от диаграммы последовательности, на диаграмме коммуникации явно указываются отношения между элементами (объектами), а время как отдельное измерение не используется (применяются порядковые номера вызовов).

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

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

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

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

Этот тип диаграмм включает в себя диаграммы Sequence diagram (диаграммы последовательностей действий) и Collaboration diagram (диаграммы сотрудничества). Эти диаграммы позволяют с разных точек зрения рассмотреть взаимодействие объектов в создаваемой системе.

Диаграмма синхронизации (Timing diagram) — альтернативное представление диаграммы последовательности, явным образом показывающее изменения состояния на линии жизни с заданной шкалой времени. Может быть полезна в приложениях реального времени.