Abstraction in Design

Posted By on April 24, 2016


Download PDF
Design Principles
Software Architecture
  • Abstraction refers to a powerful design tool, which allows software designers to consider components at an abstract level, while neglecting the implementation details of the components.
  • IEEE defines abstraction as ‘a view of a problem that extracts the essential information relevant to a particular purpose and ignores the remainder of the information.’
  • The concept of abstraction can be used in two ways: as a process and as an entity.
  • As a process, it refers to a mechanism of hiding irrelevant details and representing only the essential features of an item so that one can focus on important things at a time.
  • As an entity, it refers to a model or view of an item.
  • Each step in the software process is accomplished through various levels of abstraction.
  • At the highest level, an outline of the solution to the problem is presented whereas at the lower levels, the solution to the problem is presented in detail.
  • For example, in the requirements analysis phase, a solution to the problem is presented using the language of problem environment and as we proceed through the software process, the abstraction level reduces and at the lowest level, source code of the software is produced.
  • There are three commonly used abstraction mechanisms in software design, namely, functional abstraction, data abstraction and control abstraction.
  • All these mechanisms allow us to control the complexity of the design process by proceeding from the abstract design model to concrete design model in a systematic manner.
    1. Functional abstraction: This involves the use of parameterized subprograms. Functional abstraction can be generalized as collections of subprograms referred to as ‘groups’. Within these groups there exist routines which may be visible or hidden. Visible routines can be used within the containing groups as well as within other groups, whereas hidden routines are hidden from other groups and can be used within the containing group only.
    2. Data abstraction: This involves specifying data that describes a data object. For example, the data object window encompasses a set of attributes (window type, window dimension) that describe the window object clearly. In this abstraction mechanism, representation and manipulation details are ignored.
    3. Control abstraction: This states the desired effect, without stating the exact mechanism of control. For example, if and while statements in programming languages (like C and C++) are abstractions of machine code implementations, which involve conditional instructions. In the architectural design level, this abstraction mechanism permits specifications of sequential subprogram and exception handlers without the concern for exact details of implementation.
Design Principles
Software Architecture

Download PDF

Posted by Akash Kurup

Founder and C.E.O, World4Engineers Educationist and Entrepreneur by passion. Orator and blogger by hobby

Website: http://world4engineers.com