Functional design
   HOME

TheInfoList



OR:

Functional Design is a paradigm used to simplify the design of hardware and software devices such as computer
software Software is a set of computer programs and associated software documentation, documentation and data (computing), data. This is in contrast to Computer hardware, hardware, from which the system is built and which actually performs the work. ...
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 A coupling is a device used to connect two shafts together at their ends for the purpose of transmitting power. The primary purpose of couplings is to join two pieces of rotating equipment while permitting some degree of misalignment or end mov ...
.


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,
Software Maintenance Costs by Jussi Koskinen 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 resource (computer science), resources 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 An interrupt vector table (IVT) is a data structure that associates a list of interrupt handlers with a list of interrupt requests in a table of interrupt vectors. Each entry of the interrupt vector table, called an interrupt vector, is the add ...
and the
main loop In computer science, the event loop is a programming construct or design pattern that waits for and dispatches events or messages in a program. The event loop works by making a request to some internal or external "event provider" (that generally ...
. 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 is the practice of receiving private property, titles, debts, entitlements, privileges, rights, and obligations upon the death of an individual. The rules of inheritance differ among societies and have changed over time. Officia ...
, 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 Solid modeling (or solid modelling) is a consistent set of principles for mathematical and computer modeling of three-dimensional shapes ''solid (mathematics), (solids)''. Solid modeling is distinguished from related areas of geometric modeling ...
for 3D modeling and simulation. In this context, they mean a parametric model 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.


References


External links


Functional Design Specification

7 Essential Guidelines For Functional Design

Exemplar - CPU 1 FLIGHT SOFTWARE FUNCTIONAL DESIGN DOCUMENT
{{Design Software architecture Computer-aided design Design