Abstraction
When we suppose a modular solution to any problem several levels of abstraction can be posed. At the highest stage of abstraction a solution is stated in broad terms using the language of the problem environment. Lower levels of abstraction a more procedural orientation is taken. The Problem-oriented terminology is couples with implementation-oriented terminology in an effort to state a solution. In the final stage, at the lowest level of abstraction the solution is beginning in a manner which can be directly implemented. Wasserman gives a useful definition:
The psychological concept of abstraction permits one to concentrate on a problem at some level of generalization without regard to irrelevant low level details use of abstraction also permits one to work with concepts and terms which are familiar which can be directly implemented. The Wasserman gives environment without having to transform them to an unfamiliar structure....
Each and every step in the software engineering process is a refinement in the stage of abstraction of the software solution. In the duration system engineering, software is allocated as parts of a computer-based system. In the duration of software needs analysis the software solution is begin in terms which are familiar in the problem environment. As we move by the design process the level of abstraction is reduced. At the end the lowest level of abstraction is reached when source code is generated.
As we move through several stages of abstraction we work to established data abstractions and procedural. A procedural abstraction is a named sequence of instructions which has a limited function and specific. Example for of a procedural abstraction would be the word open on a door. Open refer a long sequence of procedural steps example for walk to the door reach out and grasp knob turn knob and pull door; step away from moving door, etc. the data abstraction is a named collection of data which define a data object.
In the circumstance of the procedural abstraction open noted above we can describe a data abstraction called door. Such as any data object the data abstraction for door would encompass a group of attributes which define the door example for swing direction, door type, weight, opening mechanism, dimensions. It follows which the procedural abstraction open would make use of information contained in the attributes of the data abstraction door.
A number of programming languages example for Ada, Modula, and CLU give mechanisms for creating abstract data types. Example for, the Ada package is a programming language mechanism which provides support for both procedural and data abstraction. The reality abstract data kind is used as a generic or template data structure from that other data structures can be instantiated.
The Control abstraction is the 3rd form of abstraction used in software design. Such as data abstraction and procedural control abstraction implies a program control mechanism without specifying internal details. Example for of a control abstraction is the synchronization semaphore (KA183) used to coordinate activities in an operating system.