Software Testing - Functional Decomposition



Software is developed based on the functional, and non-functional requirements shared by the customers. The functional decomposition is critical in software development as it helps to generate more manageable components of the software. It assists in getting an idea of the architecture, and design of the system very easily.

What is Software Functional Decomposition?

The software functional decomposition works by breaking down complicated types of software. We can also determine the working of various kinds of modules that are required to build compound systems. The development, and testing team use the software functional decomposition technique to go through the specifications quickly. The primary aim of this methodology is to determine the numerous functionalities, and communications so that the big, complicated system can be broken down. It consists of multiple steps which help us to break down a compound system into simpler units.

Example

The below example, best describes the Functional Decomposition −

Functional Decomposition in SDLC

Steps Involved in Software Functional Decomposition

The steps involved in software functional decomposition are listed below −

1. Determine the Prominent Function

This is the one of the first steps on functional decomposition. The main objective of this step is to conclude what is the purpose behind which the software is being developed. The main characteristics, architecture, and design of the system are identified. Thus the main system behavior is determined in this step. If we take an example of a mobile phone, its main function is to take, and receive calls.

2. Segregating the Prominent Function

This is the second step on functional decomposition. The prominent functions are segregated into sub-functions which are more compact, and simple to handle. This is because it helps to comprehend characteristics of the system more easily.

3. Define Relationship Between Sub-Functions

This is the third step on functional decomposition. The relationship between the sub-functions and prominent functions are defined. The communications among various functions are easily understandable at this stage.

4. Represent Relationship

This is the fourth step on functional decomposition. After the relationships among functions are defined, they are represented in a pictorial or diagrammatic form. This helps to describe how different characteristics of the system are connected, and to visualize its working.

5. Refine the Functional Decomposition

This is the final step on functional decomposition. The functional block diagram of the system is reviewed, and any changes required at this stage are also incorporated. After the fine tuning of the entire process, we can infer that software functional decomposition has been completed.

Applications of Software Functional Decomposition

The applications of software functional decomposition are listed below −

  • The functional decomposition is used extensively at the design phase of the software development where the developers break down the software, and its requirements into smaller units.
  • The functional decomposition is used extensively in modular programming where a software is segregated into independent components, each of which having a specific task.
  • The functional decomposition helps to have more code reusability by simplifying the complicated functionalities into smaller units.
  • The functional decomposition helps to have more efficient testing, and debugging as the complex systems are breaking down into multiple simpler units.
  • The functional decomposition is used to optimize the performance parameters in the software.
  • The functional decomposition encourages an environment of collaboration since multiple individuals work together on the same system which are split into multiple modules.
  • The functional decomposition helps to maintain and modify a software more efficiently as its functions are decomposed into smaller, and more manageable units.

Advantages of Software Functional Decomposition

The advantages of the software functional decomposition are listed below −

  • The software functional decomposition reduces the complexity of the whole system.
  • The software functional decomposition helps to maintain the software in an efficient way.
  • The software functional decomposition assists in achieving more code reusability.
  • The software functional decomposition helps to scale up a system faster.

Disadvantages of Software Functional Decomposition

The disadvantages of the software functional decomposition are listed below −

  • The software functional decomposition brings more complexity as the communication among sub-functions are sometimes difficult to establish.
  • The software functional decomposition makes the understanding of software difficult, as it is decomposed into smaller components.
  • As the system is broken down, the software functional decomposition makes the testing process longer.
  • The software functional decomposition may bring performance issues in the software.

Conclusion

This concludes our comprehensive take on the tutorial on Software Functional Decomposition. Weve started with describing what is software functional decomposition, what are the steps involved in the software functional decomposition, what are the applications of software functional decomposition, what are the advantages of software functional decomposition, and what are the disadvantages of software functional decomposition. This equips you with in-depth knowledge of Software Functional Decomposition. It is wise to keep practicing what youve learned and exploring others relevant to Software Testing to deepen your understanding and expand your horizons.

Advertisements