< Previous Lesson Lesson Plan Next Lesson >

Object-Oriented Analysis and Design (OOAD): Concepts, Principles, and Business Integration

Object-Oriented Analysis and Design (OOAD) is a widely used methodology in software engineering that focuses on modeling systems as a collection of interacting objects. This approach mirrors real-world entities and processes, making complex systems easier to understand, design, implement, and maintain. OOAD plays a crucial role in building scalable, reusable, and maintainable software systems that align closely with business requirements.

OOAD is typically divided into two closely related phases: Object-Oriented Analysis (OOA), which emphasizes understanding the problem domain, and Object-Oriented Design (OOD), which focuses on transforming analysis models into a technical solution. Together, they provide a structured framework for bridging business needs and software implementation.

Key Concepts in Object-Oriented Analysis and Design

26.1 Object

An object can be defined as:

“A concept, abstraction, or thing with crisp boundaries and meaning in the problem at hand. Objects serve two purposes: they promote understanding of the real world and provide a practical basis for computer implementation.”
— Rumbaugh et al. (1991)

In simple terms, an object represents a real-world or conceptual entity that has a distinct identity, state, and behavior. Objects encapsulate both data and operations, allowing software systems to model real-life scenarios in a natural and intuitive way.

26.2 Classes

A class is a blueprint or template from which objects are created. It defines a classification of objects and specifies the attributes and behaviors that characterize those objects.

“The purpose of a class is to specify a classification of objects and to specify the features that characterize the structure and behavior of those objects.”

For example, in a customer relationship management system, a Customer class may represent all customers, while individual customers are instances (objects) of that class.

Attributes and Methods

Attributes represent the characteristics or properties of a class or object, while methods define the operations or actions that can be performed.

For instance, a company building a database for improved customer relationships would define a Customer class with relevant attributes and methods to manage customer data effectively.

26.3 Inheritance

Inheritance is a fundamental concept in OOAD that allows a class to acquire the properties and behaviors of another class. It is commonly described using the phrase “is a kind of”.

For example, an Automobile is a general class, while Car, Truck, and Van are specialized classes. These subclasses inherit common features such as engine and steering, while also defining unique characteristics like load capacity or engine type.

Inheritance supports two key concepts:

For example, a Customer class may have subclasses such as Domestic Customer, Commercial Customer, and Industrial Customer. Each subclass inherits common attributes and methods while adding specialized features as required.

Message Passing

In object-oriented systems, objects collaborate by sending messages to one another. Message passing enables interaction without exposing internal details. For example, recording a CD sale may involve objects such as a sales transaction, inventory item, and sales assistant, all communicating through defined messages.

26.4 Encapsulation

Encapsulation refers to information hiding, where an object’s internal data is protected from direct access by external entities. Access is provided only through well-defined methods.

A common real-world analogy is a music player: pressing the play button starts the music, but the internal mechanism remains hidden from the user. Similarly, in banking software, profit calculations are performed internally, while users interact only with the results.

Encapsulation improves system security, reduces complexity, and enhances maintainability by ensuring that data can be modified only in controlled ways.

26.5 Polymorphism

Polymorphism, derived from the Greek term meaning “many forms,” allows the same operation to behave differently depending on the object performing it.

For example, a method such as calculateCost() may behave differently for a Truck and a Car, even though both belong to the broader Vehicle class.

Polymorphism enhances flexibility and extensibility by enabling systems to accommodate new object types without modifying existing code.

26.6 Business Process Reengineering (BPR)

Business Process Reengineering (BPR) is closely related to OOAD, as both focus on improving efficiency and alignment between systems and business objectives.

“Reengineering is the fundamental rethinking and redesign of business processes to achieve dramatic improvements in critical, contemporary measures of performance, such as cost, quality, service, and speed.”
— Hammer & Champy (1993)

BPR emphasizes analyzing existing processes, eliminating inefficiencies, and redesigning workflows to deliver superior value to customers. It often involves rethinking how departments interact and how information flows across organizational boundaries.

As defined by Davenport and Short (1990), BPR also involves:

“The analysis and design of workflow and processes within and between organizations.”

This broader view recognizes the importance of suppliers, distributors, and customers as integral parts of the overall process ecosystem.

Competitive Advantage through BPR

One of the primary objectives of BPR is to achieve competitive advantage by delivering better products and services faster and at lower cost. For example, a petroleum company facing issues of delayed deliveries and product tampering may redesign its logistics, introduce tracking systems, and establish direct delivery mechanisms to points of sale.

Effectiveness and Efficiency

Effectiveness focuses on how well a product or service meets customer needs, including packaging, availability, and customer satisfaction. Efficiency relates to minimizing waste, reducing costs, and optimizing decision making at both operational and managerial levels.

Customers may not see internal processes, but they clearly perceive the outcomes of efficient and effective systems.

Major Steps in Implementing BPR

Supporting OOAD with Practical Tools

Clear documentation, consistent naming conventions, and standardized text formatting play an important role in object-oriented modeling and design. Tools such as a text case converter can help analysts and designers quickly standardize class names, method identifiers, and documentation, ensuring clarity and consistency throughout the OOAD lifecycle.

By combining object-oriented principles with disciplined process reengineering and practical tooling, organizations can build robust, adaptable systems that support long-term business success.

< Previous Lesson Lesson Plan Next Lesson >