using uml to express software architecturecourses.cs.washington.edu/courses/cse403/07sp/... ·...
TRANSCRIPT
![Page 1: Using UML to express Software Architecturecourses.cs.washington.edu/courses/cse403/07sp/... · Software Architecture. CSE 403, Spring 2007, Alverson Outline yUML overview yUML class](https://reader034.vdocuments.us/reader034/viewer/2022050219/5f64d2d1bacb4f7b492551e9/html5/thumbnails/1.jpg)
CSE 403, Spring 2007, Alverson
Using UML to express Software Architecture
![Page 2: Using UML to express Software Architecturecourses.cs.washington.edu/courses/cse403/07sp/... · Software Architecture. CSE 403, Spring 2007, Alverson Outline yUML overview yUML class](https://reader034.vdocuments.us/reader034/viewer/2022050219/5f64d2d1bacb4f7b492551e9/html5/thumbnails/2.jpg)
CSE 403, Spring 2007, Alverson
OutlineUML overviewUML class diagramsClass exercise – Ski school system[Fri] UML sequence diagrams
![Page 3: Using UML to express Software Architecturecourses.cs.washington.edu/courses/cse403/07sp/... · Software Architecture. CSE 403, Spring 2007, Alverson Outline yUML overview yUML class](https://reader034.vdocuments.us/reader034/viewer/2022050219/5f64d2d1bacb4f7b492551e9/html5/thumbnails/3.jpg)
CSE 403, Spring 2007, Alverson
ReadingsPractical UML: A hands on introduction for developers http://dn.codegear.com/article/31863
If you want to learn more about UML, there are a number of UML books (and web tutorials) available, including “UML Distilled”, by Martin Fowler.
![Page 4: Using UML to express Software Architecturecourses.cs.washington.edu/courses/cse403/07sp/... · Software Architecture. CSE 403, Spring 2007, Alverson Outline yUML overview yUML class](https://reader034.vdocuments.us/reader034/viewer/2022050219/5f64d2d1bacb4f7b492551e9/html5/thumbnails/4.jpg)
CSE 403, Spring 2007, Alverson
UMLIn an effort to promote Object Oriented designs, three
leading object oriented programming researchers joined ranks to combine their languages:
o Grady Booch (BOOCH)o Jim Rumbaugh (OML: object modeling technique)o Ivar Jacobsen (OOSE: object oriented software eng)
and come up with an industry standard [mid 1990’s].
![Page 5: Using UML to express Software Architecturecourses.cs.washington.edu/courses/cse403/07sp/... · Software Architecture. CSE 403, Spring 2007, Alverson Outline yUML overview yUML class](https://reader034.vdocuments.us/reader034/viewer/2022050219/5f64d2d1bacb4f7b492551e9/html5/thumbnails/5.jpg)
CSE 403, Spring 2007, Alverson
UML – Unified Modeling LanguageThe result is large (as one might expect)o Union of all Modeling Languages ☺
Use case diagramsClass diagramsObject diagramsSequence diagramsCollaboration diagramsStatechart diagramsActivity diagramsComponent diagramsDeployment diagrams….
o But it’s a nice standard that has been embraced by the industry.
![Page 6: Using UML to express Software Architecturecourses.cs.washington.edu/courses/cse403/07sp/... · Software Architecture. CSE 403, Spring 2007, Alverson Outline yUML overview yUML class](https://reader034.vdocuments.us/reader034/viewer/2022050219/5f64d2d1bacb4f7b492551e9/html5/thumbnails/6.jpg)
CSE 403, Spring 2007, Alverson
UML class diagrams
Does not include: details of how the classes interact with each otheralgorithmic detailshow a particular behavior is implemented
UML class diagram: a picture of the classes in an OO system,
their fields and methods, and connections between the classes thatinteract or inherit from each other
![Page 7: Using UML to express Software Architecturecourses.cs.washington.edu/courses/cse403/07sp/... · Software Architecture. CSE 403, Spring 2007, Alverson Outline yUML overview yUML class](https://reader034.vdocuments.us/reader034/viewer/2022050219/5f64d2d1bacb4f7b492551e9/html5/thumbnails/7.jpg)
CSE 403, Spring 2007, Alverson
Practice as we goComplete the templates for ao Square
Length Perimeter Area
o CircleRadius Perimeter Area
![Page 8: Using UML to express Software Architecturecourses.cs.washington.edu/courses/cse403/07sp/... · Software Architecture. CSE 403, Spring 2007, Alverson Outline yUML overview yUML class](https://reader034.vdocuments.us/reader034/viewer/2022050219/5f64d2d1bacb4f7b492551e9/html5/thumbnails/8.jpg)
CSE 403, Spring 2007, Alverson
Diagram of one classclass name in top of boxo use italics for an abstract class nameo + <<interface>> if an interface class
attributes o should include all fields of the object
operations / methods o may omit trivial (get/set) methodso should not include inherited methods
![Page 9: Using UML to express Software Architecturecourses.cs.washington.edu/courses/cse403/07sp/... · Software Architecture. CSE 403, Spring 2007, Alverson Outline yUML overview yUML class](https://reader034.vdocuments.us/reader034/viewer/2022050219/5f64d2d1bacb4f7b492551e9/html5/thumbnails/9.jpg)
CSE 403, Spring 2007, Alverson
Class attributesattributes (fields, instance variables)
o visibility name : type [count] = default_value
o visibility: + public# protected- private~ package (default)/ derived
o underline static attributes
o derived attribute: not stored, but can be computed from other attribute values
![Page 10: Using UML to express Software Architecturecourses.cs.washington.edu/courses/cse403/07sp/... · Software Architecture. CSE 403, Spring 2007, Alverson Outline yUML overview yUML class](https://reader034.vdocuments.us/reader034/viewer/2022050219/5f64d2d1bacb4f7b492551e9/html5/thumbnails/10.jpg)
CSE 403, Spring 2007, Alverson
Class operations / methodsoperations / methods
o visibility name (parameters) : return_type
o visibility: + public# protected- private~ package (default)
o underline static methods
o parameter types listed as (name: type)
o omit return_type on constructors andwhen return type is void
![Page 11: Using UML to express Software Architecturecourses.cs.washington.edu/courses/cse403/07sp/... · Software Architecture. CSE 403, Spring 2007, Alverson Outline yUML overview yUML class](https://reader034.vdocuments.us/reader034/viewer/2022050219/5f64d2d1bacb4f7b492551e9/html5/thumbnails/11.jpg)
CSE 403, Spring 2007, Alverson
Relationships btwn. classes
generalization: an inheritance relationship (isa)o inheritance between classeso interface implementation
association: a usage relationshipo dependency o aggregation (class is formed as a collection of others)o composition (variant of aggregation when
a contained class will not exist withoutthe container class)
![Page 12: Using UML to express Software Architecturecourses.cs.washington.edu/courses/cse403/07sp/... · Software Architecture. CSE 403, Spring 2007, Alverson Outline yUML overview yUML class](https://reader034.vdocuments.us/reader034/viewer/2022050219/5f64d2d1bacb4f7b492551e9/html5/thumbnails/12.jpg)
CSE 403, Spring 2007, Alverson
Generalization relationshipsgeneralization (inheritance)
o hierarchies drawn top-down with arrows pointing upward to parent
o line/arrow styles differ, based on whether parent is a(n):
class:solid line, black arrowabstract class:solid line, white arrowinterface:dashed line, white arrow
![Page 13: Using UML to express Software Architecturecourses.cs.washington.edu/courses/cse403/07sp/... · Software Architecture. CSE 403, Spring 2007, Alverson Outline yUML overview yUML class](https://reader034.vdocuments.us/reader034/viewer/2022050219/5f64d2d1bacb4f7b492551e9/html5/thumbnails/13.jpg)
CSE 403, Spring 2007, Alverson
Association relationshipsassociation: an instance of one class must know about
the other in order to do its work
1. multiplicity * ⇒ 0, 1, or more1 ⇒ 1 exactly2..4 ⇒ between 2 and 4, inclusive3..* ⇒ 3 or more
2. name (what relationship the objects have)3. navigability (direction of a query,
represented by a line between the objectsno arrow if communication flows both ways)
![Page 14: Using UML to express Software Architecturecourses.cs.washington.edu/courses/cse403/07sp/... · Software Architecture. CSE 403, Spring 2007, Alverson Outline yUML overview yUML class](https://reader034.vdocuments.us/reader034/viewer/2022050219/5f64d2d1bacb4f7b492551e9/html5/thumbnails/14.jpg)
CSE 403, Spring 2007, Alverson
one-to-oneeach student must carry exactly one ID card
one-to-manyeach student may have many classes
Multiplicity of associations
![Page 15: Using UML to express Software Architecturecourses.cs.washington.edu/courses/cse403/07sp/... · Software Architecture. CSE 403, Spring 2007, Alverson Outline yUML overview yUML class](https://reader034.vdocuments.us/reader034/viewer/2022050219/5f64d2d1bacb4f7b492551e9/html5/thumbnails/15.jpg)
CSE 403, Spring 2007, Alverson
Back to our exampleAdd a square-list class and associate it with a square
Identify the multiplicity on the ends of the association
* ⇒ 0, 1, or more1 ⇒ 1 exactly2..4 ⇒ between 2 and 4, inclusive3..* ⇒ 3 or more
![Page 16: Using UML to express Software Architecturecourses.cs.washington.edu/courses/cse403/07sp/... · Software Architecture. CSE 403, Spring 2007, Alverson Outline yUML overview yUML class](https://reader034.vdocuments.us/reader034/viewer/2022050219/5f64d2d1bacb4f7b492551e9/html5/thumbnails/16.jpg)
CSE 403, Spring 2007, Alverson
Association typesaggregation: “contains”
o symbolized by a clear white diamond pointing to the class containing the other class
composition: “contained for only this purpose”o stronger version of aggregationo the parts live and die with the wholeo symbolized by a black diamond pointing to
the containing class
dependency: "uses temporarily"o symbolized by dotted line
1*
ShoeStore
aggregation
NikeShoes
LotteryTicket
Random
dependency
Finger
Handcomposition
5
1
![Page 17: Using UML to express Software Architecturecourses.cs.washington.edu/courses/cse403/07sp/... · Software Architecture. CSE 403, Spring 2007, Alverson Outline yUML overview yUML class](https://reader034.vdocuments.us/reader034/viewer/2022050219/5f64d2d1bacb4f7b492551e9/html5/thumbnails/17.jpg)
CSE 403, Spring 2007, Alverson
Composition/aggregation example
• If the movie theatre goes away• so does the box office => composition• but movies may still exist => aggregation
![Page 18: Using UML to express Software Architecturecourses.cs.washington.edu/courses/cse403/07sp/... · Software Architecture. CSE 403, Spring 2007, Alverson Outline yUML overview yUML class](https://reader034.vdocuments.us/reader034/viewer/2022050219/5f64d2d1bacb4f7b492551e9/html5/thumbnails/18.jpg)
CSE 403, Spring 2007, Alverson
Class diagram example
Aggregation – Order class contains OrderDetail classes. Could be composition?
No arrows; info can flow in both directions
![Page 19: Using UML to express Software Architecturecourses.cs.washington.edu/courses/cse403/07sp/... · Software Architecture. CSE 403, Spring 2007, Alverson Outline yUML overview yUML class](https://reader034.vdocuments.us/reader034/viewer/2022050219/5f64d2d1bacb4f7b492551e9/html5/thumbnails/19.jpg)
CSE 403, Spring 2007, Alverson
UML example #2
Let’s add the visibility attributes
![Page 20: Using UML to express Software Architecturecourses.cs.washington.edu/courses/cse403/07sp/... · Software Architecture. CSE 403, Spring 2007, Alverson Outline yUML overview yUML class](https://reader034.vdocuments.us/reader034/viewer/2022050219/5f64d2d1bacb4f7b492551e9/html5/thumbnails/20.jpg)
CSE 403, Spring 2007, Alverson
UML square
• Something seems wrong with the visibility
• and with the constructor type?
generalization
comment
![Page 21: Using UML to express Software Architecturecourses.cs.washington.edu/courses/cse403/07sp/... · Software Architecture. CSE 403, Spring 2007, Alverson Outline yUML overview yUML class](https://reader034.vdocuments.us/reader034/viewer/2022050219/5f64d2d1bacb4f7b492551e9/html5/thumbnails/21.jpg)
CSE 403, Spring 2007, Alverson
Shall we try a bigger design?Crystal Ski School
Crystal wants to implement a new ski school booking/payment mechanismThey want to allow students to request particular instructors, and see their availabilityThey want to allow instructors to retrieve their daily scheduleThey want to allow invoicing on a monthly basis
![Page 22: Using UML to express Software Architecturecourses.cs.washington.edu/courses/cse403/07sp/... · Software Architecture. CSE 403, Spring 2007, Alverson Outline yUML overview yUML class](https://reader034.vdocuments.us/reader034/viewer/2022050219/5f64d2d1bacb4f7b492551e9/html5/thumbnails/22.jpg)
CSE 403, Spring 2007, Alverson
What would be our main…Objects
Connections