Software reflexion models: bridging the gap between source and high-level models
SIGSOFT '95 Proceedings of the 3rd ACM SIGSOFT symposium on Foundations of software engineering
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
Adaptation in Natural and Artificial Systems: An Introductory Analysis with Applications to Biology, Control and Artificial Intelligence
Design Rules: The Power of Modularity Volume 1
Design Rules: The Power of Modularity Volume 1
Software Reflexion Models: Bridging the Gap between Design and Implementation
IEEE Transactions on Software Engineering
HyperCast: A Protocol for Maintaining Multicast Group Members in a Logical Hypercube Topology
NGC '99 Proceedings of the First International COST264 Workshop on Networked Group Communication
Bunch: A Clustering Tool for the Recovery and Maintenance of Software System Structures
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
An analysis of modularity in aspect oriented design
Proceedings of the 4th international conference on Aspect-oriented software development
Information hiding interfaces for aspect-oriented design
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Using dependency models to manage complex software architecture
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Equipping the Reflexion Method with Automated Clustering
WCRE '05 Proceedings of the 12th Working Conference on Reverse Engineering
Modular Software Design with Crosscutting Interfaces
IEEE Software
Modularity Analysis of Logical Design Models
ASE '06 Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering
Modularity in design: formal modeling and automated analysis
Modularity in design: formal modeling and automated analysis
Application-layer multicasting with Delaunay triangulation overlays
IEEE Journal on Selected Areas in Communications
Projecting code changes onto execution traces to support localization of recently introduced bugs
Proceedings of the 2009 ACM symposium on Applied Computing
Discovery of architectural layers and measurement of layering violations in source code
Journal of Systems and Software
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2
Towards an architectural viewpoint for systems of software intensive systems
Proceedings of the 2010 ICSE Workshop on Sharing and Reusing Architectural Knowledge
Detecting software modularity violations
Proceedings of the 33rd International Conference on Software Engineering
Controlling software architecture erosion: A survey
Journal of Systems and Software
A formal model for automated software modularity and evolvability analysis
ACM Transactions on Software Engineering and Methodology (TOSEM)
Hi-index | 0.00 |
According to Parnas's information hiding principle and Baldwin and Clark's design rule theory, the key step to decomposing a system into modules is to determine the design rules (or in Parnas's terms, interfaces) that decouple otherwise coupled design decisions and to hide decisions that are likely to change in independent modules. Given a modular design, it is often difficult to determine whether and how its implementation realizes the designed modularity. Manually comparing code with abstract design is tedious and error-prone. We present an automated approach to check the conformance of implemented modularity to designed modularity, using design structure matrices as a uniform representation for both. Our experiments suggest that our approach has the potential to manifest the decoupling effects of design rules in code, and to detect modularity deviation caused by implementation faults. We also show that design and implementation models together provide a comprehensive view of modular structure that makes certain implicit dependencies within code explicit.