Object Oriented Analysis and Design
Object Oriented 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
Emphasis is on finding and describing conceptual objects which are relevant to your problem.
Design and refine classes. Design and refine classes. Design and refine attributes. Design and refine methods. Design and refine structures. Design and refine associations.
Design of classes.
Design of member function.
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
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
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).
Polymorphism
Encapsulation
Abstraction
Inheritance
Abstraction
Reduces complexity and aids understanding. Done via class, inheritance, association, and aggregation concepts. It helps us in deciding :
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( )
The model is abstract in the early stages.As the model evolves, it becomes more and more detailed.
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.
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
the detailed design into the system deployment that will satisfy the users needs. equipment,
This
It
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