Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Automated assistance for program restructuring
ACM Transactions on Software Engineering and Methodology (TOSEM)
Subject-oriented programming: a critique of pure objects
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Subject-oriented composition rules
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Automatic inheritance hierarchy restructuring and method refactoring
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
N degrees of separation: multi-dimensional separation of concerns
Proceedings of the 21st international conference on Software engineering
MultiJava: modular open classes and symmetric multiple dispatch for Java
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Comparing frameworks and layered refinement
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
AspectC++: an aspect-oriented extension to the C++ programming language
CRPIT '02 Proceedings of the Fortieth International Conference on Tools Pacific: Objects for internet, mobile and embedded applications
Navigating and querying code without getting lost
Proceedings of the 2nd international conference on Aspect-oriented software development
Object-Oriented Multi-Methods in Cecil
ECOOP '92 Proceedings of the European Conference on Object-Oriented Programming
Implementing Layered Designs with Mixin Layers
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Difference-Based Modules: A Class-Independent Module Mechanism
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
Evolving Object-Oriented Designs with Refactorings
ASE '99 Proceedings of the 14th IEEE international conference on Automated software engineering
Effective, Automatic Procedure Extraction
IWPC '03 Proceedings of the 11th IEEE International Workshop on Program Comprehension
C# Language Specification
Refactoring to aspects: an interactive approach
eclipse '03 Proceedings of the 2003 OOPSLA workshop on eclipse technology eXchange
Untangling: a slice extraction refactoring
Proceedings of the 3rd international conference on Aspect-oriented software development
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
Towards a catalog of aspect-oriented refactorings
Proceedings of the 4th international conference on Aspect-oriented software development
Role-based refactoring of crosscutting concerns
Proceedings of the 4th international conference on Aspect-oriented software development
Chapter I: Notes on structured programming
Structured programming
View-based maintenance of graphical user interfaces
Proceedings of the 7th international conference on Aspect-oriented software development
The ruby programming language
General composition of software artifacts
SC'06 Proceedings of the 5th international conference on Software Composition
Refactoring using type constraints
SAS'07 Proceedings of the 14th international conference on Static Analysis
How do software engineers understand code changes?: an exploratory study in industry
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Hi-index | 0.01 |
We explore the concept of static-dynamic coupling--the degree to which changes in a program's static modular structure imply changes to its dynamic structure. This paper investigates the impact of static-dynamic coupling in a programming language on the effort required to evolve the coarse modular structure of programs written in that language. We performed a series of remodularization case studies in both Java and SubjectJ. SubjectJ is designed to be similar to Java, but have strictly less static-dynamic coupling. Our results include quantitative measures-time taken and number of bugs introduced--as well as a more subjective qualitative analysis of the remodularization process. All results point in the same direction and suggest that static-dynamic coupling causes substantial accidental complexity for the remodularization of Java programs.