Functional design
Encyclopedia
Functional design is a paradigm used to simplify the design of hardware and software devices such as computer software and increasingly, 3D models. A functional
design assures that each modular part of a device has only one responsibility and performs that responsibility with the minimum of side effects on other parts. Functionally-designed modules tend to have low coupling
.
Systems with functionally-designed parts are easier to modify because each part does only what it claims to do.
Since maintenance is more than 3/4 of a successful system's life, this feature is a crucial advantage. It also makes the system easier to understand and document, which simplifies training. The result is that the practical lifetime of a functional system is longer.
In a system of programs, a functional module will be easier to reuse because it is less likely to have side effects that appear in other parts of the system.
s to different modules. For example, most systems have an "initialization" section that starts up the modules. Other well-known examples are the interrupt vector table and the main loop.
Some functions inherently have mixed semantics. For example, a function "move the car from the garage" inherently has a side effect of changing the "car position". In some cases, the mixed semantics can extend over a large topological tree or graph of related concepts. In these unusual cases, functional design is not recommended by some authorities. Instead polymorphism, inheritance
, or procedural methods may be preferred.
of an object where the parameters are tied to real-world design criteria, such as an axle that will adjust its diameter based on the strength of the material and the amount of force being applied to it in the simulation. It is hoped that this will create efficiencies in the design process for mechanical and perhaps even architectural/structural assemblies by integrating the results of finite element analysis directly to the behavior of individual objects.
Function (engineering)
In engineering, a function is interpreted as a specific process, action or task that a system is able to perform .-In engineering design:In the lifecycle of engineering projects, there are usually distinguished subsequently: Requirements and Functional specification documents. The Requirements...
design assures that each modular part of a device has only one responsibility and performs that responsibility with the minimum of side effects on other parts. Functionally-designed modules tend to have low coupling
Coupling (computer science)
In computer science, coupling or dependency is the degree to which each program module relies on each one of the other modules.Coupling is usually contrasted with cohesion. Low coupling often correlates with high cohesion, and vice versa...
.
Advantages
The advantage for implementation is that if a software module has a single purpose, it will be simpler, and therefore easier and less expensive, to design and implement.Systems with functionally-designed parts are easier to modify because each part does only what it claims to do.
Since maintenance is more than 3/4 of a successful system's life, this feature is a crucial advantage. It also makes the system easier to understand and document, which simplifies training. The result is that the practical lifetime of a functional system is longer.
In a system of programs, a functional module will be easier to reuse because it is less likely to have side effects that appear in other parts of the system.
Technique
The standard way to assure functional design is to review the description of a module. If the description includes conjunctions such as "and" or "or", then the design has more than one responsibility, and is therefore likely to have side effects. The responsibilities need to be divided into several modules in order to achieve a functional design.Critiques and limits
Every computer system has parts that cannot be functionally pure because they exist to distribute CPU cycles or other resourceResource (computer science)
A resource, or system resource, is any physical or virtual component of limited availability within a computer system. Every device connected to a computer system is a resource. Every internal system component is a resource...
s to different modules. For example, most systems have an "initialization" section that starts up the modules. Other well-known examples are the interrupt vector table and the main loop.
Some functions inherently have mixed semantics. For example, a function "move the car from the garage" inherently has a side effect of changing the "car position". In some cases, the mixed semantics can extend over a large topological tree or graph of related concepts. In these unusual cases, functional design is not recommended by some authorities. Instead polymorphism, inheritance
Inheritance (computer science)
In object-oriented programming , inheritance is a way to reuse code of existing objects, establish a subtype from an existing object, or both, depending upon programming language support...
, or procedural methods may be preferred.
Applied to 3D modeling and simulation
Recently several software companies have introduced functional design as a concept to describe a Parametric feature based modeler for 3D modeling and simulation. In this context, they mean a parametric modelParametric model
In statistics, a parametric model or parametric family or finite-dimensional model is a family of distributions that can be described using a finite number of parameters...
of an object where the parameters are tied to real-world design criteria, such as an axle that will adjust its diameter based on the strength of the material and the amount of force being applied to it in the simulation. It is hoped that this will create efficiencies in the design process for mechanical and perhaps even architectural/structural assemblies by integrating the results of finite element analysis directly to the behavior of individual objects.
Software
- FunctionCAD is an open source application used for the visual representation of functional models.