Jan 3, 2013

Abstract layers and modular design.


An abstraction layer (or abstraction level, or a layer of abstraction) is a way of hiding the implementation details of a particular set of functionality.

The simplification provided by a good abstraction layer allows for easy reuse.

Easy
Modularity is the degree to which a system's components may be separated and recombined.
wiki - Modular design
Modular design, or "modularity in design", is an approach that subdivides a system into smaller parts (modules) that can be independently created and then used in different systems to drive multiple functionalities. A modular system can be characterized by the following:
  1. Functional partitioning into discrete scalable, reusable modules consisting of isolated, self-contained functional elements
  2. Rigorous use of well-defined modular interfaces, including object-oriented descriptions of module functionality
  3. Ease of change to achieve technology transparency and, to the extent possible, make use of industry standards for key interfaces.
Besides reduction in cost (due to lesser customization, and less learning time), and flexibility in design, modularity offers other benefits such as augmentation (adding new solution by merely plugging in a new module), and exclusion.
Divide et impera
In industrial design, modularity refers to an engineering technique that builds larger systems by combining smaller subsystems.
LEGO bricks

Anything constructed can then be taken apart again, and the pieces used to make other objects.

No comments:

Post a Comment