Download presentation
Presentation is loading. Please wait.
1
OO programming and UML Design
Dr. Zhen Jiang West Chester University
2
Outline Introduction to object and class Introduction to UML
Introduction to UML design
3
Introduction to object and class
Why OO programming? Look at this picture carefully You need to identify it from VERY similar pictures in the next slide
4
Introduction to object and class
Why 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.
5
Introduction to object and class
Why OO programming? Partner’s job
6
Introduction to object and class
Why OO programming? Which one?
7
Introduction to object and class
Why OO programming? From snapshot to the action
8
Introduction to object and class
Why OO programming? From snapshot to the action 3 2 1
9
Introduction to object and class
What’s object Identity State Behavior Sequence Diagram Statechart Diagram Messages and methods What’s class Objects and Classes Class Attributes Operation (Method) Interfaces Interfaces and Implementation
10
What’s object Fundamentals of Object-Oriented Programming
11
What’s object Conceptually, 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
12
Object Property 1: Identity
Identity is that property of an object which distinguishes it from all other objects Most programming languages use variable names to refer to objects Keep 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"
13
Object Property 2: State
The state of an object encompasses all of the descriptions of the object plus the current values of each of these descriptions
14
Object Property 3: Behaviour
Behaviour 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
15
Sequence Diagrams A sequence diagram is an interaction diagram that focuses on the time ordering of messages A vertical dashed line is used to represent the lifetime of an object (it’s the object’s lifeline) A focus of control is a tall, thin rectangle that shows the period of time during which an object is performing an action
16
requestLdgClearance(r)
: Pilot : ATC : Radar requestLdgClearance(r) checkWeather checkRunwayClear(r) clear clearance
17
Sequence
18
Statechart Diagram Captures dynamic behavior (event-oriented) Purpose
Model object lifecycle Model reactive objects (user interfaces, devices, etc.)
20
Example Objects There 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)
21
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
22
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 behaviours -- those other objects invoke the method corresponding to the message in order to execute the desired behaviour
23
What’s class A class describes the common structure (attributes/state) and behaviour of its instances For example, 3.14, 2.71, and 5.5 can be classified as Floats the following shapes can be classified as Circles
24
Classes and Objects An object is called an "instance" of a class
The terms instance and object are interchangeable Creating an object from a class is often called instantiation For example, there are many person objects in this room -- each person is an instance of the person class
25
Classes and objects How 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
26
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
27
Class Attributes 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
28
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)
29
Interfaces An interface is a collection of operations that are used to specify a service of a class or a component (Booch, 1999) An interface is a contract of related services and a set of conditions that must be true for the contract to be faithfully executed Interfaces formalize polymorphism, they allow us to define polymorphism in a declarative way unrelated to implementation
30
Interface and Implementation
The class interface is its external (public) view The class implementation is its internal (private) view It 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
31
Introduction to UML What’s UML Goals of UML Overview Class diagram
Class icon Class relationship Constraints Other diagrams
32
UML: Unified Modeling Language
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)
33
UML simplifies the process of software design, making a "blueprint" for construction
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
34
Goals of UML 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.
35
Many free learning materials on the web Standard of UML
e.g. Standard of UML 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]
36
UML Overview UML 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
37
Review something Object action action state1 state2
operations/methods attributes: {attribute1, attribute2} structure operation/method attribute1 attribute2 value
38
Light Turn on/off On Off attributes: {True, False} True False
operations/methods: Turn_on/off ( ) attributes: {True, False} structure Turn_on True False Turn_off value
39
Class Diagram Introduction Class Icon Relationships Constraints
40
Introduction The class diagram is fundamental to object-oriented programming UML’s class diagrams capture the attributes and operations of each class as well the relationships that exist between classes
41
Class Icon Class Icon Hiding Details Visibility Notation
Attribute Specification Operation Specification
42
Class 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()
43
Hiding Detail You can optionally leave out the attributes, operations, or both in a class icon: Circle area() display() Circle radius: float center_x: int center_y: int Circle
44
UML Member Visibility Notation
UML has three visibility prefixes for members: + for public, # for protected, and – for private e.g. Circle -radius: float #area() +display()
45
Full UML Attribute Specification
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
46
Full UML Operation Specification
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
47
UML Class Relationships
A class relationship is a connection between two (or more) classes The 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
48
Class Relationships Generalization Association Association Class
Qualified Association Ternary Association Aggregation
49
Generalization 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
50
Association An association is a structural relationship that specifies that objects of one thing are connected to objects of another Faculty Student
51
Association Associations can be adorned with a name. Student Faculty
Teaching Faculty Student
52
Association Associations can be adorned with the roles. Student
teacher Faculty Student learner
53
Association Associations can be adorned with the multiplicity. Faculty
Student 1 4..*
54
Association Class (relation attributes)
Each object of association class is one instance of relationship (link) in an association. 1..* Faculty Student 4..* Course
55
Qualified Association
Qualified association relates two classes and a qualifier. The qualifier is a special attribute that reduces the effective multiplicity of an association. Directory file name File
56
Ternary Association A ternary association is a structural relationship that specifies that objects of one thing are connected to objects of other two’s. Project Language Developer
57
Aggregation An aggregation is an association that represents whole/part relationship The “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
58
Generalization, Aggregation, and Association
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 <|-- )
59
Constraints Constraints on Object Constraints on Relations (Ordering)
General Constraints (Dependency)
60
UML class diagram is not object diagram
Customer Loan Bank Bank-Loan Other-Loan
61
Constraints on Object The constraints restricts the values that objects can be. Example: No employee’s salary can exceed the salary of the employee’s boss. {salary <=boss.salary} Employee Salary Employer Salary
62
Constraints on Relations (Ordering)
{Order} indicates that the elements of the “many” end of an association have an explicit order that must be preserved. {ordered} Paper Author 1 1..*
63
General Constraints (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)
64
General Constraints (Dependency)
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. Aerodrome checkRVR( r: Runway ) Runway member-of Person Committee {subset} chair-of
65
UML Design UML class diagram is not object diagram.
How to describe the behaviors/actions of objects in UML class diagram? UML class diagram is not data flow chart. What kind of relationship is generalization? How to keep the consistency of all the constraints?
66
UML class diagram is not object diagram
Should we add relation between Bank and Other-Loans? Can Bank change Other-loans? Instance of Loan and Other-Loans? Other-Loan Customer Bank Loan
67
How to describe the behaviors/actions of objects in UML class diagram
Person ? Based on Use Case analysis sSN address Student Casher Faculty Customer
68
How to describe the behaviors/actions of objects in UML class diagram
Use case (stories): Each use case defines an interaction between an actor and the system Use case Use case System Use case Use case
69
Scenarios of a use case Reception Check Waiting Failure Authorized
? Order Waiting Failure Authorized Success Failure
70
How to describe the behaviors/actions of objects in UML class diagram
Basic idea: behaviors + interface For details, see in
71
UML class diagram is not data flow chart
bargain Customer Dealer sign buy sell report Product Manager authorize
72
UML class diagram is not data flow chart
Customer, Dealer, and Manager Bargain Product Customer Salesman Dealer Manager
73
What kind of relationship is generalization
x: int y: int Position Point Position Point People ? Student radius: double Circle Rectangle *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.
74
How to keep the consistency of all the constraints
1 1..6 Ticket-buyer Traveler 1 1 0..6 Dependent 1
75
How to keep the consistency of all the constraints
0..1 0..1 Ticket-buyer Traveler 1 1 0..6 Dependent 0..1
76
How to keep the consistency of all the constraints
Traveler 0..1 1 0..6 Ticket-buyer Dependent
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.