You are on page 1of 33

ANALYSIS AND DESIGN

OBJECT ORIENTED

Presented By :
Group 1

Contents
Traditional Approach

Object Oriented Approach Object Oriented Analysis Object Oriented Design Object Oriented Analysis & Design Basic Principles of Object Orientation Object Oriented Software Development Life Cycle Benefits of Object Oriented Approach

Traditional Approach
Earlier analysis methods were focused on process (such as a Data Flow Diagram, or DFD) or data (e.g. using an Entity Relationship Diagram, or ERD). Traditional design creates entities (data tables), and changes them using scripts, procedures, macros, or other techniques. Some of the Traditional Approaches are : Data Oriented Methodology Process Oriented Methodology

Data Oriented Methodology


Introduced in 1976, and primary method used from the 1980s to today. Focuses on using the ERD. Doesnt change as often as the DFD.

Shows business rules through cardinality.


Works for systems up to about million LOC.

Process Oriented Methodology

Invented in the 1960s


Focuses on using DFD Weak for projects over 50k LOC Subject to frequent change (every time a process is tweaked, the DFD changes)

Object Oriented Approach


Object oriented (OO) methods blend data and process into objects, and focuses on how those objects interact using methods (passing messages). OOA&D creates objects from classes, and applies them using their methods or operations.

Object Oriented Analysis


OOA is a method of analysis that examines requirements from the perspectives of the classes and objects. (Booch 1995) Object-oriented analysis (OOA) is the process of analyzing a task (also known as a problem domain) to develop a conceptual model that can then be used to complete the task.

Emphasis is on finding and describing conceptual objects which are relevant to your problem.

Object Oriented Analysis


A typical OOA model would describe computer software that could be used to satisfy a set of customer-defined requirements. Emphasis is on finding and describing conceptual objects which are relevant to your problem. The conceptual model that results from OOA typically consist of a set of use cases, one or more UML class diagrams, and a number of interaction diagrams. It may also include some kind of user interface mock-up.

Object Oriented Analysis


Steps in OOA :
Understanding the problem. Drawing the specifications of requirements of user and the software. Identifying the objects and their attributes. Identifying the services that each object is expected to provide. Establishing inter-connections between the objects in terms of services required and services rendered.

Object Oriented Design


OOA defines what we need to build.It doesnt define how the system will be build. OOD determines how to build , It bridges the gap between analysis and implementation. OOD is highly incremental, in other words, we starts with object-oriented analysis, model it, create an object-oriented design, then do some more of each, again and again, gradually refining and completing models of the system :

Object Oriented Design


First, build the object model based on objects and their relationships, then iterate and refine the model:

Design and refine classes. Design and refine classes. Design and refine attributes. Design and refine methods. Design and refine structures. Design and refine associations.

Object Oriented Design


Steps in OOD :

Review of objects created in analysis phase.


Specification of class dependencies. Organization of class hierarchies.

Design of classes.
Design of member function.

Object Oriented Design


Guidelines to use in OOD :
Reuse,

rather than build, a new class. Know the existing classes. Design a large number of simple classes, rather than a small number of complex classes. Design methods. Critique what you have proposed. If possible, go back and refine the classes

Analysis versus Design


The boundary between analysis and design can be quite vague; they often overlap. Some software processes merge the analysis and design stages.
In

real iterative projects, after an initial design model is created, the analysis model tends to become redundant and is no longer maintained. For smaller projects (under 200 classes), the design model may be small enough to be understandable, so a separate analysis model may be unnecessary

Object Oriented Analysis & Design


OOAD

is a software engineering approach that models a system as a group of interacting objects. Each object represents some entity of interest in the system being modeled, and is characterized by its class, its state (data elements), and its behavior. Various models can be created to show the static structure, dynamic behavior, and runtime deployment of these collaborating objects. There are a number of different notations for representing these models, such as the Unified Modeling Language (UML).

Object Orientation Principles


Object Orientation

Polymorphism

Encapsulation

Abstraction

Inheritance

Abstraction

Abstraction is the process of modeling only relevant features


Hide unnecessary details which are irrelevant for current purpose
(and/or user).

Reduces complexity and aids understanding. Done via class, inheritance, association, and aggregation concepts. It helps us in deciding :

What classes do we need?

How do we organize our class hierarchy?


Which variables/methods do we put in the superclasses, and which
do we put in the subclasses?

Basic approach to abstraction


1.

Take a collection proposed classes.

of

2.

Identify common attributes (instance variables) and behaviors (methods). Remove the common attributes & behaviors, & put them in a new class.

3.

4.

New class is a base class which contains the common elements, derived classes contain what's left.

Example

Encapsulation
Encapsulation

is the integration of data and operations into a class. information hiding by concealing implementation of the object. The end goal of Encapsulation is to develop a software architecture that facilitates both substitution and reuse. Helps in easier maintainability , flexibility and extensibility of code.

Supports

Encapsulation

Inheritance
It

is a process by which Sub class acquires all the properties and operations of Super class. supports the classification. concept of hierarchical

It

It

provides the concept of reusability i.e we can add additional features to an exsisting class without even modifying it. modeled using is a or AKO (a kind of) concepts

Sometimes

Inheritance
Vehicle

Superclass Generalization
Wheeled Not Wheeled

Class
Specialization
Two wheeled Four wheeled Tank

Subclass

Polymorphism
Means Allows

many shapes

dynamic substitution of objects within an inheritance hierarchy services to be shared by many classes (a.k.a. overloading a function) A method called calculate area for a class drawing object will have different definitions depending on whether the drawing object is a circle, square, triangle etc.

Allows

Polymorphism
Drawing Object Area( )

Circle Object Area(circle)

Square Object Area(Square)

Triangle Object Area(Triangle)

Object Oriented Software Development Life Cycle


Process of progressively developing representation of a system component (or object) through the phases of analysis, design, implementation , testing and refinement. The essence of the software development process is to transform users need into a software solution that satisfies those needs.

The model is abstract in the early stages.As the model evolves, it becomes more and more detailed.

Software Development Process

Software Development Process


The software development process can be divided into smaller, interacting sub processes.
Generally software development can be seen as a series of transformations, where the output of one transformation becomes the input of the subsequent transformation.

Software Development Process


Transformation1(Analysis) :

Translates the users needs into system requirements and responsibilities. The way they use the system can provide insight into the users requirements.
For example: one use of system might be analyzing an incentive payroll system, which will tell us that this capacity will be included in the system requirements.

Software Development Process


Transformation 2 (design) :
Begins

with a problem statement and ends with a detailed design that can be transformed into a operational system.
transformation includes the bulk of the software development activity, including the definition of how to build the software, its development, and its testing. also includes design descriptions, the programs and the testing material

This

It

Software Development Process


Transformation 3(Implementation) :
Refines

the detailed design into the system deployment that will satisfy the users needs. equipment,

This

takes into account procedures, people, and the like.

It

represents embedding the software product within its operational environment.

Benefits of Object Oriented Approach


The

ability to tackle more challenging problem domains. Improved communication among users, analysts, designers, and programmers. Reusability of analysis, design, and programming results. Increased consistency among the models developed during object-oriented analysis, design, and programming. A small change in requirements does not mean massive changes in the system under development

You might also like