1 / 21

UML 101

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.

karmina
Download Presentation

UML 101

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. UML 101

  2. 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,

  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

  9. 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

  10. Packages cs680 cs680 Customer Address edu::umb::cs680 edu umb Customer Address cs680 edu::umb::cs680::Customer Customer (from cs680)

  11. Visibility • Defines who can access an attribute or operation. • Public (+), protected (#), package (~) and private (-) cs680 Address + city: String Customer getCity(): String cs681 Customer SpecialAddress

  12. 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.

  13. cs680 Address ~ city: String Customer getCity(): String cs681 Customer SpecialAddress

  14. 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.

  15. 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

  16. 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

  17. 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]

  18. 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 [*]

  19. Customer firstName: String Lastname: String id: int = “0” getId(): int

  20. 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

  21. 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

More Related