Home »
Software Engineering
Different types of design strategies in Software Engineering
In this tutorial, we will learn about the different types of design strategies in software engineering.
By Monika Sharma Last updated : April 05, 2023
Design strategies
As we know that the designing phase is probably the second phase in the software development lifecycle, which comes after the feasibility testing and requirement analysis phase. As the name itself defines that in this phase, the software is designed which reflects how our software must be, what functionalities must it contain, how the user interface should be, etc. But, it is important to know the strategy that the software designers follow while developing any software. In this article, we are going to discuss the same.
Types of design strategies
In general, there are two types of designing strategies that are mainly followed in the designing phase of any software during its development:
- Function- oriented design
- Object- oriented design
Now, let us define each of them in brief and understand the strategies behind each of them:
1) Function- oriented design
In the function-oriented design, the system is designed according to the functionality it offers. The system is first widely observed and then each of its functions is observed to identify the sub-functions that it consists of that are responsible for performing that particular functionality.
In this type of design, there is a centralized function that consists of various functions. The software is designed in the same manner.
For example, consider software for the calculator. Its main function is to calculate various operations and print the result. Now, the sub functionalities that it offers are the operations modulus, logarithm, square, exponent, etc. Now all these functions further consist of the fundamental operations like addition, subtraction, etc. Like multiplication is the result of repeated addition, etc.
In the same way in software, an element may further sub-elements for performing its inner functions and it may also act as a sub-element for some other module. However together they are responsible for providing the functionality that the entire software claims to offer.
2) Object- oriented design
In the object-oriented design approach to design any software, everything is considered as an object. Now, every object performs some activities and possess some behavior. This is defined through classes because all the objects that belong to the same class will exhibit a similar kind of behavior and will also perform similar functionalities. However, every object will be different from the other object in some manner. Now, this is determined at the time of object creation when the object is initialized with some values which provide the object its unique behavior.
The object-oriented design approach is termed better than the function-oriented design approach as in the object-oriented approach, the real-world entities can easily be implemented in the computer world. Also, some very basic object behaviors such as polymorphism, inheritance, abstraction, and encapsulation are implementable through this approach.