A classification scheme for software modules
The current abstract view of the detailed architecture of a software program simply focuses on a set of modules that interact with each other. The pictorial view of the architecture of modules abstracts to a directed, connected, acyclic graph whose nodes are modules and whose arcs reveal the reference dependency relationship. No distinction exists among the modules. This paper provides a decided distinction. This paper introduces a new, formal, objective classification scheme of ten classes for modules. The process of fashioning the classification scheme applies the software principle of information hiding to three internal structural components of a module. These components are the variable, the data structure, and the subprogram. Two conceptual constructs enable information hiding. One is the encapsulation of a data structure (object). The other is the inaccessible section of a module which is the section that no external module can reference. Each module belongs to exactly one class. The assignment of a module to a class is objective, not subjective. The scheme opens up the opportunity for a deeper study into each class. The classes of the scheme are subjectively ranked into four categories, ranging from best to worst. The paper lists five benefits of this classification scheme, and relates these benefits to three application areas.
classification module information hiding encapsulation