2001 · 96 citations · 9 references
ComputingChange ManagementComputer ScienceProgramming LanguagesSoftware EngineeringSystems ProgrammingSoftware ArchitectureSoftware DesignSoftware EvolutionSoftware MaintenanceSoftware ReuseAspectAspect-oriented ProgrammingMap MetaphorMetaphorSoftware Development LifecycleSoftware Lifecycle ManagementSoftware Restructuring
Software maintenance and evolution are the dominant activities in the software lifecycle. Modularization can allow design decisions to be independently evolved, but eventually modularizations fail to do so, and then complicated global changes are required. Tool support can reduce the costs of these unfortunate changes, but current tools are limited in their ability to manage information for large-scale software evolution. In this paper we argue that the map metaphor can serve as an organizing principle for the design of effective tools for performing global software changes. We describe the design of Aspect Browser, developed around the map metaphor, and discuss a case study of removing a feature from a 500,000 line program written in Fortran and C. 1 Introduction The cost of software maintenance and evolution are often disproportionately large relative to the amount of code changed or the resulting change in software behavior. One cause of this imbalance is inadequate modularity: a ...
9
A model of large program development
L. A. Belady, M. M. Lehman · IBM Systems Journal · 1976 · 479 citations
Gail C. Murphy, David Notkin, Kevin Sullivan · 1995 · 476 citations
Constructive Interaction and the Iterative Process of Understanding
Naomi Miyake · Cognitive Science · 1986 · 425 citations
Arts, Design, Design Thinking +13