Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I...
Transcript of Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I...
![Page 1: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/1.jpg)
2IW80 Software specification and architecture
Structural specification
Alexander Serebrenik
![Page 2: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/2.jpg)
Before we start
• Time-related signal in an activity diagram is represented as
/ SET / W&I PAGE 1 24-2-2014
a) b) c)
![Page 3: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/3.jpg)
Before we start
• Time-related signal in an activity diagram is represented as
/ SET / W&I PAGE 2 24-2-2014
a) b) c)
![Page 4: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/4.jpg)
Before we start
• Time-related signal in an activity diagram is represented as
/ SET / W&I PAGE 3 24-2-2014
a) b) c)
• Dr. Smith is grading students’ exam papers. How would you
model her grading process?
Grade paper Grade paper Grade paper Grade paper
a) b) d) c)
![Page 5: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/5.jpg)
Before we start
• Time-related signal in an activity diagram is represented as
/ SET / W&I PAGE 4 24-2-2014
a) b) c)
• Dr. Smith is grading students’ exam papers. How would you
model her grading process?
Grade paper Grade paper Grade paper Grade paper
a) b) d) c)
interruptible
activity region CORRECT:
expansion region
subactivity
(name missing)
does not
exist
![Page 6: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/6.jpg)
Before we start
• Seminar-registration state machine. What happens when a
student is enrolled?
http://www.agilemodeling.com/artifacts/stateMachineDiagram.htm
![Page 7: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/7.jpg)
This week sources
/ SET / W&I PAGE 6 24-2-2014
Slides of
Mohammad
Mousavi
![Page 8: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/8.jpg)
What is structure?
• Structure: the aggregate of elements of an entity in their
relationships to each other. Merriam-Webster
• Structural model
/ SET / W&I PAGE 7 24-2-2014
![Page 9: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/9.jpg)
What is structure?
• Structure: the aggregate of elements of an entity in their
relationships to each other. Merriam-Webster
• Structural modelling: discover the key data contained in the
problem domain and to build a structural model of the objects
/ SET / W&I PAGE 8 24-2-2014
Problem Domain
Solution Domain
Structural
Modeling
![Page 10: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/10.jpg)
So what is a structural model/diagram?
A diagram that identifies modules, activities, or other entities
in a system or computer program and shows how larger or
more general entities break down into smaller, more specific
entities.
IEEE Standard Glossary of Software Engineering
Terminology 610.12 1990
/ SET / W&I PAGE 9 24-2-2014
![Page 11: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/11.jpg)
UML structure diagrams
/ SET / W&I PAGE 10 24-2-2014
Class diagram
Composite structure diagram
Packages diagram
Component diagram
Object diagram
Deployment diagram
![Page 12: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/12.jpg)
Quote
If someone were to come up to you in a dark
alley and say,
“Psst, wanna see a UML diagram?”
that diagram would probably be a class
diagram.
[Martin Fowler, UML Distilled, Chapter 3]
/ SET / W&I PAGE 11 24-2-2014
![Page 13: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/13.jpg)
Class diagrams
• most common and most useful
• describe the types of objects in the System and the
various kinds of static relationships that exist among
them
• show the properties and operations of a Class and the
constraints that apply to the way objects are connected
[Martin Fowler, UML Distilled, 2003]
• kind of extended ER diagrams
• NB: differences in notation
/ SET / W&I PAGE 12 24-2-2014
![Page 14: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/14.jpg)
Objects and classes
• describe the types of objects in the System and the
various kinds of static relationships that exist among
them
• Do you remember?
• objects: units of encapsulations of data (state) and
functionality with an identity
• classes: collections of objects [types of the objects]
/ SET / W&I PAGE 13 24-2-2014
![Page 15: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/15.jpg)
Properties, operations and constraints
• show the properties and operations of a Class and the
constraints that apply to the way objects are connected
• Do you remember?
• properties (attributes and associations): units of data
(responsibilities for knowing)
• operations: units of functionality (responsibilities for doing)
• constraints: conditions on attributes, pre- and post-
conditions of operations
/ SET / W&I PAGE 14 24-2-2014
![Page 16: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/16.jpg)
Example
• e-Commerce site (Amazon, bol.com, …)
• Class: Order
Give examples of
properties
/ SET / W&I PAGE 15 24-2-2014
![Page 17: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/17.jpg)
Attributes and associations
• Two different ways properties can be presented
• Attribute – property as a line of text within the class box.
• Association – property as a solid line between two
classes, directed from the source class to the target
class. Name is written on the line close to the target
class.
/ SET / W&I PAGE 16 24-2-2014
Order
number: String
String
Order
name
![Page 18: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/18.jpg)
Navigability
We can query Car
about its owner but
not Person about her
cars.
/ SET / W&I PAGE 17 24-2-2014
Person
Car
owner
Person
Car
owner
Person
Car
▲ owns
We can query Car
about its owner, and
Person about her
cars. Moreover,
x in cars(owner(x)),
y in owner(cars(y))
No navigability
information.
![Page 19: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/19.jpg)
Closer look at the attributes
Order
+number: String [1]
+placedOn: Date [1]
+deliveredOn: Date [0..1]
+totalAmount: Money [1]
+recipient: Name [1]
+lineItems: OrderLine [1..*] {ordered}
/ SET / W&I PAGE 18 24-2-2014
![Page 20: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/20.jpg)
How would we write this in UML?
Order
+number: String [1]
+placedOn: Date [1]
+deliveredOn: Date [0..1]
+totalAmount: Money [1]
+recipient: Name [1]
+lineItems: OrderLine [1..*] {ordered}
/ SET / W&I PAGE 19 24-2-2014
Multiplicity how many objects may
fill the attribute: m..n
at least m
at most n
* denotes ∞
![Page 21: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/21.jpg)
How would we write this in UML?
Order
+number: String [1]
+placedOn: Date [1]
+deliveredOn: Date [0..1]
+totalAmount: Money [1]
+recepient: Name [1]
+lineItems: OrderLine [1..*] {ordered}
/ SET / W&I PAGE 20 24-2-2014
Multiplicity how many objects may
fill the attribute: m..n
at least m
at most n
* denotes ∞
Additional Any kind of
extra
information
needed about
the attribute
![Page 22: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/22.jpg)
How would we write this in UML?
Order
+number: String [1]
+placedOn: Date [1]
+deliveredOn: Date [0..1]
+totalAmount: Money [1]
+recipient: Name [1]
+lineItems: OrderLine [1..*] {ordered}
/ SET / W&I PAGE 21 24-2-2014
Multiplicity how many objects may
fill the attribute: m..n
at least m
at most n
* denotes ∞
Visibility Which other classes can access this
attribute?
+ (public) every other class
- (private) no other class
# (protected) only classes that
inherit from Order
~ (package)
Additional Any kind of
extra
information
needed about
the attribute
![Page 23: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/23.jpg)
Beware: visibility in Java ≠ visibility in UML
• Different programming languages use the same names
for visibility levels but subtly different meanings
/ SET / W&I PAGE 22 24-2-2014
![Page 24: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/24.jpg)
Beware: visibility in Java ≠ visibility in UML
• Different programming languages use the same names
for visibility levels but subtly different meanings
• Translation from UML to a programming language
depends on the programming language
/ SET / W&I PAGE 23 24-2-2014
Order
+number: String [1]
public class Order {
private String number;
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
}
public class Order
{
public String number;
}
![Page 25: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/25.jpg)
Recall our example
• e-Commerce site (Amazon, bol.com, …)
• Class: Order
Give examples of
operations
/ SET / W&I PAGE 24 24-2-2014
![Page 26: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/26.jpg)
How would we write this in UML?
/ SET / W&I PAGE 25 24-2-2014
Order
+number: String [1]
+placedOn: Date [1]
+deliveredOn: Date [0..1]
+totalAmount: Money [1]
+recipient: Name [1]
+lineItems: OrderLine [1..*] {ordered}
+dispatch()
+close()
Visibility Which other classes can access this
operation?
The same idea as with attributes
![Page 27: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/27.jpg)
/ SET / W&I
PAGE 26 24-2-2014
Order
+number: String [1]
+placedOn: Date [1]
+deliveredOn: Date [0..1]
+totalAmount: Money [1]
+recipient: Name [1]
+lineItems: OrderLine [1..*] {ordered}
+dispatch()
+close()
String
Order
+dispatch()
+close()
+number
Money
1
+totalAmount 1
Date
+placedOn 1
0..1 +deliveredOn
OrderLine 1..*
+lineItems {ordered}
*
1
1 *
*
Name
1 * +recepient
Attributes or associations?
Differences?
Advantages?
Disadvantages?
Combinations?
![Page 28: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/28.jpg)
Attribute or association?
• Attribute
• Value is important, not identity: Date, Number, String
• Little behavior and functionality
• Association (i.e., a separate class)
• Identity is important: Customer, Order, Student, Book
• Complex behavior or functionality
/ SET / W&I PAGE 27 24-2-2014
![Page 29: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/29.jpg)
Attribute or association?
• Attribute
• Value is important, not identity: Date, Number, String
• Little behavior and functionality
• Association (i.e., a separate class)
• Identity is important: Customer, Order, Student, Book
• Complex behavior or functionality
/ SET / W&I PAGE 28 24-2-2014
Order
+number: String [1]
+placedOn: Date [1]
+deliveredOn: Date [0..1]
+totalAmount: Money [1]
+recipient: Name [1]
+dispatch()
+close()
OrderLine 1..*
+lineItems {ordered}
1
![Page 30: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/30.jpg)
Attribute or association?
• Attribute
• Value is important, not identity: Date, Number, String
• Little behavior and functionality
• Association (i.e., a separate class)
• Identity is important: Customer, Order, Student, Book
• Complex behavior or functionality
/ SET / W&I PAGE 29 24-2-2014
Order
+number: String [1]
+placedOn: Date [1]
+deliveredOn: Date [0..1]
+totalAmount: Money [1]
+recipient: Name [1]
+dispatch()
+close()
OrderLine 1..*
+lineItems {ordered}
1
![Page 31: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/31.jpg)
Special kind of association
• Order lines do not really have identity
• Two orders cannot share an order line
• When an order is deleted, order lines do not “survive”…
/ SET / W&I PAGE 30 24-2-2014
http://blog.procurify.com/wp-content/uploads/2013/06/Purchase-Order.gif
![Page 32: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/32.jpg)
Special kind of association
• Order lines do not really have identity
• Two orders cannot share an order line
• When an order is deleted, order lines do not “survive”…
http://blog.procurify.com/wp-content/uploads/2013/06/Purchase-Order.gif
Composition
/ SET / W&I PAGE 31 24-2-2014
Order
+number: String [1]
+placedOn: Date [1]
+deliveredOn: Date [0..1]
+totalAmount: Money [1]
+recipient: Name [1]
+dispatch()
+close()
OrderLine 1..*
+lineItems {ordered}
1
![Page 33: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/33.jpg)
Does this make sense?
/ SET / W&I PAGE 32 24-2-2014
Wheel 4 1
Car
![Page 34: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/34.jpg)
Does this make sense?
/ SET / W&I PAGE 33 24-2-2014
Wheel 4 1
Car
No, we can have spare parts!
![Page 35: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/35.jpg)
Does this make sense?
/ SET / W&I PAGE 34 24-2-2014
Person 1..* 1
Committee
![Page 36: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/36.jpg)
Does this make sense?
/ SET / W&I PAGE 35 24-2-2014
Person 1..* 1
Committee
No, persons might be members of
multiple committees!
![Page 37: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/37.jpg)
Weaker form: aggregation
• Aggregation: “part of” relation
• Parts can exist without the whole
• Parts can be shared by multiple “wholes”
• “Whole” can exist without its parts
/ SET / W&I PAGE 36 24-2-2014
Person 1..* 1
Committee
Wheel 4 1
Car
![Page 38: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/38.jpg)
Recipient – we need more than a name
• Customer
• name
• billing address
• private or corporate
• Generalization
• The same notation as
in the use cases
/ SET / W&I PAGE 37 24-2-2014
Customer
#number: String [1]
#name: Name [1]
#address: String [0..1]
Corporate Customer
+contractNumber: String [1]
+contactName: Name [1]
+creditRating: String [1]
Private Customer
+creditCardNumber: String [1]
![Page 39: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/39.jpg)
Abstract class
• We said private or
corporate but the intention
was private, corporate and
nothing else!
• Abstract class cannot be
directly instantiated. Instead,
one instantiates an instance
of a subclass.
/ SET / W&I PAGE 38 24-2-2014
Customer
#number: String [1]
#name: Name [1]
#address: String [0..1]
Corporate Customer
+contractNumber: String [1]
+contactName: Name [1]
+creditRating: String [1]
Private Customer
+creditCardNumber: String [1]
![Page 40: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/40.jpg)
Abstract class: Another example
• GeometricObject is
an abstract class
• getArea() and
getPerimeter() are
abstract methods
• Not implemented in
GeometricObject but
in its subclasses
• Why?
/ SET / W&I PAGE 39 24-2-2014 http://www.oxfordmathcenter.com/drupal7/node/35
![Page 41: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/41.jpg)
40
• A)
• B)
• C)
• D)
A B
C D
A B
C D
A B
C D
A B
C D
For classes A, B, C, D which class diagram(s) is/are
illegal?
Exercise
illegal (cycle) illegal (cycle)
![Page 42: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/42.jpg)
Exercise (from Northumbria University)
• Consider Checkers game.
• Draw the class diagram
• Ignore attributes and
operations
/ SET / W&I PAGE 41 24-2-2014
![Page 43: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/43.jpg)
Exercise (from Northumbria University)
• Consider Checkers game.
• Draw the class diagram
• Ignore attributes and
operations
/ SET / W&I PAGE 42 24-2-2014
Square
Board
64
1
WhiteChe cker
WhiteSquare
RedChecker
BlackSquare
Checker
On Square
![Page 44: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/44.jpg)
Back to Orders: another kind of relation
• Dependency: the source uses the target in order to
realize its functionality (but does not include an instance
of it)
• Lots of dependencies clutter the diagram.
− Less frequently shown than association, generalization,
composition and aggregation
− UML distinguishes more than 10 kinds of dependencies
− Stereotypes are frequently omitted
• Usually, target appears a parameter in source’s operations.
/ SET / W&I PAGE 43 24-2-2014 / SET / W&I PAGE 43 24-2-2014
Order
+updatePriceFor(Product) OrderLine
1..*
+lineItems
{ordered}
1 Product
![Page 45: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/45.jpg)
Examples of dependencies
• <<create>>
• Order creates entries in the log book
• <<use>>
• Order uses information about products
• <<call>>
• Order calls a System operation to obtain the current time
• …
/ SET / W&I PAGE 44 24-2-2014
![Page 46: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/46.jpg)
Cousin of an Abstract Class
• Interface: a class-like construct that contains only
constants and abstract methods.
• Directly correspond to interfaces in Java and C#
• Subject to all relations we have seen
• Classes require (dependency) interfaces or provide
(implementation) interfaces
/ SET / W&I PAGE 45 24-2-2014
http://martinfowler.com/bliki/BallAndSocket.html
UML 1 UML 2
![Page 47: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/47.jpg)
Cousin of an Abstract Class
• What are advantages and disadvantages of the UML 2
“ball and socket” notation for interfaces?
/ SET / W&I PAGE 46 24-2-2014
http://martinfowler.com/bliki/BallAndSocket.html
UML 1 UML 2
![Page 48: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/48.jpg)
Cousin of an Abstract Class
• What are advantages and disadvantages of the UML 2
“ball and socket” notation for interfaces?
• How to represent multiple classes providing the same
interface?
− Solution due to Jim Rumbaugh and Martin Fowler
/ SET / W&I PAGE 47 24-2-2014
http://martinfowler.com/bliki/BallAndSocket.html
UML 1 UML 2
![Page 49: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/49.jpg)
Balls, sockets and usability
When I first saw the mated ball and socket notation I rather
liked it. Since then, however, I've found no great inclination
to use it. For simple cases the UML 1 style with sockets
works well, but when things get more complicated I prefer
to have explicit class boxes for the interfaces.
[Martin Fowler,
http://martinfowler.com/bliki/BallAndSocket.html]
/ SET / W&I PAGE 48 24-2-2014
![Page 50: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/50.jpg)
Putting it all together
/ SET / W&I PAGE 49 24-2-2014 / SET / W&I PAGE 49 24-2-2014
Order
+number: String [1]
+placedOn: Date [1]
+deliveredOn: Date [0..1]
+approved: Boolean [1]
+totalAmount: Money [1]
+dispatch()
+close()
+updatePriceFor(Product)
OrderLine
1..*
+lineItems
{ordered}
1
Product PAGE 49 24-2-2014
Customer
#number: String [1]
#name: Name [1]
#address: String [0..1]
#getCreditRating()
Corporate Customer
+contractNumber: String [1]
+contactName: Name [1]
+creditRating: String [1]
Private Customer
+creditCardNumber: String
[1]
1 *
* 1
if customer.getCreditRating
is "poor" then approved
must be true
![Page 51: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/51.jpg)
Advantages / disadvantages
• Looks nice but cluttered?
• 6 classes only, 2 without attributes/operations
• How can we reduce the amount of information?
• Reduce the number of classes
• Reduce the number of associations / generalizations /
compositions / aggregations
− Association classes [see next slide]
• Reduce information per association
− Drop names of associations/roles unless meaningful
• Reduce the number of attributes
• Reduce information per attribute
− Multiplicity of [1] can be assumed
/ SET / W&I PAGE 50 24-2-2014
![Page 52: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/52.jpg)
Association class
• OrderLine represents an association between Order and
Product
• No multiplicity: one instance per association
• No additional associations
PAGE 51 24-2-2014 / SET / W&I
Order
OrderLine
1..*
1
Product
* 1
Order
OrderLine
*
Product
1..*
![Page 53: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/53.jpg)
Correct or incorrect?
/ SET / W&I PAGE 52 24-2-2014
Company
Role
*
Contract
*
![Page 54: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/54.jpg)
Correct or incorrect?
/ SET / W&I PAGE 53 24-2-2014
Company
Role
*
Contract
*
No, companies can play multiple roles in the same
contract:
e.g., supplier and maintenance provider
![Page 55: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/55.jpg)
Correct or incorrect?
/ SET / W&I PAGE 54 24-2-2014
Person
Competency
*
Skill
*
![Page 56: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/56.jpg)
Correct or incorrect?
/ SET / W&I PAGE 55 24-2-2014
Person
Competency
*
Skill
*
Yes, for each skill a person would typically have only
one competency level.
![Page 57: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/57.jpg)
Further simplification
• Association is stronger than dependency
• We do not need to show both!
PAGE 56 24-2-2014 / SET / W&I
Order
OrderLine
1..*
1
Product
* 1
Order
OrderLine
*
Product
1..*
Order
OrderLine
*
Product
1..*
![Page 58: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/58.jpg)
Simplifying the diagram
/ SET / W&I PAGE 57 24-2-2014 / SET / W&I PAGE 57 24-2-2014
Order
+number: String
+placedOn: Date
+deliveredOn: Date [0..1]
+approved: Boolean
+totalAmount: Money
+dispatch()
+close()
+updatePriceFor(Product)
Product
1..*
*
PAGE 57 24-2-2014
Customer
#number: String
#name: Name
#address: String [0..1]
#getCreditRating()
Corporate Customer
+contractNumber: String
+contactName: Name
+creditRating: String
Private Customer
+creditCardNumber: String
1 *
if customer.getCreditRating
is "poor" then approved
must be true
OrderLine
![Page 59: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/59.jpg)
Example: EasyShop system
Ellen and Portia live in Los Angeles.
Ellen is a TV-host and stand-up comedian; Portia is an
actress and both have a very busy schedule.
To schedule their shopping and household activities:
EasyShop.
/ SET / W&I PAGE 58 24-2-2014
![Page 60: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/60.jpg)
EasyShop: business needs
Ellen and Portia should be able
• to enter their presence for meals for each day
• to register invitations for guests for each meal
• to fix a menu for cold meals with given ingredients
• to choose whether they will cook in their agenda, and if
so, fix a recipe for each warm meal
• to prepare a weekly shopping list, and fax the shopping
list to the supermarket for delivery
• to keep track of ingredients in the kitchen; give a report
when needed
• to show recipes (e.g., when cooking a dish)
/ SET / W&I PAGE 59 24-2-2014
![Page 61: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/61.jpg)
What do we model?
• Identify the actors
/ SET / W&I PAGE 60 24-2-2014
Ellen and Portia Supermarket
?
![Page 62: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/62.jpg)
Candidate classes
Ellen and Portia should be able
• to enter their presence for meals for each day
• to register invitations for guests for each meal
• to fix a menu for cold meals with given ingredients
• to choose whether they will cook in their agenda, and if
so, fix a recipe for each warm meal
• to prepare a weekly shopping list, and fax the shopping
list to the supermarket for delivery
• to keep track of ingredients in the kitchen; give a report
when needed
• to show recipes (e.g., when cooking a dish)
/ SET / W&I PAGE 61 24-2-2014
1. Identify noun phrases
2. Ignore actors
![Page 63: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/63.jpg)
Candidate classes
Ellen and Portia should be able
• to enter their presence for meals for each day
• to register invitations for guests for each meal
• to fix a menu for cold meals with given ingredients
• to choose whether they will cook in their agenda, and if
so, fix a recipe for each warm meal
• to prepare a weekly shopping list, and fax the shopping
list to the supermarket for delivery
• to keep track of ingredients in the kitchen; give a report
when needed
• to show recipes (e.g., when cooking a dish)
/ SET / W&I PAGE 62 24-2-2014
1. Identify nouns (noun
phrases)
2. Ignore actors
3. Omit repetitions
![Page 64: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/64.jpg)
Candidate classes
Ellen and Portia should be able
• to enter their presence for meals for each day
• to register invitations for guests for each meal
• to fix a menu for cold meals with given ingredients
• to choose whether they will cook in their agenda, and if
so, fix a recipe for each warm meal
• to prepare a weekly shopping list, and fax the shopping
list to the supermarket for delivery
• to keep track of ingredients in the kitchen; give a report
when needed
• to show recipes (e.g., when cooking a dish)
/ SET / W&I PAGE 63 24-2-2014
1. Identify nouns (noun
phrases)
2. Ignore actors
3. Omit repetitions
refers to Ellen and Portia, ignore
![Page 65: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/65.jpg)
Sketching the class diagram step by step
• meals for each day
• menu for cold meals with given ingredients
• menu should be recorded in ColdMeal
• fix a recipe for each warm meal
• to show recipes
/ SET / W&I PAGE 64 24-2-2014
Day Meal
Meal Ingredient ColdMeal 1..*
Meal Recipe WarmMeal 1
Recipe
+showRecipe()
![Page 66: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/66.jpg)
So far
/ SET / W&I PAGE 65 24-2-2014
Day Meal
WarmMeal ColdMeal
1
Recipe
+showRecipe()
Ingredient
![Page 67: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/67.jpg)
So far
/ SET / W&I PAGE 66 24-2-2014
Day Meal
WarmMeal ColdMeal
1
Recipe
+showRecipe()
Ingredient
Continue at the
instruction group
meeting
![Page 68: Structural specificationaserebre/2IW80/2013-2014/04 - UML...UML structure diagrams / SET / W&I 24-2-2014 PAGE 10 Class diagram Composite structure diagram Packages diagram Component](https://reader036.fdocuments.in/reader036/viewer/2022071106/5fe0043dc3f4a070b20108c4/html5/thumbnails/68.jpg)
/ SET / W&I PAGE 67 24-2-2014