Лекция № 3 Отношения – способы, с помощью которых можно связать сущности. В языке UML определены четыре типа отношений: зависимость; ассоциация; обобщение; реализация. Зависимость (dependency) – указывает на семантические отношения, существующие между двумя и более элементами модели, при котором изменение в независимом элементе (поставщике) требую изменений в зависимом элементе (клиенте). Клиент Поставщик Основные структурные сущности: Ассоциация (association) структурное отношение, описывающее совокупность связей, где под связью понимается некоторая смысловая связь между объектами. Роль1 Роль2 Элемент1 Элемент2 0..1 * Разновидностью ассоциации является агрегирование (aggregation) так называется структурное отношение между целым и его частями. Композиция (composition) – более сильная форма агрегации, при которой агрегат несет полную ответственность за создание/удаление своих частей. Агрегат Часть Элемент1 Элемент2 0..1 * Отношения – способы, с помощью которых можно связать сущности. Обобщение (generalization) - это отношение "специализация/обобщение", при котором объект специализированного элемента (проще говоря, потомок) может быть подставлен вместо объекта обобщенного элемента (родителя, предка). Как и положено в объектно-ориентированном программировании, потомок (child) наследует структуру и поведение своего предка (parent). Предок Потомок Отношения – способы, с помощью которых можно связать сущности. Реализация (realization) - это семантическое отношение между классификаторами, при котором один классификатор определяет обязательство, а другой гарантирует его выполнение. Отношение реализации встречаются в двух случаях: во-первых, между интерфейсами и реализующими их классами или компонентами, а во-вторых, между прецедентами и реализующими их кооперациями. Спецификация Реализующий элемент Отношения – способы, с помощью которых можно связать сущности. Представления и диаграммы: Представление (View) - это проекция модели, сделанная с определенной точки зрения, в которой опущены все сущности для данной точки зрения не являющиеся существенными. Диаграмма (diagram) – графическое изображение подмножества элементов модели. Как правило, имеет вид графа, который состоит из дуг (отношений) и вершин (прочих элементов моделей). Основных видов диаграмм девять: диаграммы классов, диаграммы объектов , диаграммы вариантов использования, диаграммы взаимодействия, диаграммы состояний , диаграммы деятельности , диаграммы компонентов , диаграммы развертывания. Диаграммы классов (class diagram), на которых показывают классы, интерфейсы, объекты и кооперации, а также их отношения. При моделировании объектно-ориентированных систем этот тип диаграмм использует наиболее часто. Диаграммы классов соответствуют статическому виду системы с точки зрения проектирования. obj ect Class Model «enumeration» OrderStatus new packed dispatched delivered closed StockItem +status + + + + + Author: string catalogNumber: string costPrice: number listPrice: number title: string Order +item Account + + + + + billingAddress: String closed: Boolean deliveryAddress: String emailAddress: String name: String + + + + + + createNewAccount() : void loadAccountDetails() : void markAccountClosed() : void retrieveAccountDetails() : void submitNewAccountDetails() : void validateUser(String, String) + + + date: Date deliveryInstructions: String orderNumber: String + checkForOutstandingOrders() : void +account Transaction +account +history + + + + date: Date orderNumber: String loadAccountHistory() : void loadOpenOrders() : void +basket ShoppingBasket - shoppingBasketNumber: String + + + + addLineItem() : void createNewBasket() : void deleteItem() : void processOrder() : void LineItem + quantity: Integer Диаграммы объектов (object diagram), на которых представляются объекты и отношения между ними. Это статические снимки экземпляров сущностей, показанных на диаграммах классов. Диаграммы объектов, как и диаграммы классов, относятся к статическому виду системы сточки зрения проектирования или процессов, но с расчетом на настоящую или макетную реализацию. obj ect Obj ect :StockItem Item01 :LineItem quantity = 2 Ttile = UML for Beginners ListPrice = $30.00 Author = Dave Newbie Ord-2005-10-31-JO01 :Order Item02 :LineItem quantity = 1 Joseph Osborne : Account :StockItem ListPrice = $30.00 Ttile = Software Developement with UML Author = Ken Lunn Ord-2005-02-11-JO01 :Order Item03 :LineItem quantity = 1 :StockItem ListPrice = $30.00 Ttile = UML Distilled Author = Martin Fowler Francis Redfield : Account Ord-2005-03-12-FR01 :Order Item01 :LineItem quantity = 2 Диаграммы вариантов использования (use case diagram), на которых представлены прецеденты и актеры (частный случай классов), а также отношения между ними. Диаграммы прецедентов относятся к статическому виду системы с точки зрения возможностей ее использования. Это вид диаграмм особенно важен при организации и моделирования поведения системы. uc Manage Users Login View History Create Account «extend» Client (from Actors) View Account details Close Account «include» Delete User Administrator (from Actors) «extend» View Open Orders Диаграммы взаимодействия, на которых представлены связи между объектами, показаны, в частности, сообщения, которыми объекты могут обмениваться. Обычно рассматриваются два частных случая это вида диаграмм: диаграммы последовательностей (sequence diagram), которые отражают временную упорядоченность сообщений, и диаграммы кооперации (collaboration diagram), на которых показана структурная организация обменивающихся сообщениями объектов. Эти виды диаграмм являются изоморфными, то есть свободно могут быть трансформированы друг в друга. sd Close Account :Account :Client :Close Account loadAccountDetails() checkForOutstandingOrders() get confirmation get confirmation return confirmation return confirmation markAccountClosed() :Order sd Close Account Get Confirmation Load Account Details Account Client Close Account Mark Account Closed Check for Outstanding Orders Order Диаграммы состояний (statechart diagram) представляют автомат, включающий в себя состояния, переходы, события и виды действий. Эти диаграммы относятся к динамическому виду системы, особенно важна их роль при моделировании поведения интерфейса, класса или кооперации. Они заостряют внимание на поведении объекта, которое в свою очередь зависят от последовательности событий, что очень полезно при моделировании реактивных систем. act Customer Process Customer Enters Web site User Validation User Logs In View BookStore Select Book for Purchase Rejected Add to Shopping Basket View Shopping Basket Commit Order Supply Credit Card Details Credit Card Problems Credit Check Confirm Purchase Close Order Items Deliv ered Order Complete Диаграммы деятельности (activity diagram) - это частный случай диаграмм состояний. На диаграмме этого типа представляются переходы потока управления от одной деятельности к другой внутри системы. Этот вид диаграмм относится к динамическим представлениям системы, и является наиболее полезным при моделировании ее функционирования, так как отражает передачу потока управления между объектами. act Inv oice Payment Order «Class» [Order Rejected] Order Placed Send Order [Order Accepted] Transaction «Class» Package Order Process Payment Order verified Send Inv oice Invoice Invoice Customer Payment Close Order Диаграммы компонентов (component diagram), на которых представлена организация совокупности компонентов и существующие между ними зависимости. Диаграммы компонентов относятся к статистическому виду системы с точки зрения реализации. Они могут быть связаны с диаграммами классов в силу очень простой причины: один компонент обычно отображается на один или несколько классов, интерфейсов или коопераций. cmp Serv er Components Firew all + + + AcceptRequest() : HTML Request ForwardRequest() : HTML Request ReturnResponse() : HTML Response +DMZ COM+ Component Env ironment «Web Server» IIS 5.0 + Business Logic DoRequest() : HTML Response ASP Pages Web BookStore Database XSL Stylesheets + TransformXML() : void Web SQL Serv er + + + Configure() : void ProcessSQLRequest() : Recordset Restart() : void Диаграммы развертывания (deployment diagram), на которых представлена конфигурация обрабатывающих узлов системы и размещенных в них компонентов. Диаграммы развертывания относятся к статическому виду системы с точки зрения развертывания. Они связаны с диаграммами компонентов, поскольку в узле обычно размещаются один или несколько компонентов. deployment HO Serv ers DMZ Web Serv er :Dell Pow erEdge 2650 RAM = 2 x 1024 MB Processor = 2 x 2.8 GHZ Disks = 4 x 80 GB Disk Controller = RAID 5 216.239.46.96 : Ethernet Adaptor FRR01 :Intel 19510 Frame Relay Router HOES01 :Ethernet Sw itched Hub WebDataServ er :Dell Pow erEdge 6650 RAM = 1024 Mb Processor = 3.0 GHz Disks = 3 x 120 GB Disk Controller = RAID 5 +Internet +DMZ HOFW :WatchGuard III Firew all 216.239.46.95 : Ethernet Adaptor +LAN LAN 192.168.02 : Ethernet Adaptor Mail Serv er :HP ProLiant DL380 RAM = 2048 Mb Processor = 3.0 Ghz Disks = 4 Disk Controller = RAID 5 HOES02 :Ethernet Sw itched Hub Client Data Serv er :Dell Pow erEdge 1650 192.168.0.3 : Ethernet Adaptor Processor = 3.0 GHZ RAM = 1024 MB Disks = 4 x 120 GB Disk Controller = RAID 5