The practical guide to structured systems design: 2nd edition
The practical guide to structured systems design: 2nd edition
A software metric system for module coupling
Journal of Systems and Software - Special issue on the Oregon Metric Workshop
ACM Transactions on Programming Languages and Systems (TOPLAS)
ACM Computing Surveys (CSUR)
On the criteria to be used in decomposing systems into modules
Communications of the ACM
The structure and value of modularity in software design
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
A Dynamic Runtime Coupling Metric for Meta-Level Architectures
CSMR '04 Proceedings of the Eighth Euromicro Working Conference on Software Maintenance and Reengineering (CSMR'04)
The Structural Complexity of Software: An Experimental Test
IEEE Transactions on Software Engineering
Modular Software Design with Crosscutting Interfaces
IEEE Software
Object-Oriented Software Engineering: Using UML, Patterns and Java, Second Edition
Object-Oriented Software Engineering: Using UML, Patterns and Java, Second Edition
Understanding component co-evolution with a study on Linux
Empirical Software Engineering
Multiple-parameter coupling metrics for layered component-based software
Software Quality Control
Journal of Systems and Software
Toward evolving self-organizing software systems: a complex system point of view
IEA/AIE'11 Proceedings of the 24th international conference on Industrial engineering and other applications of applied intelligent systems conference on Modern approaches in applied intelligence - Volume Part II
Hi-index | 0.00 |
Modularity, hierarchy, and interaction locality are general approaches to reducing the complexity of any large system. A widely used principle in achieving these goals in designing software systems is striving for high cohesion within a module and low coupling between modules. However, this principle has difficulties in practice. Because a hierarchical system structure often consists of several layers, it is difficult to decide at what layer an interaction should be considered as cohesion, and at what layer an interaction should be considered as coupling. In this paper, we do not differentiate cohesion and coupling, but use a general term interaction to represent the dependencies between software modules. We propose a method to verify the design modularity, hierarchy, and interaction locality of a software system. This approach is based on the component interactions gathered from certain design level artifacts, such as UML diagrams. Data clustering technique is then used to group software components according to the degree of interactions between them. To show how to use this approach, we apply it to Parna's KWIC object-oriented design example, in which sequence diagram is used to derive the degree of component interactions.