Monday

Abstraction

  • Abstraction is a tool that permits a designer to consider a component at an abstract level without worrying about the details of the implementation of the component.
  • An abstraction of a component describes the external behavior of that component without bothering with the internal details that produce the behavior.
  • Abstraction is an indispensable part of the design process and is essential for problem partitioning.
  • There are two common abstraction mechanisms for software systems:
        - Functional abstraction, a module is specified by the function it performs.
  • For example, a module to compute the log of a value can be abstractly represented by the function log.
  • Similarly, a module to sort an input array can be represented by the specification of sorting.
       - Functional abstraction is the basis of partitioning in function-oriented approaches. The decomposition of the system is in terms of functional modules.

       - Data abstraction, any entity in the real world provides some services to the environment to which it belongs.

       - Data is not treated simply as objects, but is treated as objects with some predefined operations on them. The operations defined on a data object are the only operations that can be performed on those objects.

       - Data abstraction forms the basis for object-oriented design.

1 comment: