Difference between Function Oriented Design and Object Oriented Design
1. Function Oriented Design :
Function oriented design is the result of focusing attention to the function of the program. This is based on the stepwise refinement. Stepwise refinement is based on the iterative procedural decomposition. Stepwise refinement is a top-down strategy where a program is refined as a hierarchy of increasing levels of details.
We start with a high level description of what the program does. Then, in each step, we take one part of our high level description and refine it. Refinement is actually a process of elaboration. The process should proceed from a highly conceptual model to lower level details. The refinement of each module is done until we reach the statement level of our programming language.
2. Object Oriented Design :
Object oriented design is the result of focusing attention not on the function performed by the program, but instead on the data that are to be manipulated by the program. Thus, it is orthogonal to function -oriented design. Object-oriented design begins with an examination of the real world “things”. These things are characteristics individually in terms of their attributes and behavior.
Objects are independent entities that may readily be changed because all state and representation information is held within the object itself. Object may be distributed and may execute sequentially or in parallel. Object oriented technology contains following three keywords –
- Objects –
Software package are designed and developed to correspond with real world entities that contain all the data and services to function as their associated entities messages.
- Communication –
Communication mechanisms are established that provide the means by which object work together.
- Methods –
Methods are services that objects perform to satisfy the functional requirements of the problem domain. Objects request services of the other objects through messages.
Difference Between Function Oriented Design and Object Oriented Design :
||FUNCTION ORIENTED DESIGN
||OBJECT ORIENTED DESIGN
||The basic abstractions, which are given to the user, are real world functions.
||The basic abstractions are not the real world functions but are the data abstraction where the real world entities are represented.
||Functions are grouped together by which a higher level function is obtained.
||Function are grouped together on the basis of the data they operate since the classes are associated with their methods.
||carried out using structured analysis and structured design i.e, data flow diagram
||Carried out using UML
||In this approach the state information is often represented in a centralized shared memory.
||In this approach the state information is not represented in a centralized memory but is implemented or distributed among the objects of the system.
||It is a top down approach.
||It is a bottom up approach.
||Begins by considering the use case diagrams and the scenarios.
||Begins by identifying objects and classes.
||In function oriented design we decompose in function/procedure level.
||We decompose in class level.
||This approach is mainly used for computation sensitive application.
||This approach is mainly used for evolving system which mimics a business or business case.
Feeling lost in the vast world of System Design? It's time for a transformation! Enroll in our Mastering System Design
From Low-Level to High-Level Solutions - Live Course and embark on an exhilarating journey to efficiently master system design concepts and techniques.
What We Offer:
- Comprehensive Course Coverage
- Expert Guidance for Efficient Learning
- Hands-on Experience with Real-world System Design Project
- Proven Track Record with 100,000+ Successful Enthusiasts