Ada has emerged as a powerful language support with efforts of international committees. In order to enjoy the full benefits of software reuse, we have to design for it, and it is possible with a language which supports the design for reuse. Ada has been considered as a suitable language for its technical features.
The following are the major technical reasons for its support.
1. Ada supports very important issues of Software Engineering principles such as Abstraction, Encapsulation, Strong typing, Exception mechanism, Information hiding, and Modularization. These are the contributing factors for the development of reliable software systems.
2. Concept of private type declarations.
3. Overloading of subprograms and default values.
4. Creation of generic units ( packages, and subprograms).
5. Separate compilation of units with strong distinction between specification and body. This concept is very essential in order to separate the large programs into simpler, more manageable parts, and to create libraries of program units.
6. The existence of a library, and supporting tools.
Surprisingly, all these concepts are not yet available together in any other traditional languages[ Ebel, Genillard 90] and obviously all the credentials make us to choose Ada as an implementation language vehicle or a technological support for software reuse. [Gargaro, Pappas'87] says, "One of the expected benefits of writing applications in Ada is the ability to reuse parts of the software in different applications and execution environments".