Object-Oriented Modeling Using Modified Modeling Language (UML)

advertisement
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
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-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
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-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]
-students[0..MAX_Size]:Student
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
+move(dx:int,dy:int)
private int x
private int y
Point
public void move(int dx,int dy)
x
y
move()
CS 3300 Object-Oriented Concepts
Object-Oriented Modeling Using UML
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-Oriented Concepts
Object-Oriented Modeling Using UML
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-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.move(10,20) Method
p1
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
Student
advisee
*
* enroll
*
Course
*
teach
1
adviser
CS 3300 Object-Oriented Concepts
1
Faculty
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
1
*
Student
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)
void removeCourse(CourseSchedule Course
findCourse(String title)
void enroll(Course c, Student s)
void drop(Course c, Student s
CS 3300 Object-Oriented Concepts
Object-Oriented Modeling Using UML
Course
Student
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
Customer
Logon
Manager
Manage
catalog
Shop
Catalog
Manager
Manage
Acount
Process
order
System
administrator
CS 3300 Object-Oriented Concepts
Inventory
manager
Object-Oriented Modeling Using UML
59
Download