Functional decomposition is the analysis of complex systems by breaking them down into smaller simpler elements.
It involves breaking down processes, systems, functional areas, or deliverables into simpler components, so that each part can be analyzed separately.
By breaking down larger components into smaller parts, it allows the Organization to measure and track each work effort involved in implementing the solution.
It also helps in the assessment of the effectiveness of each sub-component as it relates to other larger or smaller components.
Functional decomposition has some elements, which include the following:
1. Decomposition objectives: the objectives of functional decomposition is to guide the decomposition process and explain what is to be broken down, how it is to be broken down, and to what degree it should be broken down.
The decomposition objectives may include:
• Measuring and managing: this is used to identify key metrics and indicators that would be used to assess the individual broken down elements.
• Designing: this is used to clarify a design problem by reducing and identifying what is included in the design.
• Analyzing: this is used to understand the important properties and behaviours of an element independent of the other parts.
• Estimating and forecasting: this is used to reduce the degree of uncertainty by breaking down a complicated solution into its individual elements. Then assessed the cost and resources that each of those elements would utilize.
• Reusing: this is used to create a reusable solution building block that helps a particular function complete different processes. For example in a database, some key tables such as the customer table are reusable.
• Optimization: this is used to identify and eliminate any bottlenecks in the business processes to reduce the costs of the functions and improve the process quality.
• Substitution: this is used to make the implementation of a solution function successful without affecting the entire system. For example instead of hard coding a value in the solution, a field should be created where the end users can input a variable. This would ensure that the solution remains dynamic and can accommodate the business needs.
• Encapsulation: this is used in merging different elements into a single one. For example instead of creating the same field in numerous tables in a database, a single field can be created in a table and the other tables can lookup to that table with the use of primary and secondary keys.
2. Subjects of decomposition: Functional decomposition can be used in numerous ways including the following:
- Business outcomes: these are the products, services and resources that are used to run the business and they can be found in the balance sheet. They include the income, profit, expenses and production.
- Work to be done: this is also known as a Work Breakdown Structure (WBS). It is used to break down the project or initiative into work activities, tasks, work items, and deliverables to make them more manageable and easier to plan.
- Business process: functional decomposition can be used to identify the individual steps in a process with the aim of making of measuring, managing, optimizing them.
- Function: this is used to implement or optimize a solution by identifying its individual functionalities.
- Business unit: this is used to understand how the organization works by breaking them down into individual units. It is commonly used to create organograms.
- Solution component: this is used to enable the solution design, implementation, or change by building the individual elements. It’s commonly used in the Agile methodology to plan and create the product.
- Activity: this enables the implementation, modification, optimization, measurement, and estimation of the solution by breaking down the project into individual activities or phases. It is commonly used in the Waterfall methodology.
- Products and services: this is used to design, implement, and improve the solution by identifying and analyzing each product and service to find ways to improve them.
- Decisions: this is used for enabling, improving, or assisting the decisions to be made in a solution by identifying the individual inputs, underlying models, dependencies, and outcomes.
3. Level of decomposition: The level of functional decomposition describes where, why, and when to stop decomposing the subject in order to meet the analysis objectives.
The process of functional decomposition is a continuous one that happens until there is just enough understanding and detail to advance and apply the results of the decomposition in the implementation of other tasks.
4. Representation of decomposition results: Representations of functional decomposition results let the business analysts validate and verify the results and use them in solving other tasks.
The decomposition results can be communicated with a mix of plain textual descriptions, prioritized lists, mathematical formulas, programming languages, and visual diagrams.
Lots of different diagramming techniques can be used to represent functional decomposition and these include:
- Tree diagrams: these are the hierarchical division of work, activities, or deliverables.
- Nested diagrams: these show the hierarchical fragmented relationships between the decomposition results.
- Use case diagrams: these represent the decomposition of a summarized use case.
- Flow diagrams: these illustrate the results of a functional decomposition.
- State transition diagrams: these define the behaviour of an entity in its complex state.
- Cause-effect diagrams: these are complicated events, conditions, activities, and effects involved in constructing a complicated result.
- Decision trees: these are the characteristics of a complicated decision and its possible results.
- Mind maps: these are the information that have been organized by categories.
- Component diagram: these represent how the elements are connected together to form larger elements.
- Decision model and notation: these are used to analyze the business logic to ensure that it is trustworthy.
When should we use Functional Decomposition?
Functional decomposition has both its strengths and limitations, which include the following:
Strengths
- It makes complicated tasks achievable by breaking down complex problems into simpler elements.
- It provides an organized approach to creating a shared understanding of complex matters between different group of stakeholders.
- It clarifies the estimation of work involved in following a course of action, describes the extent of work, and defines the process metrics and indicators.
Limitations
- If there is any incorrect information used, the functional decomposition would have to be redone.
- Some systems are too complicated to be represented by simple hierarchical relationships.
- Functional decomposition can be a tedious and time-consuming task which might oversimplify a complex system.
- The business analyst has to be very skilled to successfully decompose a system.