UML 101
2UML Language? –Provides the semantics and syntax (notation) for each model element e.g., class, interface, association, attributes, etc. etc. Unified? –Major modeling languages merged to UML in 90s. Object Management Group ( –Many religious wars before UML is born. UML: class, association, generalization, aggregation Booch: class, use, inheritance, containment OMT: class association, generalization, aggregation Class, association, subtype,
3 What UML provides –Modeling semantics and notation –13 diagrams –Modeling viewpoints What UML does not provide –Method: e.g. how to identify classes? –Methodology
4 13 Diagrams in UML 2.x Use case –Interactions b/w a system and its users or other external entities/systems. Requirements to a system. –UML 1.x Class –Classes, interfaces, etc., and relationships b/w them. –UML 1.x Object –Object instances of the classes defined in class diagrams –UML 1.x Component –Components and the interfaces they use to interact with each other. –UML 2.0 Composite structure –The internals of a class or component –UML 2.0 Package –The hierarchal organization of groups of classes and components. –UML 2.0
5 Communication –The ways in which objects interact –Renamed from UML 1.x’s collaboration diagrams Sequence –Interactions b/w objects where the order of the interactions is important. –UML 1.x Timing –Interactions b/w objects where timing is an important concern. –UML 2.0 Interaction overview –Collect communication, sequence and timing diagrams together. State machine –The state of an object throughout its lifetime, and the events that can change that state. –UML 1.x Activity –Sequential and parallel activities in a system –UML 1.x Deployment –A system’s deployment –UML 1.x
6 Modeling Viewpoints Viewpoints –A technique for abstraction using a selected set of architectural concepts and structuring rules to focus on particular concerns within a given system. Why viewpoints? –It is often impossible for a single developer to understand everything about a software system all at once. It is essential in a project to undertake a development or maintenance task without understanding everything about the system. 5 viewpoints in UML –Logical, process, development, physical and use case viewpoints
7 Kruchten’s 4+1 View Model Logical view –Describes the abstract descriptions of a system’s parts. –Models what a system is made up of and how the parts interact with each other. –Class, object, composite str, comm, seq, timing, interaction overview and state machine diagrams Process view –Describes the processes within a system e.g., Biz processes, processes/threads –Activity diagrams Development view –Describes a system’s parts are organized into modules and components. Modules/architecture/layers –Composite str, package and component diagrams
8 Physical view –Describes how a system’s design is realized as a set of real-world entities. e.g., app installation, machine/host configuration, network configuration –Deployment diagrams Use case view –Describes the functionality of a system being modeled from the perspective of the outside world. Use cases and scenarios that consolidate the other views. –All of the other views rely on this view to guide them. –Use case diagrams
9Classes Class Attribute1 Attribute2 Attribute3 Operation1 Operation2 Operation3 Class Attribute1 Attribute2 Class Operation1 Operation2 Class Customer firstName: String lastname: String id: int getId(): int Address street: String city: String state: String zipCode: int getStreet(): String setStreet(street: String): void
10Packages cs680 edu umb cs680 CustomerAddress cs680 edu::umb::cs680 CustomerAddress edu::umb::cs680::Customer Customer (from cs680)
11Visibility Address + city: String getCity(): String Defines who can access an attribute or operation. –Public (+), protected (#), package (~) and private (-) Customer cs680 SpecialAddress cs681 Customer
12 Address # city: String getCity(): String Customer cs680 SpecialAddress cs681 Customer Note: Java’s protected visibility allows any other classes in the same package to access to protected attrs/ops of a class. It is a combination of UML’s protected and package visibility.
13 Address ~ city: String getCity(): String Customer cs680 SpecialAddress cs681 Customer
14 Address - city: String getCity(): String Customer cs680 SpecialAddress cs681 Customer Note: Use private/protected visibility as often as possible to encapsulate/hide the internal attrs/ops of a class.
15Association Customer firstName: String Lastname: String id: int getAddress(): Address Address Street: String city: String state: String zipCode: int getCity(): String 1 - homeAddr Customer firstName: String Lastname: String id: int homeAddr: Address getAddress(): Address
16 Customer firstName: String Lastname: String id: int getHomeAddress(): Address getOfficeAddress(): Address Address Street: String city: String state: String zipCode: int getCity(): String 1 - homeAddr Customer firstName: String Lastname: String id: int homeAddr: Address officeAddr: Address getHomeAddress(): Address getOfficeAddress(): Address 1 - officeAddr
17 Customer firstName: String Lastname: String id: int getAddress(): Address [1..2] Address Street: String city: String state: String zipCode: int getCity(): String Customer firstName: String Lastname: String id: int addresses: Address [1..2] getAddress(): Address [1..2] addresses
18 Customer firstName: String Lastname: String id: int getAddress(): Address[*] Address Street: String city: String state: String zipCode: int getCity(): String Customer firstName: String Lastname: String id: int addresses: Address [*] getAddress(): Address [*] * - addresses
19 Customer firstName: String Lastname: String id: int = “0” getId(): int
20HW5 Read SP 20 to 25 Imagine (or eat!) an ice cream, and model ice creams. Make an ice cream model with a UML tool. Paste your model to a PPT file, and upload it to the course repository. –Make a new directory “hw5-ice-cream” and upload your PPT file there. –Contact my TA for all technical questions Due: Sept 27 (Thu), 6pm
21 UML Modeling Tools Visual Paradigm (Community Edition) – JUDE (Community Edition) – EclipseUML – MagicDraw – Poseidon (Community Edition) – Green – A List of UML Tools –