0% found this document useful (0 votes)
4 views5 pages

Module 1 Ooad

The document discusses algorithmic and object-oriented decomposition, highlighting their roles in simplifying complex systems by breaking them down into steps or objects, respectively. It outlines the benefits of decomposition, applications of object-oriented design, and the phases of the object-oriented software development life cycle, including analysis, design, and implementation. Key concepts such as classes, abstraction, and inheritance are explained to illustrate the principles of object-oriented programming.

Uploaded by

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

Module 1 Ooad

The document discusses algorithmic and object-oriented decomposition, highlighting their roles in simplifying complex systems by breaking them down into steps or objects, respectively. It outlines the benefits of decomposition, applications of object-oriented design, and the phases of the object-oriented software development life cycle, including analysis, design, and implementation. Key concepts such as classes, abstraction, and inheritance are explained to illustrate the principles of object-oriented programming.

Uploaded by

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

MODULE 1

Algorithmic decompostion and Object oriented decomposition

Algorithmic decomposition breaks down a process into steps, while object-oriented


decomposition breaks down a system into objects. Both are used to simplify complex
systems.

Algorithmic decomposition

 Focuses on how to break down a process into steps

 Creates functional components with defined relationships

 Often leads to larger systems

 An example is the divide and conquer method

Object-oriented decomposition

 Focuses on what objects are needed to solve a problem

 Creates smaller systems by breaking down a system into objects

 Encourages modular, reusable, and maintainable designs

Benefits of decomposition

 Makes problems easier to understand


 Makes problems easier to solve

 Makes problems easier to test

 Makes problems easier to combine to solve the original problem

Applications of object-oriented decomposition

 Simulation and modeling systems

 Hypertext and hypermedia

 AI expert systems

 Object-oriented databases

 Neural networking and parallel programming

 Client server systems

 Computer aided designs

 Office automation systems

Object oriented software development life cycle

The primary objectives of the Object-Oriented Model

 Object-oriented Analysis

 Object-oriented Design

 Object-oriented Implementation

Object-Oriented Analysis (OOA)

The object-oriented analysis consists of the process where a development team


evaluates the system and organizes the requirements as objects. Contrary to
traditional structural analysis, the OOA heavily depends on advanced data
like Use Cases and Object Models.

Use case

Use Cases are written descriptions about how users will behave when they enter
your website or application. It comprises the goals of each user from the point
of their entry to exit.
Object Model

An object model allows the development team to create an architectural


software or system model before implementing or programming. It helps in
defining a software/system in objects and classes. It informs the developers
about

 Interaction between different models

 Inheritance

 Encapsulation

 Other types of object-oriented interfaces

The OOA starts with analyzing the problem domain and produce a conceptual
model by thoroughly evaluating the information in the given area. There is an
abundance of data available from various sources like:

 Formal document

 Requirement statements

 Primary data collected through stakeholders

 Object-oriented Design
 It is the next development stage of the object-oriented life cycle model
where the analysts design the desired system's overall architecture.
The system is divided into a set of interacting subsystems. The analyst
considers the specifications from the system analysis. It all about
evaluating what the end-users expect from the new system.
 As per the object-oriented design, the system is considered a collection
of objects, with each object handling a specific state data. For example,
in banking software, each account may feature some exclusive objects
with separate data and functions.
 The philosophy behind an object-oriented design is to create a set of
interacting objects as seen in the real world. Instead of process-based
structural programming, developers create objects through data
structures.
 Each programming language comes with several data types, with each
type comprising various variables. Similarly, objects also feature
certain predefined data types.
Useful definitions for Object-oriented design

 Class
A class refers to a collection of similar objects. It is created as a
blueprint to define variables and methods that share certain similarities
with objects.
As stated above, an object-oriented design bears resemblances with
the real world. Let's say you have purchased a smartphone. Now, your
smartphone is just one of the several 'smartphones' available in the
world. We can consider 'smartphones' as a class of objects, and your
smartphone object is an instance of a class of objects. Smartphones
feature many states (operating System, RAM, and motherboard) and
behavior (play music, call, messaging) in common. However, the state
of each smartphone is independent and can be different from other
smartphones.
While manufacturing smartphones, manufacturers can use the exact
blueprint to build many smartphones as they share common
characteristics. This allows manufacturers to create new blueprints
more efficiently.
Likewise, in object-oriented programming, developers can use many
similar objects to create blueprints. This is called a class.
 Abstraction
Abstraction is the essence used by developers to build classes.
Developers observe a set of similar objects and characteristics of
importance to define classes. Abstractions are divided into two parts-
global abstractions and local abstractions.
Global abstractions are static, providing one interface to users for a
limited time. Meanwhile, Local abstractions are responsible for
providing a view based on user/developer's requirements.
The abstraction of objects varies as per the application. For example,
while defining a smartphone class of users, developers might set
attributes like color, features, price, etc. However, for manufacturing
firms, developers may set attributes containing such as the
manufacturing costs per smartphone, quality control, turnaround, etc.
 Inheritance
The concept of inheritance in object-oriented design defines the
process of reusing 'objects.' Developers can define a new class type
using a similar existing class.
For example, hatchbacks, sedans, SUVs, and 4wds are all a form of
motor vehicles. So, as per object-oriented programming, we can refer
to hatchbacks, sedans, SUVs, etc., as subclasses of the motor vehicle
class. Similarly, the motor vehicle class is the superclass of the
subclasses.
Now, each subclass (sedans, hatchback, SUVs) inherits some states
(speed, cadence, etc.), methods, and behaviors (braking, changing
gear) of the superclass. However, the state and behaviors of
subclasses are not limited to what has been provided to them by the
superclass. Developers can add variables and methods to subclasses
as required.

 Object-oriented Implementation
In this phase, developers translate the class objects and the
interrelationships of classes and code them using a programming
language. This is the phase to create databases and establish
functionalities for the system.
 The object-oriented methodology focuses on identifying objects in the
system. Developers closely observe each object to identify
characteristics and behavioral patterns. The developers ensure that the
object recognizes and responds perfectly to an event.
Let's consider a smartphone screen as an object and the touch on a
specific icon as an event. Now, when the user touches an icon, the
screen opens up an application. This means the smartphone screen
(object) responds to the event (touch) by opening an application.
 The object-oriented implementation methodology supports three basic models
 Object Model − It describes the objects and their interrelationships.
This model observes objects as static and discards their dynamicity.
 Dynamic Model − This model focuses on the changes in states of
various objects related to specific events.
 Functional Model − This describes the changes in the flow of data
throughout the system.
The object model describes the essential elements of a system.
When all the models are combined, it represents the complete function
of the system.

You might also like