oo programming and uml design dr. zhen jiang west chester university e-mail: [email protected]
TRANSCRIPT
![Page 1: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/1.jpg)
OO programming and UML OO programming and UML DesignDesign
Dr. Zhen Jiang
West Chester University
E-mail: [email protected]
![Page 2: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/2.jpg)
OutlineOutline
Introduction to object and classIntroduction to UML Introduction to UML design
![Page 3: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/3.jpg)
Introduction to object and classIntroduction to object and classWhy OO programming?
– Look at this picture carefully– You need to identify it from VERY similar
pictures in the next slide
![Page 4: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/4.jpg)
Introduction to object and classIntroduction to object and classWhy OO programming?
– Which one is shown before?
– In the next slide, your partner will see the selected picture and other two pictures together. Write down something to help your partner to pick up the same picture correctly.
![Page 5: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/5.jpg)
Introduction to object and classIntroduction to object and classWhy OO programming?
– Partner’s job
![Page 6: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/6.jpg)
Introduction to object and classIntroduction to object and classWhy OO programming?
– Which one?
![Page 7: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/7.jpg)
Introduction to object and classIntroduction to object and classWhy OO programming?
– From snapshot to the action
![Page 8: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/8.jpg)
Introduction to object and classIntroduction to object and classWhy OO programming?
– From snapshot to the action
3
2
1
![Page 9: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/9.jpg)
Introduction to object and classIntroduction to object and classWhat’s object
– Identity– State– Behavior
Sequence Diagram Statechart Diagram
– Messages and methodsWhat’s class
– Objects and Classes– Class Attributes– Operation (Method)– Interfaces– Interfaces and Implementation
![Page 10: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/10.jpg)
What’s objectWhat’s object
Fundamentals of Object-Oriented Programming
![Page 11: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/11.jpg)
What’s objectWhat’s objectConceptually, there are many ways to think
of an object– something that can be seen or touched– a thing to which some action is directed– something that performs an action
The structure and behaviour of similar objects are defined in their common class
Objects have three properties: identity , state, and behaviour
![Page 12: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/12.jpg)
Object Property 1: Object Property 1: IdentityIdentityIdentity is that property of an object which
distinguishes it from all other objectsMost programming languages use variable
names to refer to objectsKeep in mind, however, that an object may
not have a name; Similarly, an object might have multiple names (aliases)– For this reason, there is a subtle distinction
made between the concepts of "name" and "identity"
![Page 13: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/13.jpg)
Object Property 2: StateObject Property 2: StateThe state of an object encompasses all of the
descriptions of the object plus the current values of each of these descriptions
![Page 14: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/14.jpg)
Object Property 3: Object Property 3: BehaviourBehaviourBehaviour is how an object acts and reacts,
in terms of its state changes and message passing
The state of an object represents the cumulative results of its behaviour
In object-oriented programming, a behaviour is invoked by sending a message to an object
![Page 15: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/15.jpg)
Example ObjectsExample ObjectsThere are many physical objects we can
examine right in this room– each person is an object – any chair is not an object– each light bulb is an object– Any book is not an object– this room itself is an object (full or not)
![Page 16: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/16.jpg)
See if the followings are objects or not:– Desk– Lamp– Person– Log– The Earth– Clock– Machine– Computer– Saving account
Answer: N, Y, Y, N, Y, Y, Y, Y, Y
![Page 17: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/17.jpg)
What’s the relationship among What’s the relationship among objects: Messages and Methodsobjects: Messages and Methods
A object executes a method when it sends/receives a message
For example, we can ask/tell a dog to sit by sending him the message "sit"
In object-oriented programming, objects send messages asking/telling others to perform behaviors -- those other objects invoke the method corresponding to the message in order to execute the desired behavior
![Page 18: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/18.jpg)
What’s classWhat’s classA class describes the common structure
(attributes/state) and behaviour of its instancesFor example,
– 3.14, 2.71, and 5.5 can be classified as Floats
– the following shapes can be classified as Circles
![Page 19: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/19.jpg)
Classes and ObjectsClasses and ObjectsAn object is called an "instance" of a classThe terms instance and object are
interchangeableCreating an object from a class is often
called instantiationFor example, there are many person objects
in this room -- each person is an instance of the person class
![Page 20: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/20.jpg)
Classes and objectsClasses and objectsHow would we describe the state,
behaviour, and identity for each of these objects
We have looked at objects and we have seen that objects can be "classified" into classes
As programmers, we work with both classes and objects from those classes
For example, we might write a stack class and create multiple stack objects for use in our program
![Page 21: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/21.jpg)
In a 2D drawing package, circles have a radius, a line thickness, a line colour, and a fill colour
Each individual circle (instance) drawn by the user has its own value for each attribute
The programmer writes a Circle class and the program instantiates a Circle object every time the user draws a Circle
a snowman made from 9 Circle instances
![Page 22: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/22.jpg)
Simply, a class is a group of objects with common parts or behaviors (similar, not necessary the exact same). That common thing will be defined in class definition.
An object is an instance which meets all the description of its class.
![Page 23: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/23.jpg)
An attribute is a named property of a class that describes the range of values that instances of the property may hold.(Booch,1999)
An attribute has a type that defines the type of its instances.
Only the object itself should be able to change the value of its attributes.
The values of the attributes define the state of the object
Class AttributesClass Attributes
![Page 24: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/24.jpg)
Operation (Methods)Operation (Methods) An operation is the implementation of a
service that can be requested from any object of the class to affect behavior (Booch, 1999)
An operation can be:– Question (does not change the value of the
object)– Command (may change the value of the
object)
![Page 25: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/25.jpg)
Interface and ImplementationInterface and ImplementationThe class interface is its external (public)
view The class implementation is its internal
(private) viewIt is convenient to think of the interface as
describing "what the objects of this class can do" and the implementation as "how the objects of this class do it"
The implementation of a class consists of all the "behind the scenes" operations defined in the interface of the class
![Page 26: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/26.jpg)
Introduction to UMLIntroduction to UML
What’s UML Goals of UML Overview
– Class diagram Introduction Class icon Class relationship Constraints
– Other diagrams
![Page 27: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/27.jpg)
UML: Unified Modeling UML: Unified Modeling LanguageLanguage
The Unified Modeling Language (UML) is an industry-standard language for specifying, visualizing, constructing, and documenting the artifacts of software systems
The UML definition was led by Grady Booch, Ivar Jacobson, and Jim Rumbaugh (all now at Rational Software)
![Page 28: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/28.jpg)
In Essence: a tool used through the analysis and design phases of system development for expressing the constructs and relationships of complex systems
Target Usage: for building object-oriented and component-based systems
UML simplifies the process of software design, making a "blueprint" for construction
![Page 29: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/29.jpg)
1. Provide users with a ready-to-use, expressive visual modeling language so they can develop and exchange meaningful models
2. Provide extensibility and specialization mechanisms to extend the core concepts.
3. Be independent of particular programming languages and development processes.
4. Provide a formal basis for understanding the modeling language.
5. Encourage the growth of the Object-Oriented tools market.
6. Support higher-level development concepts such as collaborations, frameworks, patterns and components.
7. Integrate best practices.
Goals of UMLGoals of UML
![Page 30: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/30.jpg)
Many free learning materials on the web– e.g. www.rational.com/uml
Standard of UMLwww.cs.wcupa.edu/~zjiang/01-09-67.pdf
Some recommended texts on UML:– The Unified Modeling Language User Guide, [G.
Booch, J. Rumbaugh, I. Jacobson, 2000]– UML Explained, [Kendall Scott, 2001]– Applying UML and Patterns 2nd Ed., [Craig Larman,
2002]– UML Distilled 2nd Ed., [Martin Fowler with K. Scott,
2000]– UML and C++, [R. Lee & W. Tepfenhart, 2001]
![Page 31: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/31.jpg)
UML OverviewUML OverviewUML is a language for visualizing,
specifying, constructing and documenting the artifacts of a software system
The artifacts might include requirements, architecture, design, source code, project plans, tests, prototypes, releases
![Page 32: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/32.jpg)
Objectsomething
action
state1 state2action
attribute1 attribute2
operation/method
attributes: {attribute1, attribute2}
operations/methods
value
structure
ReviewReview
![Page 33: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/33.jpg)
Light
On OffTurn on/off
True FalseTurn_on
attributes: {True, False}
operations/methods:
value
structure
Turn_off
Turn_on/off ( )
![Page 34: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/34.jpg)
Class DiagramClass DiagramIntroductionClass IconRelationshipsConstraints
![Page 35: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/35.jpg)
IntroductionIntroductionThe class diagram is fundamental to object-
oriented programmingUML’s class diagrams capture the attributes
and operations of each class as well the relationships that exist between classes
![Page 36: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/36.jpg)
Class IconClass Icon Class Icon Hiding Details Visibility Notation Attribute Specification Operation Specification
![Page 37: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/37.jpg)
Class IconClass Icon The UML class icon is
a rectangle with three compartments:– class name– class attributes– class operations
Attributes are specified in the following form:– object:class name
Circle
radius: float
center_x: int
center_y: int
area()
display()
![Page 38: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/38.jpg)
Hiding DetailHiding Detail
Circle
area()
display()
Circle
radius: float
center_x: int
center_y: int
Circle
You can optionally leave out the attributes, operations, or both in a class icon:
![Page 39: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/39.jpg)
UML Member Visibility UML Member Visibility NotationNotation
UML has three visibility prefixes for members:+ for public, # for protected, and – for private
–e.g.Circle
-radius: float
#area()
+display()
![Page 40: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/40.jpg)
Full UML Attribute Full UML Attribute SpecificationSpecification
The full form of a UML attribute is as follows:[visibility] name [multiplicity] [: type] [= initial value] [{property}]
– The property choices are changeable, addOnly, and frozen
Student Info
-id: string
-hasGraduated: bool = false
![Page 41: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/41.jpg)
Full UML Operation Full UML Operation SpecificationSpecification
The full form of a UML operation is as follows:[visibility] name [(parameter-list)] [:return-type] [{property}]
– The property choices are sequential, concurrent, guarded, and isQuery
The full form of a UML parameter is:[direction] name : type [= default-value]
– The direction choices are in, out, and inout
![Page 42: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/42.jpg)
UML Class RelationshipsUML Class RelationshipsA class relationship is a connection between
two (or more) classesThe three most important class relationships
are generalizations, associations, and aggregations
UML provides a graphical representation for each of the relationships using a different line type for each relationship
![Page 43: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/43.jpg)
Class RelationshipsClass RelationshipsGeneralizationAssociationAssociation ClassQualified AssociationTernary AssociationAggregation
![Page 44: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/44.jpg)
GeneralizationGeneralization A generalization is a relationship between a general
thing (superclass) and a more specific kind of that thing (subclass)
In the UML, generalization requires that objects of the subclass may be used anywhere an object of the superclass appears
Person
Student
![Page 45: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/45.jpg)
AssociationAssociationAn association is a structural relationship that
specifies that objects of one thing are connected to objects of another
Faculty Student
![Page 46: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/46.jpg)
AssociationAssociationAssociations can be adorned with a name.
Faculty StudentTeaching
![Page 47: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/47.jpg)
AssociationAssociationAssociations can be adorned with the roles.
teacherFaculty Studentlearner
![Page 48: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/48.jpg)
AssociationAssociationAssociations can be adorned with the multiplicity.
4..*Faculty Student
1
![Page 49: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/49.jpg)
Association Class (relation Association Class (relation attributes)attributes)
Each object of association class is one instance of relationship (link) in an association.
1..*Faculty Student4..*
Course
![Page 50: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/50.jpg)
Qualified AssociationQualified AssociationQualified association relates two classes and
a qualifier. The qualifier is a special attribute that
reduces the effective multiplicity of an association.
Directory Filefile name
![Page 51: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/51.jpg)
Ternary AssociationTernary Association A ternary association is a structural relationship that
specifies that objects of one thing are connected to objects of other two’s.
Developer
LanguageProject
![Page 52: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/52.jpg)
AggregationAggregationAn aggregation is an association that
represents whole/part relationshipThe “whole” end of the association
relationship is adorned with an open diamond shape (e.g. X is part of Y)
e.g. door:Door is part of car:Car
X Y
![Page 53: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/53.jpg)
Generalization, Aggregation, and Generalization, Aggregation, and AssociationAssociation
See if the following pairs of classes have generalization, aggregation or association Faculty & student (as) Hospital & doctor (as) Door & Car (ag --<>) Member & Organization (ag --<>) People & student (ge <|-- ) Circle & point (ge --|>) Department & Faculty (as) Employee & Faculty (ge <|--) Item & Printer (ge <|--) Account & Checking account (ge <|-- )
![Page 54: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/54.jpg)
ConstraintsConstraintsConstraints on ObjectConstraints on Relations (Ordering)General Constraints (Dependency)
![Page 55: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/55.jpg)
Constraints on ObjectConstraints on ObjectThe constraints restricts the values that objects can be.Example: No employee’s salary can exceed the salary of the employee’s boss.
Employee
Salary
Employer
Salary
{salary <=boss.salary}
![Page 56: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/56.jpg)
Constraints on Relations Constraints on Relations (Ordering)(Ordering)
{Order} indicates that the elements of the “many” end of an association have an explicit order that must be preserved.
Paper Author{ordered}
11..*
![Page 57: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/57.jpg)
General Constraints General Constraints (Dependency)(Dependency)
A dependency is a using relationship that states that a change in specification of one thing may affect another thing that uses it (but not necessarily the reverse)
![Page 58: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/58.jpg)
General Constraints General Constraints (Dependency)(Dependency)
Aerodrome
checkRVR( r: Runway ) Runway
Dependencies are often used when one class uses another class as an argument of the operation
Dependencies are also often used to express general constraints.
Person Committeemember-of
chair-of
{subset}
![Page 59: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/59.jpg)
UML DesignUML DesignUML class diagram is not object diagram.UML class diagram is not data flow chart.How to describe the behaviors/actions of
objects in UML class diagram?What kind of relationship is generalization?How to keep the consistency of all the
constraints?Common mistakes in Time Sequence DiagramSamples
![Page 60: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/60.jpg)
UML class diagram is not object UML class diagram is not object diagramdiagram
Customer Bank
Loan
Other-Loan
•Should we add relation between Bank and Other-Loans? •Can Bank change Other-loans?•Instance of Loan and Other-Loans?
![Page 61: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/61.jpg)
UML class diagram is not object UML class diagram is not object diagramdiagram
Customer
Bank
Loan
Bank-Loan Other-Loan
![Page 62: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/62.jpg)
UML class diagram is not data UML class diagram is not data flow chartflow chart
Customer Dealer
Product Manager
buy sell report
bargain
authorize
sign
![Page 63: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/63.jpg)
UML class diagram is not data UML class diagram is not data flow chartflow chart
Customer
Dealer
Product
Manager
Salesman
•Customer, Dealer, and Manager•Bargain
![Page 64: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/64.jpg)
How to describe the How to describe the behaviors/actions of objects in behaviors/actions of objects in
UML class diagramUML class diagram
?
Person
sSNaddressemail
Faculty StudentCustomer Casher
![Page 65: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/65.jpg)
How to describe the How to describe the behaviors/actions of objects in behaviors/actions of objects in
UML class diagramUML class diagram
Use case (stories): Each use case defines an interaction between an actor and the system
Use case
Use case
Use case
Use case
![Page 66: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/66.jpg)
Scenarios of a use case Reception
Check
Failure
Authorized
Waiting
Success Failure
?
Order
![Page 67: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/67.jpg)
How to describe the How to describe the behaviors/actions of objects in behaviors/actions of objects in
UML class diagramUML class diagram
– In design, see www.cs.wcupa.edu/~zjiang/intro_uc.ppt.
– In programming, see time sequence diagram, see www.cs.wcupa.edu/~zjiang/intro_TS.ppt.
![Page 68: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/68.jpg)
What kind of relationship is What kind of relationship is generalizationgeneralization
People
Student
x: inty: int
radius: doubleRectangle
PositionPoint
Circle
PositionPoint
*Tip 4: Class A is a super class of class B if and only if any object of class B can also play the role as an object of class A.
![Page 69: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/69.jpg)
How to keep the consistency of How to keep the consistency of all the constraintsall the constraints
Ticket-buyer
Dependent
Traveler
0..6
1
1 1..6
1
1
![Page 70: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/70.jpg)
How to keep the consistency of How to keep the consistency of all the constraintsall the constraints
Ticket-buyer
Dependent
Traveler
0..6
1
0..1 0..1
0..1
1
![Page 71: OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu](https://reader036.vdocuments.site/reader036/viewer/2022062721/56649f205503460f94c3871f/html5/thumbnails/71.jpg)
How to keep the consistency of How to keep the consistency of all the constraintsall the constraints
Ticket-buyer Dependent
Traveler
1 0..60..1