1.1 Introduction To OOAD

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 22

23CS202-Object Oriented Analysis and Design

Module1:Object Oriented Model


Title of Topic: Introduction to OOAD
Course Code: 23CS202
Course Title: Object Oriented Analysis and
Design
Session Number: 1

Academic Year: 2023 - 2024 (Even Sem)


23CS202-Object Oriented Analysis and Design
Module 1 – Object Oriented Model

1. Introduction to OOAD
2. Object Oriented Basics
3. Unified Process
4. Classes and Objects: Object and Class Relationships
5. Building Quality Classes and Objects: Measuring Quality, Choosing Operations
6. Classification: Importance and Challenges - Incremental and Iterative Classification
7. Approaches for Identifying Classes and Objects: Classical and Modern
8. Key Abstractions and Mechanisms
9. Complexity - Structure and Attributes of Complex System
10. Designing Complex Systems
11. Application case study : Inventory Management in visual Paradigm and Enterprise
Architect.
CO1 Describe the structure & attributes for designing complex systems
23CS202-Object Oriented Analysis and Design

Introduction to OOAD
Topics to be Covered

• Definition of Object-Oriented Analysis and Design (OOAD)


• Important Aspects of OOAD
• Object-Oriented Analysis
• Object-Oriented Design
• Benefits of Object-Oriented Analysis and Design(OOAD)
• Challenges of Object-Oriented Analysis and Design(OOAD)
• Real world applications of Object-Oriented Analysis and Design(OOAD)

• Object Oriented Analysis (OOA)

• Object Oriented Design (OOD)


23CS202-Object Oriented Analysis and Design

Definition of Object-Oriented Analysis and Design (OOAD)

• Object-Oriented Analysis and Design (OOAD) is a software engineering methodology


that employs object-oriented principles to model and design complex systems.
• It involves analysing the problem domain, representing it using objects and their
interactions, and then designing a modular and scalable solution.
• It helps create systems that are easier to understand, maintain, and extend by organizing
functionality into reusable and interconnected components.
23CS202-Object Oriented Analysis and Design

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 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.
23CS202-Object Oriented Analysis and Design

Object-Oriented Analysis

Object-Oriented Analysis (OOA) is the first technical activity performed as part of


object-oriented software engineering. OOA introduces new concepts to investigate a
problem. It is based on a set of basic principles, which are as follows:

• The information domain is modelled


• Behavior is represented
• The function is described
• Data, functional, and behavioral models are divided to uncover greater detail:
• Starting Simple, Getting Detailed
23CS202-Object Oriented Analysis and Design

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). This evolution is crucial because it shapes the
analysis model into a detailed design model, essentially serving as a blueprint for
constructing the software.
• The outcome of object-oriented design, or OOD, manifests in a design model
characterized by multiple levels of modularity.

This modularity is expressed in two key ways:

• Subsystem Partitioning

• Object Encapsulation
23CS202-Object Oriented Analysis and Design

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, ensuring a coherent and efficient data structure.

•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, ensuring clarity and precision in the implementation of functionality.
23CS202-Object Oriented Analysis and Design

The Object Oriented Design Pyramid


23CS202-Object Oriented Analysis and Design

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.
23CS202-Object Oriented Analysis and Design

Challenges of Object-Oriented Analysis and Design(OOAD)

1.Financial Systems: Banking Software: OOAD is often employed in banking


systems to model complex financial structures, transactions, and customer
interactions. The modular and scalable nature of OOAD helps in designing flexible
and robust banking applications.
2.Healthcare Systems: Electronic Health Record (EHR) Systems: OOAD is utilized
to model patient data, medical records, and healthcare workflows. Object-oriented
principles enable the creation of modular and adaptable healthcare applications that
can evolve with changing requirements.
23CS202-Object Oriented Analysis and Design

3.Aerospace and Defense: Flight Control Systems: OOAD is crucial in designing


flight control systems for aircraft. It helps model the interactions between different
components such as navigation systems, sensors, and control surfaces, ensuring safety
and reliability.
4.Telecommunications: Telecom Billing Systems: OOAD is applied to model and
design billing systems in the telecommunications industry. It allows for the
representation of complex billing rules, subscription plans, and customer data in a
modular and scalable way.
5.E-commerce: Online Shopping Platforms: OOAD is commonly used in the
development of e-commerce systems. It helps model product catalogs, user profiles,
shopping carts, and payment processes, making it easier to maintain and extend the
functionality of the platform.
23CS202-Object Oriented Analysis and Design

Benefits of Object-Oriented Analysis and Design(OOAD)


•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.
•Reusability: OOAD emphasizes the use of reusable components and design patterns,
which can save time and effort in software development by reducing the need to create new
code from scratch.
•Scalability OOAD can help developers design software systems that are scalable and can
handle changes in user demand and business requirements over time.
23CS202-Object Oriented Analysis and Design

Object Modeling

Object Modeling is a method used in computer programming and system design to create a
clear and structured representation of real-world entities or concepts as Objects. These
objects have specific attributes (characteristics) and behaviors (actions), allowing us to
better understand and plan how they interact with a software system.

For example, you’re describing a bicycle:

•Attributes: You’d list the things that make the bicycle unique, like its color, size,
brand, and the number of wheels. For example, My bicycle is blue, medium-sized, a
Mountain Rider and has two wheels.
•Behaviors: You’d also note what the bicycle can do, like to move forward, brake,
turn left, and turn right. For instance, My bicycle can go forward when I pedal, and
it stops when I squeeze the brakes.
23CS202-Object Oriented Analysis and Design

