ComputingComputer ScienceEvolutionary TheoryMacroevolutionSoftware EngineeringEvolutionSoftware ArchitectureSoftware DesignSoftware EvolutionSoftware Maintenance
Software evolution is usually considered in terms of corrections, improvements and enhancements. While helpful, this approach does not take into account the fundamental dimensions of well-engineered software systems (the domains, experience, and process) and how they themselves evolve and affect the evolution of systems for which they are the context. I discuss each dimension, provide examples to illustrate its various aspects and summarize how evolution in that dimension affects system evolution. Only by taking this holistic approach to evolution can we understand evolution and effectively manage it.< <ETX xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">></ETX>
15
Introduction to automata theory, languages, and computation
Computer Languages · 1980 · 6.9K citations
A relational model of data for large shared data banks
E. F. Codd · Communications of the ACM · 1983 · 4.8K citations
Lim K.W. · Journal of Information Technology · 1989 · 1.4K citations · Full text
Programs, life cycles, and laws of software evolution
M. M. Lehman · Proceedings of the IEEE · 1980 · 1.2K citations
Olle Dahl, E. Dijkstra, C. A. R. Hoare · 1972 · 890 citations