2. Object Oriented Modeling & Design | Object Oriented Design
One approach to software design
Object-oriented design is the process of planning a system of
interacting objects for the purpose of solving a software problem
Data Abstraction
Polymorphism
Data Hiding
Extensibility
3. Object Oriented Modeling & Design | Source for OOD
Inputs
Conceptual Design
Use Case Diagram
System Sequence Diagram
User Interface
Relational Data Model
Object-oriented concepts
Classes / Objects
Information Hiding
Inheritance
Interface
Polymorphism
Designing Concept
Defining objects, creating class diagram from conceptual diagram: Usually map entity to class
Attributes
Design Pattern
Application framework
Identify long lasting data – data base
Identify remote data
Output
Sequence Diagram
Class Diagram
4. Object Oriented Modeling & Design | Advantage of OOD
Easier maintenance. Objects may be understood as stand-alone entities
Objects are appropriate reusable components
For some systems, there may be an obvious mapping from real world
entities to system objects
5. Object Oriented Modeling & Design | An Object Oriented Design Process
Define the context and modes of use of the system
Design the system architecture
Identify the principal system objects
Develop design models
Specify object interfaces
6. Object Oriented Modeling & Design | Architectural Design
Once interactions between the system and its environment
have been understood, you use this information for designing
the system architecture
Layered architecture is appropriate
There should be no more than 7 entities in an architectural
model
7. Object Oriented Modeling & Design | Object Identification
Identifying objects (or object classes) is the most difficult part of
object oriented design
There is no 'magic formula' for object identification. It relies on the skill, experience and domain
knowledge of system designers
Object identification is an iterative process. You are unlikely to get it right first time
Use a grammatical approach based on a natural language description of the system
Use a behavioural approach and identify objects based on what participates in what behaviour
Use a scenario-based analysis. The objects, attributes and methods in each scenario are identified
Use domain knowledge to identify more objects and operations
8. Object Oriented Modeling & Design | Object Oriented Model
What?
A model is a simplification of reality
A model may provide
blueprints of a system
Organization of the system
Dynamic of the system
Why?
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
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
We build models so that we can see and better understand the system we are developing
9. Object Oriented Modeling & Design | Object and classes
Interpretation in the Real World Interpretation in the Model
An object is a thing that can be distinctly An object has an identity, a state, and
Object
identified. a behavior.
A class represents a set of objects with A class characterizes the structure of
Class similar characteristics and behavior. This states and behaviors that are shared
objects are called the instances of the class. by all instances.
10. Object Oriented Modeling & Design | Package or Namespace
An abstract container or environment created to hold a logical
grouping of unique identifiers or symbols
They organize large code projects.
They are delimited with the . operator.
Packages that will be widely used should be named as the reverse
of the internet domain as the prefix of the package name
11. Object Oriented Modeling & Design | Models
Design models show the objects and object classes and
relationships between these entities
Static models describe the static structure of the system in terms of
object classes and relationships
Dynamic models describe the dynamic interactions between
objects - ATM
12. Object Oriented Modeling & Design | Object Interface Design
Object interfaces have to be specified so that the objects and other
components can be designed in parallel
Designers should avoid designing the interface representation but
should hide this in the object itself
Objects may have several interfaces which are viewpoints on the
methods provided
The UML uses class diagrams for interface specification
13. Object Oriented Modeling & Design | Object Oriented Model
Library
Namespace Namespace Namespace
Class Class Class Class Class Class Class Class Class
Abstract
Interface
Class