Lecture6

advertisement
Karolina Muszyńska
Based on: http://www.csun.edu/~dn58412/IS431/IS431_SP13.html
S. Wrycza, B. Marcinkowski, K. Wyrzykowski „Język UML 2.0 w modelowaniu SI”

Static view - class/object diagrams
◦
◦
◦
◦
role
basic concepts
advanced concepts
examples
2


Class diagrams – kind of UML diagrams showing
the static view of the system, constituting the
basis for the future object-oriented database.
Class diagrams depict the system’s object
structure and show object classes that the system
is composed of as well as the relationships
between classes.
Object diagrams - they are similar to class
diagrams but instead of depicting object classes
they model actual object instances, showing the
structure of the systems in a given moment of
time.
3


Conceptual diagram – class diagram including
basic elements, using class, attributes and
behavior names, which are clear and
understandable for the user.
Implementation diagram – class diagram enriched
by additional elements like data types, visibility,
association classes, generalization relationships,
or realizations.
4
 Object – anything that is or is capable of being
seen, touched, or otherwise sensed, and about
which users store data and associate behavior
(which is important in the considered domain)
 Attributes - data that represents characteristics of
interest about an object (everything what is known
about an object is represented by the attributes)
 Behavior/Methods - refers to things that the object
can do and that correspond to functions that act on
the object’s data (or its attributes)
 Class - a set of objects sharing a common
structure – attributes and behavior, and common
relationships and meaning.
5
Class
Class name
Attributes with
data types
Methods with
output data types
6
Object
Object name
Values of the
attributes
7
 An object/class relationship is an association that exists
between one or more objects/classes. It is defined by
business rules and/or common practices. There are four
types of relationships among classes: association,
generalization, dependency and realization.
 Association - main type of relationship describing the
possible set of associations among objects of the associated
classes.
 Navigation is the defined direction of communication
between classes; if not defined the default navigation is bidirectional.
 Multiplicity defines how many instances of one class can be
associated with one instance of another class.
8
UML
Multiplicity
Multiplicity
Notation
Exactly 1
Zero or one
Zero or
more
Association with Multiplicity
1
Employee
0..1
Employee
Employee
0..*
or
*
One or more
1..*
Specific
range
7..9
Customer
Customer
University
Team
Works for
1
Department
Has
0..1
Department
Spouse
Makes
0..*
Payment
Makes
*
Payment
Offers
1..*
scheduled 7..9
Has
Association
Meaning
An employee
works for one
and only one
department.
An employee has
either one or no
spouse.
A customer can
make no payment
up to many
payments.
Course
A university
offers at least 1
course up to
many courses.
Game
A team has either
7, 8, or 9 games
scheduled
9
Association name
Customer
1
contractor
Multiplicity
Association
places
0..*
contract
Order
Roles
10

Aggregation – a special kind of relationship, which
shows that some objects/classes are made up of
other objects/classes. By identifying aggregation
relationships we can partition a very complex
object and assign behaviors and attributes to the
individual objects within it. There are two types of
aggregation relationships:
◦ composition - all part-objects make up and live
in the whole-object,
◦ shared aggregation /aggregation/ - implies that
parts may be shared by many wholes.
11
Aggregation Relationship
Operation Team
Doctor
Nurse
Admin staff
“is a part of” relationships
(part-objects may be shared by many whole-objects)
12
Composition Relationship
Order
Book
Order item
Page
“is made of” relationships
(all part-objects make up and live in the whole-object)
13
 Visibility – access modifier which determines the access level
of the attributes or methods of the object class. Visibility
defines whether attributes and methods of specific classes
can be seen and used by other classes. UML specifies 4 main
visibility levels:
◦ „-” private – only objects within the same class can see and use the
attributes or methods,
◦ „#” protected – only objects within the same class and from
descendent classes can see and use the attributes or methods,
◦ „+” public – objects of any class can see and use the attributes or
methods,
◦ „~” package - only classes within the same package can see and use
the attributes or methods.
 There is a rule that class attributes should be set private and
the external access to them is made possible by public
methods.
14
 Multiple association – a situation when associated
classes can play different roles to each other and so
there are multiple associations between them. Each
association should be named or characterized.
is seller
Participant
Auction
is buyer
15
 Reflexive association – a situation when there is an
association between different objects of the same class
(an association binding the class with itself).
1
Automobile
platform
passenger car 1..10
transports
16
 Generalization relationship - indicates that one of the
two related classes - the subclass (child) is considered
to be a specialized form of the other - the superclass
(parent) and superclass is considered as ‘generalization'
of subclass. In other words the child class is a specific
type of the parent class and assumes all the
characteristics of its parent class.
 The generalization relationship is also known as the
inheritance relationship.
 The parent class can be either a real class or an abstract
class. The abstract class has no real object instances, it
is only a generalization of real objects which are
specified as child classes.
17
Generalization Relationship
Employee
Doctor
Nurse
Admin staff
- “is a kind of” relationships
18
 Realization relationship - denotes the implementation
of the functionality defined in one class by another class
(interface). Relationship in which one model element
(the client) realizes (implements or executes) the
behavior that the other model element (the supplier)
specifies. A realization relationship between classes and
interfaces shows that the class realizes the operations
offered by the interface.
 Realizations can only be shown on class or component
diagrams.
19
Interface
Realization
relationship
20
 Find the potential objects
(the best way is to review each use case to find
nouns that correspond to business entities or events).
 Select the proposed objects
(clean the list of all potential business objects
from: synonyms, nouns outside the scope of system, nouns that are roles without
unique behavior or are external roles, unclear nouns that need focus and nouns that are
really actions or attributes).
 Identify attributes and operations of the classes.
 Identify associations and multiplicity
(to help insure that all possible
relationships are identified we can create a class matrix).
 Identify generalization relationships
(we should look for all one-to-one
multiplicity relationships between objects because they may be generalization
relationships, as well as for classes that have common attributes and behaviors).
 Identify aggregation relationships
(we must remember that aggregation
relationships do not imply inheritance but they propagate behavior).
 The first step should be to identify related classes and build
class diagrams for each particular use case and next build an
integrated class diagram for the whole system.
21
22
Download