Functional Decomposition
Use Functional Decomposition to: 
  - Hierarchically decompose a system  into its functional components, 
   - Hierarchically decompose a business  process into sub-processes, 
   - Provide a definition of all the business  functions and sub-functions identified as system requirements.  
 
 
Method 
  -  Overview  of Functional Decomposition 
   -  Levels  of Detail for Functional Decomposition 
   -  Guidelines  for Decomposing Business Functions and Processes 
   - Guidelines  for Drawing a Function Chart 
 
 
NOTATION ON A FUNCTION CHART 
Squares  indicate a business function or business process.
Solid  Triangles indicate that a more detailed breakdown is provided on a subsequent  Function Chart.
Triangles  Containing Letters indicate that the function has been included on another  diagram.  For example, a triangle  containing "AD" indicates that the function has been further  documented on an Action Diagram.  A  triangle containing "DFD" indicates that the function has been  further documented on a Data Flow Diagram.
  
Tips and Hints 
Use an automated  CASE tool when constructing Function Charts. 
Example 
    
  
The example Function Chart decomposes the business  functions for a manufacturing company. 
 
1 Overview of Functional Decomposition 
Functional  Decomposition is a fundamental analysis technique.  It breaks a complex problem into successive  layers of more manageable and comprehensive pieces, resulting in a  hierarchically structured Function Chart that describes the problem  and/or solution in levels of increasing detail. 
In  Functional Decomposition, the lower level functions/processes completely  describe the parent.  A function/process  at a lower level cannot exist unless it is included within its parent  function/process. 
Functional  Decomposition drives the analysis process.   The logical functions and processes become the subject, and therefore  the focus, of interviews and verification activities such as walk-throughs.  Similarly, the logical processes will  eventually be organized into application systems.  The Functional Decomposition must therefore  be approached in a systematic manner.  It  must aim to ensure that each function and process is conceptually and  operationally independent. 
Concepts of Coupling and Cohesion 
The aim of  Functional Decomposition is to identify functions which are highly cohesive and  loosely coupled.  This makes them  conceptually and operationally independent and promotes more stable business  systems. 
Coupling  is a measure of the degree to which two functions are interdependent.  Loose coupling is good because changes to one  function can be made with less impact on other functions, i.e., you do not have  to know about other functions to make changes to the function being studied. 
Cohesion  is a measure of the strength of association of the processes within a  function.  High cohesion is good because  highly cohesive functions that perform one well-defined objective are easier to  understand and maintain. 
Benefits of Good Functional  Decomposition 
A good  Functional Decomposition helps the analysis in several ways: 
  - The simplicity of the structure  and representation aids in understanding the breakdown of functions and  processes. 
   - Specifying the precise  requirements and features for each function becomes easier because the  functions and processes are broken down into smaller units. 
   - The partitioning and independence  of the functions localizes errors and minimizes system faults. 
   - It allows the customer to view and  discuss the organization in a form that can be dealt with, i.e., as a  collection of functions, rather than as a continuous process. 
 
 
Problems of a Poor Functional  Decomposition 
Poor  Functional Decomposition can hinder the project both now and in subsequent  stages by: 
  - Hindering understanding of an  organization's business when functions and processes overlap, 
   - Creating unnecessarily numerous,  complex interfaces, 
   - Requiring extensive rework of  other Process Modelling methods, such as Data  Flow Diagrams, in later stages as detail problems emerge. 
 
2 Levels of Detail for Functional  Decomposition
Enterprise Level of Detail 
At the  enterprise level , the root of the Function Chart may contain the name of the  organization (or a major function or sub-function within an organization).  The root is broken down into no more than  three levels of detail.  A brief  description is provided for each function. 
    
  
  The second  level identifies major business functions, typically related to Planning,  Execution, and Control. 
Note that  administrative functions such as Finance, Accounting, and Personnel should not  be top level functions.  Top level  functions should only be functions that directly contribute to the production  of an organization's product or service.   Administrative functions should only be further decomposed if required,  for example, if a system is being developed to support administrative  functions.  Because Function Charts read  so similarly to Organization Charts, i.e., both use a top-down structure, it  can be politically very difficult to convince the Corporate Vice President of  Finance and Personnel, for example, that his or her function is not a top level  function.  One method of addressing this  is to draw separate Function Charts for each of the administrative functions so  that each has its own top level Function Chart.   This does not take much time, gets these functions included in the  documentation, and works well as long as the charts are not further  expanded.  Another method of addressing  this is to include administrative functions under a function called, for  instance, Organizational Support. 
Conceptual Level of Detail 
At the  conceptual level, leaf level functions (i.e., lowest level functions) on the  enterprise level chart within the context of the system are decomposed into the  next level of detail.  This level  identifies the major business processes necessary to accomplish each function.  Processes identified at this level typically  correspond to application systems or sub-systems, for example, Sales, Finance,  or Purchasing. 
    
  
  Functional  Decomposition at the conceptual level of detail helps define the scope of a  project. 
Logical Level of Detail 
At the  logical level, the Function Chart decomposes processes into the lowest level of  detail.  Functional Decomposition at this  level identifies all the processes within the scope of the project.  The lowest level processes on the Function  Chart can be documented using Action Diagrams, Structured English,  or Pseudocode. 
    
  
  Once  started, leaf level processes must continue to conclusion or else be totally  undone.  A leaf level process takes the  business from one state to another or does not change the state of the business  at all.  To complete Functional  Decomposition, each branch of the tree must be decomposed to the lowest level  process.  However, not every branch will  be decomposed to the same number of levels. 
