Introduction to Object-Oriented
Analysis and Design
• Object-Oriented Analysis and Design (OOAD) is a
methodological approach to analyzing and designing a system
by visualizing it as a group of interacting objects.
• This approach focuses on representing real-world concepts as
objects, making systems easier to understand, develop, and
maintain.
• OOAD is used in developing complex software systems and
emphasizes modularity, reusability, and scalability.
Object Oriented Analysis and Design
• Object-Oriented Analysis and Design (OOAD) is a software engineering methodology that
involves using object-oriented concepts to design and implement software systems. OOAD
involves a number of techniques and practices, including object-oriented programming,
design patterns, UML diagrams, and use cases. Here are some important aspects of OOAD:
• Object-Oriented Programming: Object-oriented programming involves modeling real-world
objects as software objects, with properties and methods that represent the behavior of
those objects.OOAD uses this approach to design and implement software systems.
• Design Patterns: Design patterns are reusable solutions to common problems in software
design. OOAD uses design patterns to help developers create more maintainable and efficient
software
• Design Patterns: Design patterns are reusable solutions to common problems in software
design. OOAD uses design patterns to help developers create more maintainable and
efficient software systems.
• UML Diagrams: Unified Modeling Language (UML) is a standardized notation for creating
diagrams that represent different aspects of a software system. OOAD uses UML diagrams
to represent the different components and interactions of a software system.
• Use Cases: Use cases are a way of describing the different ways in which users interact with
a software system. OOAD uses use cases to help developers understand the requirements
of a system and to design software systems that meet those requirements.
What is Object-Oriented Analysis
(OOA)?
• OOA involves understanding the problem domain and identifying the key objects
and their interactions.
• It focuses on 'what' the system must do rather than 'how' it will do it.
• This phase includes identifying classes, objects, attributes, behaviors, and the
relationships among them.
What is Object-Oriented Design
(OOD)?
• OOD involves defining the software architecture and design based on the analysis
model.
• It focuses on 'how' the system will achieve the requirements specified in the
analysis phase.
• It includes designing class hierarchies, methods, messages, and data structures.
Object-Oriented Design
In the object-oriented software development process, the analysis model, which is
initially formed through object-oriented analysis (OOA), undergoes a transformation
during object-oriented design (OOD) i.e implementation of the conceptual model
developed in OOA. This evolution is crucial because it shapes the analysis model into a
detailed design model.
Furthermore, as part of the object-oriented design process, it is essential to define
specific aspects:
•Data Organization of Attributes:
• OOD involves specifying how data attributes are organized within the objects.
• This includes determining the types of data each object will hold and how they
relate to one another.
•Procedural Description of Operations:
• OOD requires a procedural description for each operation that an object can
perform.
• This involves detailing the steps or processes involved in carrying out specific
tasks.
Design pyramid for object-oriented systems. It has the
following four layers.
1.The Subsystem Layer: It represents the subsystem that
enables software to achieve user requirements and implement
technical frameworks that meet user needs.
2.The Class and Object Layer: It represents the class
hierarchies that enable the system to develop using
generalization and specialization. This layer also represents each
object.
3.The Message Layer: This layer deals with how objects interact
with each other. It includes messages sent between objects,
method calls, and the flow of control within the system.
4.The Responsibilities Layer: It focuses on the responsibilities
of individual objects. This includes defining the behavior of each
class, specifying what each object is responsible for, and how it
responds to messages.
Object-Oriented System
Characteristics
• Objects are the fundamental building blocks of the
system.
• Each object encapsulates state and behavior.
• Objects interact through well-defined interfaces
using messages.
• Object-oriented systems mimic the structure and
behavior of real-world systems.
Core OOAD Concepts
• Object: An instance of a class with identity, state, and behavior.
• Class: A blueprint or template for creating objects.
• Encapsulation: Bundling data and methods that operate on the data
within one unit.
• Inheritance: Mechanism for creating new classes from existing
ones.
• Polymorphism: The Ability of different classes to respond to the
same message in different ways.
• Abstraction: Hiding complex implementation details and showing
only the necessary features.
Advantages of OOAD
There are several advantages to using OOAD in software
engineering:
• Reusability: OOAD emphasizes the use of reusable components
and design patterns, which can save time and effort in software
development.
• Scalability: OOAD can help developers design software systems
that are scalable and can handle changes in user demand and
business requirements over time.
• Maintainability: OOAD emphasizes modular design and can help
developers create software systems that are easier to maintain and
update over time.
• Flexibility: OOAD can help developers design software systems
that are flexible and can adapt to changing business requirements
over time.
Disadvantages of OOAD
• Complexity: OOAD can be complex and may require significant
expertise to implement effectively.
• Time-consuming: OOAD can be a time-consuming process that
involves significant upfront planning and documentation.
• Rigidity: Once a software system has been designed using OOAD, it
can be difficult to make changes without significant time and
expense.
• Cost: OOAD can be more expensive than other software
engineering methodologies due to the upfront planning and
documentation required.
• Overall, OOAD can be an effective approach to designing and
implementing software systems, particularly for complex or large-
scale projects. However, it’s important to weigh the advantages and
disadvantages carefully before adopting this approach.
OOAD - Object Oriented System
We know that the Object-Oriented Modelling (OOM) technique
visualizes things in an application by using models organized around
objects. Any software development approach goes through the
following stages −
• Analysis,
• Design, and
• Implementation.
• In object-oriented software engineering, the software developer
identifies and organizes the application in terms of object-oriented
concepts, prior to their final representation in any specific programming
language or software tools.
OOAD Process Steps
Implementation: Testing: Verify
Requirement Object-Oriented Object-Oriented
Translate design that the system
Gathering- Analysis- Identify Design- Define
into code using meets
Understand user objects, their the architecture,
an object- requirements and
needs and system behaviors, and class diagrams,
oriented behaves
requirements. relationships. and interactions.
language. correctly.
Case Study: ATM System
• • Objects Involved: ATM, User, Card, Account, Bank.
• • Use Case - Withdraw Money:
1. User inserts card
2. ATM authenticates card
3. User selects withdraw option and enters amount
4. ATM verifies balance and dispenses cash
5. Transaction recorded
• • Demonstrates object interaction and sequence of operations.
Summary
• • OOAD is a systematic approach for analyzing and designing object-oriented
systems.
• • It improves software design quality and aligns closely with real-world modeling.
• • By using OOAD, developers can build more maintainable, reusable, and scalable
systems.