0% found this document useful (0 votes)
2K views8 pages

Different Approach of Software Design

The document discusses the differences between function-oriented design and object-oriented design approaches for software design. It covers topics like abstractions, functions, state information, approaches, decomposition levels, and uses of each design.
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)
2K views8 pages

Different Approach of Software Design

The document discusses the differences between function-oriented design and object-oriented design approaches for software design. It covers topics like abstractions, functions, state information, approaches, decomposition levels, and uses of each design.
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/ 8

Function -Oriented Design(FOD) & Object- Oriented Design(ODD)

What are the different approaches of S/W design?


There are two main approaches to software analysis and design namely –
1. Function -Oriented Design(FOD).
2. Object- Oriented Design (ODD).

Function-Oriented Design:

 Function Oriented design is a method to software design where the model is decomposed
into a set of interacting units or modules where each unit or module has a clearly defined
function. Thus, the system is designed from a functional viewpoint.. [Divide & Conquere
Method].

100%

50% 50%

33%
17% 38% 22%

 Emphasis on WHAT SYSTEM CAN DO?


 Every sub system is associated with some actions.
 FOD,follows SDLC methodology.
 It is mainly suitable for well defined projects.

Shared Memory

F1 F2 F3

F4
F5
FOD can be represented mathematically or graphically by using,

 DFD
 Data Dictionary
 Structure Chart
 Pseudo code

Data Flow Diagram(DFD):


A data flow diagram (DFD) maps out the flow of information for any process or system. It
uses defined symbols like rectangles, circles and arrows, plus short text labels, to show data
inputs, outputs, storage points and the routes between each destination.

Data-flow diagrams are a useful and intuitive way of describing a system. They are
generally understandable without specialized training, notably if control information is
excluded. They show end-to-end processing. That is the flow of processing from when data
enters the system to where it leaves the system can be traced.

Data-flow design is an integral part of several design methods, and most CASE tools
support data-flow diagram creation. Different ways may use different icons to represent
data-flow diagram entities, but their meanings are similar.
Data Dictionaries
A data dictionary lists all data elements appearing in the DFD model of a system. The data
items listed contain all data flows and the contents of all data stores looking on the DFDs in the
DFD model of a system.

A data dictionary lists the objective of all data items and the definition of all composite data
elements in terms of their component data items. For example, a data dictionary entry may
contain that the data grossPay consists of the parts regularPay and overtimePay.

grossPay = regularPay + overtimePay

A data dictionary plays a significant role in any software development process because of the
following reasons:

 A Data dictionary provides a standard language for all relevant information for use by
engineers working in a project. A consistent vocabulary for data items is essential since,
in large projects, different engineers of the project tend to use different terms to refer to
the same data, which unnecessarily causes confusion.

 The data dictionary provides the analyst with a means to determine the definition of
various data structures in terms of their component elements.

Structured Charts
It partitions a system into block boxes. A Black box system that functionality is known to the user
without the knowledge of internal design.

Structured Chart is a graphical representation which shows:


o System partitions into modules
o Hierarchy of component modules
o The relation between processing modules
o Interaction between modules
o Information passed between modules

The following notations are used in structured chart:

Pseudo-code
Pseudo-code notations can be used in both the preliminary and detailed design phases. Using
pseudo-code, the designer describes system characteristics using short, concise, English
Language phases that are structured by keywords such as If-Then-Else, While-Do, and End.
Object-Oriented Design
In the object-oriented design method, the system is viewed as a collection of objects (i.e.,
entities). The state is distributed among the objects, and each object handles its state data. For
example, in a Library Automation Software, each library representative may be a separate
object with its data and functions to operate on these data. The tasks defined for one purpose
cannot refer or change data of other objects. Objects have their internal data which represent
their state. Similar objects create a class. In other words, each object is a member of some class.
Classes may inherit features from the superclass.

The different terms related to object design are:

