Object Oriented Analysis and Design Notes
Object Oriented Analysis and Design Notes
Grady Booch has defined object-oriented design as “a method of design encompassing the process of
object-oriented decomposition and a notation for depicting both logical and physical as well as static
and dynamic models of the system under design”.
Object-oriented programming (OOP) is a programming paradigm based upon objects (having both
data and methods) that aims to incorporate the advantages of modularity and reusability.
Objects, which are usually instances of classes, are used to interact with one another to design
applications and computer programs.
Some examples of object-oriented programming languages are C++, Java, Smalltalk, Delphi, C#, Perl,
Python, Ruby, and PHP.
Grady Booch has defined object–oriented programming as “a method of implementation in which
programs are organized as cooperative collections of objects, each of which represents an instance of
some class, and whose classes are all members of a hierarchy of classes united via inheritance
relationships”.
The important features of object–oriented programming are:
Bottom–up approach in program design
Programs organized around objects, grouped in classes
Focus on data with methods to operate upon object’s data
Interaction between objects through functions
Reusability of design through creation of new classes by adding features to existing classes.
Three Models 6
Class Model
State model and
Interaction model
Class-Object Model 7
The concepts of objects and classes are intrinsically linked with each other and form
the foundation of object–oriented paradigm.
Object
An object is a real-world element in an object–oriented environment that may have
a physical or a conceptual existence. Each object has:
Identity that distinguishes it from other objects in the system.
State that determines the characteristic properties of an object as well as the values of the
properties that the object holds.
Behavior that represents externally visible activities performed by an object in terms of
changes in its state.
Objects can be modelled according to the needs of the application. An object may have a
physical existence, like a customer, a car, etc.; or an intangible conceptual existence, like a
project, a process, etc.
Conti.
Class 8
A class represents a collection of objects having same characteristic properties that
exhibit common behavior. It gives the blueprint or description of the objects that can be
created from it. Creation of an object as a member of a class is called instantiation.
Thus, object is an instance of a class.
The constituents of a class are:
A set of attributes for the objects that are to be instantiated from the class. Generally,
different objects of a class have some difference in the values of the attributes. Attributes
are often referred as class data.
A set of operations that portray the behavior of the objects of the class. Operations are
also referred as functions or methods.
Conti.
Phase of OMT 9
The OMT methodology covers the full software development life cycle. The methodology
has the following phase.
Analysis: Analysis is the first phase of OMT methodology. The aim of analysis phase is to
build a model of the real world situation to show its important properties and domain. This
phase is concerned with preparation of precise and correct modeling of the real world
System design: System design phase determines the overall system Architecture. During
system design, the high level structure of the system is designed.
Object design: Object design is concerned with fully classifying the existing and
remaining classes, associations, attributes and operations necessary for implementing a
solution to the problem
Implementation: Implementation phase of the OMT is a matter of translating the design
in to a programming language constructs. It is important to have good software
engineering practice so that the design phase is smoothly translated in to the
implementation phase
State model 10
Some Domain objects pass through connected distinct states and each state
has different constraints and Association or multiplicities
The state diagram describes the various states that object can assume and
their properties and Constraints in all and the events take in each state.
This is finding out in detail what the users require of the system that the project is to
implement. Some work along these lines will almost certainly have been carried out
when the project was evaluated but now the original information obtained needs to
be updated and supplemented. Several different approaches to the users'
requirements may be explored. For example, a small system that satisfies some, but
not all, of the users' needs at a low price may be compared to a system with more
functions but at a higher price.
Architecture design
Based on system requirements
Defines components of system: hardware, software, organizational
Software requirements will come out of this
Detailed Design
Each software component is made-up of a number of software units that can be separately
coded and tested
Code and test
Refers to writing code for each software unit.
Initial testing to debug individual software units would be carried out at this stage.
Integration
The components are tested together to see if they meet the overall requirements .
Integration could involve combining various software components , or combining and testing the
software element of the system in conjunction with the hardware platforms and user interactions.
Qualification testing
The system , including the software components, has to be tested carefully to ensure that all the
requirements have been fulfilled.
Installation
The process of making the system operational
Includes setting up standing data, setting system parameters, installing on operational hardware
platforms, user training etc
Acceptance support
This is the resolving of problems with the newly installed systems including the correction of any
errors, and implementing agreed extensions and improvements.
Waterfall Model
This model is used only when the requirements are very well known,
clear and fixed.
Product definition is stable.
Technology is understood.
There are no ambiguous requirements
Ample resources with required expertise are available freely
The project is short.
Spiral Model
Conceptua
Class Polymorphism
l Modelling
Abstraction Encapsulation
OO Analysis and Design
•Exists between two classes if the changes to the definition of one may cause changes to
the other (but not the other way around).
•Class1 depends on Class2
•A dashed line with an open arrow