Function model

This is an old revision of this page, as edited by Mdd (talk | contribs) at 12:43, 3 December 2008 (Types of function models: Image relocated). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

A function model or functional model in systems engineering and software engineering is a structured representation of the functions, activities or processes within the modeled system or subject area.[1]

Example of a function model of the process of "Maintain Reparable Spares" in IDEF0 notation.

Overview

A function model, also called an activity model or process model, is a graphical representation of an enterprise's function within a defined scope. The purpose of the function model are to describe the functions and processes, assist with discovery of information needs, help identify opportunities, and establish a basis for determining product and service costs.[2]

Functional modeling topics

Functional perspective

In systems engineering and software engineering a function model is created with a functional modeling perspective. A functional perspectives is one or more perspectives possible in process modelling. Other perspecifives possible are for example behavioural, organisational or informational.[3]

A functional modeling perspective concentrates on describing the dynamic process. The main concept in this modeling perspective is the process, this could be a function, transformation, activity, action, task etc. A well-known example of a modeling language employing this perspective is data flow diagrams.

The perspective uses four symbols to describe a process, these being:

  • Process: Illustrates transformation from input to output.
  • Store: Data-collection or some sort of material.
  • Flow: Movement of data or material in the process.
  • External Entity: External to the modeled system, but interacts with it.

Now, with these symbols, a process can be represented as a network of these symbols. This decomposed process is a DFD, data flow diagram.

In Dynamic Enterprise Modeling a devision is made in the Control model, Function Model, Process model and Organizational model.

Functional decomposition

 
Example of functional decomposition in a systems analysis.

Functional decomposition refers broadly to the process of resolving a functional relationship into its constituent parts in such a way that the original function can be reconstructed from those parts by function composition. In general, this process of decomposition is undertaken either for the purpose of gaining insight into the identity of the constituent components, or for the purpose of obtaining a compressed representation of the global function, a task which is feasible only when the constituent processes possess a certain level of modularity.

functional decomposition has a prominent role in computer programming, where a major goal is to modularize processes to the greatest extent possible. For example, a library management system may be broken up into an inventory module, a patron information module, and a fee assessment module. In the early decades of computer programming, this was manifested as the "art of subroutining," as it was called by some prominent practitioners.

Functional decomposition of engineering systems is a method for analyzing engineered systems. The basic idea is to try to divide a system in such a way that each block of the block diagram can be described without an "and" or "or" in the description.

This exercise forces each part of the system to have a pure function. When a system is composed of pure functions, they can be reused, or replaced. A usual side effect is that the interfaces between blocks become simple and generic. Since the interfaces usually become simple, it is easier to replace a pure function with a related, similar function.

Types of function models

 
This FEA Business reference model depicts the relationship between the business processes, business functions, and the business area’s business reference model.

In the field of systems and software engineering numerous specific function and functional models have been defined. Here only a few general types will be explained.

Business function model

A Business Function Model (BFM) is a general description or category of operations performed routinely to carry out an organization's mission. It can show the critical business processes in the context of the business area functions. The processes in the business function model must be consistent with the processes in the value chain models. Processes are a group of related business activities performed to produce an end product or to provide a service. Unlike business functions that are performed on a continual basis, processes are characterized by the fact that they have a specific beginning and an end point marked by the delivery of a desired output. The figure on the right depicts the relationship between the business processes, business functions, and the business area’s business reference model.[4]

Operator function model

The Operator Function Model (OFM) is proposed as an alternative to traditional task analysis techniques used by human factors engineers. An operator function model attempts to represent in mathematical form how an operator might decompose a complex system into simpler parts and coordinate control actions and system configurations so that acceptable overall system performance is achieved. The model represents basic issues of knowledge representation, information flow, and decision making in complex systems. Miller (1985) suggests that the network structure can be thought of as a possible representation of an operator's internal model of the system plus a control structure which specifies how the model is used to solve the decision problems that comprise operator control functions.[5]

Functional modeling methods

The functional approach is extented in multiple diagrammic techniques and modeling notations. This section gives an overview of the important techniques in chronological order.

Functional Flow Block Diagram

 
Functional Flow Block Diagram Format.[6]

The Functional flow block diagram (FFBD) is a multi-tier, time-sequenced, step-by-step flow diagram of the system’s functional flow.[7] The diagram is developed in the 1950s and widely used in classical systems engineering. The Functional Flow Block Diagram is also referred to as Functional Flow Diagram, functional block diagram, and functional flow.[8]

Functional Flow Block Diagrams (FFBD) usually define the detailed, step-by-step operational and support sequences for systems, but they are also used effectively to define processes in developing and producing systems. The software development processes also use FFBDs extensively. In the system context, the functional flow steps may include combinations of hardware, software, personnel, facilities, and/or procedures. In the FFBD method, the functions are organized and depicted by their logical order of execution. Each function is shown with respect to its logical relationship to the execution and completion of other functions. A node labeled with the function name depicts each function. Arrows from left to right show the order of execution of the functions. Logic symbols represent sequential or parallel execution of functions.[9]

N2 Chart

 
Figure 2. N2 chart definition.[10]

The N2 Chart is a diagram in the shape of a matrix, representing functional or physical interfaces between system elements. It is used to systematically identify, define, tabulate, design, and analyze functional and physical interfaces. It applies to system interfaces and hardware and/or software interfaces.[11]

