Functional design

Functional design

Functional design is a paradigm used to simplify the design of computer software and increasingly, 3D modeling. A functional design assures that each modular part of a computer program 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.

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 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 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.

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 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.


Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Look at other dictionaries:

  • functional design — funkcinis projektavimas statusas T sritis radioelektronika atitikmenys: angl. functional design vok. funktioneller Entwurf, m; Funktionsentwurf, m rus. функциональное проектирование, n pranc. conception fonctionnelle, f …   Radioelektronikos terminų žodynas

  • Functional design — …   Википедия

  • Design management — is the business side of design. Design managers need to speak the language of the business and the language of design …   Wikipedia

  • Design — For the 1970s music group, see Design (UK band). All Saints Chapel in the Cathedral Basilica of St. Louis by Louis Comfort Tiffany. The building structure and decorations are both examples of design …   Wikipedia

  • Functional fixedness — is a cognitive bias that limits a person to using an object only in the way it is traditionally used. The concept of functional fixedness originated in Gestalt Psychology, a movement in psychology that emphasizes holistic processing. Karl Duncker …   Wikipedia

  • Design For Test — (aka Design for Testability or DFT ) is a name for design techniques that add certain testability features to a microelectronic hardware product design. The premise of the added features is that they make it easier to develop and apply… …   Wikipedia

  • Design for testing — Design for Test (aka Design for Testability or DFT ) is a name for design techniques that add certain testability features to a microelectronic hardware product design. The premise of the added features is that they make it easier to develop and… …   Wikipedia

  • Functional verification — Functional verification, in electronic design automation, is the task of verifying that the logic design conforms to specification. In everyday terms, functional verification attempts to answer the question Does this proposed design do what is… …   Wikipedia

  • Design engineer — is a general term that covers multiple engineering disciplines including electrical, mechanical, industrial design and civil engineering, architectural engineers in the U.S. and building engineers in the UK. The design engineer is distinguished… …   Wikipedia

  • Functional Formism — FUNCTIONAL FORMISM:The Dictate and Reveal of Primary Function and Formative Expression. A definitive Architectural and Applied Design Engineering categoric designation irrespective of the period and stylate reference other than taking subjective… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”