2005 MCS Divisional Seminars & Colloquia |
|
Software Plans: Achieving Fine-Grained Separation of ConcernsDavid Coppit College of William and Mary |
|
| Abstract |
Much of the complexity of software arises from interactions between disparate concerns. Even when such concerns are largely independent, they are compressed into a single representation of the source code. This increases the complexity of the code and obfuscates its overt functionality. Unfortunately, it is not always feasible to simply introduce a new programming abstraction, as concern code may be tightly coupled to its surrounding context. Attempting to modularize such code would violate the principle of low inter-module coupling, and would likely require complex integration semantics. For example, debugging code is tightly coupled to its context and is tangled with other concerns throughout the software system. We present an editor-based approach to this problem called "software plans." The idea, inspired by architectural design, is to develop the software as multiple views that each present the code for concerns of interest in their proper context. Programmers can develop independent plans, and then reconcile them to create the final system. We present data from two case studies that investigate how different programmers identify and relate concerns in software. We also present a formal model of code that replaces the traditional sequence-of-bytes representation with one that explicitly represents concerns within code blocks that are potentially shared among plans. We discuss the interaction of editing operations with that model, and present a prototype implementation. |
| [MCS | Research | Resources | People | Collaboration | Software | Publications | Information] | |||
|