The N2 diagram has been used extensively to develop data interfaces, primarily in the software areas. However, it can also be used to develop hardware interfaces. The basic N2 chart is shown in Figure 2. The system functions are placed on the diagonal; the remainder of the squares in the N x N matrix represent the interface inputs and outputs. [10]

Structured Analysis and Design Technique

 
SADT basis element.

Structured Analysis and Design Technique (SADT) is a software engineering methodology for describing systems as a hierarchy of functions, a diagrammatic notation for constructing a sketch for an software application. It offers building blocks to represent entities and activities, and a variety of arrows to relate boxes. These boxes and arrows have an associated informal semantics.[12] SADT can be used as a functional analysis tool of a given process, using successive levels of details. The SADT method allows to define user needs for IT developments, which is very used in the industrial Information Systems, but also to explain and to present an activity’s manufacturing processes, procedures.[13]

The SADT supplies a specific functional view of any enterprise by describing the functions and their relationships in a company. These functions fulfill the objectives of a company, such as sales, order planning, product design, part manufacturing, and human resource management. The SADT can depict simple functional relationships here and can reflect data and control flow relationships between different functions. The IDEF0 formalism is based on SADT, developed by Douglas T. Ross in 1985.[14]

IDEF0

 
IDEF0 Diagram Example

IDEF0 (Integration Definition for Function Modeling) is a function modeling methodology for describing manufacturing functions, which offers a functional modeling language for the analysis, development, re-engineering, and integration of information systems; business processes; or software engineering analysis.[15] It is part of the IDEF family of modeling languages in the field of software engineering, and is built on the functional modeling language building SADT.

The IDEF0 Functional Modeling method is designed to model the decisions, actions, and activities of an organization or system.[16] It was derived from the established graphic modeling language Structured Analysis and Design Technique (SADT) developed by Douglas T. Ross and SofTech, Inc.. In its original form, IDEF0 includes both a definition of a graphical modeling language (syntax and semantics) and a description of a comprehensive methodology for developing models.[1] The US Air Force commissioned the SADT developers to develop a function model method for analyzing and communicating the functional perspective of a system. IDEF0 should assist in organizing system analysis and promote effective communication between the analyst and the customer through simplified graphical devices.[16]

Business Process Modeling Notation

 
Business Process Modeling Notation Example.

Business Process Modeling Notation (BPMN) is a graphical representation for specifying business processes in a workflow. BPMN was developed by Business Process Management Initiative (BPMI), and is currently maintained by the Object Management Group since the two organizations merged in 2005. The current version of BPMN is 1.1, and a major revision process for BPMN 2.0 is in progess.[17][18]

The Business Process Modeling Notation (BPMN) specification provides a graphical notation for specifying business processes in a Business Process Diagram (BPD).[19] The objective of BPMN is to support business process management for both technical users and business users by providing a notation that is intuitive to business users yet able to represent complex process semantics. The BPMN specification also provides a mapping between the graphics of the notation to the underlying constructs of execution languages, particularly BPEL4WS.[20]

See also

References

  This article incorporates public domain material from the National Institute of Standards and Technology

  1. ^ a b FIPS Publication 183 released of IDEFØ December 1993 by the Computer Systems Laboratory of the National Institute of Standards and Technology (NIST).
  2. ^ Reader's Guide to IDEF0 Function Models. Accessed 27 Nov 2008.
  3. ^ Process perspectives. In: Metamodeling and method engineering, Minna Koskinen, 2000.
  4. ^ Analyze the Business and Define the Target Business Environment. Accessed 27 Nov 2008.
  5. ^ Operator Function Model (OFM). Accessed 27 Nov 2008.
  6. ^ Systems Engineering Fundamentals. Defense Acquisition University Press, 2001
  7. ^ The first version of this article is completely based on the NAS SYSTEM ENGINEERING MANUAL SECTION 4.4 VERSION 3.1 06/06/06.
  8. ^ Task Analysis Tools Used Throughout Development. FAA 2008. Retrieved 25 Sept 2008.
  9. ^ FAA (2006). NAS SYSTEM ENGINEERING MANUAL SECTION 4.4 VERSION 3.1 06/06/06.
  10. ^ a b NASA (1995). "Techniques of Functional Analysis". In: NASA Systems Engineering Handbook June 1995. p.142.
  11. ^ The first version of this article is completely based on the NAS SYSTEM ENGINEERING MANUAL SECTION 4.4 VERSION 3.1 06/06/06.
  12. ^ John Mylopoulos (2004). Conceptual Modelling III. Structured Analysis and Design Technique (SADT). Retrieved 21 Sep 2008.
  13. ^ SADT at Free-logisitcs.com. Retrieved 21 Sep 2008.
  14. ^ Gavriel Salvendy (2001). Handbook of Industrial Engineering: Technology and Operations Management.. p.508.
  15. ^ Systems Engineering Fundamentals. Defense Acquisition University Press, 2001.
  16. ^ a b Varun Grover, William J. Kettinger (2000). Process Think: Winning Perspectives for Business Change in the Information Age. p.168.
  17. ^ "BPMN Information". Retrieved 2008-11-02.
  18. ^ "BPMN FAQ". Retrieved 2008-11-02.
  19. ^ Richard C. Simpson (2004). An XML Representation for Crew Procedures. Final Report NASA Faculty Fellowship Program - 2004. Johnson Space Center.
  20. ^ S.A. White, "Business Process Modeling Notation (BPMN)," In: Business Process Management Initiative (BPMI) 3 May 2004.