Old page wikitext, before the edit (old_wikitext ) | 'A '''function model''' or ''functional model'' in [[systems engineering]] and [[software engineering]] is a structured [[Representation (systemics)|representation]] of the [[Function (engineering)|functions]] ([[Activity diagram|activities]], [[Task analysis|actions]], [[wikt:process|process]]es, [[Operations management|operation]]s) within the modeled [[system]] or subject area.<ref name= "ITL93">[http://www.itl.nist.gov/fipspubs/idef02.doc FIPS Publication 183] released of IDEFØ December 1993 by the Computer Systems Laboratory of the National Institute of Standards and Technology (NIST).</ref> [[File:IDEF Diagram Example.jpg|thumb|360px|Example of a function model of the process of "Maintain Reparable Spares" in [[IDEF0]] notation.]]
A function model, similar with the [[activity diagram|activity model]] or [[process model]], is a graphical representation of an [[Business|enterprise]]'s function within a defined scope. The purposes 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.<ref name="rmsc-1995">[http://www.archives.gov/era/pdf/rmsc-19951006-dod-rm-function-and-information-models.pdf Reader's Guide to IDEF0 Function Models]. Accessed 27 Nov 2008.</ref>
== History ==
The function model in the field of systems engineering and software engineering originates in the 1950s and 1960s, but the origin of functional modelling of organizational activity goes back to the late 19th century.
In the late 19th century the first diagrams appeared that pictured business activities, actions, processes, or operations, and in the first half of the 20th century the first structured methods for documenting business process activities emerged. One of those methods was the [[flow process chart]], introduced by [[Frank Gilbreth]] to members of [[American Society of Mechanical Engineers]] (ASME) in 1921 with the presentation, entitled “Process Charts—First Steps in Finding the One Best Way”.<ref name="BBG02">Ben B. Graham (2002). ''Detail Process Charting''. p.2.</ref> Gilbreth's tools quickly found their way into [[industrial engineering]] curricula.
The emerge of the field of ''systems engineering'' can be traced back to [[Bell Labs|Bell Telephone Laboratories]] in the 1940s.<ref>{{Cite journal
| last =Schlager
| first =J.
| title =Systems engineering: key to modern development
| journal =IRE Transactions
| volume =EM-3
| pages =64–66
|date=July 1956
| doi =10.1109/IRET-EM.1956.5007383
| issue =3
}}</ref> The need to identify and manipulate the properties of a system as a whole, which in complex engineering projects may greatly differ from the sum of the parts' properties, motivated various industries to apply the discipline.<ref>{{Cite book
| author =[[Arthur D. Hall]]
| title =A Methodology for Systems Engineering
| publisher =Van Nostrand Reinhold
| isbn =0-442-03046-0
| year =1962
}}</ref> One of the first to define the function model in this field was the British engineer [[William Gosling (engineer)|William Gosling]]. In his book ''The design of engineering systems'' (1962, p. 25) he stated:
:''A functional model must thus achieve two aims in order to be of use. It must furnish a throughput description mechanics capable of completely defining the first and last throughput states, and perhaps some of the intervening states. It must also offer some means by which any input, correctly described in terms of this mechanics, can be used to generate an output which is an equally correct description of the output which the actual system would have given for the input concerned. It may also be noted that there are two other things which a functional model may do, but which are not necessary to all functional models. Thus such a system may, but need not, describe the system throughputs other than at the input and output, and it may also contain a description of the operation which each element carries out on the throughput, but once again this is not.''<ref>[[William Gosling (engineer)|William Gosling]] (1962) ''The design of engineering systems''. p. 23</ref>
One of the first well defined function models, was the [[Functional Flow Block Diagram]] (FFBD) developed by the defense-related [[TRW Inc.|TRW]] Incorporated in the 1950s.<ref>Tim Weilkiens (2008). ''Systems Engineering with SysML/UML: Modeling, Analysis, Design''. Page 287.</ref> In the 1960s it was exploited by the [[NASA]] to visualize the time sequence of events in a space systems and flight missions.<ref>[[Harold Chestnut]] (1967). ''Systems Engineering Methods''. Page 254.</ref> It is further widely used in classical [[systems engineering]] to show the order of execution of system functions.<ref name="TD03">Thomas Dufresne & James Martin (2003). [http://mason.gmu.edu/~tdufresn/paper.doc "Process Modeling for E-Business"]. INFS 770 Methods for Information Systems Engineering: Knowledge Management and E-Business. Spring 2003</ref>
== Functional modeling topics ==
=== Functional perspective ===
In [[systems engineering]] and [[software engineering]] a function model is created with a functional [[Modeling perspectives|modeling perspective]]. The functional perspective is one of the perspectives possible in [[business process modelling]], other perspectives are for example behavioural, organisational or informational.<ref>[http://users.jyu.fi/~jpt/ME2000/Me14/sld004.htm Process perspectives]. In: ''Metamodeling and method engineering'', Minna Koskinen, 2000.</ref>
A functional modeling perspective concentrates on describing the [[dynamic system|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 diagram]]s.
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.
[[File:Fo2ufg823rhf832hfdorfg.JPG|thumb|Example of functional decomposition in a systems analysis.]]In [[Dynamic Enterprise Modeling]] a division is made in the [[Control model]], Function Model, [[Process model]] and [[Organizational model]].
=== Functional decomposition ===
[[Functional decomposition]] refers broadly to the process of resolving a [[Function (mathematics)|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''.
[[Decomposition (computer science)|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 [[role|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.
== Functional modeling methods ==
The functional approach is extended in multiple diagrammic techniques and modeling notations. This section gives an overview of the important techniques in chronological order.
=== Function block diagram ===
[[Image:Functional_block_diagram_of_the_attitude_control_and_maneuvering_electronics_system.jpg|thumb|320px|Functional block diagram of the attitude control and maneuvering electronics system of the [[Project_Gemini#Spacecraft|Gemini spacecraft]]. June 1962.]]
A [[functional block diagram]] is a [[block diagram]], that describes the functions and interrelationships of a [[system]]. The functional block diagram can picture:<ref>James Perozzo (1994) ''The complete guide to electronics troubleshooting''. p. 72</ref>
* Functions of a system pictured by blocks
* Input and output elements of a block pictured with lines, and
* Relationships between the functions
* Functional sequences and paths for matter and or signals<ref>William H. Von Alven (1964) ''Reliability engineering'' explains: "Functional block diagrams show functional sequences and signal paths, and items which are wired in parallel are drawn in parallel" (p. 286)</ref>
The block diagram can use additional schematic symbols to show particular properties.
Specific function block diagram are the classic [[Functional Flow Block Diagram]], and the [[Function Block Diagram]] (FBD) used in the design of [[programmable logic controller]]s.
=== Functional Flow Block Diagram ===
[[File:Functional Flow Block Diagram Format.jpg|thumb|320px|[[Functional Flow Block Diagram]] Format.<ref name="SEF01">[http://www.dau.mil/pubs/pdf/SEFGuide%2001-01.pdf ''Systems Engineering Fundamentals.''] Defense Acquisition University Press, 2001</ref>]]
The [[Functional flow block diagram]] (FFBD) is a multi-tier, time-sequenced, step-by-step [[flow diagram]] of the [[system]]’s functional flow.<ref name="faa.gov">The first version of this article is completely based on the [http://www.faa.gov/about/office_org/headquarters_offices/ato/service_units/operations/sysengsaf/seman/SEM3.1/Section%204.4.pdf NAS SYSTEM ENGINEERING MANUAL SECTION] 4.4 VERSION 3.1 06/06/06.</ref>
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''.<ref name="FAA08">[http://www.hf.faa.gov/webtraining/Usability/u17_tools2.htm Task Analysis Tools Used Throughout Development]. FAA 2008. Retrieved 25 Sept 2008.</ref>
Functional Flow Block Diagrams (FFBD) usually define the detailed, step-by-step operational and support sequences for [[system]]s, but they are also used effectively to define [[wikt:process|process]]es in developing and producing systems. The [[software development process]]es also use FFBDs extensively. In the system context, the functional flow steps may include combinations of [[computer hardware|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.<ref name="FAA06">FAA (2006). [http://www.faa.gov/about/office_org/headquarters_offices/ato/service_units/operations/sysengsaf/seman/SEM3.1/Section%204.4.pdf NAS SYSTEM ENGINEERING MANUAL SECTION] 4.4 VERSION 3.1 06/06/06.</ref>
=== HIPO and IPO ===
[[File:IPO-S Model.gif|thumb|180px|left|An expanded [[IPO Model]].]]
[[HIPO]] for ''hierarchical input process output'' is a popular 1970s [[systems analysis]] design aid and documentation technique<ref>IBM Corporation (1974).''HIPO—A Design Aid and Documentation Technique'', Publication Number GC20-1851, IBM Corporation, White Plains, NY, 1974.</ref> for representing the modules of a [[system]] as a [[hierarchy]] and for documenting each module.<ref name="Sandia92">Sandia National Laboratories (1992). [http://www.prod.sandia.gov/cgi-bin/techlib/access-control.pl/1985/852348.pdf Sandia Software Guidelines Volume 5 Tools, Techniques,and Methodologies] SANDIA REPORTS 85–2348qUC–32</ref>
It was used to develop requirements, construct the design, and support implementation of an expert system to demonstrate automated rendezvous. Verification was then conducted systematically because of the method of design and implementation.<ref>Mary Ann Goodwin and Charles C. Robertson (1986). [http://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19880007850_1988007850.pdf EXPERT SYSTEM VERIFICATION CONCERNS IN AN OPERATIONS ENVIRONMENT]. NASA paper N88-17234.</ref>
The overall design of the system is documented using HIPO charts or [[structure chart]]s. The structure chart is similar in appearance to an organizational chart, but has been modified to show additional detail. Structure charts can be usedto display several types of information, but are used most commonly to diagram either [[data structure]]s or code structures.<ref name="Sandia92"/>
=== N2 Chart ===
[[File:N2 chart definition.JPG|thumb|240px|Figure 2. N2 chart definition.<ref name="NASA95"/>]]
The [[N2 Chart]] is a diagram in the shape of a [[Matrix (mathematics)|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 [[interface (computing)|interface]]s and [[computer hardware|hardware]] and/or [[software]] interfaces.<ref name="faa.gov"/>
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.
<ref name="NASA95">NASA (1995). "Techniques of Functional Analysis". In: ''[http://human.space.edu/old/docs/Systems_Eng_Handbook.pdf NASA Systems Engineering Handbook]'' June 1995. p.142.</ref>
=== Structured Analysis and Design Technique ===
[[File:SADT.svg|thumb|180px|left|SADT basis element.]]
[[Structured Analysis and Design Technique]] (SADT) is a [[software engineering methodology]] for describing [[system]]s as a hierarchy of functions, a [[diagram]]matic notation for constructing a sketch for a 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]].<ref name ="JM04">[[John Mylopoulos]] (2004). [http://www.cs.toronto.edu/~jm/2507S/Notes04/SADT.pdf Conceptual Modelling III. Structured Analysis and Design Technique (SADT)]. Retrieved 21 Sep 2008.</ref> 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 used in industrial Information Systems, but also to explain and to present an activity’s manufacturing processes, procedures.<ref name="FL">[http://www.free-logistics.com/index.php/Download-document/22-SADT_eng.html SADT] at Free-logistics.com. Retrieved 21 Sep 2008.</ref>
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 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.<ref>Gavriel Salvendy (2001). ''Handbook of Industrial Engineering: Technology and Operations Management.''. p.508.</ref>
=== IDEF0 ===
[[File:IDEF Diagram Example.jpg|thumb|320px|[[IDEF0]] Diagram Example]]
[[IDEF0]] 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 system]]s; business processes; or software engineering analysis.<ref name="DAC01">[http://www.dau.mil/pubs/pdf/SEFGuide%2001-01.pdf ''Systems Engineering Fundamentals.''] Defense Acquisition University Press, 2001.</ref> 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 [[Structured Analysis and Design Technique|SADT]].
The IDEF0 Functional Modeling method is designed to model the decisions, actions, and activities of an organization or system.<ref name = "VG00"/> 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.<ref name= "ITL93"/> 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.<ref name = "VG00">[[Varun Grover]], [[William J. Kettinger]] (2000). ''Process Think: Winning Perspectives for Business Change in the Information Age. p.168.</ref>
=== Axiomatic Design ===
[[Axiomatic design]] is a top down hierarchical functional decomposition process used as a solution synthesis framework for the analysis, development, re-engineering, and integration of products, information systems, business processes or software engineering solutions.<ref name="AD">Suh (2001). Axiomatic Design: Advances and Applications, Oxford University Press, 2001, ISBN 0-19-513466-4</ref> Its structure is suited mathematically to analyze coupling between functions in order to optimize the architectural robustness of potential functional solution models.
== Related types of models ==
In the field of systems and software engineering numerous specific function and functional models and close related 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. They "provide a conceptual structure for the identification of general business functions".<ref>Paul Grefen (2010) ''Mastering e-Business''. p. 5-10</ref> It can show the critical [[business process]]es 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.<ref>US Department of Interior (2000-08) ''Analyze the Business and Define the Target Business Environment''. Accessed 27 Nov 2008.<!-- Now no longer online--></ref>
=== Business Process Model and Notation ===
[[Image:BPMN-AProcesswithNormalFlow.svg|thumb|320px|[[Business Process Modeling Notation]] Example.]]
[[Business Process Model and Notation]] (BPMN) is a [[Information visualisation|graphical representation]] for specifying [[business process]]es 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 2.0.<ref name="bpmifaq">{{cite web|author= |title=BPMN Information|url=http://www.bpmn.org/Documents/FAQ.htm|accessdate=2008-11-02}}</ref>
The Business Process Model and Notation (BPMN) specification provides a graphical notation for specifying [[business process]]es in a [[Business Process Diagram]] (BPD).<ref>Richard C. Simpson (2004). [http://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/20050202022_2005202152.pdf ''An XML Representation for Crew Procedures'']. Final Report NASA Faculty Fellowship Program - 2004. Johnson Space Center.</ref> 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]].<ref>S.A. White, "Business Process Modeling Notation (BPMN)," In: ''Business Process Management Initiative (BPMI)'' 3 May 2004.</ref>
=== Business reference model ===
[[Image:FEA BRM Hierachy.JPG|thumb|320px|This FEA [[Business reference model]] depicts the relationship between the business processes, business functions, and the business area’s business reference model.]]
A [[Business reference model]] is a reference model, concentrating on the functional and organizational aspects of the [[core business]] of an [[Business|enterprise]], [[Tertiary sector of the economy|service organization]] or [[government agency]]. In enterprise engineering a business reference model is part of an [[Enterprise Architecture Framework]] or ''Architecture Framework'', which defines how to organize the structure and [[view model|views]] associated with an [[Enterprise Architecture]].
A [[reference model]] in general is a model of something that embodies the basic goal or idea of something and can then be looked at as a reference for various purposes. A business reference model is a means to describe the [[business operations]] of an organization, independent of the [[organizational structure]] that perform them. Other types of business reference model can also depict the relationship between the [[business process]]es, business functions, and the [[business area]]’s business reference model. These reference model can be constructed in layers, and offer a foundation for the analysis of service components, technology, data, and performance.
=== 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 [[Mental model|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.<ref>[http://www2.hf.faa.gov/workbenchtools/default.aspx?rPage=Tooldetails&toolID=192 Operator Function Model (OFM)]. Accessed 27 Nov 2008.</ref>>
== See also ==
{{Commons category|Function models}}
* [[Bus Functional Model]]
* [[Business process modeling]]
* [[Data model]]
* [[Enterprise modeling]]
* [[Functional Software Architecture]]
* [[Polynomial and rational function modeling#Polynomial function models|Polynomial function model]]
* [[Polynomial and rational function modeling#Rational function models|Rational function model]]
* [[Scientific modeling]]
* [[Unified Modeling Language]]
* [[View model]]
== References ==
{{NIST-PD}}
{{reflist|30em}}
{{Software engineering}}
{{Systems Engineering}}
{{DEFAULTSORT:Function Model}}
[[Category:Software architecture]]
[[Category:Systems analysis]]
[[Category:Systems engineering]]
[[Category:Software design]]' |
New page wikitext, after the edit (new_wikitext ) | 'A '''function model''' or ''functional model'' in [[systems engineering]] and [[software engineering]] is a structured too stroke your dads dick up and down like a watered teabag 😂😂😂😂[[Representation (systemics)|representation]] of the [[Function (engineering)|functions]] ([[Activity diagram|activities]], [[Task analysis|actions]], [[wikt:process|process]]es, [[Operations management|operation]]s) within the modeled [[system]] or subject area.<ref name= "ITL93">[http://www.itl.nist.gov/fipspubs/idef02.doc FIPS Publication 183] released of IDEFØ December 1993 by the Computer Systems Laboratory of the National Institute of Standards and Technology (NIST).</ref> [[File:IDEF Diagram Example.jpg|thumb|360px|Example of a function model of the process of "Maintain Reparable Spares" in [[IDEF0]] notation.]]
A function model, similar with the [[activity diagram|activity model]] or [[process model]], is a graphical representation of an [[Business|enterprise]]'s function within a defined scope. The purposes 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.<ref name="rmsc-1995">[http://www.archives.gov/era/pdf/rmsc-19951006-dod-rm-function-and-information-models.pdf Reader's Guide to IDEF0 Function Models]. Accessed 27 Nov 2008.</ref>
== History ==
The function model in the field of systems engineering and software engineering originates in the 1950s and 1960s, but the origin of functional modelling of organizational activity goes back to the late 19th century.
In the late 19th century the first diagrams appeared that pictured business activities, actions, processes, or operations, and in the first half of the 20th century the first structured methods for documenting business process activities emerged. One of those methods was the [[flow process chart]], introduced by [[Frank Gilbreth]] to members of [[American Society of Mechanical Engineers]] (ASME) in 1921 with the presentation, entitled “Process Charts—First Steps in Finding the One Best Way”.<ref name="BBG02">Ben B. Graham (2002). ''Detail Process Charting''. p.2.</ref> Gilbreth's tools quickly found their way into [[industrial engineering]] curricula.
The emerge of the field of ''systems engineering'' can be traced back to [[Bell Labs|Bell Telephone Laboratories]] in the 1940s.<ref>{{Cite journal
| last =Schlager
| first =J.
| title =Systems engineering: key to modern development
| journal =IRE Transactions
| volume =EM-3
| pages =64–66
|date=July 1956
| doi =10.1109/IRET-EM.1956.5007383
| issue =3
}}</ref> The need to identify and manipulate the properties of a system as a whole, which in complex engineering projects may greatly differ from the sum of the parts' properties, motivated various industries to apply the discipline.<ref>{{Cite book
| author =[[Arthur D. Hall]]
| title =A Methodology for Systems Engineering
| publisher =Van Nostrand Reinhold
| isbn =0-442-03046-0
| year =1962
}}</ref> One of the first to define the function model in this field was the British engineer [[William Gosling (engineer)|William Gosling]]. In his book ''The design of engineering systems'' (1962, p. 25) he stated:
:''A functional model must thus achieve two aims in order to be of use. It must furnish a throughput description mechanics capable of completely defining the first and last throughput states, and perhaps some of the intervening states. It must also offer some means by which any input, correctly described in terms of this mechanics, can be used to generate an output which is an equally correct description of the output which the actual system would have given for the input concerned. It may also be noted that there are two other things which a functional model may do, but which are not necessary to all functional models. Thus such a system may, but need not, describe the system throughputs other than at the input and output, and it may also contain a description of the operation which each element carries out on the throughput, but once again this is not.''<ref>[[William Gosling (engineer)|William Gosling]] (1962) ''The design of engineering systems''. p. 23</ref>
One of the first well defined function models, was the [[Functional Flow Block Diagram]] (FFBD) developed by the defense-related [[TRW Inc.|TRW]] Incorporated in the 1950s.<ref>Tim Weilkiens (2008). ''Systems Engineering with SysML/UML: Modeling, Analysis, Design''. Page 287.</ref> In the 1960s it was exploited by the [[NASA]] to visualize the time sequence of events in a space systems and flight missions.<ref>[[Harold Chestnut]] (1967). ''Systems Engineering Methods''. Page 254.</ref> It is further widely used in classical [[systems engineering]] to show the order of execution of system functions.<ref name="TD03">Thomas Dufresne & James Martin (2003). [http://mason.gmu.edu/~tdufresn/paper.doc "Process Modeling for E-Business"]. INFS 770 Methods for Information Systems Engineering: Knowledge Management and E-Business. Spring 2003</ref>
== Functional modeling topics ==
=== Functional perspective ===
In [[systems engineering]] and [[software engineering]] a function model is created with a functional [[Modeling perspectives|modeling perspective]]. The functional perspective is one of the perspectives possible in [[business process modelling]], other perspectives are for example behavioural, organisational or informational.<ref>[http://users.jyu.fi/~jpt/ME2000/Me14/sld004.htm Process perspectives]. In: ''Metamodeling and method engineering'', Minna Koskinen, 2000.</ref>
A functional modeling perspective concentrates on describing the [[dynamic system|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 diagram]]s.
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.
[[File:Fo2ufg823rhf832hfdorfg.JPG|thumb|Example of functional decomposition in a systems analysis.]]In [[Dynamic Enterprise Modeling]] a division is made in the [[Control model]], Function Model, [[Process model]] and [[Organizational model]].
=== Functional decomposition ===
[[Functional decomposition]] refers broadly to the process of resolving a [[Function (mathematics)|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''.
[[Decomposition (computer science)|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 [[role|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.
== Functional modeling methods ==
The functional approach is extended in multiple diagrammic techniques and modeling notations. This section gives an overview of the important techniques in chronological order.
=== Function block diagram ===
[[Image:Functional_block_diagram_of_the_attitude_control_and_maneuvering_electronics_system.jpg|thumb|320px|Functional block diagram of the attitude control and maneuvering electronics system of the [[Project_Gemini#Spacecraft|Gemini spacecraft]]. June 1962.]]
A [[functional block diagram]] is a [[block diagram]], that describes the functions and interrelationships of a [[system]]. The functional block diagram can picture:<ref>James Perozzo (1994) ''The complete guide to electronics troubleshooting''. p. 72</ref>
* Functions of a system pictured by blocks
* Input and output elements of a block pictured with lines, and
* Relationships between the functions
* Functional sequences and paths for matter and or signals<ref>William H. Von Alven (1964) ''Reliability engineering'' explains: "Functional block diagrams show functional sequences and signal paths, and items which are wired in parallel are drawn in parallel" (p. 286)</ref>
The block diagram can use additional schematic symbols to show particular properties.
Specific function block diagram are the classic [[Functional Flow Block Diagram]], and the [[Function Block Diagram]] (FBD) used in the design of [[programmable logic controller]]s.
=== Functional Flow Block Diagram ===
[[File:Functional Flow Block Diagram Format.jpg|thumb|320px|[[Functional Flow Block Diagram]] Format.<ref name="SEF01">[http://www.dau.mil/pubs/pdf/SEFGuide%2001-01.pdf ''Systems Engineering Fundamentals.''] Defense Acquisition University Press, 2001</ref>]]
The [[Functional flow block diagram]] (FFBD) is a multi-tier, time-sequenced, step-by-step [[flow diagram]] of the [[system]]’s functional flow.<ref name="faa.gov">The first version of this article is completely based on the [http://www.faa.gov/about/office_org/headquarters_offices/ato/service_units/operations/sysengsaf/seman/SEM3.1/Section%204.4.pdf NAS SYSTEM ENGINEERING MANUAL SECTION] 4.4 VERSION 3.1 06/06/06.</ref>
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''.<ref name="FAA08">[http://www.hf.faa.gov/webtraining/Usability/u17_tools2.htm Task Analysis Tools Used Throughout Development]. FAA 2008. Retrieved 25 Sept 2008.</ref>
Functional Flow Block Diagrams (FFBD) usually define the detailed, step-by-step operational and support sequences for [[system]]s, but they are also used effectively to define [[wikt:process|process]]es in developing and producing systems. The [[software development process]]es also use FFBDs extensively. In the system context, the functional flow steps may include combinations of [[computer hardware|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.<ref name="FAA06">FAA (2006). [http://www.faa.gov/about/office_org/headquarters_offices/ato/service_units/operations/sysengsaf/seman/SEM3.1/Section%204.4.pdf NAS SYSTEM ENGINEERING MANUAL SECTION] 4.4 VERSION 3.1 06/06/06.</ref>
=== HIPO and IPO ===
[[File:IPO-S Model.gif|thumb|180px|left|An expanded [[IPO Model]].]]
[[HIPO]] for ''hierarchical input process output'' is a popular 1970s [[systems analysis]] design aid and documentation technique<ref>IBM Corporation (1974).''HIPO—A Design Aid and Documentation Technique'', Publication Number GC20-1851, IBM Corporation, White Plains, NY, 1974.</ref> for representing the modules of a [[system]] as a [[hierarchy]] and for documenting each module.<ref name="Sandia92">Sandia National Laboratories (1992). [http://www.prod.sandia.gov/cgi-bin/techlib/access-control.pl/1985/852348.pdf Sandia Software Guidelines Volume 5 Tools, Techniques,and Methodologies] SANDIA REPORTS 85–2348qUC–32</ref>
It was used to develop requirements, construct the design, and support implementation of an expert system to demonstrate automated rendezvous. Verification was then conducted systematically because of the method of design and implementation.<ref>Mary Ann Goodwin and Charles C. Robertson (1986). [http://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19880007850_1988007850.pdf EXPERT SYSTEM VERIFICATION CONCERNS IN AN OPERATIONS ENVIRONMENT]. NASA paper N88-17234.</ref>
The overall design of the system is documented using HIPO charts or [[structure chart]]s. The structure chart is similar in appearance to an organizational chart, but has been modified to show additional detail. Structure charts can be usedto display several types of information, but are used most commonly to diagram either [[data structure]]s or code structures.<ref name="Sandia92"/>
=== N2 Chart ===
[[File:N2 chart definition.JPG|thumb|240px|Figure 2. N2 chart definition.<ref name="NASA95"/>]]
The [[N2 Chart]] is a diagram in the shape of a [[Matrix (mathematics)|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 [[interface (computing)|interface]]s and [[computer hardware|hardware]] and/or [[software]] interfaces.<ref name="faa.gov"/>
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.
<ref name="NASA95">NASA (1995). "Techniques of Functional Analysis". In: ''[http://human.space.edu/old/docs/Systems_Eng_Handbook.pdf NASA Systems Engineering Handbook]'' June 1995. p.142.</ref>
=== Structured Analysis and Design Technique ===
[[File:SADT.svg|thumb|180px|left|SADT basis element.]]
[[Structured Analysis and Design Technique]] (SADT) is a [[software engineering methodology]] for describing [[system]]s as a hierarchy of functions, a [[diagram]]matic notation for constructing a sketch for a 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]].<ref name ="JM04">[[John Mylopoulos]] (2004). [http://www.cs.toronto.edu/~jm/2507S/Notes04/SADT.pdf Conceptual Modelling III. Structured Analysis and Design Technique (SADT)]. Retrieved 21 Sep 2008.</ref> 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 used in industrial Information Systems, but also to explain and to present an activity’s manufacturing processes, procedures.<ref name="FL">[http://www.free-logistics.com/index.php/Download-document/22-SADT_eng.html SADT] at Free-logistics.com. Retrieved 21 Sep 2008.</ref>
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 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.<ref>Gavriel Salvendy (2001). ''Handbook of Industrial Engineering: Technology and Operations Management.''. p.508.</ref>
=== IDEF0 ===
[[File:IDEF Diagram Example.jpg|thumb|320px|[[IDEF0]] Diagram Example]]
[[IDEF0]] 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 system]]s; business processes; or software engineering analysis.<ref name="DAC01">[http://www.dau.mil/pubs/pdf/SEFGuide%2001-01.pdf ''Systems Engineering Fundamentals.''] Defense Acquisition University Press, 2001.</ref> 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 [[Structured Analysis and Design Technique|SADT]].
The IDEF0 Functional Modeling method is designed to model the decisions, actions, and activities of an organization or system.<ref name = "VG00"/> 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.<ref name= "ITL93"/> 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.<ref name = "VG00">[[Varun Grover]], [[William J. Kettinger]] (2000). ''Process Think: Winning Perspectives for Business Change in the Information Age. p.168.</ref>
=== Axiomatic Design ===
[[Axiomatic design]] is a top down hierarchical functional decomposition process used as a solution synthesis framework for the analysis, development, re-engineering, and integration of products, information systems, business processes or software engineering solutions.<ref name="AD">Suh (2001). Axiomatic Design: Advances and Applications, Oxford University Press, 2001, ISBN 0-19-513466-4</ref> Its structure is suited mathematically to analyze coupling between functions in order to optimize the architectural robustness of potential functional solution models.
== Related types of models ==
In the field of systems and software engineering numerous specific function and functional models and close related 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. They "provide a conceptual structure for the identification of general business functions".<ref>Paul Grefen (2010) ''Mastering e-Business''. p. 5-10</ref> It can show the critical [[business process]]es 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.<ref>US Department of Interior (2000-08) ''Analyze the Business and Define the Target Business Environment''. Accessed 27 Nov 2008.<!-- Now no longer online--></ref>
=== Business Process Model and Notation ===
[[Image:BPMN-AProcesswithNormalFlow.svg|thumb|320px|[[Business Process Modeling Notation]] Example.]]
[[Business Process Model and Notation]] (BPMN) is a [[Information visualisation|graphical representation]] for specifying [[business process]]es 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 2.0.<ref name="bpmifaq">{{cite web|author= |title=BPMN Information|url=http://www.bpmn.org/Documents/FAQ.htm|accessdate=2008-11-02}}</ref>
The Business Process Model and Notation (BPMN) specification provides a graphical notation for specifying [[business process]]es in a [[Business Process Diagram]] (BPD).<ref>Richard C. Simpson (2004). [http://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/20050202022_2005202152.pdf ''An XML Representation for Crew Procedures'']. Final Report NASA Faculty Fellowship Program - 2004. Johnson Space Center.</ref> 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]].<ref>S.A. White, "Business Process Modeling Notation (BPMN)," In: ''Business Process Management Initiative (BPMI)'' 3 May 2004.</ref>
=== Business reference model ===
[[Image:FEA BRM Hierachy.JPG|thumb|320px|This FEA [[Business reference model]] depicts the relationship between the business processes, business functions, and the business area’s business reference model.]]
A [[Business reference model]] is a reference model, concentrating on the functional and organizational aspects of the [[core business]] of an [[Business|enterprise]], [[Tertiary sector of the economy|service organization]] or [[government agency]]. In enterprise engineering a business reference model is part of an [[Enterprise Architecture Framework]] or ''Architecture Framework'', which defines how to organize the structure and [[view model|views]] associated with an [[Enterprise Architecture]].
A [[reference model]] in general is a model of something that embodies the basic goal or idea of something and can then be looked at as a reference for various purposes. A business reference model is a means to describe the [[business operations]] of an organization, independent of the [[organizational structure]] that perform them. Other types of business reference model can also depict the relationship between the [[business process]]es, business functions, and the [[business area]]’s business reference model. These reference model can be constructed in layers, and offer a foundation for the analysis of service components, technology, data, and performance.
=== 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 [[Mental model|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.<ref>[http://www2.hf.faa.gov/workbenchtools/default.aspx?rPage=Tooldetails&toolID=192 Operator Function Model (OFM)]. Accessed 27 Nov 2008.</ref>>
== See also ==
{{Commons category|Function models}}
* [[Bus Functional Model]]
* [[Business process modeling]]
* [[Data model]]
* [[Enterprise modeling]]
* [[Functional Software Architecture]]
* [[Polynomial and rational function modeling#Polynomial function models|Polynomial function model]]
* [[Polynomial and rational function modeling#Rational function models|Rational function model]]
* [[Scientific modeling]]
* [[Unified Modeling Language]]
* [[View model]]
== References ==
{{NIST-PD}}
{{reflist|30em}}
{{Software engineering}}
{{Systems Engineering}}
{{DEFAULTSORT:Function Model}}
[[Category:Software architecture]]
[[Category:Systems analysis]]
[[Category:Systems engineering]]
[[Category:Software design]]' |