Difference between Function Oriented Design and Object Oriented Design

author avatar

0 Followers

If you are into design methodology you may have often heard of the terms, function oriented design and object oriented design.

In a system design, both the terms are quite commonly used. 

A function oriented design in software engineering is a method where the models are decomposed into interacting modules where each module will have a clearly defined function. 

The object oriented design basically focuses on the data and its manipulation in the program, rather than focussing on the function.

But do you know both the concepts have certain points of differences in them?

If you are keen to know more about these differences, you are on the right blog post. 

So, without any ado, let’s get started

Function oriented design in software engineering - An overview 

This concept plays a crucial role in the designing world just like the concept of structured analysis in software engineering. 

The concept of function oriented design in software engineering pays considerate attention to a program’s function. This concept is based on stepwise refinement which is touted as a top-down strategy to refine a program in the hierarchy of its increasing levels.

Object oriented design 

In case of an object oriented design, the focal attention will not be on a prescribed function but on the data that needs manipulation in the program. It basically begins with a thorough examination of the real-world things with the things having their own attributes or features.

For example; in the OOD, the pay-roll software of the employee is not developed with the designing functions like updating employees record, getting their employees address. Though ,it has to design objects like employee records or departments which you can develop. 

The name of employees, their code numbers or salaries are usually implemented with the traditional programming system. Though, in object oriented designing, data will be distributed among employee objects of the stream. 

Difference between the function oriented design and object oriented design 

Though both function oriented design and the object oriented design may remain same, they are different from each other in several aspects. 

Below are the point of differences in both of them:

Definition 

Function oriented design 

In functional oriented design, programs are basically composed in the form of functions that take the arguments by performing the operations that will have no observational effect on outside of the functions to return the value. 

Object oriented design 

In case of object oriented design, programs will be written in terms of the objects which can have their own state and can easily interact with the other objects. The objects are generally composed of data fields with methods that can access or modify your data fields. 

Abstraction 

Function oriented design 

In the case of function oriented design, the basic abstraction given to any user is generally based on the functions of the real world.

Object oriented design 

The basic abstraction in this concept is not based on real-world objects where the entities of the real-world are replicated. 

Working 

Function oriented design 

In the function oriented design, we first start with a high-level description. At each step, we just take one high-level of description and first refine it. It is actually an elaboration process which moves from the conceptual stage to the high-level stage to its lower level stage. The refinement is done when we reach the statement level of programming.

Object oriented design 

Objects are defined as the independent entities which can readily be changed as all the states are held within the object itself. Objects can be either distributed or may sequentially be arranged. 

Functions 

Function oriented design 

In case of the function oriented design, functions are ideally grouped to obtain the higher level of function. 

Object oriented design 

Functions in this case are grouped together on the basis of their data as they operate as the classes are mainly associated with the methods.

Execution 

Function oriented design 

The function oriented design is carried out with the help of a structured design and the structural analysis. That is with the help of a data program. 

Object oriented design 

The object oriented design is carried out with the help of UML

State information 

Function oriented design 

In the case of function oriented design, the state information will be represented in the centralised shared memory.

Object oriented design 

Here in this approach, state information may not be represented in the centralised memory but in the case of distributing the objects with the help of systems.

Elements 

Function oriented design 

Fundamental elements in this case are used with the help of variables and functions. The data in these functions are immutable which means that it cannot be changed after it is created. 

Object oriented design

Fundamental elements that are used in this case are touted as the objects or methods and the data used here is mutable. This means that the data can be changed after it is being created.

Advantages 

Function oriented design 

A system in this case is considered as the transformation function which transforms the required input to its output. The design phase specifies the components for all the transformation functions so that each of the functions in this case will perform as the transformation function. 

Object oriented design 

There are several perks of using the object oriented design as its models resemble the issue domain. Thus, making the design easy to create or implement.   As your requirements changes, the objects in a system can also be changed and the system will become less resistant to all of these changes. 

Decompose 

Function oriented design 

In the case of function oriented system design we will decompose it in a functional or a procedural level.

Object oriented design 

We decompose the object oriented design at its class level. 

Wrapping up 

The concepts like structured analysis in software engineering or system design concepts are ideal to learn by all programmers! 

With this blog we have cleared the concept of function oriented design in software engineering, object oriented design and their difference.

Take cues and start your implementation!

Top
Comments (0)
Login to post.