UML Notations Activity diagrams State diagrams Class diagrams Use-case diagrams Background UML • Unified Modeling Language (UML) is a standard language for specifying, visualizing , and constructing, and documenting the artifacts of software systems. – http://www.uml.org/ • UML represents the collection of best engineering practices, mainly used for object oriented software development • UML uses graphical notations to express the design of software projects. UML notations 2 Goals of UML • Provide users with a ready-to-use visual modeling language to exchange meaningful models • Provide extensibility and specialization mechanisms to extend the core concepts • Be independent of particular programming languages and development processes. • The development of UML began in 1994 by Grady Booch and Jim Rumbaugh from Rational Software Corporation UML Diagrams • Activity diagram – combined function/control view • State diagram – highly interactive control • Class diagram – static information structure (“data”) • Use-case diagram – high level view of system services (functional) UML notations 4 Activity diagram • Model control and information flow of a procedure or process • It describes the state of activities by showing the sequence of activities performed. UML notations 5 Action state • State in which some work is being done – activity, task • State terminates when the work is finished – difference with state diagrams • After termination the action state can lead to another action state – “state transition” • Special symbols for being and end of a procedure or process UML notations 6 Basic notation for activity diagram data entry processing UML notations generate output 7 Decision • State transition is deterministic • If transition depends on outcome of the work, then introduces a decision [data correct] data entry [data incorrect] UML notations further processing dump in waste basket 8 Introducing concurrency buy food and drinks cook dinner open wine bottle have dinner UML notations 9 Swim lanes • Process can sometimes be distributed over several agents or organizational units • Notation: use compartments • Use to model a business process (e.g. in organization model) UML notations 10 Notation for swim lanes SALES DEPARTMENT DESIGN DEPARTMENT get customer information design elevator calculate cost write tender UML notations 11 Object flow CUSTOMER SALES DEPARTMENT DESIGN DEPARTMENT customer information get customer information decide about design type non-standard tender write tender cost calculation UML notations standard standard design custom design elevator design 12 Business process “Housing” primary process secondary process data entry of applications magazine production application assessment :residence assignments residence assignment UML notations statistical analysis policy information 13 State diagrams • Synonyms: “state chart”, “state-transition diagram” • Purpose: model of dynamic behavior • Use if control is heavily influenced by “external” events UML notations 14 State state name state variables state actions & activities UML notations watching football match duration entry/switch on TV do/watch exit/turn off TV 15 State transition ready for take off check: boolean permission-from-control-tower [check -= OK] / take-off ^control-tower.confirm-takeoff(flightID) airborne do/fly entry/final check • Event: comes from outside the object modeled • Message: generates event for another object • Guard: outcome of internal object computation UML notations 16 Actions and activities • Action: instantaneous, not interruptible – on transition – on state entry = action on all incoming transitions – on state exit = action on all outgoing transitions – on event • Activity: takes time, interruptible UML notations 17 State diagram of ticket machine idle insert(coin)/new balance cancel button pressed inserting money timer balance insert(coin)/add to balance cancelling [balance < ticket price] time out select(ticket) do/return balance processing selection [balance = ticket price] dispensing ticket dispensing change do/dispense ticket do/dispense change UML notations do/compute change [balance > ticket price] 18 State concurrency entering transaction data cash card entered processing take out cash cash taken take out card card taken idle UML notations 19 State diagram “Housing” assessment finished/ report decision application received/ order assessment application assessment data needed/ask data received / reply UML notations waiting for case data 20 Class diagram • Describe the types of objects in a system and their relationships • Model class structure and contents • Class has three things: a name, attribute, and operations UML notations 21 Objects and classes airplane #seats: integer Fokker 70 :airplane Fokker 100 :airplane :airplane #seats = 80 UML notations 22 Object class • Describes a group of objects with similar properties – Abbreviation: "class" • Rationale for introducing classes: – it provides a means for abstraction • Terminology: “object” is often used in an ambiguous way, pointing to both objects (in the strict sense) and object classes. UML notations 23 Attributes • An attribute describes a value held by objects belonging to the class. • Attribute specification consists of: – Class it is defined on (student) – Attribute name (name) – Admissible values (string) – Optional: default value UML notations 24 Values and Value Sets • Values are the primitive things with no internal structure from the viewpoint of the application • Admissible values are defined through a value set • Typical predefined value-sets: – string, number, integer, real, range, boolean, …. • User-defined: – set or list of strings UML notations 25 Object Identifiers • In O-O modeling you assume that every object has an identity. • Consequence: introduce only attributes that act as identifiers, iff the identifier is something that exists in the real world. • Examples: student card number, social security number. UML notations 26 Operations • Definition: – operation is "a function or a transformation that can be applied to objects of a class". • Objects in a class share the same operations. • Method: implementation of an operation UML notations 27 Class notation class name attribute-1: value-set attribute-2: value-set operation-1(Par1:Type, Par2:Type): ReturnType library book library book catalog#: string title: string author: string category: Category cover-type: {hard-cover, paperback} available(): Boolean UML notations 28 Associations • Associations are used to link objects to other objects • Majority of associations: – binary (between two objects) – directional (should be read in a particular direction • Ternary associations come up occasionally. • Associations between more than three objects are rare. UML notations 29 Association notation General notation for association w if e husband man woman 0-1 married-to 0-1 Notation for a binary association husband w if e man woman 0-1 0-1 married-to UML notations 30 Multiplicity examples person 0-1 married-to 0+ 1+ student address << has address enrolled in >> course major subject >> major UML notations 31 Multiplicity • Also called: "cardinality". • Always connected to one of the classes involved. • Typical types of multiplicity: – 0-1 –1 – 0+ – 1+ UML notations Zero or one (optional). Precisely one. Zero or more, One or more. 32 Association class • Modeling an association as a class if the association has an internal information structure • Advantage: associations become first-class objects. • Attributes and methods can be defined for the association class. UML notations 33 Notation association class husband w ife woman man 0-1 0-1 marriage date: Date city registered in >> UML notations 34 Use of an association class person company name employee employer 1 << works for 1+ name social security # address salary job title if you want to model that a person can work for more than one company, then change to company employee employer name 1+ 1+ person name social security # address w orks for salary: job title UML notations 35 Associations with specific semantics • Associations provide a general, "neutral", way of connecting object classes. • Semantics of the association are defined through argument typing, multiplicity and (implicitly) the name of the association. • Class diagrams provide specific types of associations, with predefined semantics: – generalization ("is a"). – aggregation ("part of"). UML notations 36 Generalization • Purpose: sharing similarities while preserving differences • Is an association between a class that acts as super-class and one or more classes called the sub-classes. • Super-classes show the features that the subclasses have in common. • Each sub-class inherits the attributes and operations defined on its super-class(es). UML notations 37 Notation for generalization executor-of >> agent task 1+ computer program human man UML notations 0+ woman 38 Aggregation • Aggregation denotes a binary association in which one side is an "assembly" and the other side a "part". • "Assembly" and "part" act as predefined roles involved in the aggregation association. • Cardinality of a part can be defined – precisely one; optional (0-1); many, ... UML notations 39 Notation for aggregation 0-1 audio system CD player record player 0-1 0-1 tuner 0-1 tape deck UML notations 0-1 head phones 2,4 amplifier speaker 40 Composition • Sub-type of aggregation • Existence of part depends on aggregate document paragraph name type 0+ style open print UML notations 41 Aggregation and generalization • Similarities: – Tree-like structure • Differences: – AND-tree (aggregation) vs. OR-tree (generalization) – instance tree (aggregation) vs. class tree (generalization) UML notations 42 Combined aggregation and generalization audio system 1+ 0-1 input system UML notations amplifier speaker record player CD player tuner head phones 2,4 tape deck 43 Use-case diagram • shows services that can be expected from a system • provides outsider view (customer) • terminology use case service provided by system actor agent using a system service • used in early phases of system analysis UML notations 44 Use cases for a library library system lend book add book to catalog make book reservation lender remove book from catalog librarian search library catalog UML notations 45 A small case study • Course administration system (CAS) • Context: university department • Required services: STUDENT: update personal data, inspect exam results, inspect course info, enroll in course TUTOR: inspect exam results, update course info, inspect enrollments ADMIN STAFF: enter exam results, inspect exam results, update personal data students, inspect enrollments UML notations 46 Use cases browse individual results browse course results browse exam results enter exam results enroll in course browse enrollments inspect course info update course info tutor student update student data UML notations administrative staff 47 Class diagram exam date: date result: [0..10] requires 0+ course-exam 1 enrollment student 0+ date: date student-card#: string name: string 0+ address: string date-of-birth: data major: Major ......... course 0+ course-code: string year: integer trimester: 1-3 study-points: integer learning-goals: string description: text literature: text maximum-#students: integer 0+ university staff member title: string position: string 1+ department: string telephone: string room: string e-mail: string UML notations tutor 48 Activity diagram for course enrollment procedure submit enrollment request check preconditions inform about prerequisites check student limit [preconditions not OK] [above limit] [preconditions OK] [limit not yet reached] register enrollment UML notations inform about student limit inform about enrollment 49 State diagram: “update student data” received(new student data) ^ send message to central university database waiting for notification [timer = time-out or not OK] /notify failure timer OK message received from central database local processing do/update local database do/display results UML notations 50 Tools to draw UML • Powerpoint • MS Visio: http://www.youtube.com/watch?v=FPB0Tw9j FE8 • Online: – http://creately.com/Draw-UML-and-ClassDiagrams-Online – http://www.gliffy.com/uses/uml-software/