The Story of Moose — an Agile Reengineering Environment. Oscar Nierstrasz www.iam.unibe.ch/~scg/. Is Dilbert really, really smart , or just really, really dumb ? . Premise of this presentation …. Like death and taxes, Software Evolution is inevitable
Related searches for The Story of Moose
Is Dilbert really, really smart, or just really, really dumb?
(new platforms or OS)
There is no “software maintenance”, just continuous software evolution.
(fixing reported errors)
— Lehman and Belady, 1985
A legacy system is a piece of software that:
You can’t afford to throw it out, but it is too expensive to change
Hardware innovations increasingly foster new and unexpected software applications
The rate of change (new features) for new application domains is increasing
How can we deal with the spiraling need to cope with change?
The Story of Moose — ESEC/FSE 2005The cost of change
We need to reduce the cost of change over time …
— cf., XP Explained
Different reengineering goals … but common themes and problems !
Need appropriate tools and methods
Detailed Model Capture
Detecting Duplicated Code
Transform Conditionals to Polymorphism
The Story of Moose — ESEC/FSE 2005A Map of Reengineering Patterns
Visualize Code as Dotplots
Study the Exceptional Entities
System Complexity View
Nodes = Classes
Edges = Inheritance Relationships
Width = Number of Attributes
Height = Number of Methods
Color = Number of Lines of Code
Solid diagonals indicate significant duplication between or within source files.
Difficulties and challenges…
The FAMOOS tools were highly successful, but largely ad hoc
The Story of Moose — ESEC/FSE 2005The Components of Moose
Extensible meta model
The Story of Moose — ESEC/FSE 2005The Evolution of Moose
1. At first, CodeCrawler directly reflected on Smalltalk classes
3. Each tool needs its own information, so we need multiple meta-models
2. Modeling multiple languages requires a neutral meta-model
Offers uniform approach to:
Individual classes or groups of classes are entities
The Story of Moose — ESEC/FSE 2005Polymetric Views
Polymetric views are useful for exploring whole systems, individual classes, or the evolution of entities
Version 2 .. Version (n - 1)
The Story of Moose — ESEC/FSE 2005The Evolution Matrix — Principles
The Story of Moose — ESEC/FSE 2005History as a first class entity encapsulates the evolution
We need to place software evolution at the centre of our software processes and tools.