1. Objects: All entities involved in the solution design are known as objects. For example,
person, banks, company, and users are considered as objects. Every entity has some
attributes associated with it and has some methods to perform on the attributes.
2. Classes: A class is a generalized description of an object. An object is an instance of a
class. A class defines all the attributes, which an object can have and methods, which
represents the functionality of the object.
3. Messages: Objects communicate by message passing. Messages consist of the integrity
of the target object, the name of the requested operation, and any other action needed to
perform the function. Messages are often implemented as procedure or function calls.
4. Abstraction In object-oriented design, complexity is handled using abstraction.
Abstraction is the removal of the irrelevant and the amplification of the essentials.
5. Encapsulation: Encapsulation is also called an information hiding concept. The data
and operations are linked to a single unit. Encapsulation not only bundles essential
information of an object together but also restricts access to the data and methods from
the outside world.
6. Inheritance: OOD allows similar classes to stack up in a hierarchical manner where the
lower or sub-classes can import, implement, and re-use allowed variables and functions
from their immediate superclasses.This property of OOD is called an inheritance. This
makes it easier to define a specific class and to create generalized classes from specific
ones.
7. Polymorphism: OOD languages provide a mechanism where methods performing
similar tasks but vary in arguments, can be assigned the same name. This is known as
polymorphism, which allows a single interface is performing functions for different
types. Depending upon how the service is invoked, the respective portion of the code
gets executed.

Difference Between Function Oriented Design and Object


Oriented Design :

COMPARISON FUNCTION ORIENTED


FACTORS DESIGN OBJECT ORIENTED DESIGN

The basic abstractions are not the


The basic abstractions, which
real world functions but are the data
Abstraction are given to the user, are real
abstraction where the real world
world functions.
entities are represented.

Function are grouped together on


Functions are grouped
the basis of the data they operate
Function together by which a higher
since the classes are associated with
level function is obtained.
their methods.

carried out using structured


execute analysis and structured design Carried out using UML
i.e, data flow diagram

In this approach the state In this approach the state


information is often information is not represented in a
State information
represented in a centralized centralized memory but is
shared memory. implemented or distributed among
COMPARISON FUNCTION ORIENTED
FACTORS DESIGN OBJECT ORIENTED DESIGN

the objects of the system.

Approach It is a top down approach. It is a bottom up approach.

Begins by considering the use


Begins by identifying objects and
Begins basis case diagrams and the
classes.
scenarios.

In function oriented design we


Decompose decompose in We decompose in class level.
function/procedure level.

This approach is mainly used This approach is mainly used for


Use for computation sensitive evolving system which mimics a
application. business or business case.

Layered Technology in Software Engineering


Software engineering is a fully layered technology, to develop software we need to go
from one layer to another. All the layers are connected and each layer demands the
fulfillment of the previous layer.

Layered technology is divided into four parts:


1. A quality focus: It defines the continuous process improvement principles of
software. It provides integrity that means providing security to the software so
that data can be accessed by only an authorized person, no outsider can access
the data. It also focuses on maintainability and usability.

2. Process: It is the foundation or base layer of software engineering. It is key that


binds all the layers together which enables the development of software before
the deadline or on time. Process defines a framework that must be established
for the effective delivery of software engineering technology. The software
process covers all the activities, actions, and tasks required to be carried out for
software development.

Process activities are listed below:-

 Communication: It is the first and foremost thing for the development of


software. Communication is necessary to know the actual demand of the client.
 Planning: It basically means drawing a map for reduced the complication of
development.
 Modeling: In this process, a model is created according to the client for better
understanding.
 Construction: It includes the coding and testing of the problem.
 Deployment:- It includes the delivery of software to the client for evaluation
and feedback.

3. Method: During the process of software development the answers to all “how-to-
do” questions are given by method. It has the information of all the tasks which
includes communication, requirement analysis, design modeling, program
construction, testing, and support.
4. Tools: Software engineering tools provide a self-operating system for processes
and methods. Tools are integrated which means information created by one tool can
be used by another.