Object-Oriented Analysis (OOA)


Object-Oriented Analysis is the initial phase of the software development process, where
the primary focus is on understanding the problem domain, capturing and modeling the
requirements, and defining the system’s behavior. OOA is all about abstracting real-world
concepts and entities into a software model, and it involves the following key aspects:

•Problem Domain Understanding: During OOA, the software engineer works closely
with domain experts and stakeholders to understand the problem that the software it
intended to solve. This involves gathering requirements, identifying stakeholder’s
needs, and understanding the business processes.
•Use Case Modeling: Use cases are used to define the interactions between various
actors (people, others systems, etc.) and the system. Use case diagrams are a common
tool to represent these interactions, helping to capture the system’s external behavior.
•Domain Modeling: Domain modeling involves identifying and defining the core
concepts, objects, and entities in the problem domain. It typically results in the creation
of class diagrams, which represent the relationship and attributes of these entities.
23CS202-Object Oriented Analysis and Design

•Analysis of Behavior: OOA also considers the behavior of the system, often
through activity diagrams, sequence diagrams, and state diagrams. These diagrams
help depict how objects interact and the flow of information and control in the
system.
•Identifying Constraints: Constraints, both technical and non-technical, are
important to consider during OOA. These may include performance constraints,
regulatory requirements, and technology limitations.
•Non-Functional Requirements: During OOA, non-functional requirements such
as performance, scalability, security, and maintainability are identified and
documented.
•Documentation: All the analysis work is documented, which may include various
UML diagrams, use cases, textual descriptions, and other artifacts to ensure that the
system’s requirements are well-understood.
23CS202-Object Oriented Analysis and Design

Object-Oriented Design (OOD)


Object-Oriented Design (OOD) is the phase that follows OOA and is focused on
creating a software solution that meets the requirements. During OOD, you transform
the analysis model into a design model that can be implemented using a specific
programming language. Key aspects of OOD include:
•System Architecture: The high-level system architecture is defined during OOD.
This involves deciding on the overall structure of the software, the major
components, and their interactions.
•Class Design: The analysis model is refined, and the class diagrams are further
developed to include detailed class definitions, attributes, methods and their
relationships. Inheritance, encapsulation, and polymorphism are key principles that
guide class design.
•Object Collaboration: Collaboration and communication between objects are a
critical part of OOD. This is often represented through sequence diagrams or
interaction diagram, showing how objects interact to accomplish specific tasks.
23CS202-Object Oriented Analysis and Design

•Design Patterns: OOD often involves the use of design patterns, which are proven
solutions to common design problems. These patterns help ensure the design is more
efficient and maintainable.
•Identifying Interfaces: Interfaces are defined to specify the contracts that classes must
adhere to. This enforces a level of abstraction and modularity in the design.
•Data Structures and Algorithms: OOD includes designing data structures and algorithms
necessary for implementing the software. This involves decisions regarding data storage,
retrieval, and processing.
•Testing Strategies: The design phase also encompasses planning for testing, including unit
testing, integration testing, and system testing. Test cases and testing environments are
considered.
•Documentation: Comprehensive design documentation is crucial for communication with
developers and stakeholders, ensuring that the design is well-documented and
understandable.
23CS202-Object Oriented Analysis and Design

Object-Oriented Analysis (OOA) vs Object-Oriented Design (OOD)


Object-Oriented Analysis (OOA) Object-Oriented Design (OOD)
Concerned with understanding the problem Focuses on transforming requirements into a detailed design.
and its requirements.

Involves gathering and defining what the Involves how the software will do what is needed.
software should do.

Emphasizes capturing real-world concepts Emphasizes translating the captured model into a technical solution.
into a software model.

Primarily uses techniques like use cases,


Involves architecture, detailed class design, object interactions, and design
class diagrams, and behavior diagrams to patterns.
understand the problem domain.
Identifies entities, their relationships, and Refined identified entities into detailed classes, their attributes, methods, and
their interactions in the problem domain. interactions.

Focuses on stakeholder’s needs, domain


understanding, and requirements Focuses on implementation details, coding strategies, and testing plans.
gathering.

Provides the foundation for creating a Provides the foundation for the implementation and coding of the solution.
model of the problem domain.
23CS202-Object Oriented Analysis and Design

Introduction to OOAD
Summary

• Definition of Object-Oriented Analysis and Design (OOAD)


• Important Aspects of OOAD
• Object-Oriented Analysis
• Object-Oriented Design
• Benefits of Object-Oriented Analysis and Design(OOAD)
• Challenges of Object-Oriented Analysis and Design(OOAD)
• Real world applications of Object-Oriented Analysis and Design(OOAD)

• Object Oriented Analysis (OOA)

• Object Oriented Design (OOD)


23CS202-Object Oriented Analysis and Design

Introduction to OOAD
Try Yourself
• In a company, there are different sections like the finance section, sales section etc…
The finance section handles all the financial transactions and keeps records of all the
data related to finance. Similarly, the sales section handles all the sales-related
activities and keeps records of all the sales. Now there may arise a situation when for
some reason an official from the finance section needs all the data about sales in a
particular month. In this case, he is not allowed to directly access the data of the
sales section. He will first have to contact some other officer in the sales section and
then request him to give the particular data. Identify the object-oriented concept
required for this scenario.
23CS202-Object Oriented Analysis and Design

Introduction to OOAD
Try Yourself

• Consider the Class of Cars. There may be many cars with different names
and brand but all of them will share some common properties like all of
them will have four wheels, speed limit, mileage range etc. Identify the
class and the properties in this case.

You might also like