Principles of software engineering

ion is the elimination of the irrelevant and amplification of the essentials. A number of levels of abstraction exist in a modular design. At the highest level, the solution is mentioned at a very broad level in terms of the problem. At the lower levels, a procedure oriented action is taken wherein problem oriented design is coupled with implementation level design. At the lowest level, the solution is mentioned in the form that can be directly used for coding. The various levels of abstraction are as follows: Procedural Abstraction: It is a sequence of instructions that have limited functions in a specific area. For example, the word “prepare” for tea. Although it involves a lot of actions like going to the kitchen, boiling water in the kettle, adding tea leaves, sugar and milk, removing the kettle from the gas stove and finally putting the gas off. Data Abstraction: It is a named collection of data that describes the data object. For example, data abstraction for prepare tea will used kettle as a data object which in turn would contain a number of attributes like brand, weight, color, etc. Control Abstraction: It implies a program control mechanism without specifying its internal details. Example: Synchronization semaphore in operating system which is used for coordination amongst various activities.