Section 0: Module Objectives or Competencies
Course Objective or Competency | Module Objectives or Competency |
---|---|
The student will develop the analytical skills required to examine a situation in order to thoroughly understand the factors involved, to recognize any problems, and to derive potential solutions. | Students will gain experience using a technique to divide a problem into meaningful, yet understandable parts. |
Students will learn how to use functional decomposition to express the logic of a system. | |
Students will learn how to choose the level of details for a functional decomposition. |
Section 1: Overview
Here is a Functional Decomposition Introduction:
Definition
Functional decomposition is the widely practiced methodology that deals with system complexity, focusing on intelligently partitioning the system into smaller, more manageable definable pieces.
Explanation
- The 'standard' functional decomposition approach involves breaking the functionality down into manageable chunks, i.e., sub-functions.
- When done properly, the process of functional decomposition defines the 'logic' of the system. At a fundamental level, functional decomposition is the basis of all science, all structure, and all thought.
More stuffy definitions
Functional decomposition is a convenient means to divide the problem into meaningful, yet understandable parts.
- Systems development involves defining tasks whose outcomes flow together, including all the various interactions and relationships, to create a successful system.
- Functional decomposition can be used to decompose the different elements or tasks of the system into more manageable parts, thereby allowing the overall system behavior to be understood as a straightforward composite of the behavior of its many elements.
The general notion of functional decomposition is to break apart (i.e., partition and objectify) the components of an object into its sub elements.
- The purpose of decomposition is to give precise meaning to the relationships between a whole and its parts.
- Decomposition specifies the structuring and distribution of these parts in terms of the transfer of information between the parts – specifically the elements of the parts.
Why use it?
- It will make it easier to understand the system, its interactions and interfaces and is a useful tool in providing requirements insights for both analysis and design.
- It will also allow you to answer the users' needs both stated and unstated by providing you with direct traceability to capabilities and on to requirements.
Justification
Proper understanding of the approaches to decomposing system functions will help minimize the risk of not properly meeting the goal of the system.
- Incomplete decompositions can impact the success of systems development leading to poorly designed systems that provide inadequate functionality and performance, are not adaptable to change, are over cost, or are behind schedule.
- Incomplete decompositions can lead to improper requirements and poorly defined architectures.
Hence, good functional decomposition has great influence on the success of system development against schedule, cost, and performance and quality requirements.
Here is a Recap of Functional Decomposition:
Section 2: Process
Here is a Discussion of the Functional Decomposition Process:
Basic Steps in Performing a Functional Decomposition
- Define the system in functional terms
- Decompose the top-level functions into sub-functions (i.e. Level 1 and 2)
- Translate higher-level performance requirements into more detailed functional and performance criteria or design constraints (e.g. Level 3 – down)
- Identify and define all internal and external functional interfaces
- Group into functional groupings to minimize and control interfaces

Section 3: Example
Writing a Research Paper
Step 1: Decompose process – using functional decomposition, list activities involved.
- review requirements
- determine topic
- perform research
- gather publications and references
- validate research
- extract relevant information
- make outline
- prepare draft
- finalize paper; type paper
- proofread paper
Step 2: Group the activities into three to nine major processes.
- determine paper topic
- review requirements
- determine topic
- perform research
- perform research
- gather publications and references
- validate research
- extract relevant information
- prepare draft
- make outline
- prepare draft
- finalize paper
- finalize paper
- type paper
- proofread paper
Step 3: Analyze each process to identify additional functions needed to conduct processes.
-
Examine process 1, in this case Determine Paper Topic, in greater detail.
- review topic requirements
- list possible topics
- perform background research on topics
- evaluate topics
- select topic
-
Next, what happens in Process 2: Perform Research?
- gather relevant notes
- analyze notes
- identify significant issues
- synthesize solution
- record sources
-
Next, what happens in Process 3: Prepare Draft?
- prepare outline
- fill in outline
- organize research according to outline
- draft text
-
Finally, what happens in Process 4: Finalize Paper?
- finalize paper
- revise paper
- type paper
- proofread paper
- print paper
Obviously the process continues until every top level process is analyzed.
In many cases, you will discover that some of the second level processes may also involve multiple steps, leading to yet another lower level.
Section 4: Finished?
Functional decomposition presents a variety of challenges to beginners.
- How does one determine if enough information has been collected about the functions?
- How far does one go with decomposition?
To find answers, the following questions should be investigated:
- How can the specific tasks of the functions be defined?
- How are tasks performed?
- Where are these tasks performed?
- What is the timing and sequencing of each task?
- What is the nature of inputs and outputs for each task?
- Who are users of the outputs of each task?
- What is required of each task?
- Is each task necessary?
- What policies apply to the work?
- What rules are key drivers?
- Which regulations apply to the functionalities?
- What controls are required to be applied to the function?
- What equipment is used to enact the function?
Consideration of these other questions helps to make the determination as to whether enough information was collected about the function.
- If a function cannot be allocated to a component of the system, further decomposition of this function is necessary to determine the level whereby the function can be allocated to the proper component.
A usual criterion for completion of functional decomposition is to continue the process until the functional requirement is clear, realizable, and allocatable in hardware, software, and/or manual operations.
- The objective of generally decomposing the system into its hierarchical components helps the analyst better appreciate and deal with over-stated and under-stated functionality.
Section 5: Summary
What is Functional Decomposition?
- Functional decomposition is the breaking down a complex system into smaller pieces that can be more easily managed.
Why would I use it?
- It will allow you to answer the users' needs both stated and unstated by providing you with direct traceability to capabilities.
- It will make it easier to understand the system, its interactions, and interfaces, and is a useful tool in providing requirements insights for both analysis and design.