Exploiting Client Usage to Manage Program Modularity
Exploiting Client Usage to Manage Program Modularity
复制标题
DOI:
10.7892/boris.104700
复制
发表时间:
2006-06
期刊:
影响因子:
--
通讯作者:
María Laura Ponisio
中科院分区:
文献类型:
--
作者:
María Laura Ponisio
Over the last thirty years designers have tried to cope with software complexity by organizing system entities into modules, i.e. groups of entities. However, the creation and organization of modules is not straightforward. The criterion with which these modules are built impacts in the maintainability and development of the system. Designers have different interests and personal views of the same system, views that are difficult to communicate and to extract from the code. Poor understanding of this organization increases the complexity of the system e.g. by favoring the addition of duplication and of unexpected rippling effects. This, in turn, lowers the flexibility of the system to changing requirements and leads to a sharp increase in their maintenance cost. To overcome these problems, we present a methodology to manage the locality in object-oriented systems. We develop a model that exploits the contextual information, i.e. the way objects are used by their clients, to understand and improve the organization of classes in the system. With our model we take full advantage of the contextual information of modules to evaluate their cohesion, find misplaced classes, detect hot spots and find the different views that its clients have. In our experimental validation we apply the contextual information to understand, maintain and describe systems. Our methodology is applied successively together with metrics, visualization techniques, and an optimization method named simulated annealing to reverse-engineer object-oriented systems. All in all, we provide a methodology to understand and improve the modularization of object-oriented systems, in an effort towards simplicity.