oo programming and uml design l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
OO programming and UML Design PowerPoint Presentation
Download Presentation
OO programming and UML Design

Loading in 2 Seconds...

play fullscreen
1 / 70

OO programming and UML Design - PowerPoint PPT Presentation


  • 368 Views
  • Uploaded on

OO programming and UML Design Dr. Zhen Jiang West Chester University E-mail: zjiang@wcupa.edu Outline Introduction to object and class Introduction to UML Introduction to UML design Introduction to object and class What’s object Identity State Behavior Sequence Diagram

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'OO programming and UML Design' - LionelDale


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
oo programming and uml design

OO programming and UML Design

Dr. Zhen Jiang

West Chester University

E-mail: zjiang@wcupa.edu

outline
Outline
  • Introduction to object and class
  • Introduction to UML
  • Introduction to UML design
introduction to object and class
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
slide4

What’s object

  • Fundamentals of Object-Oriented Programming
slide5

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
slide6

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"
slide7

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
slide8

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
slide9

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
slide10

: Pilot

: ATC

: Radar

requestLdgClearance(r)

checkWeather

checkRunwayClear(r)

clear

clearance

slide12

Statechart Diagram

  • Captures dynamic behavior (event-oriented)
  • Purpose
    • Model object lifecycle
    • Model reactive objects (user interfaces, devices, etc.)
slide14

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)
slide15
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
slide16

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
slide17

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
slide18

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
slide19

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
slide20

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

slide21

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
slide22

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

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
slide24

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
introduction to uml
Introduction to UML
  • What’s UML
  • Goals of UML
  • Overview
    • Class diagram
      • Introduction
      • Class icon
      • Class relationship
      • Constraints
    • Other diagrams
slide26

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

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

slide28

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.

slide29

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]
slide30

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
slide31

Review

something

Object

action

action

state1

state2

operations/methods

attributes: {attribute1,

attribute2}

structure

operation/method

attribute1

attribute2

value

slide32

Light

Turn on/off

On

Off

operations/methods:

Turn_on/off ( )

attributes: {True,

False}

structure

Turn_on

True

False

Turn_off

value

class diagram
Class Diagram
  • Introduction
  • Class Icon
  • Relationships
  • Constraints
slide34

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
class icon
Class Icon
  • Class Icon
  • Hiding Details
  • Visibility Notation
  • Attribute Specification
  • Operation Specification
slide36

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
slide37

Hiding Detail

  • You can optionally leave out the attributes, operations, or both in a class icon:
slide38

UML Member Visibility Notation

  • UML has three visibility prefixes for members:+ for public, # for protected, and – for private
    • e.g.
slide39

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
slide40

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
slide41

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
class relationships
Class Relationships
  • Generalization
  • Association
  • Association Class
  • Qualified Association
  • Ternary Association
  • Aggregation
slide43

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
slide44

Association

  • An association is a structural relationship that specifies that objects of one thing are connected to objects of another
slide45

Association

  • Associations can be adorned with a name.

Teaching

slide46

Association

  • Associations can be adorned with the roles.

teacher

learner

slide47

Association

  • Associations can be adorned with the multiplicity.

1

4..*

slide48

Association Class (relation attributes)

  • Each object of association class is one instance of relationship (link) in an association.

1..*

4..*

slide49

Qualified Association

  • Qualified association relates two classes and a qualifier.
  • The qualifier is a special attribute that reduces the effective multiplicity of an association.
slide50

Ternary Association

  • A ternary association is a structural relationship that specifies that objects of one thing are connected to objects of other two’s.
slide51

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

slide52

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 <|-- )
constraints
Constraints
  • Constraints on Object
  • Constraints on Relations (Ordering)
  • General Constraints (Dependency)
uml class diagram is not object diagram
UML class diagram is not object diagram

Customer

Loan

Bank

Bank-Loan

Other-Loan

slide55

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}

slide56

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}

1

1..*

slide57

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

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.

member-of

{subset}

chair-of

uml design
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?
uml class diagram is not object diagram60
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

how to describe the behaviors actions of objects in uml class diagram
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

how to describe the behaviors actions of objects in uml class diagram62
Use case (stories): Each use case defines an interaction between an actor and the systemHow to describe the behaviors/actions of objects in UML class diagram

Use case

Use case

System

Use case

Use case

slide63
Scenarios of a use case

Reception

Check

?

Order

Waiting

Failure

Authorized

Success

Failure

how to describe the behaviors actions of objects in uml class diagram64
Basic idea:

behaviors + interface

For details, see inwww.cs.wcupa.edu/~zjiang/intro_uc.ppt.

How to describe the behaviors/actions of objects in UML class diagram
uml class diagram is not data flow chart
UML class diagram is not data flow chart

bargain

Customer

Dealer

sign

buy

sell

report

Product

Manager

authorize

uml class diagram is not data flow chart66
UML class diagram is not data flow chart
  • Customer, Dealer, and Manager
  • Bargain

Product

Customer

Salesman

Dealer

Manager

what kind of relationship is generalization
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.

how to keep the consistency of all the constraints
How to keep the consistency of all the constraints

1

1..6

Ticket-buyer

Traveler

1

1

0..6

Dependent

1

how to keep the consistency of all the constraints69
How to keep the consistency of all the constraints

0..1

0..1

Ticket-buyer

Traveler

1

1

0..6

Dependent

0..1

how to keep the consistency of all the constraints70
How to keep the consistency of all the constraints

Traveler

0..1

1

0..6

Ticket-buyer

Dependent