You are on page 1of 59

Object-Oriented Modeling

Using
Modified Modeling Language
(UML)

Outline

Unified Modeling Language


Principles and Concepts
Modeling Relations and Structures
Modeling Dynamic Behavior
Modeling Requirements with Use
Cases

CS 3300 Object-OrienteObject-Oriented Model

What is a Model?
A model is a simplification of reality.
A model may provide
blueprints of a system
Organization of the system
Dynamic of the system

CS 3300 Object-OrienteObject-Oriented Model

Why We Model
A successful software organization is
one that consistently deploys quality
software that meets the needs of its
users. An organization that can
develop such software in a timely and
predictable fashion, with an efficient
and effective use of resources, both
human and material, is one that has
sustainable business.
CS 3300 Object-OrienteObject-Oriented Model

Why We Model
Model is built to
Communicate the desired structure and
behavior of the system
Visualize and control the systems architecture
Better understand the system that being built
Manage risk
Expose opportunities for simplification and
reuse

CS 3300 Object-OrienteObject-Oriented Model

Why We Model
We build models so that we can see
and better understand the system we
are developing.

CS 3300 Object-OrienteObject-Oriented Model

Importance of Modeling
Models help us

to visualize a system as it is or as we
want it to be.
to specify the structure or behavior of a
system.
in providing a template that guides us in
constructing a system.
in providing documenting the decisions
we have made.

CS 3300 Object-OrienteObject-Oriented Model

Principles of Modeling
The choice of what models to create has a
major influence on how a problem is
approached and how a solution is shaped.
Every model may be expressed at different
levels of precision.
The best models are connected to reality.
No single model is sufficient. Every
nontrivial system is best approached
through a small set of nearly independent
models.
CS 3300 Object-OrienteObject-Oriented Model

Objected-Oriented
Modeling
Two most common ways in modeling
software systems are
Algorithmic
Procedures or functions

Object oriented
Objects or classes

CS 3300 Object-OrienteObject-Oriented Model

What is UML?
UML is a language for

Visualizing
Specifying
Constructing
Documenting

CS 3300 Object-OrienteObject-Oriented Model

10

Building Blocks of UML


Things -- abstraction
Relations -- tie things together
Diagrams -- group interesting
collections of things

CS 3300 Object-OrienteObject-Oriented Model

11

Principles and Concepts


Objects and Classes
Principles

CS 3300 Object-OrienteObject-Oriented Model

12

Objects and Classes


Interpretation in the Real World Interpretation in the Model

Object

An object is a thing that can be


distinctly identified.

An object has an identity, a


state, and a behavior.

Class

A class represents a set of objects


with similar characteristics and
behavior. This objects are called the
instances of the class.

A class characterizes the


structure of states and
behaviors that are shared by all
instances.

CS 3300 Object-OrienteObject-Oriented Model

13

Objects
Each of object has a unique identity.
The state of an object is composed of a set of
fields (data fields), or attributes.
Each field has a name, a type, and a value.
Behaviors are defined by methods.
Each method has a name, a type, and a value.
Each method may or may not return a value.
Features are a combination of the state and the
behavior of the object.

CS 3300 Object-OrienteObject-Oriented Model

14

Properties of Objects
Two objects are equal if their states are
equal.
Two objects are identical if they are the
same objects.
The values of the fields are mutable.
Methods that do not modify the state of
the object are called accessors.
Methods that modify the state of the
object are called mutators.
Objects can be mutable or immutable.
CS 3300 Object-OrienteObject-Oriented Model

15

Classes
A class defines a template for
creating or instantiating its instances
or objects.
A class is a description of a set of
objects that share the same
attributes, operations, relationships,
and semantics.
CS 3300 Object-OrienteObject-Oriented Model

16

Classes
A class defines --

the names and types of all fields


the names, types, implementations of all methods

The values of the fields are not defined or fixed in the


class definition.
The values of the fields are mutable.
Each instance of the class has its own state.
Different instances of the class may have different
states.
The implementations of methods are defined in the class
definition and fixed for a given object.
Values of methods are immutable

CS 3300 Object-OrienteObject-Oriented Model

17

Example
Class name: Point class Point {
Fields:
x, y
int x, y;
Method:
move
public void move
(int dx, int dy){
// implementation
}

CS 3300 Object-OrienteObject-Oriented Model

18

UML Notation for Classes


ClassName
field1

fieldn
method1

methodm

The top compartment shows


the class name.
The middle compartment
contains the declarations of
the fields of the class.
The bottom compartment
contains the declarations of
the methods

CS 3300 Object-OrienteObject-Oriented Model

19

Field Declaration
The name of the field is required in the field
declaration.
Field declaration may include:

[Visibility][Type]Name[[Multiplicity]][=InitialValue]
[Visibility]Name[[Multiplicity]][:Type][=InitialValue]

Visibility or accessibility defines the scope:

Public -- the feature is accessible to any class


Protected -- the feature is accessible to the class itself,
all the classes in the same package, and all its subclasses.
Package -- the feature is accessible to the class itself
and all classes in the same package.
Private -- the feature is only accessible within the class
itself.

CS 3300 Object-OrienteObject-Oriented Model

20

Visibility syntax
in Java and UML
Visibilty

Java Syntax

UML Syntax

public

public

protected

protected

package
private

~
private

CS 3300 Object-OrienteObject-Oriented Model

21

Examples
Java Syntax

UML Syntax

Date birthday

Birthday:Date

Public int duration = 100

+duration:int = 100

Private Student
students[0..MAX_Size]

-students[0..MAX_Size]:Student

CS 3300 Object-OrienteObject-Oriented Model

22

Method Declaration
The name of the method is required
in the method declaration.
Method declaration may include:
[Visibility][Type]Name([Parameter, ...])
[Visibility]Name([Parameter, ...])[:Type]

Each parameter of a method can be


specified by -- Type Name
CS 3300 Object-OrienteObject-Oriented Model

23

Examples
Java Syntax

UML Syntax

void move(int dx, int dy)

~move(int dx, int dy)

public int getSize()

+int getSize()

CS 3300 Object-OrienteObject-Oriented Model

24

Example
Point
Point

private int x
private int y

-x:int
-y:int
+move(dx:int,dy:int)

Point

public void move(int dx,int dy)

x
y
move()

CS 3300 Object-OrienteObject-Oriented Model

25

UML Notation for Object


ObjectName : ClassName
field1 = value1

fieldn = valuen

The top compartment shows the


object name and its class.
The bottom compartment contains
a list of the fields and their values.

objectName -- objectName whose class is of no interest


:ClassName -- anonymous object of ClassName which can be identify
only through its relationship with other object.

CS 3300 Object-OrienteObject-Oriented Model

26

Examples
P1:Point

x = 0
y = 0

P1:Point
x = 24
y = 40

Point p1 = new Point();

p1.x = 0;
P1.y = 0;

Point p1 = new Point();


p1.x = 24;
P1.y = 40;

CS 3300 Object-OrienteObject-Oriented Model

27

Message Passing or
Method Invocation
Objects communicate with one
another through message passing.
A message represent a command sent
to an object -- recipient
A message consists of the receiving
object, the method to be invoked and
the arguments to method.
CS 3300 Object-OrienteObject-Oriented Model

28

Example
Recipient
p1.move(10,20) Method

p1

move()

Arguments (10,20)
CS 3300 Object-OrienteObject-Oriented Model

29

Packages
Package name are in lower case -Java.awt.event
javax.swing.*

Packages that will be widely used should be


named as the reverse of the internet
domain as the prefix of the package name
-EDU.emporia.mathbeans.MathTable
EDU.emporia.mathtools.*
CS 3300 Object-OrienteObject-Oriented Model

30

UML notation of packages

CS 3300 Object-OrienteObject-Oriented Model

31

Principles
Modularity:

alleviate complexity of large-scale systems

Abstraction:

separating the essential from the non-essential


characteristics of an entity

Encapsulation:

Information hiding

Polymorphism:
Portability

Levels of Abstraction:

Organization of classes and interfaces

CS 3300 Object-OrienteObject-Oriented Model

32

Principle of Modularity
A complex software system should be decomposed
into a set of highly cohesive but loosely coupled
modules.
The basic for decomposition are cohesion and
coupling.
Cohesion -- functional relatedness of the entities within
modules.
Coupling inter-dependency among different modules.

Each module is relatively small and simple


Interactions among modules are relatively simple
hierarchical
CS 3300 Object-OrienteObject-Oriented Model

33

Principle of Abstraction
The behaviors or functionalities
should be precisely characterized as
contractual interface which captures
the essence of the behavior.
The complexity of the module is
hidden from the clients.

CS 3300 Object-OrienteObject-Oriented Model

34

Principle of Encapsulation
The implementation of a module
should be separated from its
contractual interface and hidden
from the clients of the module.
Information hiding

CS 3300 Object-OrienteObject-Oriented Model

35

Principle of Polymorphism
Ability to interchange modules
dynamically without affecting the
system.
refers to a contractual interface with
multiple interchangeable
implementation

CS 3300 Object-OrienteObject-Oriented Model

36

Modeling Relationships and


Structures
A class diagram consists of
A set of nodes that represent classes and
interfaces
A set of links represent relationships among
classes

Class diagrams can be used to model:


Inheritance -- extension and implementation
Association -- aggregation and compostion
Dependency
CS 3300 Object-OrienteObject-Oriented Model

37

Inheritance
Define a relationship among classes
and interfaces
Inheritance model -- the is-a(n)
relationship

CS 3300 Object-OrienteObject-Oriented Model

38

Example

CS 3300 Object-OrienteObject-Oriented Model

39

Principle of Levels of
Abstraction
Abstractions can be organized into
different levels.
Higher level is more general

CS 3300 Object-OrienteObject-Oriented Model

40

Association
Association represents binary
relationship between classes
Student
advisee
*

* enroll

Course
*
teach

1
adviser

1
Faculty

CS 3300 Object-OrienteObject-Oriented Model

41

Aggregation and Compositon


Aggregation is a special form of association
Has-a or part-whole relationship

Composition is a stronger form of


aggregation

CS 3300 Object-OrienteObject-Oriented Model

42

Example

University

College

Department

Student

Member-of
1..*

Chairman-of
Faculty

CS 3300 Object-OrienteObject-Oriented Model

43

Dependency
Dependency is a relationship between
entities such that the proper
operation of one entity depends on
the presence of the other entity, and
changes in one entity would affect
the other entity.

CS 3300 Object-OrienteObject-Oriented Model

44

Example
CourseSchedule

Registrar
void addCourse(CourseSchedule a, Course c)
void removeCourse(CourseSchedule Course
findCourse(String title)
void enroll(Course c, Student s)
void drop(Course c, Student s

CS 3300 Object-OrienteObject-Oriented Model

Course

Student

45

Modeling Dynamic Behavior


Sequence diagram
Depict object interaction by highlighting
the time ordering of method invocation

CS 3300 Object-OrienteObject-Oriented Model

46

Example

CS 3300 Object-OrienteObject-Oriented Model

47

Modeling Dynamic Behavior


State diagram
Depict the flow of control using the
concepts of state and transitions
Labels of transitions are in the form:
[Event-List][[Guard]][/Action]
- Entry action and exit action
entry/Action1

exit/Action2
CS 3300 Object-OrienteObject-Oriented Model

48

Graphical notations

CS 3300 Object-OrienteObject-Oriented Model

49

Modeling Dynamic Behavior


Nested state diagram
Composite of state diagrams

CS 3300 Object-OrienteObject-Oriented Model

50

Example

talk

CS 3300 Object-OrienteObject-Oriented Model

51

Modeling Requirements with


Use Cases
Use cases describes the externally
observable behavior of system functions in
the form of interactions between the
system to be developed and the external
entities -- Actors.
Actors may represent roles played by users
of the system or other systems.
Consist of a name and scenarios
One of scenarios is the main scenario
CS 3300 Object-OrienteObject-Oriented Model

52

Use Case Diagram


Consist of:
Use cases
Actors
Relationships among actors and use cases

CS 3300 Object-OrienteObject-Oriented Model

53

Extension relationships
among actors

CS 3300 Object-OrienteObject-Oriented Model

54

Dependency relationships
among use cases

CS 3300 Object-OrienteObject-Oriented Model

55

Case Study: An E-Bookstore


Problem requirements
Program specifications
Object models

Identifying classes
Identifying the features of classes -states and behaviors
Identifying relationships among classes
inheritance and interfaces.

CS 3300 Object-OrienteObject-Oriented Model

56

Requirements
Allow customers to browse and order
books, music CDs, and computer
software

CS 3300 Object-OrienteObject-Oriented Model

57

Specifications
Provide information on the books, CDs, and
software
Provide a functionality for customers
registration as well as updating customers
information
Provide a functionality for ordering and
shipping
Provide a functionality for updating
inventory
CS 3300 Object-OrienteObject-Oriented Model

58

Register

Customer

Logon

Manager

Manage
catalog

Shop

Catalog
Manager
Manage
Acount
System
administrator

Process
order

CS 3300 Object-OrienteObject-Oriented Model

Inventory
manager
59

You might also like