You've reached the end of your free preview.
Want to read all 167 pages?
Unformatted text preview: Object Oriented Modeling and Design 10CS71 OBJECT ORIENTED MODELING AND DESING
Subject Code: 10CS71
Hours/Week : 04
Total Hours : 52 I.A. Marks : 25
Exam Hours: 03
Exam Marks: 100 PART - A
UNIT - 1 7 H o ur s INTRODUCTION, MODELING CONCEPTS, CLASS MODELING: What is
Object Orientation? What is OO development? OO themes; Evidence for usefulness
of OO development; OO modeling history. Modeling as Design Technique:
Modeling; abstraction; The three models. Class Modeling: Object and class
concepts; Link and associations concepts; Generalization and inheritance; A sample
class model; Navigation of class models; Practical tips.
UNIT - 2 6 H o ur s ADVANCED CLASS MODELING, STATE MODELING: Advanced object and
class concepts; Association ends; N-ary associations; Aggregation; Abstract classes;
Multiple inheritance; Metadata; Reification; Constraints; Derived data; Packages;
Practical tips. State Modeling: Events, States, Transitions and Conditions; State
diagrams; State diagram behavior; Practical tips.
UNIT - 3 6 H o ur s ADVANCED STATE MODELING, INTERACTION MODELING: Advanced
State Modeling: Nested state diagrams; Nested states; Signal generalization;
Concurrency; A sample state model; Relation of class and state models; Practical
tips. Interaction Modeling: Use case models; Sequence models; Activity models. Use
case relationships; Procedural sequence models; Special constructs for activity
UNIT - 4 7 Hours PROCESS OVERVIEW, SYSTEM CONCEPTION, DOMAIN ANALYSIS:
Process Overview: Development stages; Development life cycle. System
Conception: Devising a system concept; Elaborating a concept; Preparing a problem
statement. Domain Analysis: Overview of anal ysis; Domain class model; Domain
state model; Domain interaction model; Iterating the analysis.
PART - B
UNIT - 5 7 H o ur s APPLICATION ANALYSIS, SYSTEM DESIGN:
Application interaction model; Application class model; Application state model;
Adding operations. Overview of system design; Estimating performance; Making a
reuse plan; Breaking a system in to sub-systems; Identifying concurrency; Allocation
of sub-systems; Management of data storage; Handling global resources; Choosing a
Dept. of ISE, SJBIT Pag e 1 Object Oriented Modeling and Design 10CS71 software control strategy; Handling boundary conditions; Setting the trade-off
priorities; Common architectural styles; Architecture of the ATM system as the
UNIT - 6 7 H o ur s CLASS DESIGN, IMPLEMENTATION MODELING, LEGACY SYSTEMS:
Class Design: Overview of class design; Bridging the gap; Realizing use cases;
Designing algorithms; Recursing downwards, Refactoring; Design optimization;
Reification of behavior; Adjustment of inheritance; Organizing a class design; ATM
example. Implementation Modeling: Overview of implementation; Fine-tuning
classes; Fine-tuning generalizations; Realizing associations; Testing. Legacy
Systems: Reverse engineering; Building the class models; Building the interaction
model; Building the state model; Reverse engineering tips; Wrapping; Maintenance.
UNIT - 7 6 H o ur s DESIGN PATTERNS – 1: What is a pattern and what makes a pattern? Pattern
categories; Relationships between patterns; Pattern description.
Communication Patterns: Forwarder-Receiver; Client-Dispatcher-Server; PublisherSubscriber.
UNIT - 8 6 H o ur s DESIGN PATTERNS – 2, IDIOMS: Management Patterns: Command processor;
View handler. Idioms: Introduction; What can idioms provide? Idioms and style;
Where to find idioms; Counted Pointer example.
1. Michael Blaha, James Rumbaugh: Object-Oriented Modeling and Design with
UML, 2nd Edition, Pearson Education, 2005. (Chapters 1 to 17, 23)
2. Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael
Stal: Pattern-Oriented Software Architecture, A System of Patterns, Volume 1, John
Wiley and Sons, 2007. (Chapters 1, 3.5, 3.6, 4)
1. Grady Booch et al: Object-Oriented Anal ysis and Design with Applications, 3rd
Edition, Pearson Education, 2007.
2. Brahma Dathan, Sarnath Ramnath: Object-Oriented Analysis, Design, and
Implementation, Universities Press, 2009.
3. Hans-Erik Eriksson, Magnus Penker, Brian Lyons, David Fado: UML 2 Toolkit,
Wiley- Dreamtech India, 2004.
4. Simon Bennett, Steve McRobb and Ray Farmer: Object-Oriented Systems
Analysis and Design Using UML, 2nd Edition, Tata McGraw-Hill, 2002. Dept. of ISE, SJBIT Pag e 2 Object Oriented Modeling and Design 10CS71 INDEX SHEET
P A RT A :
UNIT 1: INTRODUCTION, MODELING Page no.
4 -31 CONCEPTS, CLASS MODELING:
UNIT 2: ADVANCED CLASS MODELING, 32 – 49 STATE MODELING
UNIT 3: ADVANCED STATE MODELING, 50 – 79 INTERACTION MODELING
UNIT 4: PROCESS OVERVIEW, SYSTEM 80 – 83 CONCEPTION, DOMAIN ANALYSIS
PART – B
UNIT 5: APPLICATION ANALYSIS, SYSTEM Page no.
84 – 112 DESIGN
UNIT 6: CLASS DESIGN, IMPLEMENTATION 113 – 127 MODELING, LEGACY SYSTEMS
UNIT 7: DESIGN PATTERNS – 1 128 – 145 UNIT 8: DESIGN PATTERNS – 2, IDIOMS 146 - 162 Dept. of ISE, SJBIT Pag e 3 Object Oriented Modeling and Design 10CS71 Unit1: INTRODUCTION, MODELING CONCEPTS, CLASS
• --- 7 h r W hat is object orientation?
W hat is oo development?
Evidence for usefulness of oo development
Oo modeling history
The tree models
Objects and class concepts
Link and association concepts
Generalization and inheritance
A sample class model
Navigation of class models
Practical tips INTRODUCTION
Intention of this subject (object oriented modeling and design) is to learn how to
apply object -oriented concepts to all the stages of the software development life
Object-oriented modeling and design is a way of thinking about problems using
models organized around real world concepts. The fundamental construct is the
object, which combines both data structure and behavior.
WHAT IS OBJECT ORIENTATION?
�D efinition: OO means that we organize software as a collection of discrete objects
(that incorporate both data structure and behavior).
�There are four aspects (characteristics) required by an OO approacho
• Identity means that data is quantized into discrete, distinguishable entities
• E.g. for objects: personal computer, bicycle, queen in chess etc. Dept. of ISE, SJBIT Pag e 4 Object Oriented Modeling and Design 10CS71 • Objects can be concrete (such as a file in a file system) or conceptual (such
as scheduling policy in a multiprocessing OS). Each object has its own inherent
identity. (i.e two objects are distinct even if all their attribute values are identical).
• In programming languages, an object is referenced by a unique handle.
• Classification means that objects with the same data structure (attribute) and
behavior (operations) are grouped into a class.
• E.g. paragraph, monitor, chess piece.
• Each object is said to be an instance of its class.
• Fig below shows objects and classes: Each class describes a possibly infinite
set of individual objects. Inheritance:
• It is the sharing of attributes and operations (features) among classes based
on a hierarchical relationship. A super class has general information that sub classes
refine and elaborate.
• E.g. Scrolling window and fixed window are sub classes of window.
• Polymorphism means that the same operation may behave differently for
• For E.g. move operation behaves differently for a pawn than for the queen in
a chess game.
Dept. of ISE, SJBIT Pag e 5 Object Oriented Modeling and Design 10CS71 Note: An operation is a procedure/transformation that an object performs or is
subjected to. An implementation of an operation by a specific class is called a
WHAT IS OO DEVELOPMENT? �D evelopment refers to the software life cycle: Analysis, Design and
Implementation. The essence of OO Development is the identification and
organization of application concepts, rather than their final representation in a
programming language. It’s a conceptual process independent of programming
languages. OO development is fundamentally a way of thinking and not a
�Here we present a process for OO development and a graphical notation for
representing OO concepts. The process consists of building a model of an
application and then adding details to it during design. he methodology has the following stages
• System conception: Software development begins with business analysis or
users conceiving an application and formulating tentative requirements.
• Analysis: The analyst scrutinizes and rigorously restates the requirements
from the system conception by constructing models. The analysis model is a concise,
precise abstraction of what the desired system must do, not how it will be done.
• The analysis model has two parts- Dept. of ISE, SJBIT Pag e 6 Object Oriented Modeling and Design 10CS71 • � Domain Model- a description of real world objects reflected within the
• � Application Model- a description of parts of the application system itself
that are visible to the user.
• E.g. In case of stock broker application• Domain objects may include- stock, bond, trade & commission.
• Application objects might control the execution of trades and present the
• System Design: The development teams devise a high-level strategy- The
System Architecture- for solving the application problem. The system designer
should decide what performance characteristics to optimize, chose a strategy of
attacking the problem, and make tentative resource allocations.
• Class Design: The class designer adds details to the analysis model in
accordance with the system design strategy. His focus is the data structures and
algorithms needed to implement each class.
• Implementation: Implementers translate the classes and relationships
developed during class design into a particular programming language, database or
hardware. During implementation, it is important to follow good software
�We use three kinds of models to describe a system from different view points.
1. Class Model—for the objects in the system & their relationships.
It describes the static structure of the objects in the system and their
Class model contains class diagrams- a graph whose nodes are classes and arcs
are relationships among the classes.
2. State model—for the life history of objects.
It describes the aspects of an object that change over time. It specifies and
implements control with state diagrams-a graph whose nodes are states and whose
arcs are transition between states caused by events.
3. Interaction Model—for the interaction among objects.
It describes how the objects in the system co-operate to achieve broader results.
This model starts with use cases that are then elaborated with sequence and activity
Use case – focuses on functionality of a system – i.e what a system does for
Sequence diagrams – shows the object that interact and the time sequence of their
Activity diagrams – elaborates important processing steps.
OO THE M ES
Dept. of ISE, SJBIT Pag e 7 Object Oriented Modeling and Design 10CS71 Several themes pervade OO technology. Few are –
1. Abstraction Abstraction lets you focus on essential aspects of an application while
ignoring details i.e focusing on what an object is and does, before deciding how to
implement it. It’s the most important skill required for OO development.
2. Encapsulation (information hiding) It separates the external aspects of an object (that are accessible to other
objects) from the internal implementation details (that are hidden from other objects) Encapsulation prevents portions of a program from becoming so
interdependent that a small change has massive ripple effects.
3. Combining data and behavior Caller of an operation need not consider how many implementations exist. In OO system the data structure hierarchy matches the operation inheritance hierarchy (fig). 4. Sharing
• OO techniques provide sharing at different levels.
• Inheritance of both data structure and behavior lets sub classes share
• OO development not only lets you share information within an application,
but also offers the prospect of reusing designs and code on future projects.
5. Emphasis on the essence of an object
• OO development places a greater emphasis on data structure and a lesser
emphasis on procedure structure than functional-decomposition methodologies.
• Identity, classification, polymorphism and inheritance characterize OO
Dept. of ISE, SJBIT Pag e 8 Object Oriented Modeling and Design 10CS71 • Each of these concepts can be used in isolation, but together they
complement each other synergistically.
MODELLING AS A DESIGN TECHNIQUE
Note: A model is an abstraction of something for the purpose of understanding it
before building it.
MO D E L L I N G
�Designers build many kinds of models for various purposes before constructing
�Models serve several purposes – Testing a physical entity before building it: Medieval built scale models of
Gothic Cathedrals to test the forces on the structures. Engineers test scale models of
airplanes, cars and boats to improve their dynamics. Communication with customers: Architects and product designers build
models to show their customers (note: mock-ups are demonstration products that
imitate some of the external behavior of a system). Visualization: Storyboards of movies, TV shows and advertisements let
writers see how their ideas flow. Reduction of complexity: Models reduce complexity to understand directly
by separating out a small number of important things to do with at a time.
�A bstraction is the selective examination of certain aspects of a problem.
�T he goal of abstraction is to isolate those aspects that are important for some
purpose and suppress those aspects that are unimportant.
THE THREE MODELS
1. Class Model: represents the static, structural, “data” aspects of a system.
• It describes the structure of objects in a system- their identity, their
relationships to other objects, their attributes, and their operations.
• Goal in constructing class model is to capture those concepts from the real
world that are important to an application.
• Class diagrams express the class model.
2. State Model: represents the temporal, behavioral, “control” aspects of a
• State model describes those aspects of objects concerned with time and the
sequencing of operations – events that mark changes, states that define the context
for events, and the organization of events and states.
• State diagram express the state model.
• Each state diagram shows the state and event sequences permitted in a
system for one class of objects.
• State diagram refer to the other models. Dept. of ISE, SJBIT Pag e 9 Object Oriented Modeling and Design 10CS71 • Actions and events in a state diagram become operations on objects in the
class model. References between state diagrams become interactions in the
3. Interaction model – represents the collaboration of individual objects, the
“interaction” aspects of a system.
• Interaction model describes interactions between objects – how individual
objects collaborate to achieve the behavior of the system as a whole.
• The state and interaction models describe different aspects of behavior, and
you need both to describe behavior fully.
• Use cases, sequence diagrams and activity diagrams document the interaction
Note: A class model captures the static structure of a system by characterizing the
objects in the system, the relationships between the objects, and the attributes and
operations for each class of objects.
OBJECT AND CLASS CONCEPT
O bje c ts
�Purpose of class modeling is to describe objects.
�An object is a concept, abstraction or thing with identity that has meaning for an
Ex: Joe Smith, Infosys Company, process number 7648 and top window are objects.
�An object is an instance or occurrence of a class.
�A class describes a group of objects with the same properties (attributes), behavior
(operations), kinds of relationships and semantics.
Ex: Person, company, process and window are classes.
Note: All objects have identity and are distinguishable. Two apples with same color,
shape and texture are still individual apples: a person can eat one and then the other.
The term identity means that the objects are distinguished by their inherent existence
and not by descriptive properties that they may have. Dept. of ISE, SJBIT Pag e 1 0 Object Oriented Modeling and Design 10CS71 CL AS S M O D E LLI N G
• OBJECT AND CLASS CONCEPT • An object has three characteristics: state,
behavior and a unique identification. or
• An object is a concept, abstraction or thing
with identity that has meaning for an
• Note: The term
id e n t it y m e a n s
t h a t t h e o b je c t s a r e
d is t in g u i s h e d b y t h e ir
in h e r e n t e x i s t e n c e a n d
n o t b y d e s c r ip t iv e
p r o p e r t ie s t h a t t h e y
may have. Class diagrams
�C lass diagrams provide a graphic notation for modeling classes and their
relationships, thereby describing possible objects.
Note: An object diagram shows individual objects and their relationships.
Useful for documenting test cases and discussing examples.
�Class diagrams are useful both for abstract modeling and for designing actual
Note: A class diagram corresponds to infinite set of object diagrams.
�F igure below shows a class (left) and instances (right) described by it. �C onventions used (UML):
• UML symbol for both classes and objects is box.
• Objects are modeled using box with object name followed by colon followed
by class name.
• Use boldface to list class name, center the name in the box and capitalize the
first letter. Use singular nouns for names of classes.
• To run together multiword names (such as JoeSmith), separate the words
• intervening capital letter.
Values and Attributes:
�V alue is a piece of data. Dept. of ISE, SJBIT Pag e 1 1 Object Oriented Modeling and Design 10CS71 Attribute is a named property of a class that describes a value held by each object of
� F o l l o w i n g a n a l o g y h o l d s :
Object is to class as value is to attribute.
�E.g. Attributes: Name, bdate, weight.
Values: JoeSmith, 21 October 1983, 64. (Of person object).
�Fig shows modeling notation �C onventions used (UML):
• List attributes in the 2nd compartment of the class box. Optional details (like
default value) may follow each attribute.
• A colon precedes the type, an equal sign precedes default value.
• Show attribute name in regular face, left align the name in the box and use
small case for the first letter.
�S imilarly we may also include attribute values in the 2nd compartment of
object boxes with same conventions.
Note: Do not list object identifiers; they are implicit in models.
E.g. An operation is a function or procedure that maybe applied to or by objects in a
E.g. Hire, fire and pay dividend are operations on Class Company. Open, close, hide
and redisplay are operations on class window.
�A method is the implementation of an operation for a class.
E.g. In class file, print is an operation you could implement different methods to
�N ote: Same operation may apply to many different classes. Such an operation is
�Fig shows modeling notation. Dept. of ISE, SJBIT Pag e 1 2 Object Oriented Modeling and Design 10CS71 �U ML conventions used –
• List operations in 3rd compartment of class box.
• List operation name in regular face, left align and use lower case for first
• Optional details like argument list and return type may follow each operation
• Parenthesis enclose an argument list, commas separate the arguments. A
colon precedes the resul...
View Full Document
- Fall '16
- Object-Oriented Programming, Object Oriented, object oriented modeling