'Coding has over 700 languages', '67% of programming jobs aren’t in the technology industry', 'Coding is behind almost everything that is powered by electricity'
Last Updated: Dec 29, 2023
Easy

Function Oriented Design

gp-icon
Data structures & algorithms (Beginner to Intermediate)
Free guided path
13 chapters
99+ problems
gp-badge
Earn badges and level up
function oriented design in software engineering

Introduction

A design methodology is a process for systematically generating a design using a set of tools and standards. Most design approaches concentrate on system design rather than reducing design to a series of processes that the designer may follow blindly.

A system is considered a transformation function in a function-oriented design approach, as it transforms the inputs to the intended outputs. The design phase's goal is to specify all of the components for this transformation function so that each one is likewise a transformation function. In other words, each design module supports a functional abstraction. When a function-oriented design method is used, the main output of the system design phase is the definition of all significant data structures in the system, all major modules in the system, and how the modules interact with one another.

Generic Procedure

Begin by giving a high-level overview of what the software/program accomplishes. Refine each section of the description one by one by describing its usefulness in greater depth. A Top-Down Structure is formed as a result of these points.

The problem with the Top-Down design style is that most modules are only needed by one other module, referred to as the Parent module.

Designing a reusable module is a solution to the problem. It signifies that modules rely on the work of other modules to complete their tasks.

Also see, Operating System

Get the tech career you deserve, faster!
Connect with our expert counsellors to understand how to hack your way to success
User rating 4.7/5
1:1 doubt support
95% placement record
Akash Pal
Senior Software Engineer
326% Hike After Job Bootcamp
Himanshu Gusain
Programmer Analyst
32 LPA After Job Bootcamp
After Job
Bootcamp

Function Oriented Design Strategies

Function Oriented Design Strategies are as follows:

1. Entity Relationship Diagram

ER-modeling is a Software Engineering data modeling method for creating a conceptual data model of an information system. Entity-Relationship Diagrams, often known as ER diagrams or ERDs, are diagrams developed utilizing this ER-modeling paradigm.

During creating the ERD, the database analyst obtains a deeper grasp of the data that will be stored in the database.

The ERD is a tool for documentation.

Finally, the ERD links the database's logical structure to users. The ERD, in particular, efficiently communicates the database's logic to users.

Below Image shows an example of the Entity-Relationship Diagram:

Entity Relationship Diagram

source: iq.opengenus

2. Decision Tree & Decision Table

A Decision Tree provides a visual representation of the processing logic involved in higher cognitive activity, allowing for the appropriate actions. The perimeters of a choice tree represent conditions, and the leaf nodes reflect the actions to be taken in response to the condition's test result.

A decision table is a valuable tool for dealing with various combinations of inputs and results. It's a black box test design technique for determining complex business logic test scenarios.

The below Image shows an example of a Decision Tree:

Decision Tree & Decision Table

Source: Wikipedia

3. Data Flow Diagrams (DFD)

Data-flow design aims to create a set of functional transformations that turn system inputs into the desired outputs. Data-flow diagrams are used to describe the design. These diagrams depict how data flows through a system and how the output is generated from the input via a series of functional transformations.

Data-flow diagrams are a simple and effective technique to depict a system's operation. They can be understood without specialist training in most cases, especially if control information is removed. They demonstrate processing from beginning to end. The processing flow can be followed from the point when data enters the system to the point where it departs the system.

The below images show various symbols used in DFD.

Data Flow Diagrams (DFD)

source: Wikipedia

4. Data Dictionary

The Data Dictionary is a critical component of the system's structured analysis model. In Software Engineering, a data dictionary is a file or a series of files that contains database metadata (information about other objects in the database), such as data ownership, relationships between objects, and other information.

5. Pseudo - Code

Pseudo Code is a system description that describes the function in short English-like sentences. Keywords and indentation are used. Flow charts are being replaced with pseudo-codes. It reduces the quantity of paperwork required.

Example: Pseudo Code for the addition of two numbers

Step 1: Read A, B

Step 2: Compute C = A + B

Step 3: Print C

Step 4: Stop

Also Read, human computer interaction

Frequently Asked Questions

What is functional-oriented design?

Function Oriented Design is a software design method in which the model is broken into a series of interacting pieces or modules, each with a distinct function. As a result, the system is functionally designed.

What is the Difference between Function Oriented Design and Object-Oriented Design?

OOD (Design) is where you break up the problem (or problem space) into objects, or perhaps it could be thought of as building up your solution conceptually into objects. The function-oriented design relies on identifying functions that transform their inputs to create outputs, whereas OOD (Design) is where you break up the problem (or problem space) into objects.

What are the advantages of function Oriented design?

The function-oriented design promotes modularity and reusability, enhances program clarity and maintainability, and facilitates testing and debugging. It focuses on the functions or processes that transform inputs into outputs and their interactions.

Which design principles are used for function oriented design?

The function-oriented design employs principles such as modularity, high cohesion, low coupling, information hiding, abstraction, and separation of concerns. These principles help to create modular, maintainable, and reusable software components that can be easily tested and debugged.

Conclusion

In this article, we have extensively discussed Function-Oriented Design and also have learned about various Function Oriented Design Strategies

We hope that this blog has helped you enhance your knowledge regarding Function Oriented Design and if you would like to learn more, check out our articles in the code studio library You can also consider our System Design Course to give your career an edge over others.

Next article
What is Human-Computer Interaction? A Complete Guide to HCI
Guided path
Free
gridgp-icon
Data structures & algorithms (Beginner to Intermediate)
13 chapters
109+ Problems
gp-badge
Earn badges and level up
Live masterclass