Complete  understanding of the characteristics of a leaf level process requires an  understanding of: 
  - Volume and response time  requirements, i.e., determine how often and how quickly a response from the  process is required, 
   - Security, i.e., determine who  performs what processes, 
   - Design menu structures, i.e.,  determine what user groups use what processes, 
   - Plan for distribution, i.e.,  determine the geographic locations where the processes are performed.
 
Application Design Issue 
During  application design, the lowest level processes may not necessarily map directly  to modules.  For example, one leaf level  process may become many program modules or many leaf level processes may become  one program module. 
 
3 Guidelines for Decomposing  Business Functions and Processes
Identify a Business Function 
Identify  the business functions.  A function is composed of a  logical set of ongoing activities or processes that sustain the organization's  business objectives (i.e., producing a product, providing a service).  A function can be managed but cannot be  performed.
Identify Business Processes 
Once the  business function has been identified, define the business processes that make up the business function. 
A business  process is a distinct  activity described by its inputs and outputs.   A process describes a unique behaviour that has a beginning and an  end.  A process is performed repeatedly.
A business  process may be: 
  - manual, 
   - automated, 
   - assisted by automation. 
 
  
Verbs Suitable for Naming Business Processes 
The following verbs are suitable  for naming business processes:
  - acquire,
   - agree,
   - assess,
   - attend,
   - build,
   - calculate,
   - check,
   - conduct,
   - create,
   - define,
   - determine,
   - develop,
   - examine,
   - identify,
   - maintain,
   - market,
   - obtain,
   - plan,
   - record,
   - remove,
   - report,
   - select,
   - specify,
   - test,
   - update.
 
  
Distinguishing Between a Business  Function and a Business Process 
Functions,  which describe what an organization does, can be decomposed into processes that  describe how the work is accomplished. 
If an  activity can be performed, it is a process.   Otherwise, it is a function.  For  example, you cannot perform the function Marketing but you can perform the  business process Contact a Customer. 
Functions  can break down into other functions or business processes.  Business processes can only break down into  other business processes. 
Criterion of Decomposition 
There  should be a single criterion used to differentiate between levels of the  decomposition.  The criterion is the rule  applied during the process of building a decomposition diagram, e.g., a  Function Chart, that assures the diagram contents are consistent. 
The  criterion, or rule, of decomposition specifies the relationship between the  function that is being decomposed and its constituent processes. 
 
4. Guidelines for Drawing Function  Charts
Description of a Function  Chart 
A  Function Chart is a hierarchical diagram showing a progressively more detailed  breakdown of the business functions and business processes of an organization. 
A  Function Chart does not predefine a physical design or implementation of the  system. 
Function Charts Versus  Other Tree-Structure Diagrams 
There  is a fundamental difference between Function Charts and other kinds of  tree-structure charts such as Organization Charts and Structure  Charts.  In a Function Chart, the  collection of offspring completely describes the parent.  This is not true in organization charts nor  in program structure charts.  In program  structure charts a parent block may invoke its child blocks.  It is essential to understand this difference  to create Function Charts correctly.  A  Function Chart represents the basic functions that have to be carried out  regardless of what organization groups or departments exist.  A function or process may cross  organizational boundaries. 
Option for Displaying the  Function Chart 
Consider  drawing your Function Chart with the root box at the left of the diagram and  subsequent levels presented vertically rather than horizontally when there are  numerous child blocks. 
Naming Functions on a  Function Chart 
Name  a function with a noun or a word ending in "ing."  For example, Invoicing or Human Resources  Management. 
Naming Business Processes  on a Function Chart 
Begin  the name of a business process with an active verb, for example, "Pay  Bills."  Use a simple imperative  statement to describe the intention of the process.  For example, "Pay Invoice" or  "Approve Invoice." 
  
CONSIDERATIONS WHEN DRAWING FUNCTION CHARTS 
Levels on a Function Chart 
A  level of a Function Chart is composed of functions or business processes.  Do not mix functions and business processes  on the same level.
Each  lower level of the Function Chart provides details for the level immediately  above.  Lower levels are a decomposition  of the upper level business function or business process, not separate from the  upper level.
Complete  the subordinates for any one function before further exploding any of the  subordinates.  For example, if a  subordinate of the function Accounting is Pay Bill, identify all subordinates  of Accounting before further decomposing Pay Bill.
Administrative  services or utility functions are not typically top level functions.
Rule of Thumb for Number of  Subordinates 
As  a rule of thumb, limit the number of subordinates of a function to seven.  If there are more, group related subordinates  and explode them in a lower level.  For  example, the function Finance may have subordinates Funds Management, Cash, Short-Term  Financing, Long-Term Financing, Financial Control, Budget, Managerial  Accounting, and General Accounting.  To  limit the number of subordinates under Finance, you may combine Managerial  Accounting and General Accounting under Accounting and explode them at the next  level.
Function Chart Numbering  Scheme 
Use  a hierarchical numbering scheme.  For  example, if the function Accounting is numbered 1 on the chart, successive  breakdowns of Accounting would be numbered 1.1, 1.2, 1.1.1, and so on.
Tip for Numbering Function  Chart 
When  numbering the charts, remember that function numbers are just a label and have  no meaning.  However, the specifications  document will likely be organized by function number.  Therefore, it is a good idea to assign the low  numbers to the functions that should appear first in the document.  Otherwise, top level users may not understand  that what they consider to be the organization's most important function is,  for example, number ten and starts on page 183 of the document.
Time Dependencies 
Time  dependencies are not shown on Function Charts