Abstraction and Information Hiding Come to the Fore


Therefore, methods during the 1970s and early 1980s were based on the prototyping version of the Waterfall Software Life Cycle. Abstraction and information hiding came to the forefront. So much so, in fact, that the U.S. government sought to devise a new language that embodied these two concepts from the start. The languages of the day, such as Pascal, could be manipulated into information hiding, since the idea had been around for so long and had penetrated language designers conception of programming languages. Except for a couple of academic experiments, abstraction per se was not institutionalized.

Discussion

How can the last described phenomenon be explained?

The language Ada rectified the situation [Ada83]. The language was named after Ada Augusta Lovelace, daughter of Lord Byron, who was the first programmer of Charles Babbage s mechanical computer ”the Analytical Engine. The language had all the features of a third-generation (beyond machine code and COBOL//FORTRAN) language as well as two parts to every procedure and package: a specification part and the body . They were separately compliable. The keyword private in the interface meant just that. It did not matter how the body was built; the programmer did not need to know. As an example of how this aids both abstraction and information hiding, let us consider a stack.

A stack has three operations, push , pop , and empty . Hopefully, the last procedure is done first so we can see if pop is possible to prevent trying to pop an empty stack (think of a stack of cafeteria trays). These three operations are defined as part of the specification part. If it is an Ada generic package, we do not even need to assign a type. Later, when we include the package into our assembly of parts, we can assign this generic to be character or integer type, for example, meaning that this can be a character or integer stack. The body can be written at any time.

Task  

How does such a feature of a programming language influence the programming task from the developer s perspective?

The specification part, thus, is an example of abstraction, since it represents operations as an abstract stack. The body contains the secret of whether the stack is a linked list or an array, perhaps. Therefore, information hiding is present and a programmer cannot cheat and derive a data item by indexing the hidden structure.

Tasks  
  1. Suggest additional examples of such implementation of the idea of abstraction.

  2. Read about data abstraction and procedural abstraction. What is common to these two types of abstraction (in other words, what is the abstract idea behind them? ”pun intended). In what case is each used?

Ada, the language, went through several iterations of requirements and design before release of the first version in 1983. The U.S. government thought that Ada would replace hundreds of languages in use and it was prescribed for government contractors soon after. However, within a decade or so, even after being fully converted to object orientation in Ada95, extensive waivers and natural chafing against a mandated requirement killed it. The government ensured compliance by granting certifications to compilers that passed a test suite they maintained . Although several major military and space projects use Ada, it never caught on. The chief argument is that it is too big, a language for all seasons.




Human Aspects of Software Engineering
Human Aspects of Software Engineering (Charles River Media Computer Engineering)
ISBN: 1584503130
EAN: 2147483647
Year: 2004
Pages: 242

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net