Sie sind auf Seite 1von 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
Object-Oriented Modeling Using UML 2

CS 3300 Object-Oriented Concepts

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

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 systems 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

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

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

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

CS 3300 Object-Oriented Concepts

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 public protected package private private Java Syntax public protected UML Syntax + # ~ -

CS 3300 Object-Oriented Concepts

Object-Oriented Modeling Using UML

21

Examples
Java Syntax
Date birthday

UML Syntax
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
void move(int dx, int dy)

UML Syntax
~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 private int y +move(dx:int,dy:int)

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


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 Point p1 = new Point();

x = 0 y = 0

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

P1:Point

Point p1 = new Point();

x = 24 y = 40

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

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
Student advisee * * enroll * Course * teach 1 adviser
CS 3300 Object-Oriented Concepts

1 Faculty
41

Object-Oriented Modeling Using UML

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

College

Department

Student

1 Chairman-of 1

1 Member-of 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
Course

Student

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 customers 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

Shop

Manage catalog Catalog Manager

Manage Acount System administrator


CS 3300 Object-Oriented Concepts

Process order Inventory manager


Object-Oriented Modeling Using UML 59

Das könnte Ihnen auch gefallen