Object-Oriented Analysis and Design
Object-Oriented Analysis and Design
Design
What is Object-oriented Analysis and
Design??
It is a popular technical approach for
o Analyzing
o Designing an application, system, or business
o By applying the object-oriented paradigm and
o Visual modeling throughout the development life cycles for better
communication and product quality
What is OOAD ??
• Object-oriented analysis and design(OOAD) is a
software engineering approach that models a system as
a group of interacting objects.
• OOAD -> A software development approach that
emphasizes a logical solution based on objects
• EXAMPLES OF OBJECT ORIENTED SYSTEMS:-
• IN OO system, “everything is an object”.
• A spreadsheet cell, bar chart, report,
• Numbers, arrays, records, fields , files,forms, an invoice,
etc.
What is Object-oriented Analysis??
(OOA) is the procedure of identifying software engineering
requirements and developing software specifications in terms of a
software system’s object model, which comprises of interacting objects.
The primary tasks in object-oriented analysis (OOA) are
1. Identifying objects
2. Organizing the objects by creating object model diagram.
3. Defining the internals of the objects, or object attributes.
4. Defining the behavior of the objects, i.e., object actions
5. Describing how the objects interact
Object-oriented Analysis Techniques
• The three analysis techniques that are used in conjunction with each
other for object-oriented analysis are
1. Object modelling,
2. Dynamic modelling, and
3. Functional modelling.
• Object Modelling
• Object modelling develops the static structure of the software system in
terms of objects. It identifies the objects, the classes into which the objects
can be grouped into and the relationships between the objects. It also
identifies the main attributes and operations that characterize each class.
• The process of object modelling can be visualized in the following steps −
I. Identify objects and group into classes
II. Identify the relationships among classes
III. Create user object model diagram
IV. Define user object attributes
V. Define the operations that should be performed on the classes
VI. Review glossary
• Dynamic Modelling
• After the static behavior of the system is analyzed, its behavior with respect
to time and external changes needs to be examined. This is the purpose of
dynamic modelling.
• Dynamic Modelling can be defined as “a way of describing how an
individual object responds to events, either internal events triggered by other
objects, or external events triggered by the outside world”.
• The process of dynamic modelling can be visualized in the following steps −
I. Identify states of each object
II. Identify events and analyze the applicability of actions
III. Construct dynamic model diagram, comprising of state transition diagrams
IV. Express each state in terms of object attributes
V. Validate the state–transition diagrams drawn
• Functional Modelling
• Functional Modelling is the final component of object-oriented analysis.
The functional model shows the processes that are performed within an
object and how the data changes as it moves between methods. It specifies
the meaning of the operations of object modelling and the actions of
dynamic modelling. The functional model corresponds to the data flow
diagram of traditional structured analysis.
• The process of functional modelling can be visualized in the following steps
−
I. Identify all the inputs and outputs
II. Construct data flow diagrams showing functional dependencies
III. State the purpose of each function
IV. Identify constraints
V. Specify optimization criteria
What is Object-oriented Design??
• (OOD) involves implementation of the conceptual model produced
during object-oriented analysis.
• In OOD, concepts in the analysis model, which are
technology−independent, are mapped onto implementing classes,
constraints are identified and interfaces are designed, resulting in a
model for the solution domain, i.e., a detailed description of how the
system is to be built on concrete technologies.
• OOA focuses on What the system does , OOD on how the system does
it.
OOAD
• Object Oriented: This means organizing software as a collection of
individual parts called “objects”. Objects have attributes (data) and
methods (functions) that operate on the data.
• Analysis: Analysis refers to the process of understanding and defining
the requirements of a system. This involves studying the problem
domain, identifying stakeholders, and capturing the essential features
and functions that the software system must provide.
• Design: It refers to the process of defining the architecture,
components, interfaces, and other characteristics of a software system
to meet the requirements identified during the analysis phase.
Benefits
• Improved modularity: OOAD encourages the creation of small, reusable
objects that can be combined to create more complex systems, improving
the modularity and maintainability of the software.
• Better abstraction: OOAD provides a high-level, abstract representation of
a software system, making it easier to understand and maintain.
• Improved reuse: OOAD encourages the reuse of objects and object-
oriented design patterns, reducing the amount of code that needs to be
written and improving the quality and consistency of the software.
• Improved communication: OOAD provides a common vocabulary and
methodology for software developers, improving communication and
collaboration within teams.
• Requirements Gathering: This involves understanding what the system should do
from the user's perspective.
• Identifying Objects: Objects are typically identified based on the nouns in the
requirements. These could be tangible things (like Car or Employee) or concepts (like
Transaction or Order).
• Defining Classes: Once objects are identified, classes are defined to encapsulate data
(attributes) and behaviour (methods) for these objects.
• Use Case Analysis: Use cases describe the interactions between users (actors) and the
system. They help in defining the functional requirements and identifying key objects.
• Modelling Relationships: Understanding and defining how objects interact with one
another, including relationships like associations, aggregations, and compositions.
Unified Modelling Language
In software engineering, Unified Modeling Diagrams are a set of
graphical tools used to specify, visualize, and document the structure
and behavior of a software system. These diagrams are part of the
Unified Modeling Language (UML), which provides a standardized
way to model software systems. UML helps design complex systems
and facilitates communication among stakeholders by providing a clear
and standardized way to represent various aspects of a system.
UML Diagram Types
Class Diagram
• A Class Diagram is one of the most fundamental types of diagrams in
UML (Unified Modeling Language). It represents the static structure
of a system by depicting its classes, their attributes, methods, and the
relationships among the classes. Class diagrams are crucial for
modeling the detailed design of a system, showing how different
components interact at a class level.
Class Diagram Components
• Class: A class is a blueprint for objects. It defines a set of attributes
(properties) and methods (functions) that the objects created from the
class will have.
• Attributes: Attributes are properties or data fields of a class. They
represent the state or characteristics of the objects created from the
class.
• Methods: Methods are functions or operations that can be performed
on the objects of the class. They represent the behavior or actions of
the class.
Example
Object Diagram
Sequence Diagram
Collaboration Diagram
UML Design Methodology
• The methodology you've described is a classic Object-Oriented (OO)
design approach, often used in conjunction with UML (Unified
Modeling Language). Here's how it aligns with OO design and UML
principles:
1. Identify Classes and Relationships between Them:
• Internal classes are those that may not directly map to external entities
but are necessary for the implementation of the system's functionality
(e.g., helper or utility classes).
• In UML, these classes are also represented in class diagrams but may
not be as prominent or externally visible as others.
5. Optimize and Package:
• First-level factoring divides the system into subsystems for each of the major
parts: inputs, outputs, and transformations.
• Each subsystem is responsible for a specific aspect:
• Input Subsystems: Handle the acquisition of data, managing screen interfaces, formats,
error handling, and validation.
• Output Subsystems: Focus on formatting and presenting the output, generating reports,
charts, or other forms of output.
• Transformation Subsystems: Handle the core logic of the system, the actual
computation or processing of the data, once clean inputs are obtained.
• This factoring ensures each part of the system is modular, making the design
simpler and easier to manage.
4. Factoring of Input, Output, and Transform Branches: