0% found this document useful (0 votes)
30 views42 pages

Ooad Ppt Unit i.pptx

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
30 views42 pages

Ooad Ppt Unit i.pptx

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 42

OOAD

Prof. Prerita Kulkarni


Curtesy by - Dr. Sanjeev Gour
Dept. of Computer Science
Medi-Caps University
Learning Outcomes
01. Pre-requisite 02. Learning Path
Knowledge
.

03. Object Oriented 04. Software 05. Introduction


Engineering

2 OOAD- BCA-V Sem August 29, 2024


Pre-requisite
Knowledge

❑ Programming Fundamentals:
❑ Object-Oriented Programming (OOP)
❑ UML (Unified Modeling Language)
❑ Software Development Life Cycle (SDLC)
❑ Database Concepts
❑ Basic Algorithms and Data Structures
❑ Critical Thinking and Problem Solving
❑ Domain Knowledge
❑ Soft Skills

3 OOAD-BCA-V Sem August 29, 2024


Learning Path for OOAD

Phase-I Phase-II

▪ Introduction to Object-Oriented Concepts ▪ System Design

▪ Programming Foundations ▪ Modeling Relationships


▪ State and Activity Modeling
▪ UML Fundamentals
▪ Testing and Validation
▪ Design Principles and Patterns
▪ Real-world Applications and Case Studies
▪ Requirements Gathering and Analysis ▪ Practical Projects

4 OOAD-BCA V Sem August 29, 2024


Object Oriented Concept

Classes and Objects Polymorphism


Classes as blueprints or templates for creating objects. The ability of objects of different classes to be
treated as objects of a common superclass.
Objects as instances of classes, representing real-world
entities.
Encapsulation Abstraction
•Bundling data (attributes) and methods (functions) Hiding complex implementation details while
that operate on the data. exposing only essential features.
•Importance of access modifiers (public, private, Use of abstract classes and interfaces to define
protected) to control data visibility and common behaviors without providing full
manipulation. implementation.
Inheritance
Creating a new class based on an existing class
(superclass/base class).

5 OOAD- BCA V August 29, 2024



Software Engineering is a disciplined approach to designing, developing,
testing, and maintaining software systems in a systematic and efficient
manner. It involves applying engineering principles to the entire software
development lifecycle, from requirements gathering to deployment and
beyond. Just as civil engineers design bridges and buildings, software
engineers create digital solutions that power our modern world.
“ UNIT-I
CA3EL07
What is OOAD ?
Object-Oriented Analysis and Design
(OOAD) is a systematic approach used
in software engineering to design and
develop software systems based on
the principles of object-oriented
programming (OOP).
It involves the process of analyzing
requirements, designing system
components, and creating models
using the concepts of classes, objects,
inheritance, encapsulation, and
polymorphism.
OOAD Process:

Analysis: OOAD starts with understanding and


analyzing user requirements and the problem
domain. This involves identifying entities, their
attributes, behaviors, and interactions within the
system.
Design: After analyzing requirements, designers
create a detailed plan for how the software system
will be structured. This includes designing classes,
defining relationships, specifying methods, and
planning the system's architecture.

9 OOAD-BCA-V Sem August 29, 2024


OOAD Process:

Modeling: OOAD employs visual modeling


techniques, such as UML diagrams, to represent the
system's structure, behavior, and interactions.
These diagrams provide a common language for
communication between stakeholders and
developers.

Modularity: OOAD emphasizes breaking down a


system into modular components, making it easier
to manage and maintain. Each module corresponds
to a class or a set of related classes.

10 OOAD-BCA- V Sem August 29, 2024


Importance of OOAD:

✔ Structured Approach
✔ Modularity and Maintenance
✔ Abstraction and Complexity Management
✔ Reusability and Efficiency
✔ Scalability
✔ Clear Communication
✔ Adaptation to Changing Requirements

11 OOAD-BCA- V Sem August 29, 2024


Complexity in the
context of OOAD

Spaghetti Code: In traditional systems, code tends


to be monolithic and interconnected. This can result
in "spaghetti code," where different parts of the
codebase are tightly coupled, making it hard to
understand and modify individual components
without affecting others.

Code Duplication: As systems grow, developers


might duplicate code to fulfill similar functionalities
in different parts of the application. This not only
wastes resources but also introduces the risk of
inconsistencies when updates are required.
Complexity in the
context of OOAD
Maintenance Nightmare: With a lack of clear
modularization, making changes or fixing bugs
becomes challenging. A small modification could lead
to unintended consequences across the system.

Limited Reusability: Traditional systems often lack


proper mechanisms for code reuse. Developers end
up rewriting similar functionality, wasting time and
effort.

Scalability Issues: As system requirements evolve,


adding new features or accommodating changes
becomes complex and error-prone, leading to
potential performance bottlenecks.
UML
UML stands for Unified Modeling Language, and it's
a standardized visual modeling language used in
software engineering for designing, visualizing,
specifying, and documenting software systems,
particularly those that are based on object-oriented
principles. UML provides a set of graphical notations
that allow software developers and designers to
communicate and convey complex system
structures, behaviors, and interactions in a clear and
standardized manner. It's an essential tool for
object-oriented analysis and design (OOAD) because
it helps bridge the gap between technical concepts
and human understanding.

14 BCA-V Sem August 29, 2024


Why UML ?

Communication: UML diagrams provide a


common visual language that stakeholders,
including developers, designers, business
analysts, and clients, can use to communicate
and understand the various aspects of a
software system. This reduces
misunderstandings and improves collaboration.

Visualization: UML diagrams help in visualizing


the architecture, structure, and behavior of a
software system. Complex concepts can be
presented in a more comprehensible manner
using diagrams rather than long textual
descriptions.
15 BCA-V August 29, 2024
Why UML ?

Specification: UML diagrams serve as a formal


and visual way to specify requirements, design
decisions, and system behavior. This aids in
creating a clear and shared understanding of the
system among team members.

Documentation: UML diagrams provide a


structured way to document various aspects of a
software system. They can be used as part of
design documents, user manuals, and other
project documentation.

16 BCA-V August 29, 2024


Why UML ?

Design and Analysis: UML supports


object-oriented principles, allowing
designers to model classes, objects,
relationships, and interactions, which
in turn assists in designing
well-structured and modular
systems.

17 BCA-V August 29, 2024


UML diagram types

Structural (or Static) view: emphasizes the static


structure of the system using objects, attributes,
operations and relationships. It includes class
diagrams and composite structure diagrams.
Behavioral (or Dynamic) view: emphasizes the
dynamic behavior of the system by showing
collaborations among objects and changes to the
internal states of objects. This view includes
sequence diagrams, activity diagrams, and state
machine diagrams.

18 BCA-V August 29, 2024


August 29, 2024
Behavioral Diagrams
UML’s five behavioral diagrams are used to
visualize, specify, construct, and document the
dynamic aspects of a system. It shows how the
system behaves and interacts with itself and
other entities (users, other systems). They
show how data moves through the system,
how objects communicate with each other,
how the passage of time affects the system, or
what events cause the system to change
internal states. Since behavior diagrams
illustrate the behavior of a system, they are
used extensively to describe the functionality
of software systems.
Behavioral Diagrams
Behavioral Diagram Brief Description

It is a graphical representations of workflows of stepwise activities


Activity Diagram
and actions with support for choice, iteration and concurrency

It describes a system’s functional requirements in terms of use cases


Use Case Diagram that enable you to relate what you need from a system to how the
system delivers on those needs.

State Machine It shows the discrete behavior of a part of a designed system


Diagram through finite state transitions.

21 BCA-V Sem August 29, 2024


Behavioral Diagrams
It shows the sequence of messages exchanged between the objects needed
Sequence Diagram
to carry out the functionality of the scenario.

It shows interactions between objects and/or parts (represented as lifelines)


Communication Diagram
using sequenced messages in a free-form arrangement.

Interaction Overview It depicts a control flow with nodes that can contain other interaction
Diagram diagrams.

It shows interactions when the primary purpose of the diagram is to reason


Timing Diagram about time by focusing on conditions changing within and among lifelines
along a linear time axis.

22 BCA-V Sem August 29, 2024


Structural Diagrams
Structure diagrams depict the static structure of the
elements in your system. i.e., how one object relates
to another. It shows the things in the system –
classes, objects, packages or modules, physical
nodes, components, and interfaces.
Since structure diagrams represent the structure,
they are used extensively in documenting the
software architecture of software systems.
For example, the component diagram describes how
a software system is split up into components and
shows the dependencies among these components.
Structural Diagram Brief Description

Composite Structure It shows the internal structure of a classifier, classifier interactions with
Diagram the environment through ports, or behavior of a collaboration.

It shows a set of nodes and their relationships that illustrates the static
Deployment Diagram
deployment view of an architecture.

It groups related UML elements into a collection of logically related


Package Diagram
UML structure.

August 29, 2024 BCA-V Sem


It shows a set of classes, interfaces, and collaborations and their
Class Diagram
relationships, typically, found in modeling object-oriented systems.

It shows a set of objects and their relationships, which is the static


Object Diagram
snapshots of instances of the things found in class diagrams.

It shows a set of components and their relationships that illustrates


Component Diagram
the static implementation view of a system.

August 29, 2024 BCA-V Sem


Unified Process (UP)
The Unified Process (UP), also known as the
Unified Software Development Process or
methodology, is a popular iterative and
incremental software development process
framework. It is a flexible and adaptable
approach that can be used for
object-oriented analysis and design. The
Unified Process is composed of several
phases, each with its own specific activities
and goals.
Unified Process Phases

Inception Phase: Example:

❑ Goal: ▪ If a team is developing an e-commerce


platform, they might identify stakeholders
❑ During this phase, the project's feasibility and
such as customers, sellers, and
scope are assessed, and initial requirements are
administrators. The initial scope could
gathered.
include features like user registration,
❑ Activities: product browsing, and basic order
❑ Identify stakeholders and their needs. management.

❑ Define the initial vision and scope of the project.


❑ Identify high-level requirements.
❑ Perform a preliminary risk assessment.

27 BCA-V August 29, 2024


Unified Process Phases

Elaboration Phase: Example:

❑ Goal: ▪ In the e-commerce platform project,


during the elaboration phase, the team
❑ Refine the project vision, define a more detailed
might create detailed use cases for
architecture, and mitigate key risks.
actions like adding items to the shopping
❑ Activities: cart, applying discounts, and processing
❑ Refine requirements and create detailed use payments. They would also design an
cases. architecture that outlines how the
database, frontend, and backend
❑ Develop an architecture that addresses key components will interact.
system components.
❑ Identify and mitigate significant technical risks.
❑ Create a more detailed project plan and estimate.
28 BCA-V August 29, 2024
Unified Process Phases

Construction Phase: Example:

❑ Goal: ▪ In the e-commerce platform project's


❑ Develop the software incrementally based on the construction phase, the team would start
architecture and requirements established in the building actual features like the product
previous phases. catalog, user authentication, and
❑ Activities: shopping cart functionality. They would
❑ Develop, test, and integrate software components in continuously integrate and test these
iterations. components in iterations.
❑ Continuously refine the design and architecture as
needed.
❑ Implement functionality based on detailed use cases.
❑ Perform regular testing and quality assurance.

29 BCA-V August 29, 2024


Unified Process Phases

Transition Phase: Example:


❑ Goal:
▪ In the transition phase of the
❑ Ensure that the software is stable and ready for e-commerce platform project, the team
deployment, and facilitate the transition to the would perform final testing, prepare user
end users. guides for customers and administrators,
❑ Activities: and deploy the platform to a live server.
They would also provide customer
❑ Conduct final testing and quality assurance. support to address any issues that users
❑ Prepare user documentation and training encounter during the initial usage of the
materials. platform.
❑ Deploy the software to the production
environment.
❑ Support users during the initial rollout and
30 BCA-V August 29, 2024
address any issues that arise.
Inception-Use Case Modeling

In object-oriented analysis and design


(OOAD), the Inception phase is the initial
stage of a project where the primary goal is
to establish a clear understanding of the
project's scope, objectives, and high-level
requirements. This phase is crucial for
setting the foundation for the entire
software development process. Use case
modeling is a key technique within the
Inception phase that helps capture and
define the functional requirements of the
system from the perspective of its users.

31 BCA-V August 29, 2024


Use Case Modeling

Use case modeling is a technique used in


OOAD to describe the interactions between
the system being developed and the actors
(users or external systems) that interact
with it.
Use cases provide a high-level view of how
users will interact with the system to
accomplish specific tasks or goals. They
focus on the functional requirements and
capture the system's behavior from an
external perspective.

32 BCA-V August 29, 2024


UCM in Inception Phase

1. Identify Actors: 2. Identify Use Cases:


Identify all the actors that will interact with the Determine the various ways in which these
system. Actors can be users, external systems, actors will interact with the system. Use cases
or other entities that trigger actions within the represent the functionalities the system needs
system. to provide to its users.

4. Capture Preconditions and


3. Write Use Case Descriptions: Postconditions:
For each identified use case, write a use case Define any preconditions
description. This description outlines the flow of (requirements that must be met
events that occur when the use case is executed. before a use case can start) and
postconditions (the state of the
system after a use case is
completed) for each use case.

33 BCA-V August 29, 2024


UCM in Inception Phase

5. Prioritize Use Cases: 6. Create Use Case Diagrams:


Identify which use cases are critical and must be Create use case diagrams that visually represent the
implemented in the initial stages of development. actors, use cases, and their relationships. Use case
Prioritization helps in managing the scope and diagrams provide a high-level overview of the
ensuring that the most important functionalities system's functionality and interactions.
are addressed first.

Outcome
7. Gather Initial Requirements: The outcome of the Inception
phase, including use case
Through use case modeling, you gather the initial modeling, is often a detailed
functional requirements of the system. This project vision, a clear
forms the basis for the subsequent phases of understanding of the user's needs,
analysis, design, and implementation. and a well-defined scope for the
project and the project plan is
solidified based on the insights
gained during Inception.

34 BCA-V August 29, 2024


Use Case Diagrams
A use case diagram is a visual representation
of the interactions between various actors
(users or external systems) and a system
(software application) in the context of a ▪
specific set of tasks or functionalities. It's a
fundamental tool in the field of
object-oriented analysis and design (OOAD)
and helps in capturing, defining, and visualizing
the functional requirements of a system.
A use case diagram specifies;

The system
The actors (those who interact with the
system)
The use cases (what the actors can do)
35 BCA-V August 29, 2024
Elements of a Use Case Diagram:

❑ Actor: Represents an external entity interacting


with the system. Actors can be people, other
systems, or even time-triggered events. ▪
❑ Use Case: Represents a specific functionality or
task that the system can perform. Use cases are
initiated by actors and describe the interactions
between the actors and the system.
❑ Association: A line connecting an actor to a use
case, showing that the actor interacts with the
use case.
❑ System Boundary: A box that encloses all the use
cases, representing the boundaries of the
system.
36 BCA-V August 29, 2024
Types of Relationships (Use-Case)

❑ An advanced use case diagram in UML can


include several types of relationships, including
include, extend, and generalization relationships
❑ By utilizing these advanced relationships,
you can model complex interactions and
scenarios in your use case diagrams
effectively. The "include" and "extend"
relationships help modularize behavior,
making the diagram more readable and
maintainable, while the "generalization"
relationship demonstrates inheritance and
specialization, promoting reusability and
abstraction in the system design.
37 BCA-V August 29, 2024
Types of Relationships (Use-Case)

1. Include Relationship: Example:

❑ In the context of a use case diagram, the ▪ Consider an online shopping system. We
have a use case called "Checkout" which
include relationship represents the concept
includes the use case "Apply Discount." In
that one use case includes another use this case, "Checkout" can include the
case's behavior. It's used to modularize and behavior of applying discounts, but it
reuse common behavior across multiple use doesn't always have to.
cases.

38 BCA-V August 29, 2024


Types of Relationships (Use-Case)

2. Extend Relationship: Example:

❑ The extend relationship indicates that one ▪ Continuing with the online shopping
system, we have a use case called "Add to
use case may extend the behavior of
Cart," which can extend the "Apply
another use case under certain conditions. Discount" use case. If a customer adds a
It's used to model optional or exceptional certain quantity of an item, a discount
behavior that is not always part of the main may be applied.
flow.

39 BCA-V August 29, 2024


Types of Relationships (Use-Case)

3. Generalization Relationship: Example:

❑ In a use case diagram, the generalization ▪ In an online shopping system, we have


various payment methods like credit card,
relationship is used to represent inheritance
PayPal, and Google Pay. Each of these
or specialization between use cases. It payment methods can be represented as
signifies that one use case is a more specialized use cases inheriting from a
specialized version of another use case, more general "Make Payment" use case.
inheriting its behavior.

40 BCA-V August 29, 2024


Assignments for UNIT-I

Assignments Activity

1. Distinguish between objected ▪ Design a Class Diagram for Library


Management System.
oriented program and procedure
oriented program. ▪ Design a Use-Case diagram for Online
Shopping System.
2. What are the 4 phases of Unified
Software Development Process.
Explain by giving examples.
3. What is the need of Use-Case
diagram? Write about its elements by
giving suitable examples.

41 BCA-V August 29, 2024


Thank you

END of UNIT-I

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy