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-Oriented Concepts Object-Oriented Modeling Using UML 2


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-Oriented Concepts Object-Oriented Modeling Using UML 3


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-Oriented Concepts Object-Oriented Modeling Using UML 4
Why We Model
• Model is built to
– Communicate the desired structure and
behavior of the system
– Visualize and control the system’s architecture
– Better understand the system that being built
– Manage risk
– Expose opportunities for simplification and
reuse

CS 3300 Object-Oriented Concepts Object-Oriented Modeling Using UML 5


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

CS 3300 Object-Oriented Concepts Object-Oriented Modeling Using UML 6


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-Oriented Concepts Object-Oriented Modeling Using UML 7
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-Oriented Concepts Object-Oriented Modeling Using UML 8


Objected-Oriented Modeling
• Two most common ways in modeling
software systems are
– Algorithmic
• Procedures or functions
– Object oriented
• Objects or classes

CS 3300 Object-Oriented Concepts Object-Oriented Modeling Using UML 9


What is UML?
• UML is a language for
– Visualizing
– Specifying
– Constructing
– Documenting

CS 3300 Object-Oriented Concepts Object-Oriented Modeling Using UML 10


Building Blocks of UML
• Things -- abstraction
• Relations -- tie things together
• Diagrams -- group interesting
collections of things

CS 3300 Object-Oriented Concepts Object-Oriented Modeling Using UML 11


Principles and Concepts
• Objects and Classes
• Principles

CS 3300 Object-Oriented Concepts Object-Oriented Modeling Using UML 12


Objects and Classes
Interpretation in the Real World Interpretation in the Model

An object is a thing that can be An object has an identity, a


Object
distinctly identified. state, and a behavior.

A class represents a set of objects A class characterizes the


with similar characteristics and structure of states and
Class
behavior. This objects are called the behaviors that are shared by all
instances of the class. instances.

CS 3300 Object-Oriented Concepts Object-Oriented Modeling Using UML 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-Oriented Concepts Object-Oriented Modeling Using UML 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-Oriented Concepts Object-Oriented Modeling Using UML 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-Oriented Concepts Object-Oriented Modeling Using UML 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-Oriented Concepts Object-Oriented Modeling Using UML 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-Oriented Concepts Object-Oriented Modeling Using UML 18


UML Notation for Classes
The top compartment shows
ClassName
the class name.
field1 The middle compartment
… contains the declarations of
fieldn the fields of the class.
method1 The bottom compartment
… contains the declarations of
methodm the methods
CS 3300 Object-Oriented Concepts Object-Oriented Modeling Using UML 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-Oriented Concepts Object-Oriented Modeling Using UML 20


Visibility syntax
in Java and UML
Visibilty Java Syntax UML Syntax

public public +

protected protected #

package ~

private private -

CS 3300 Object-Oriented Concepts Object-Oriented Modeling Using UML 21


Examples

Java Syntax UML Syntax

Date birthday Birthday:Date

Public int duration = 100 +duration:int = 100

Private Student
-students[0..MAX_Size]:Student
students[0..MAX_Size]

CS 3300 Object-Oriented Concepts Object-Oriented Modeling Using UML 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-Oriented Concepts Object-Oriented Modeling Using UML 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-Oriented Concepts Object-Oriented Modeling Using UML 24


Example
Point
Point
-x:int
-y:int

private int x +move(dx:int,dy:int)


private int y

Point

x
y
public void move(int dx,int dy)
move()

CS 3300 Object-Oriented Concepts Object-Oriented Modeling Using UML 25


UML Notation for Object
The top compartment shows the
ObjectName : ClassName
object name and its class.
field1 = value1
The bottom compartment contains

a list of the fields and their values.
fieldn = valuen

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-Oriented Concepts Object-Oriented Modeling Using UML 26


Examples
P1:Point Point p1 = new Point();

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

P1:Point Point p1 = new Point();

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

