Beruflich Dokumente
Kultur Dokumente
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
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
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
Why We Model
We build models so that we can see and better understand the system we are developing.
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
What is UML?
UML is a language for
Visualizing Specifying Constructing Documenting
10
11
12
Object
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.
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.
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 }
18
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]
21
Examples
Java Syntax
Date birthday
UML Syntax
Birthday:Date
+duration:int = 100
-students[0..MAX_Size]:Student
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]
Examples
Java Syntax
void move(int dx, int dy)
UML Syntax
~move(int dx, int dy)
+int getSize()
24
Example
Point Point -x:int -y:int private int x private int y +move(dx:int,dy:int)
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
x = 24 y = 40
27
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
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.
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
35
Principle of Polymorphism
Ability to interchange modules dynamically without affecting the system. refers to a contractual interface with multiple interchangeable implementation
36
Inheritance
Define a relationship among classes and interfaces Inheritance model -- the is-a(n) relationship
38
Example
39
40
Association
Association represents binary relationship between classes
Student advisee * * enroll * Course * teach 1 adviser
CS 3300 Object-Oriented Concepts
1 Faculty
41
42
Example
University
College
Department
Student
1 Chairman-of 1
1 Member-of 1..*
Faculty
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.
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
45
46
Example
47
Graphical notations
49
50
Example
talk
51
53
54
55
Requirements
Allow customers to browse and order books, music CDs, and computer software
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