210 likes | 345 Views
UML 101. UML. 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 (www.omg.org) Many religious wars before UML is born.
E N D
UML • 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 (www.omg.org) • 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,
What UML provides • Modeling semantics and notation • 13 diagrams • Modeling viewpoints • What UML does not provide • Method: • e.g. how to identify classes? • Methodology
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
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
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
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
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
Classes Class Class Class Attribute1 Attribute2 Attribute3 Attribute1 Attribute2 Operation1 Operation2 Class Operation1 Operation2 Operation3 Customer Address firstName: String lastname: String id: int street: String city: String state: String zipCode: int getId(): int getStreet(): String setStreet(street: String): void
Packages cs680 cs680 Customer Address edu::umb::cs680 edu umb Customer Address cs680 edu::umb::cs680::Customer Customer (from cs680)
Visibility • Defines who can access an attribute or operation. • Public (+), protected (#), package (~) and private (-) cs680 Address + city: String Customer getCity(): String cs681 Customer SpecialAddress
cs680 Address # city: String Customer getCity(): String cs681 Customer SpecialAddress 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.
cs680 Address ~ city: String Customer getCity(): String cs681 Customer SpecialAddress
cs680 Address - city: String Customer getCity(): String cs681 Customer SpecialAddress Note: Use private/protected visibility as often as possible to encapsulate/hide the internal attrs/ops of a class.
Association Customer Address firstName: String Lastname: String id: int Street: String city: String state: String zipCode: int 1 - homeAddr getAddress(): Address getCity(): String Customer firstName: String Lastname: String id: int homeAddr: Address getAddress(): Address
Customer Address 1 firstName: String Lastname: String id: int Street: String city: String state: String zipCode: int - homeAddr 1 getHomeAddress(): Address getOfficeAddress(): Address getCity(): String - officeAddr Customer firstName: String Lastname: String id: int homeAddr: Address officeAddr: Address getHomeAddress(): Address getOfficeAddress(): Address
Customer Address firstName: String Lastname: String id: int Street: String city: String state: String zipCode: int 1..2 - addresses getAddress(): Address [1..2] getCity(): String Customer firstName: String Lastname: String id: int addresses: Address [1..2] getAddress(): Address [1..2]
Customer Address firstName: String Lastname: String id: int Street: String city: String state: String zipCode: int * - addresses getAddress(): Address[*] getCity(): String Customer firstName: String Lastname: String id: int addresses: Address [*] getAddress(): Address [*]
Customer firstName: String Lastname: String id: int = “0” getId(): int
HW5 • 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
UML Modeling Tools • Visual Paradigm (Community Edition) • http://www.visual-paradigm. • JUDE (Community Edition) • http://jude.change-vision.com/jude-web/ • EclipseUML • http://www.omondo.com/ • MagicDraw • http://www.nomagic.com/ • Poseidon (Community Edition) • http://www.gentleware.com/index.php?id=ce • Green • http://green.sourceforge.net/ • A List of UML Tools • http://en.wikipedia.org/wiki/List_of_UML_tools