Изучить процесс анализа и проектирования в части определения потенциальной архитектуры системы, освоить построение диаграммы классов и диаграммы состояний объектов классов.
Задание: спроектировать структуру информационной системы в соответствии с выбранной предметной областью в виде диаграммы классов и построить диаграммы состояний объектов сложных классов.
Теоретические сведения
Диаграмма классов (class diagram) служит для представления статической структуры модели системы в терминологии классов объектно-ориентированного программирования. Диаграмма классов может отражать, в частности, различные отношения между отдельными сущностями предметной области, такими как объекты и подсистемы, а также описывает их внутреннюю структуру и типы отношений.
Имеется два вида основных статических отношений:
• ассоциации (человек может сделать покупку в магазине);
• подтипы (корпоративный клиент является разновидностью клиента).
На диаграммах классов изображаются также атрибуты классов, операции классов и ограничения, которые накладываются на связи между объектами (рис.7).
Рис. 7. Элементы диаграммы классов
На рис. 8 представлен пример диаграммы классов.
Рис. 8. Пример диаграммы классов
Отношения ассоциации представляют собой отношения между экземплярами классов. Каждая ассоциация имеет два конца ассоциации,которыми она присоединяется к классам на диаграмме, а конец ассоциации, в свою очередь, обладает кратностью, которая показывает, сколько объектов может участвовать в данном отношении.
В общем случае кратность указывает верхнюю и нижнюю границы количества объектов, которые могут участвовать в отношении. Часто используемые варианты кратности:
1 – означает, что в ассоциации участвует один и только один экземпляр класса, с которым связана ассоциация;
* – в ассоциации может участвовать неограниченное число экземпляров класса;
0..1 – в ассоциации участвует либо один, либо ни одного экземпляра класса;
0..N – в ассоциации участвует от 0 до N экземпляров класса.
Стрелками в ассоциации обозначается направление навигации,таким образом, если в ассоциации присутствует стрелка, то она из симметричной преобразуется в одностороннюю.
Если навигация указана только в одном направлении, то такая ассоциация называется однонаправленной, а если навигация указана с обеих сторон, то ассоциация считается двунаправленной. Если ассоциация на диаграмме не имеет стрелок навигации, то она является двунаправленной.
Связь, заданная при помощи ассоциации, существует в течение всего жизненного цикла объектов, даже если соединяемые ею экземпляры классов могут изменяться во времени.
Атрибуты являются элементами класса, определяющими его сущность. В синтаксисе UML описание атрибута выглядит следующим образом: <видимость><имя>:<тип>=<значение по умолчанию>. В примере на рис. 8 атрибутами являются: «Имя», «Адрес», «ЛимитКредита» и др.
Процессы, реализуемые классами, представляют собой операции. Синтаксис операции в UML выглядит следующим образом:
<видимость><имя>(<список параметров>):<выражение, возвращающее значение типа>(<строка свойств>), где:
• видимость – принимает одно из трех значений: «+» – общедоступная (public), «#» – защищенная (protected) либо «-» – закрытая (private);
• имя – строка символов;
• список параметров – содержит перечисленные через запятую параметры, которые описываются так же, как и атрибуты;
• выражение, возвращающее значение типа – содержит перечисленные через запятую значения типов;
• строка свойств – указывает свойства, которые имеются у данной операции.
При построении диаграммы прецедентов, являющейся наиболее общей концептуальной моделью проектируемой системы, применение русскоязычных терминов является не только оправданным с точки зрения описания структуры предметной области, но и эффективным с точки зрения взаимодействия с заказчиком и пользователями. При построении остальных типов диаграмм следует придерживаться разумного компромисса.
Диаграмма состояний
Диаграмма состояний (state machine diagram) отражает внутренние состояния объекта в течение его жизненного цикла от момента создания до разрушения, позволяя описать поведение объекта в различных прецедентах. Обычно диаграммы состояний строятся для единственного класса, чтобы показать динамику поведения единственного объекта. На рис. 9 представлен пример диаграммы состояний.
Рис. 9. Пример диаграммы состояний
Диаграмма состояний – это конечный автомат, реализованный средствами UML. Существует несколько разновидностей диаграмм состояний, в UML принята нотация Дэвида Харела. Рассмотрим основные элементы диаграммы состояний (рис. 10).
Состояние (State) отображает одно из возможных состояний, в котором может находиться объект. Кроме имени в элементе State может содержаться также краткое описание состояния и деятельности, осуществляемой в этом состоянии. В общем случае состояние определяют следующие характеристики:
• входное воздействие – поведение, которое наступает при переходе объекта в данное состояние. Входное действие не прерывается и всегда выполняется до конца;
• деятельность – поведение, которое реализует объект, находящийся в данном состоянии;
• выходное действие – действие, которое выполняется при выходе объекта из текущего состояния.
Входные и выходные действия отображаются внутри графического элемента State под горизонтальной чертой, а друг от друга отделяются наклонной чертой «/» или двоеточием.
Рис. 10. Элементы диаграммы состояний
Переход (Transition) объекта из одного состояния в другое отображается направленной стрелкой. Синтаксис метки перехода состоит из трех частей, каждая из которых является необязательной: Событие:[Сторожевое условие]/Действие.
Событие (Event) – это некоторый факт, который инициирует переход из одного состояния в другое. События отображаются в виде поясняющей надписи около стрелки перехода.
Начальное состояние (Initial) – это состояние, в котором объект находится непосредственно после его создания. Начальное состояние – это обязательный элемент диаграммы, причем на диаграмме может быть только один такой элемент (изображается черным кружком), стрелка перехода соединяет его с первоначальным состоянием объекта.
Конечное состояние (Final) – состояние, в котором объект пребывает непосредственно перед его уничтожением. Это необязательный элемент, причем количество таких элементов на диаграмме не ограничено.
Содержание отчета
1. Цель работы.
2. Краткое описание разрабатываемой системы (в соответствии с выданным индивидуальным заданием).