ABSTRACT

Abstraction is an approach that focuses on the overall purpose of a design element, without being distracted by low-level details. Modularity supports using abstraction to allow the designer to think of the system in terms of black boxes that deliver specific functionality and have interfaces for communication, without focusing on the implementation details of these boxes. Information hiding is a design principle that limits access of the user of an object by constructing a class interface that acts as a communication medium between the user of the class and the class. The interface hides the details of the class implementation, with the effect that the complexity of the design is reduced, the maintenance capability is enhanced, and the security of data is protected. Information hiding allows encapsulation of data and behavior so that an object is viewed as a single entity. The activities associated with arriving at a sound architecture and design for a software system are critical.