OO programming and UML Design - PowerPoint PPT Presentation

1 / 71
About This Presentation
Title:

OO programming and UML Design

Description:

An attribute is a named property of a class that describes the range of values ... An attribute has a type that defines the type of its instances. ... – PowerPoint PPT presentation

Number of Views:33
Avg rating:3.0/5.0
Slides: 72
Provided by: zji
Learn more at: https://www.cs.wcupa.edu
Category:

less

Transcript and Presenter's Notes

Title: OO programming and UML Design


1
OO programming and UML Design
  • Dr. Zhen Jiang
  • West Chester University
  • E-mail zjiang_at_wcupa.edu

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?
  • Partners 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
  • Whats object
  • Identity
  • State
  • Behavior
  • Sequence Diagram
  • Statechart Diagram
  • Messages and methods
  • Whats class
  • Objects and Classes
  • Class Attributes
  • Operation (Method)
  • Interfaces
  • Interfaces and Implementation

10
Whats object
  • Fundamentals of Object-Oriented Programming

11
Whats 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
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)

16
  • 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

17
Whats the relationship among objects 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

18
Whats 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

19
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

20
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

21
  • 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
22
  • 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.

23
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

24
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)

25
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

26
Introduction to UML
  • Whats UML
  • Goals of UML
  • Overview
  • Class diagram
  • Introduction
  • Class icon
  • Class relationship
  • Constraints
  • Other diagrams

27
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)

28
  • 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
29
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.
30
  • Many free learning materials on the web
  • e.g. www.rational.com/uml
  • Standard of UML
  • www.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

31
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

32
Review
something
Object
action
action
state1
state2
operations/methods
attributes attribute1,
attribute2
structure
operation/method
attribute1
attribute2
value
33
Light
Turn on/off
On
Off
operations/methods
Turn_on/off ( )
attributes True, False
structure
Turn_on
True
False
value
Turn_off
34
Class Diagram
  • Introduction
  • Class Icon
  • Relationships
  • Constraints

35
Introduction
  • The class diagram is fundamental to
    object-oriented programming
  • UMLs class diagrams capture the attributes and
    operations of each class as well the
    relationships that exist between classes

36
Class Icon
  • Class Icon
  • Hiding Details
  • Visibility Notation
  • Attribute Specification
  • Operation Specification

37
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
  • objectclass name

Circle
radius float center_x int center_y int
area() display()
38
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
39
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()
40
Full UML Attribute Specification
  • The full form of a UML attribute is as
    followsvisibility name multiplicity
    type initial value property
  • The property choices are changeable, addOnly, and
    frozen

Student Info
-id string -hasGraduated bool false
41
Full UML Operation Specification
  • The full form of a UML operation is as
    followsvisibility name (parameter-list)
    return-type property
  • The property choices are sequential, concurrent,
    guarded, and isQuery
  • The full form of a UML parameter isdirection
    name type default-value
  • The direction choices are in, out, and inout

42
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

43
Class Relationships
  • Generalization
  • Association
  • Association Class
  • Qualified Association
  • Ternary Association
  • Aggregation

44
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
45
Association
  • An association is a structural relationship that
    specifies that objects of one thing are connected
    to objects of another

Faculty
Student
46
Association
  • Associations can be adorned with a name.

Teaching
Faculty
Student
47
Association
  • Associations can be adorned with the roles.

teacher
Faculty
Student
learner
48
Association
  • Associations can be adorned with the
    multiplicity.

Faculty
Student
4..
1
49
Association Class (relation attributes)
  • Each object of association class is one instance
    of relationship (link) in an association.

1..
Faculty
Student
4..
Course
50
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
file name
51
Ternary Association
  • A ternary association is a structural
    relationship that specifies that objects of one
    thing are connected to objects of other twos.

Language
Project
Developer
52
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. doorDoor is part of carCar

X
Y
53
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 --ltgt)
  • Member Organization (ag --ltgt)
  • People student (ge lt-- )
  • Circle point (ge --gt)
  • Department Faculty (as)
  • Employee Faculty (ge lt--)
  • Item Printer (ge lt--)
  • Account Checking account (ge lt-- )

54
Constraints
  • Constraints on Object
  • Constraints on Relations (Ordering)
  • General Constraints (Dependency)

55
Constraints on Object
  • The constraints restricts the values that objects
    can be.
  • Example No employees salary can exceed the
    salary of the employees boss.

salary ltboss.salary
Employee Salary
Employer Salary
56
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..
57
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)

58
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
59
UML Design
  • UML 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 Diagram
  • Samples

60
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
61
UML class diagram is not object diagram
Customer
Loan
Bank
Bank-Loan
Other-Loan
62
UML class diagram is not data flow chart
bargain
Customer
Dealer
sign
buy
sell
report
Product
Manager
authorize
63
UML class diagram is not data flow chart
  • Customer, Dealer, and Manager
  • Bargain

Product
Customer
Salesman
Dealer
Manager
64
How to describe the behaviors/actions of objects
in UML class diagram
?
Person
Based on Use Case analysis
sSN address email
Student
Casher
Faculty
Customer
65
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
66
Reception
  • Scenarios of a use case

Check
?
Order
Waiting
Failure
Authorized
Success
Failure
67
How to describe the behaviors/actions of objects
in UML 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.

68
What kind of relationship is generalization
x int y int
Position
Point
Position
Point
People
?
Student
radius double
Rectangle
Circle
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.
69
How to keep the consistency of all the constraints
1
1..6
Ticket-buyer
Traveler
1
1
0..6
Dependent
1
70
How to keep the consistency of all the constraints
0..1
0..1
Ticket-buyer
Traveler
1
1
0..6
Dependent
0..1
71
How to keep the consistency of all the constraints
Traveler
0..1
1
0..6
Ticket-buyer
Dependent
Write a Comment
User Comments (0)
About PowerShow.com