Нотации моделирования Принципы проектирования с использованием UML Цели моделирования Visualizing Specifying Constructing Documenting UML – Unified Modeling Language ORM – Object Role Modeling Литература Grady Booch, Ivar Jacobson, James Rumbaugh. The Unified Modeling Language User Guide Addison-Wesley 1999. Doug Rosenberg, Kendall Scott. Use Case Driven Object Modeling with UML Addison-Wesley 1999 Martin Fowler, Kendall Scott UML Distilled Second Edition A Brief Guide to the Standard Object Modeling Language Addison-Wesley 1999 Object Management Group’s Unified Modeling Language Web site http://www.omg.org/uml/ http://www.rational.com UML представления View: Что отображает: User or use case view Объекты системы с точки Structural or design view зрения пользователя. Стационарное или промежуточное состояние системы. Behavioral or process Динамическое состояние системы view Implementation view Логический дизайн системы. Environment or deployment view Функциональность системы с точки зрения пользователя System assembly configuration management Vocabulary functionality Design View Implementation View Use Case View Behavior Process View Perfomance scalability throughput Deployment View System topology distribution delivery installation UML диаграммы Use case – взаимодействие системы и объектов. Class – диаграмма классов Object – диаграмма объектов Component – компоненты системы Deployment – диаграмма развертывания Sequence – диаграмма последовательности Collaboration – диаграмма взаимодействия State – диаграмма состояний Activity – диаграмма действий и процессов Use Case Описывает цепочки взаимодействия между объектами вне системы (actor) и элементами системы (use case). System UseCase Actor Объект вне системы Элемент системы «uses» 1 * Связи между элементами Границы системы «extends» Текстовое описание Use Case Действующее лицо Действие Торговый представитель Создает заказ. Торговый представитель Добавляет продукт в заказ. Покупатель Просматривает каталог. Покупатель Покупатель Смотрит информацию о продукте. Выбирает продукт. Покупатель Создает заказ. Покупатель Добавляет продукт в заказ. Графическое представление Use Case System «uses» Browse Product «uses» «uses» Views Product Data Customer «uses» «uses» Select Product «uses» Creates Order «uses» Sales Representative Adds Product to Order Как составлять Use Cases Выделить задачи, анализируя систему, которая требует автоматизации. Для каждой задачи определить: • Кто выполняет задачу – Actor • Выполняемое действие • Объект, над которым выполняется действие. Разбить задачи на сценарии Построить диаграмму для каждого сценария System «uses» «uses» «uses» Forecast Sales Establish Sales Goals «uses» «uses» Vice President Sales Manager «extends» Analyze Customers Manage Contacts «uses» Opportunity Management «uses» Manage Orders «uses» «extends» Manage Products Internationalize Catalog Sales Representative View Catalog «uses» Product Redesign «uses» «extends» «uses» Product Engineering Accounts Receivable «extends» Purshasing Customer Product Clerk Engineering Group Product Design Review Class Diagram Диаграмма классов описывает типы объектов в системе и различные статические связи между ними. Основные элементы: «interface» Interface Class Интерфейс Класс 0..1 Наследование Interface Ассоциация 1..* 1 Зависимость Агрегация * Пример: Фирма. Company 1 * 1..* 1..* Office Department 1 -address : string -voice : int -name : string * 1..* * {subset} 1 Headquarters Person Contact -name : string -employeeID : int -title : string +getPhoto() +getContactInformation() +getPersonalRecord() +Address : string PersonnelRecord -taxID -employmentHistory -salary ISecureInformation Toolbar #currentSelection : Tool #toolCount : int +PickItem(in i : int) +AddTool(in t : Tool) +RemoveTool(in i : int) +GetTool() : Tool #checkOrphans() -compact() A. Атрибуты доступа Icon{root} -origin : Point +display(){sequential} Button +display() Frame -header : long -uniqueID : long OkButton{leaf} +display(){sequential} B. Область видимости C. Абстрактные и конкретные классы Шаблоны template<class Item, class Value, int Buckets> class Map { public: virtual bool Bind(const Item&, const Value&); virtual bool IsBound(const Item&) const; … }; Item, Value, Buckets:int Map +Bind(in i : Item, in v : Value) : bool +IsBound(in i : Item) Map<Customer, Order, 3> OrderMap Object Diagram Диаграмма объектов – модель экземпляров (instances) объектов и их взаимоотношений (relationships), основанная на диаграмме классов. Основные элементы: Object : Class Экземпляр класса (объект) Связь между экземплярами Диаграмма объектов для примера Фирма. c : Company d1 : Department name : string = "Sales" d2 : Department name : string = "R&D" d3 : Department name : string = "US Sales" p : Person name : string = "Erin" employeeID : int = 4362 title : string = "VP of Sales" : Contact Address : string = "1472 Miller St." Component Diagram Диаграмма компонентов – схема физических частей системы и реализуемых ими интерфейсов. Основные элементы: Компонент Component «interface» Interface Class Interface Класс Интерфейс system::dialog.dll {version = 2.0.1.75} agent.java A. Простейшай компонента. B. Расширенное описание. fraudagent.dll FraudAgent PatternSearch FraudPolicy С. Компоненты и классы. Компоненты и интерфейсы image.java ImageObserver component.java A. Iconic form image.java B. Expanded form «interface» ImageObserver +abort() : int +int() : int component.java Deployment Diagram Диаграмма развертывания представляет собой схему физических элементов системы с указанием их места размещения. Основыне элементы: Нода – физический элеменет, который существует в конкретный момент времени и представляет собой ресурс обладыющий собственной памятью, а иногда даже собственным ПО. Node Component Компонента server::backup {documentation = remoteAdministrationOnly } kiosk_7 B. A. sales pos.exe C. contacts.exe A. 10-T Ethernet kiosk RAID farm “RS-232" Processor server console B. kiosk 10-T Ethernet * server console “RS-232" RAID farm Sequence Diagram Диаграмма последовательности – схема, отображающая объекты и участников некоторого процесса а также из взаимодействие (посредством сообщений и вызовов процедур) в хронологическом порядке. Основные элементы: Object Message MessageReturn Объект и его время жизни Действие или активность объекта Сообщение между объектами или вызов процедуры одного объекта из другого Сообщение о завершении действия Работа с БД. c: Client p: ODBCProxy create : Transaction setActions(a,d,o) setValue(d,3.4) Message1 committed "destroy" ProductClerk Search Catalog Product Engineering Open Catalog Enter Product ID Search for Product Locate Product Pull Product from Catalog Return Product Information Add New Spec to Product Record Mark Product as "ready-for-review" Auto-Notification for Review Review Product Mark Product as "approved" Auto-Notification of Approval Save Changes Collaboration Diagram Диаграмма взаимодействия представляет собой схему динамического взаимодействия экземпляров объектов. Аналогична диаграмме последовательности. ProductClerk Mark Product as “ready-for-review” Product Auto-Notification for review Engineering Review product State Diagram Диаграмма состояний – схема состояний объекта и действий перехода из одного состояния в другое. Основные элементы: Начальное состояние State [action] Конечное состояние Промежуточное состояние объекта Действие или событие перехода из одного состояния в другое Диаграмма работы факса [ringing] Idle Receiving [sendFax] [headerOk] Connected Transmitting Processing [error] [checkSumOk] Cleaning up Activity Diagram Диаграмма действий – схема процессов, происходящих в моделях. Использется для отображения workflow моделей. Основные элементы: Начальное и конечное состояния Transition fork Разделение действия на параллельное выполнения ActionState Действие Transition join Объединение параллельно выполняющихся действий Строительство здания Select site Bid plan Commission architect Develop plan [not accepted] Do site work Do trade work Finish construction :CertificateOfOccupancy Бизнес-процесс обработки заявления на выплату по страховому случаю (нестандартный формат) Ввод данных (IMS) Создание заявки Согласование Юридическое оформление отказа Извещение перестраховате ля Завершение заявки Нет Да Нет Да Ввод данных (IMS) Вввод данных по заявлению Да Согласование Ввод данных (IMS) Договор действует и событие является страховым случаем? Ввод дополнительных даных о СС, регистрация ЗНУ Да Согласование Да Договор перестрахован? Ввод данных (IMS) Нет Ввод данных о собраных документах Согласование Да Все документы собраны? Да Нет Согласование Завершение заявки Да Процесс выплаты по СС Да Да Нет Согласование Возможно взыскать регрес? Да Процесс взыскания регресса (вторичная заявка) Тел. звонок Подписание Извещение клиента Подготовка и подписание акта Да Контроль времени Да