Common questions

Powered by AI

Function-Oriented Design focuses on real-world functions as the primary abstraction, decomposing the system into interacting modules with clearly defined functions . In contrast, Object-Oriented Design centers on data abstraction, representing systems as collections of objects that encapsulate both data and behaviors, with real-world entities modeled as classes and objects . This fundamental difference impacts how each design method organizes and solves problems, with FOD emphasizing tasks and processes, whereas OOD emphasizes entities and interactions .

Function-Oriented Design handles system processing by structuring the design around functional modules with centralized state information often held in shared memory. This approach focuses on sequences of actions and data transformations . Conversely, Object-Oriented Design distributes state information among objects, which encapsulate their data and manage state internally. Processing is organized around interactions between these self-contained entities, emphasizing communication and message passing rather than centralized processes .

Inheritance in Object-Oriented Design allows subclasses to inherit fields and methods from their parent classes, promoting reusability of code by enabling shared method implementations across multiple classes. This property facilitates the creation of new classes based on existing ones, reducing redundancy and enhancing code maintainability . Moreover, it enables the construction of a hierarchy where classes are organized in a structured manner, allowing for the definition of general and specific class relationships .

Unified Modeling Language (UML) in Object-Oriented Design provides a robust set of graphical tools for representing system components, their interactions, and behaviors, emphasizing use cases, classes, activities, and states . UML aids in visualizing system architecture and object interactions, facilitating clear communication and documentation. In contrast, structured charts in Function-Oriented Design focus on decomposing systems into hierarchical modules, highlighting processes and data flow over object relationships . These constitute fundamentally different approaches to capturing system architecture, with UML supporting a more integrated view of objects and interactions within software systems .

Object-Oriented Design handles complexity by focusing on abstraction, which emphasizes defining complex systems in simpler terms by highlighting essential characteristics while hiding non-essential details. This approach enables designers to model real-world scenarios more naturally by representing entities as objects that encapsulate data and behavior, closely mirroring how objects interact in the real world . Abstraction lowers cognitive load for developers, facilitating easier design, modification, and extension of software systems .

Polymorphism in Object-Oriented Design allows methods to perform the same operation in different ways depending on the object that invokes the method, typically by allowing different classes to share the same interface . This flexibility enables developers to extend or change parts of the system with minimal impact on other components, facilitating easier updates and maintenance. It supports the "open/closed" principle of software design, where software entities should be open for extension but closed for modification .

Pseudo-code aids system design by providing a clear, language-like framework to express algorithmic flow and logic without the syntactical complexity of actual coding languages. During preliminary design, pseudo-code helps conceptualize and validate ideas, ensuring they align with requirements. In the detailed phase, it serves as an intermediate step towards actual programming, facilitating communication among designers and programmers by offering a uniform, understandable format for conveying process steps .

Encapsulation in Object-Oriented Design offers several advantages, such as protecting an object's internal state by restricting external access and manipulation, which enforces integrity and security . By bundling data with methods that operate on it, encapsulation facilitates modularity, allowing objects to be treated as black boxes that reveal only what is necessary. This contributes to easier maintenance and reduces dependencies between different parts of the program .

A data dictionary in Function-Oriented Design documents all data elements and data flows in the Data Flow Diagram (DFD) model of a system. It provides a standard vocabulary for data elements, reducing misunderstandings among project members, particularly in extensive projects with varied terminologies . The dictionary also helps define composite data structures by detailing their components, which aids in maintaining consistency and clarity in design specifications .

The primary processes involved in layered technology are communication, planning, modeling, construction, and deployment. Communication is crucial for understanding client requirements; planning involves outlining steps to address project complexity. Modeling corresponds to creating representations of the system as per client understanding . Construction involves the actual coding and testing, while deployment transitions the software to the client for feedback and evaluation. Each process builds upon the previous one, creating a structured approach that ensures development aligns with specified needs and constraints .

You might also like