CS 3300 Object-Oriented Concepts Object-Oriented Modeling Using UML 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-Oriented Concepts Object-Oriented Modeling Using UML 28


Example

Recipient p1

p1.move(10,20) Method move()

Arguments (10,20)

CS 3300 Object-Oriented Concepts Object-Oriented Modeling Using UML 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-Oriented Concepts Object-Oriented Modeling Using UML 30
UML notation of packages

CS 3300 Object-Oriented Concepts Object-Oriented Modeling Using UML 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-Oriented Concepts Object-Oriented Modeling Using UML 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-Oriented Concepts Object-Oriented Modeling Using UML 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-Oriented Concepts Object-Oriented Modeling Using UML 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-Oriented Concepts Object-Oriented Modeling Using UML 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-Oriented Concepts Object-Oriented Modeling Using UML 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-Oriented Concepts Object-Oriented Modeling Using UML 37


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

CS 3300 Object-Oriented Concepts Object-Oriented Modeling Using UML 38


Example

CS 3300 Object-Oriented Concepts Object-Oriented Modeling Using UML 39


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

CS 3300 Object-Oriented Concepts Object-Oriented Modeling Using UML 40


Association
• Association represents binary
relationship between classes
* enroll *
Student Course
advisee * *
teach

1 1
adviser Faculty

CS 3300 Object-Oriented Concepts Object-Oriented Modeling Using UML 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-Oriented Concepts Object-Oriented Modeling Using UML 42


Example

University 1 * College 1 * Department 1 * Student

1 1

Chairman-of Member-of
1 1..*
Faculty

CS 3300 Object-Oriented Concepts Object-Oriented Modeling Using UML 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-Oriented Concepts Object-Oriented Modeling Using UML 44


Example

CourseSchedule
Registrar

void addCourse(CourseSchedule a, Course c) Course


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

CS 3300 Object-Oriented Concepts Object-Oriented Modeling Using UML 45


Modeling Dynamic Behavior
• Sequence diagram
– Depict object interaction by highlighting
the time ordering of method invocation

CS 3300 Object-Oriented Concepts Object-Oriented Modeling Using UML 46


Example

CS 3300 Object-Oriented Concepts Object-Oriented Modeling Using UML 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-Oriented Concepts Object-Oriented Modeling Using UML 48
Graphical notations

CS 3300 Object-Oriented Concepts Object-Oriented Modeling Using UML 49


Modeling Dynamic Behavior
• Nested state diagram
– Composite of state diagrams

CS 3300 Object-Oriented Concepts Object-Oriented Modeling Using UML 50


Example

talk

CS 3300 Object-Oriented Concepts Object-Oriented Modeling Using UML 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-Oriented Concepts Object-Oriented Modeling Using UML 52


Use Case Diagram
• Consist of:
– Use cases
– Actors
– Relationships among actors and use cases

CS 3300 Object-Oriented Concepts Object-Oriented Modeling Using UML 53


Extension relationships
among actors

CS 3300 Object-Oriented Concepts Object-Oriented Modeling Using UML 54


Dependency relationships
among use cases

CS 3300 Object-Oriented Concepts Object-Oriented Modeling Using UML 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-Oriented Concepts Object-Oriented Modeling Using UML 56


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

CS 3300 Object-Oriented Concepts Object-Oriented Modeling Using UML 57


Specifications
• Provide information on the books, CDs, and
software
• Provide a functionality for customers
registration as well as updating customer’s
information
• Provide a functionality for ordering and
shipping
• Provide a functionality for updating
inventory

CS 3300 Object-Oriented Concepts Object-Oriented Modeling Using UML 58


Register Logon
Manager

Customer Manage
Shop catalog

Catalog
Manager
Manage Process
Acount order
System Inventory
administrator manager
CS 3300 Object-Oriented Concepts Object-Oriented Modeling Using UML 59

You might also like