UBC Theses and Dissertations
Reducing remodularization complexity through modular-objective decoupling Chern, Rick
This dissertation defines "modular-objective coupling", and shows that programming language designs which imply reduced modular-objective coupling reduce complexity of remodularizations--behaviour-preserving restructurings for which the only intended goals are to change program source code structure. We explicitly distinguish between two points of view on program structure: modular structure--the structure of a program as a set of static text documents, and objective structure--the structure of a program as a dynamic computational model during execution. We define modular-objective coupling as the degree to which changes in modular structure imply changes to objective structure, for a given programming language. We use the term remodularization to refer to any behaviour-preserving source code restructuring, for which the only intended goal is to change modular structure. We argue that programming languages with strong modular-objective coupling introduce accidental complexity into remodularizations, by requiring complex objective structure changes to achieve intended modular structure changes. Our claim is that a programming language design which implies reduced modular-objective coupling reduces remodularization complexity in the language. To validate this claim, we first present SubjectJ, a subject-oriented programming system that extends Java. The design of Java implies strong modular-objective coupling, while SubjectJ is designed for reduced modular-objective coupling. We then perform a series of remodularization case studies comparing Java and SubjectJ. Our results suggest that remodularizations are less complex in SubjectJ.
Item Citations and Data
Attribution-NonCommercial-NoDerivatives 4.0 International