An information-hiding metric
Abstract The most critical problem facing developers and maintainers of large software systems is overwhelming complexity. Abstraction, a powerful tool for dealing with complexity, limits details that must be considered to those that are most relevant. Programming languages have evolved to provide a high-level construct, called a module or a class, that supports abstraction by allowing the encapsulation of details and enforcing information hiding. Programs written in these modular programming languages should be designed to produce programs that are easier to understand, modify, and test. This article describes the creation of metrics for information hiding at the module level. The relationship between the information-hiding metrics and the maintainability of programs is examined by use of subjective validation and a case study of a large Ada program.