seem4570 system design and implementationseem4570/2017/lecture/lecture10.pdf · 2017. 10. 31. ·...
TRANSCRIPT
![Page 1: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/1.jpg)
SEEM4570 System Design and Implementation
Lecture 10 – UML
![Page 2: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/2.jpg)
Introduction
• In the previous lecture, we talked about software development life cycle in a “conceptual level”• E.g. we need to write documents, diagrams, etc. But how to
write/draw them?
© 2017. Gabriel Fung. 2
![Page 3: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/3.jpg)
UML (1)
• Unified Modeling Language (UML) is a standardized general-purpose modeling language in the field of object-oriented software engineering. • The standard is managed, and was created, by OMG.
• OMG – Object Management Group – a consortium. • UML provides specifications but not implementation.
• Before a specification can be accepted as a standard by OMG, the team which propose the specification must guarantee they can use the specification to bring a product to a market within 1 year. • This prevents un-implementable standard.
• UML was in the list of OMG adopted technologies in 1997, and also the industry standard for modeling software-intensive systems.
© 2017. Gabriel Fung. 3
![Page 4: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/4.jpg)
Side Track: About Consortium
• A consortium is an association of two or more individuals, companies, organizations or governments (or any combination of these entities) with the objective of participating in a common activity or pooling their resources for achieving a common goal.• Consortium is a Latin word, meaning "partnership",
"association" or "society"• Con = "together"• Sors = "fate"• Consors = "Partner"
© 2017. Gabriel Fung. 4
![Page 5: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/5.jpg)
UML (2)
• UML is used to specify, visualize, modify, construct and document the artifacts of an object-oriented software-intensive system. • UML offers a standard way to visualize a system's
blueprint.• It can be used with all processes, throughout the
software development life cycle, and across different implementation technologies.
© 2017. Gabriel Fung. 5
![Page 6: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/6.jpg)
UML (3)
• Current version is UML 2.4• It has 14 types of diagrams divided into two categories• Each category represents a different view of a model
(discuss in the next two slides)
© 2017. Gabriel Fung. 6
![Page 7: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/7.jpg)
Structure Diagrams
• Emphasize the things that must be presented in the system.• Used extensively in documenting the software architecture
• Programmers will find them very useful in writing programs
• Diagrams:• Class diagram• Object diagram• Package diagram• Component diagram• Composite structure diagram• Profile diagram• Deployment diagram
© 2017. Gabriel Fung. 7
![Page 8: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/8.jpg)
Behavior Diagrams• Emphasize what must be happened in the system. • Used extensively to describe the functionality of the system• System managers and other non-programmers may find
them useful in explaining the system• Diagrams:• Activity diagram• UML state machine diagram• Use case diagram• Communication diagram (a kind of interaction diagram)• Interaction overview diagram (a kind of interaction
diagram)• Sequence diagram (a kind of interaction diagram)• Timing diagram (a kind of interaction diagram)
© 2017. Gabriel Fung. 8
![Page 9: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/9.jpg)
Class Diagram – Overview
• Describes the structure of a system by showing the system's classes, attributes, and relationships among classes• In a class diagram, there are many classes. Each class
is represented by a box with three parts:• Top: The name of the class• Middle: The properties/attributes of
the class• Bottom: The methods of the class
© 2017. Gabriel Fung. 9
Person# name:string– age:int
+setName(name:string)+getName()+setAge(age: int)+getAge()
#,+,– areknownas“visibility”(Seenextslide)
![Page 10: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/10.jpg)
Class Diagram – Drawing
• Visibility – used to specify the visibility of the attributes and methods (not mandatory, but usually has)• + Public • – Private • # Protected
• Relationship – define the logical relationship among classes• Major relationships: Bi-directional, Uni-directional,
Aggregation, Reflexive, Generalization, Realization
© 2017. Gabriel Fung. 10
![Page 11: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/11.jpg)
Bi-Directional Relationship
© 2017. Gabriel Fung. 11
Room– location:String– room:int
+setLocation(name:String)+getLocation():
Course– name:string– code: string
+setName(name:string)+getName():
0..* 0..1
Aclassroomcanbeassignedto0tomanycourses
Acoursecanbeassignedto0or1classroom
ItiscalledMultiplicity
Multiplicity Meaning
x..y xtoy(x≥0,y>0),e.g.0..1,0..2,2..6,…
x..* xor more
* Zero ormore
n nonly, e.g.1,4,10,…
assignedassigned
![Page 12: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/12.jpg)
Uni-Directional Relationship
© 2017. Gabriel Fung. 12
Course– courseCode:String– description: String:
+setName(name:String)+getName():
Printer– printerID:String:
+setJob(courseCode:String)+getName():
0..*print
Inauni-directionalassociation,twoclassesarerelated,butonlyoneclassknowsthattherelationshipexists.Inthisexample,onlythePrinterclassknowstheexistenceoftheCourseclass.Thismodelingallowsprintersknowwhichcoursestheyareprinting,butthecoursesdonotknowtheyarebeingprinted.Thisloosensthecouplingoftheobjectsandthereforemakesthe
systemmoreadaptivetochanges.
![Page 13: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/13.jpg)
Uni-Directional Relationship (cont'd)
© 2017. Gabriel Fung. 13
MyDB:+connect()+disconnect():
GameRecord::
GameStage1::
GameStage2::
![Page 14: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/14.jpg)
Aggregation / Composition Relationship (1)
© 2017. Gabriel Fung. 14
Building– securityGuard:Person[]:
:
1..*has
Person::
Note:Anon-filldiamondindicatestherelationshipis“weak”,i.e.evenifBuildingis“destroyed”,Person(i.e.securityguards)willnotbe“destroyed”.
Buildinghasanon-trivialclass"Person"!That’swhyweneedtolinkitback!
![Page 15: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/15.jpg)
Aggregation / Composition Relationship (2)
© 2017. Gabriel Fung. 15
Room::
Building– listOfRoom:Room[]:
:
1..*has
Buildinghasanothernon-trivialclass!That’swhyweneedtolinkitback!
Note:Thediamondis“filled”,whichmeansRoomdependsonBuilding,i.e.iftheBuildingis“destroyed”,thenallRoomswillalsobe“destroyed”.Thistypeof“strongaggregation”iscalledComposition
![Page 16: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/16.jpg)
Aggregation / Composition Relationship (3)
• If necessary, we can have uni-directional relationship for aggregation/composition relationship
© 2017. Gabriel Fung. 16
B::
A::
B::
A::
![Page 17: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/17.jpg)
Reflexive Relationship
© 2017. Gabriel Fung. 17
Room# subRoom:Room:
Building#name:String#listOfRoom:Room[]
:
1..*has
0..*contains
Aroomcontainssomerooms,e.g.RM101containsRM101AandRM101B
Akindofreflexiverelationship.Again,itcanbebi-directionaloruni-directional
Staff::
1supervisor
0..*supervises
AstaffhasonesupervisorAstaffsupervises0ormanystaff
![Page 18: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/18.jpg)
Generalization Relationship
© 2017. Gabriel Fung. 18
Person# name:String:
+getName()
Student– studentID:String+getGPA()
Staff#salary:int+getOfficeLocation()
Professor– housingAllowance:int:
Admin Staff::
Generalizationrelationship
![Page 19: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/19.jpg)
Realization Relationship (1)
© 2017. Gabriel Fung. 19
<<interface>>Person
+getName()
Student– studentID:String+getName()
Staff#salary:int+getName()
Professor– housingAllowance:int:
Admin Staff::
Generalizationrelationship
RealizationrelationshipItshouldcontainsnothing
Canonlybe+or#
![Page 20: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/20.jpg)
• What is realization?• Realization is one of the major properties of Object
Oriented (OO) modeling, it implements an interface.• Don’t confuse with GUI (graphical user interface). This interface did
nothing with GUI.• In OO Programming, if a class is defined as an interface, it
does not have any implementation detail.• Hence, we need to write the details that are defined in the interface
in the implementing classes.• In the diagram in the previous slide, we need to write the
“getName” method in the Student Class and Staff Class.• It is the responsibility of the program designer to drop down every
single implementation issue carefully and clearly in the diagram.
© 2017. Gabriel Fung. 20
Realization Relationship (2)
![Page 21: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/21.jpg)
Class Diagram Summary
© 2017. Gabriel Fung. 21
Class A
Class B
Class A
Class B
Class A
Class B
Class A
Class B
Class A
Class B
Class A
Class B
Class A
Bi-Directional Uni-Directional
Reflexive
Aggregation Composition Realization Generalization
![Page 22: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/22.jpg)
Object Diagram
• An object diagram in the Unified Modeling Language (UML), is a diagram that shows a complete or partial view of the structure of a modeled system at a specific time.• Remember the differences between Class and Object?
• Object diagrams are more concrete than class diagrams, and are often used to provide examples.• An Object diagram focuses on some particular set of object
instances and attributes, and the links between the instances.
© 2017. Gabriel Fung. 22
![Page 23: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/23.jpg)
Object Diagram Example
© 2017. Gabriel Fung. 23
Room# floor:int:
Building#name:String#listOfRoom:Room[]
:
1..*has
ERM301 :RoomFloor:3
ERB :Buildingname=ERBlistOfRoom =Vector<Room>
has
ERM401 :RoomFloor:4has
ERM506 :RoomFloor:5has
![Page 24: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/24.jpg)
Object Diagram – More Information
• Object diagrams help clarify classes and inheritance• They are useful to demonstrate what would happen in
the system at a specific time.• Can help non-programmers to understand more about the
system as they may find class diagrams are too abstract.• May help programmers as well!
• Unfortunately, UML 2.4 specification provides no definition of object diagram!• It does not have a concrete definition of how it should be
drawn!
© 2017. Gabriel Fung. 24
![Page 25: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/25.jpg)
Package Diagram
• Describes how a system is split up into logical groupings by showing the dependencies among these groupings.• Package is a namespace used to group together
elements that are semantically related and might change together. • Because package is a namespace, elements (e.g. programs)
inside the same package should have unique names. • A package can import/access/use other packages. • Package can also be merged with other packages.
© 2017. Gabriel Fung. 25
![Page 26: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/26.jpg)
Package Diagram (cont’d)
• For example, in a Java program:
• A package is rendered as a tabbed folder:
© 2017. Gabriel Fung. 26
package webShoppingCart;
import basicWebComponent;import java.io.*;import ...:
public XXX extends GeneralShoppingCart{:
}
Thenameofthepackagethatwecreated
Weneedtoimportthesepackages
Wetrytogroupprogramsintopackagesforbetterresourcesmanagement.Sowealsoneedtotelltheprogrammershowtoimplementourideas!
WebShoppingCart
![Page 27: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/27.jpg)
Notations• Import• A relationship that shows the model elements in a package
which are to be imported from another package and the visibility is public
• Access• A relationship that shows the model elements in a package
which are to be imported from another package and the visibility is private, i.e. other packages that merge/import it cannot access the packages it has accessed• Note that it may be impossible to implement.
• Merge• A relationship between two packages showing that their
contents are to be combined.
© 2017. Gabriel Fung. 27
![Page 28: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/28.jpg)
Package Diagram Example
© 2017. Gabriel Fung. 28
WebShopping
MobileShopping
MailShopping
Inventory
<<import>>
package
ShoppingCartPayment
<<import>><<merge>><<merge>><<import>>
<< access>>
Utility
<<import>>
![Page 29: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/29.jpg)
Component Diagram
• Describes how a software system is split up into components and shows the dependencies among these components.• Developers find the component diagram useful because it
provides them with a high-level, architectural view of the system• Although may not be able to implement the system (too
abstract), it helps developers formalizing a roadmap for the implementation, and make decisions about task assignments.
• System administrators find component diagrams useful because they get an early view of the logical software components that will be running on their systems.
© 2017. Gabriel Fung. 29
![Page 30: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/30.jpg)
Components
© 2017. Gabriel Fung. 30
AComponent
Services/interfacetobeprovidedtoothercomponents
Services/interfacerequiredfromothercomponents
AComponent
Services/interfacetobeprovidedtoothercomponents
AComponent
Services/interfacerequiredfromothercomponents
![Page 31: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/31.jpg)
Component Diagram Example
© 2017. Gabriel Fung. 31
OrderProductServices Customer
Product
OrderProduct
CustomerDetail
ProductCode
![Page 32: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/32.jpg)
Composite Structure Diagram
• Visualizes the internal structure of a class. • A kind of component diagram used in modeling a system
at micro point-of-view.• The key entities are:• Part
• A role played at runtime by an object or by a collection of objects• Port
• An interaction point that can be used to connect other parts or the environment.
• Connector• It binds entities together, allowing them to interact at runtime.
• Collaborator• Represents by dotted oval. An abstract idea.
© 2017. Gabriel Fung. 32
![Page 33: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/33.jpg)
Composite Structure Diagram Example
© 2017. Gabriel Fung. 33
SearchEngine
Searchport
Searchbook
SearchCD
Requestport
RequestProduct
part
port
environment
AnotherService
connector
AportDoSth
OrderProductServices
![Page 34: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/34.jpg)
Deployment Diagram
• Describes the hardware used in system implementations and the execution environments and artifacts (e.g. software) deployed on the hardware.
© 2017. Gabriel Fung. 34
Note:ThisisnotUMLstandardcomponents(forillustrationpurposeonly)
![Page 35: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/35.jpg)
Deployment Diagram Example
© 2017. Gabriel Fung. 35
![Page 36: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/36.jpg)
Use Case Diagram• Describe a set of actions (use cases) that some
systems should or can perform in collaboration with one or more external users (actors). • Each use case should provide some observable and
valuable result to the user of the system.• Used to specify what the system should do but not
how the system should do.• Major elements of the use case diagram are:• Actor• Association / Relationship• Subject / System• Use case
© 2017. Gabriel Fung. 36
![Page 37: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/37.jpg)
Use Case Diagram Example
• Consider:• In a museum, visitors can purchase admission ticket
through a clerk.• Purchasing admission ticket requires a payment system,
which will be connected to a bank.• Note that purchasing admission ticket is a kind of help. • In the museum, there is a manager who will mange the
daily activities of the museum
© 2017. Gabriel Fung. 37
![Page 38: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/38.jpg)
Use Case Diagram Example (cont'd)
© 2017. Gabriel Fung. 38
System
Actor
Visitor
Clerk
Bank
BuyAdmissionTicket
Payment
SeekHelp
Association/relationship
ManageMuseum
<<include>>
<<extend>>
MuseumManager
answer
Askquestion
![Page 39: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/39.jpg)
Use Case Diagram Example (cont'd)
• Another example:• In a museum, visitors can purchase admission ticket
through a clerk.• Purchasing admission ticket requires a payment system,
which will be connected to a bank.• Note that the visitors can seek help when purchasing
admission ticket. • In the museum, there is a manager who will mange the
daily activities of the museum
© 2017. Gabriel Fung. 39
![Page 40: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/40.jpg)
Use Case Diagram Example (cont'd)
© 2017. Gabriel Fung. 40
Visitor
Clerk
Bank
BuyAdmissionTicket
Payment
SeekHelp
Notethekeywordherealso
ManageMuseum
<<include>>
<<include>>
MuseumManager
$$$
answer
![Page 41: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/41.jpg)
Activity Diagram
• Graphical representations of workflows of stepwise activities and actions with support for choice, iteration and concurrency. • Constructed from a limited number of shapes,
connected with arrows. Common shapes:• Rounded rectangles represent activities;• Diamonds represent decisions;• Bars represent the start (split) or end ( join) of concurrent
activities;• A black circle represents the start (initial state) of the
workflow;• An encircled black circle represents the end (final state).
© 2017. Gabriel Fung. 41
![Page 42: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/42.jpg)
Activity Diagram Example
• Online shopping
© 2017. Gabriel Fung. 42
Searchitem
Viewitem
found
Notfound
Addtocart
like
dislike
Continueshopping
Checkout
Doneshopping
![Page 43: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/43.jpg)
Activity Diagram Example (cont'd)
• Process Order
© 2017. Gabriel Fung. 43
ReceiveOrder
PaymentProblem
Sendinvoice
Shiporder
CloseOrder
PaymentOK
![Page 44: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/44.jpg)
State Machine Diagram
• Describes the states and state transitions of the system• Many software systems are event-driven• They continuously wait for the occurrence of some external
or internal event such as a mouse click, a button press...• The response to an event generally depends on the
type of the event and the state of the system• E.g. if the user want to add an item to the shopping cart,
but the shopping cart module is not available (i.e., the stateof shopping cart module is down), then the user cannot perform the “add item” action.
© 2017. Gabriel Fung. 44
![Page 45: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/45.jpg)
State Machine Diagram Example
• For example, in an ATM machine, there are three states, Idle, Active and Out of Service:
© 2017. Gabriel Fung. 45
StateMachineofATM
Idle
ActiveOutofServices
Putcard
Takecard
Damage
Fixed
Shutdown
![Page 46: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/46.jpg)
Sequence Diagram
• Sequence diagram is the most common kind of interaction diagram, which focuses on the message interchange between a number of lifelines. • A sequence diagram shows, as parallel vertical lines
(lifelines), different processes or objects that live simultaneously, and, as horizontal arrows, the messages exchanged between them, in the order in which they occur. This allows the specification of simple runtime scenarios in a graphical manner.
© 2017. Gabriel Fung. 46
![Page 47: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/47.jpg)
Sequence Diagram Example
• A simple online bank about transfer money
© 2017. Gabriel Fung. 47
sd onlinebank
:bank:customer
TransferMoney
Response
Logout
RedirecttoHomepage
![Page 48: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/48.jpg)
Sequence Diagram Example (cont'd)
• Note that a customer should be able to have multiple transfers!
© 2017. Gabriel Fung. 48
sd onlinebank
:bank:customer
TransferMoney
Response
Logout
RedirecttoHomepage
loop
![Page 49: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/49.jpg)
Sequence Diagram Example (cont'd)
• We also want to add an option to our customers, such that they can input note before making a transfer!
© 2017. Gabriel Fung. 49
TransferMoney
Response
Inputreferencenumber
loop
opt
![Page 50: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/50.jpg)
Sequence Diagram Example (cont'd)
• How about if the customer do not have enough money? We should not make the transfer!
© 2017. Gabriel Fung. 50
loop
opt Refer tothepreviousslide
TransferMoney
TransferOK
[enoughmoney]
[notenoughmoney]
Transferfail
alt
![Page 51: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/51.jpg)
Sequence Diagram of Facebook
© 2017. Gabriel Fung. 51
![Page 52: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/52.jpg)
Communication Diagram
• Represents a combination of information taken from Class, Sequence, and Use Case Diagrams, describing both the static structure and dynamic behavior of a system.• Communication diagrams show a lot of the same information as
sequence diagrams, but are clearer to show the interaction among elements, whereas sequence diagrams are clearer to show the order in which the interactions take place.
• Uses free-form arrangement of objects and links. To maintain the ordering of messages, messages are labeled with a chronological number and placed near the link the message is sent. • Reading a communication diagram involves starting at message
1.0, and following the messages from object to object.
© 2017. Gabriel Fung. 52
![Page 53: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/53.jpg)
Communication Diagram Example
© 2017. Gabriel Fung. 53
:courseDetail :course
2:getCourseName(courseID):string3:getLocation():json4:getStudentList():array
:student
4.1:getStudentName(studentID):string4.2:getStudentMajor(studentID):string
:location
3.1:getBuildingName(locationID):string3.2:getLocationName(locationID):string
:staff
1.1:inputcourseID1.2:clickenquiry1.3:enquiry(courseID):object
![Page 54: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/54.jpg)
Timing Diagram
• Used to show interactions when the primary purpose of the diagram is to reason about time. • Timing diagrams focus on conditions changing within
and among lifelines along a linear time axis
© 2017. Gabriel Fung. 54
WebUserIdleWaitingViewing
BrowserIdleProcessingWaiting
ServerIdleProcessing 100ms
10ms20ms
![Page 55: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/55.jpg)
Interaction Overview Diagram
• The interaction overview diagram is similar to combining activity diagrams, sequence diagrams and timing diagrams
© 2017. Gabriel Fung. 55
![Page 56: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/56.jpg)
Interaction Overview Diagram Example
© 2017. Gabriel Fung. 56
![Page 57: SEEM4570 System Design and Implementationseem4570/2017/Lecture/lecture10.pdf · 2017. 10. 31. · UML (1) •Unified Modeling Language (UML) is a standardized general-purpose modeling](https://reader033.vdocuments.net/reader033/viewer/2022051912/6002bcabb11105776136d694/html5/thumbnails/57.jpg)
References
• http://www.uml-diagrams.org/• http://www.uml.org/• https://creately.com/blog/diagrams/uml-diagram-
types-examples/• http://www.visual-paradigm.com/
© 2017. Gabriel Fung. 57