Title: Bouwkundige Informatiesystemen ADMS 2006 UML part 2
1Bouwkundige InformatiesystemenADMS 2006UML part
2
Jan Dijkstra - 23 oktober 2006
2Subjects
- Objects Classes 16 okt.
- UML Class Diagram 23 okt.
- UML Object Diagram 23 okt.
- UML Class Diagrams Exercises 23 okt.
- Exercise Class Diagram MKW 23 okt.
- Discussion Exercise Class Diagram MKW 30 okt.
- UML Class Diagrams - Advanced Concepts 30 okt.
- Task UML-part 2 30 okt.
3UML Models, Views and Diagrams
- A diagram is a view into a model
- presented from the aspect of a particular
stakeholder - and provides a partial representation of the
system
4UML Views
vocabulary functionality
system assembly configuration management
Implementa-tion view
Design view
Use Case view
behaviour
Interaction view
Deployment view
performance scalability throughput
system topology distribution delivery installation
5UML Diagrams
- Structure diagram
- Class diagram
- Object diagram
- Component diagram
- Composite structure diagram
- Deployment diagram
- Artifact diagram
- Behaviour diagram
- Use Case diagram
- Sequence diagram
- Communication diagram
- State diagram
- Activity diagram
6Use Case diagram
7Classes/objects course management
8UML Class Diagrams
- The class diagram provides a static structure of
all the classes that exist within the system.
Classes are arranged in hierarchies sharing
common structure and behaviour and are associated
with other classes.
- Class diagrams are used in
- Analysis To build a conceptual domain model with
semantic associations between concepts -
-
9Class Diagram associations between classes
10Classes and Objects
-
- An object is described by a class.
- A class may define a number of objects with
identical properties
11Object Diagram links between objects
12Class diagram
- A class diagram describes the type of objects in
a system and the static relationships between
them. - Static relations
- Associations
- Subtypes
- Static structure
- Attributes
- Operations
13Class
- A class is a set of objects that share the same
properties.
Name
14Class
- A class is a set of objects that share the same
properties. - A class has a name.
Course
15Class - attributes
- The class captures the abstraction of properties
in the set of objects.
Name Attributes
16Class - attributes
- An attribute of a class is identified by name,
and it identifies a property of the objects of
the class, for which each object takes a value. - A class has 0 to n attributes.
Course courseNum Integer title String datum
Date
17Class - operations
- Operations are the processes that a class knows
to carry out.
Order Attributes Operations
18Class - operations
- The operations are the responsibilities the
things we can ask an object to do. - A class has 0 to n operations.
Course courseNum Integer title String datum
Date addReservation() cancel()
19UML Class Diagrams
- The class diagram provides a static structure of
all the classes that exist within the system.
Classes are arranged in hierarchies sharing
common structure and behaviour and are associated
with other classes.
- Class diagrams are used in
- Analysis To build a conceptual domain model with
semantic associations between concepts - Design Structural model of a design in terms of
class interfaces - Implementation Source code documentation,
exposing the implementation
20Classes and Objects
- Objects looks like modules in some ways
- Object Identity State Behaviour
- Objects provide encapsulation of data
- An object is described by a class. A class may
define a number of objects with identical
properties
21About an Object
- An object has a public interface defining the
operations (methods) it will support - An object has private data called attributes,
which only its own operations can access - An object can have private operations for its own
use - An object may know about other objects by means
of associations
22Classes - recapitulation
- A class is simply represented as a box with the
name of the class inside - The diagram may also show the attributes and
operations
Rectangle
The complete signature of an operation is
operationName(parameterName parameterType )
returnType
23(No Transcript)
24Essentials of UML Class Diagramsrecapitulation
- The main symbols shown on class diagrams are
- Classes
- Represent the types of data themselves
- Associations
- Represent linkages between instances of classes
- Attributes
- Are simple data found in classes and their
instances - Operations
- Represent the functions performed by the classes
and their instances - Generalizations
- Group classes into inheritance hierarchies
25(No Transcript)
26Identifying objects ?
- A possible recipe
- We can identify objects in our problem context by
looking for nouns and noun phrases - Each of these can be underlined and becomes a
candidate for an object in our solution - Eliminate irrelevant objects
- Redundant, vague, event, outside scope,
attribute, meta-language
27The Bank Account Example
- You are asked to design a system to handle
current and savings accounts for a bank. Accounts
are assigned to one or more customers, who may
make deposits or withdraw money. Each type of
account earns interest on the current balance
held in it. Current accounts may have negative
balances (overdrafts) and then interest is
deducted. Rates of interest are different for
each type of account. On a savings account, there
is a maximum amount that can be withdrawn in one
transaction. - Bank employees may check any account that is held
at their branch. They are responsible for
invoking the addition of interest and for issuing
statements at the correct times. - A money transfer is a short lived record of an
amount which has been debited from one account
and has to be credited to another. A customer may
create such a transfer from their account to any
other. Transfers within a branch happen
immediately, while those between branches take
three days.
28The Bank Account Example
- You are asked to design a system to handle
current and savings accounts for a bank. Accounts
are assigned to one or more customers, who may
make deposits or withdraw money. Each type of
account earns interest on the current balance
held in it. Current accounts may have negative
balances (overdrafts) and then interest is
deducted. Rates of interest are different for
each type of account. On a savings account, there
is a maximum amount that can be withdrawn in one
transaction. - Bank employees may check any account that is held
at their branch. They are responsible for
invoking the addition of interest and for issuing
statements at the correct times. - A money transfer is a short lived record of an
amount which has been debited from one account
and has to be credited to another. A customer may
create such a transfer from their account to any
other. Transfers within a branch happen
immediately, while those between branches take
three days. - Question ? Recognize the nouns!
29Nouns in the bank account example
- You are asked to design a system to handle
current and savings accounts for a bank. Accounts
are assigned to one or more customers, who may
make deposits or withdraw money. Each type of
account earns interest on the current balance
held in it. Current accounts may have negative
balances (overdrafts) and then interest is
deducted. Rates of interest are different for
each type of account. On a savings account, there
is a maximum amount that can be withdrawn in one
transaction. - Bank employees may check any account that is held
at their branch. They are responsible for
invoking the addition of interest and for issuing
statements at the correct times. - A money transfer is a short lived record of an
amount which has been debited from one account
and has to be credited to another. A customer may
create such a transfer from their account to any
other. Transfers within a branch happen
immediately, while those between branches take
three days.
30Nouns eliminated
- Redundant - overdraft, account
- Vague - amount, money
- An event or an operation - transaction, deposit
- Outside scope of system - bank, days
- An attribute - interest, rate of interest,
maximum amount, current balance, overdraft - Meta-language - transaction, correct times,
record
31Nouns left
- current account, savings account, customer,
branch, statement, transfer - Remark
- The Bank Account is derived from
- Pauline Wilcox The Unified Modelling Language
in - Msc in Systems Level Integration Systems
Partitioning Module
32Class Diagram (without adornments)bank account
example
- current account,
- savings account,
- customer,
- branch,
- statement,
- transfer
33Association Adornments Name, Role
- The association has a name - the descriptive
term, often a verb, for the association. - Each association has two association ends each
end is attached to one of the classes in the
association. An end can be explicitly named with
a label. This label is called a role name
(association ends are often called roles).
34Association Multiplicity
- Multiplicity defines the number of objects
associated with an instance of the association. - Default of 1 (1 1)
- 0 or 1 0..1
- Zero or more (0..infinite)
- 1 or more (1..infinite) 1..
- n..m range from n to m inclusive
35Class Diagram (with multiplicities)bank account
example
36Association classes
- Sometimes an attribute that concerns two
associated classes cannot be placed in either of
the classes
37Attribute Analysis
- It is not always clear which attributes belongs
to which classes by finding out the class
attributes. An attribute is assigned to that
class where it is certainly a feature. - For example
- a project leader has the attributes name,
department and age. - But what to do with the attributes project
number, project duration, starting time, and
budget? These attributes clarifies something
about the relation between project leader and
type of project.
This often happens if a nm relation refers to an
association between two classes. In that case, we
can define a new class, for instance project
management.
38(No Transcript)
39Generalization
- A specialization / generalization relationship,
in which objects of the specialized element
(child) are substitutable for objects of the
generalized element (parent). - Superclass the generalization of another
class, the child. - Subclass the specialization of another class,
the parent.
Customer
Corporate Customer
Personal Customer
40Generalization - characteristics
- Identify common features concerning behaviour and
knowledge. Define these common features on a
higher level in the inheritance hierarchy. - The aim is at behaviour more than knowledge when
combining classes. - Generalization is a bottum-up process.
- A superclass includes all common properties of
its subclasses.
41Specialization - characteristics
- Define a new class which is a special appearance
of an existing class. - Specialization is a top-down process.
- A subclass can have attributes and operations
that are specific for that sub-class. - A subclass may redefine operations of its
super-class.
42(No Transcript)
43Associations vs. generalizations
- Associations describe the relationships that
will exist between instances at run time - when you show an instance diagram generated from
a class diagram, there will be an instance of
both classes joined by an association
- Generalizations describe relationships between
classes in class diagrams - they do not appear in instance diagrams at all
- an instance of any class should also be
considered to be an instance of that classs
super classes
44Aggregation
- Aggregations are special associations that
represent part-whole relationships - the whole side is often called the assembly or
the aggregate
45Composition
- A composition is a strong kind of aggregation
- if the aggregate is destroyed, then the parts are
destroyed as well
46Aggregation and Composition example
A
B
- Question What is OK?
- A
- B
- A B
- None
47Object diagram
- An object diagram is shown as a class, and the
name is underscored, although an objects name
can be shown optionally preceding the class name
as - objectname classname.
- The object does not have to be named, in which
case only the classname is shown underscored.
48Object diagram example
49Object diagram example
50References
- Sommerville, Ian (2001)
- Software Engineering, 6th edition
- http//www.software-engin.com
- Timothy Lethbridge Robert Laganière (2005)
- Object-Oriented Software Engineering, 2nd edition
- http//www.lloseng.com
- Martin Fowler (2000, 2004)
- Object-Oriented Software Engineering, 2nd
edition 3rd edition
51NS Ticket service
Destination
- Make a class diagram of NS ticket service
including the classes Ticket and Destination
Take ticket
52Use Case diagram NS Ticket service
53 Use Case Buy OV Ticket
Actors Traveller
Preconditions Traveller has a valid pass
Description Ticket device expects destination code Traveller enters destination code Extension point NS ticket Ticket device checks code and calculates the charge. Shows destination code fare. Activates ticket machine for paying Traveller pays (use case Pay ticket) Ticket device print and supplies ticket Traveller takes ticket
Extension Destination code NS station. 3a. Ticket device expects ticket type 3b. Traveller enters Single/Return, Discount Y/N, Class
Exceptions Traveller interrupt the interaction or walk away Traveller enters an incorrect destination code Payment is not finished off successful
Result Traveller has ticket. (NS can look forward to the payment)
54Make a class diagram of NS ticket service
including the classes Ticket and Destination
55Exercises Now
56Exercise 30 October
- Ga uit van de MKW beschrijving van oefening van
UML1 - Identificeer enkele klassen
- Geef zo mogelijk relaties tussen klassen aan