Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
IBM Systems Journal
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
Design Rules: The Power of Modularity Volume 1
Design Rules: The Power of Modularity Volume 1
Design pattern implementation in Java and aspectJ
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The Influence of Software Module Systems on Modular Verification
Proceedings of the 9th International SPIN Workshop on Model Checking of Software
Modular Verification of Software Components in C
IEEE Transactions on Software Engineering
Summarization of dynamic content in web collections
PKDD '04 Proceedings of the 8th European Conference on Principles and Practice of Knowledge Discovery in Databases
An analysis of modularity in aspect oriented design
Proceedings of the 4th international conference on Aspect-oriented software development
Simon: modeling and analysis of design space structures
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Software Abstractions: Logic, Language, and Analysis
Software Abstractions: Logic, Language, and Analysis
A Systematic Approach to Generate Inputs to Test UML Design Models
ISSRE '06 Proceedings of the 17th International Symposium on Software Reliability Engineering
Modularity in design: formal modeling and automated analysis
Modularity in design: formal modeling and automated analysis
2nd workshop on assessment of contemporary modularization techniques (ACoM 2008)
Companion to the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
An integrated infrastructure for monitoring and evaluating agent-based systems
Expert Systems with Applications: An International Journal
Valuing Modularity as a Real Option
Management Science
Extending alloy with partial instances
ABZ'12 Proceedings of the Third international conference on Abstract State Machines, Alloy, B, VDM, and Z
A formal model for automated software modularity and evolvability analysis
ACM Transactions on Software Engineering and Methodology (TOSEM)
Trading obliviousness for modularity with cooperative aspect-oriented programming
ACM Transactions on Software Engineering and Methodology (TOSEM) - In memoriam, fault detection and localization, formal methods, modeling and design
Hi-index | 0.00 |
Modularity is one of the most important properties of a software design, with significant impact on changeability and evolvability. However, a formalized and automated approach is lacking to test and verify software design models against their modularity properties, in particular, their ability to accommodate potential changes. In this paper, we propose a novel framework for testing design modularity. The software artifact under test is a software design. A test input is a potential change to the design. The test output is a modularity vector, which precisely captures quantitative capability extents of the design for accommodating the test input (the potential change). Both the design and the test input are represented as formal computable models to enable automatic testing. The modularity vector integrates the net option value analysis with well-known design principles. We have implemented the framework with tool supports and tested aspect-oriented and object-oriented design patterns in terms of their ability to accommodate sequences of possible changes. The results showed that previous informal, implementation-based analysis can be conducted by our framework automatically and quantitatively at the design level. This framework also opens the opportunities of applying testing techniques, such as coverage criteria, on software designs