MSc-IT Study Material
January 2011 Edition

Computer Science Department, University of Cape Town
| MIT Notes Home | Edition Home |

Information hiding

Information hiding is an important aspect of modularity, and if you recall the definition of abstraction (reducing information content to only what is important), information hiding is an important aspect to the abstraction of software.

Specifically, consider that the final software system is the lowest level of abstraction. All of the software's design details are present at this level. Information hiding allows us to hide information unnecessary to a particular level of abstraction within the final software system, allowing for software engineers to better understand, develop and maintain the software.

We use software modules to implement information hiding: the information contained in the modules should be hidden from those the rest of the software system outside of the module, and access to this hidden information should be carefully controlled. This allows us to maintain a higher level of abstraction in our software, making our software more comprehensible.

If information hiding is done well, changes made to the hidden portions of a module should not affect anything outside of the module. This allows the software engineers to more readily manage change (including changes in the requirements).