Towards the explicitation of hidden dependencies in the module interface
Faculty of Applied Economics
Engineering sciences. Technology
Proceedings of the Seventh International Conference on Systems, February 29 - March 5, 2012, Saint Gilles, Reunion Island / Mannaert, Herwig [edit.]; e.a.
University of Antwerp
Balancing between the desire for informationhiding and the risk of introducing undesired hidden dependencies is often not straightforward. Hiding important parts of the internal functionality of a module is known as the black box principle, and is associated with the property of reusability and consequently evolvability. An interface, which is roughly explaining the core functionality of a module, helps indeed the developer to use the functionality without being forced to concentrate on the implementation details. However, some implementation details should not be hidden if they hinder the use of the module when the environment changes. These kind of implementation details can be called undesired hidden dependencies. An interesting question then becomes, which information should be hidden and which not? In this paper, we use the Normalized Systems theorems as a base to evaluate which details should be hidden versus transparent in order to improve reusability. In other words, which kind of information encapsulation contributes towards safe black box reuse?