Home » Software Engineering

Different types of design strategies in Software Engineering

This is an article about the different strategies that are followed in the designing phase of software development. We will first mention these strategies, and after that will define each of them brief. Also, we will mention how these strategies are different from each other.
Submitted by Monika Sharma, on October 14, 2019

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.

In general, there are two types of designing strategies that are mainly followed in the designing phase of any software during its development:

  1. Function- oriented design
  2. 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.



Comments and Discussions



Languages: » C » C++ » C++ STL » Java » Data Structure » C#.Net » Android » Kotlin » SQL
Web Technologies: » PHP » Python » JavaScript » CSS » Ajax » Node.js » Web programming/HTML
Solved programs: » C » C++ » DS » Java » C#
Aptitude que. & ans.: » C » C++ » Java » DBMS
Interview que. & ans.: » C » Embedded C » Java » SEO » HR
CS Subjects: » CS Basics » O.S. » Networks » DBMS » Embedded Systems » Cloud Computing
» Machine learning » CS Organizations » Linux » DOS
More: » Articles » Puzzles » News/Updates

© some rights reserved.