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