2. Introduction SMSL PMSC Research & Teaching Software Maintenance Conclusion
Introduction
Successful software requires constant change that constitutes
the software evolution. That is triggered by evolving
requirements, technologies, and stakeholder knowledge.
What is evolutionary software development?
What is software evolution?
How research and teaching are evolving w.r.t. those topics?
What is software maintenance?
Colella Software Evolution and Maintenance
3. Introduction SMSL PMSC Research Teaching Software Maintenance Conclusion
Roadmap of Presentation
SMSL Staged Model of Software Lifespan issues: agile dev,
open-source dev, ESD and so on...
PMSC Current state and future directions of Phased Model
of Software Change.
Research Signi
4. cant development in research and teaching
approaches.
Maintenance Software maintenance as a contrast to software
evolution.
Colella Software Evolution and Maintenance
5. Introduction SMSL PMSC Research Teaching Software Maintenance Conclusion
Staged Model of Software Lifespan
Colella Software Evolution and Maintenance
6. Introduction SMSL PMSC Research Teaching Software Maintenance Conclusion
Evolutionary Software Development (ESD)
ESD is a software development practice that moves the bulk of the
development from initial development to evolution.
Iterative development;
Agile development;
Exploratory development;
Centralized development;
Open source development;
Directed development;
Solo development.
Colella Software Evolution and Maintenance
7. Introduction SMSL PMSC Research Teaching Software Maintenance Conclusion
Future directions in Staged Model
Unbundling Practices of ESD
1 Practices of code development
2 Practices of developer team organization
3 Practices involving all stakeholders
Large Software Projects
Large software projects with budget larger than $10 million
have low 10% probability of success, and 38% of them were
cancelled.
Confusions about terminology may be a contributing factor to
this state of the aairs.
Colella Software Evolution and Maintenance
8. Introduction SMSL PMSC Research Teaching Software Maintenance Conclusion
Phased Model of Software Change
Software Change is the foundation of all evolutionary software
processes
Phases of Software Change
As Needed Program Comprehension
Future Directions in Software Change
Colella Software Evolution and Maintenance
9. Introduction SMSL PMSC Research Teaching Software Maintenance Conclusion
Phase of Software Change
Colella Software Evolution and Maintenance
10. Introduction SMSL PMSC Research Teaching Software Maintenance Conclusion
As Needed Program Comprehension
The existing software is sometimes very large and developers
employ as-needed approach that concentrates only on that part of
the code that they need to understand for their current task.
Concept
name The label that identi
11. es the concept.
intension The meaning of the concept.
extension The things that the concept describes.
Concept location VS Impact Analysis
Colella Software Evolution and Maintenance
12. Introduction SMSL PMSC Research Teaching Software Maintenance Conclusion
Concept location - Impact Analysis
Concept Location
Concept location is the search for concept's extensions in the
code.
It is a small task in little programs, but it can be a
considerable one in larger programs.
Programmers who know their code can
13. nd the concept easily.
Programmers who don't know the code usually use a string
pattern search like grep.
New concept location techniques broadly fall into static and
dynamic categories, like a Concept Map.
Colella Software Evolution and Maintenance
14. Introduction SMSL PMSC Research Teaching Software Maintenance Conclusion
Concept location - Impact Analysis
Impact Analysis
Expands the results of the concept location.
Determines the full extent of the change by
15. nding all
software components that will be aected.
Planning phase that determines the strategy of the change.
Is a part of as-needed program comprehension.
Incremental Impact Analysis
1 Component C is scheduled to be modi
16. ed.
2 The developer inspect the component related to C through
dependencies.
3 The developer decides which components has to be modi
18. Introduction SMSL PMSC Research Teaching Software Maintenance Conclusion
Future Directions in Software Change
Software change is a fundamental task in SE, both related
practices and supporting tools need continuous improvement.
Concept location presents numerous open issues: investigation of
concept location in the presence of external documentation.
The use of concept maps or domain ontologies in concept location
is a promising direction that should receive further attention.
Impact Analysis considers only whether modules are impacted or
not and should quantify the complexity of the impact.
To make the navigation of the incremental impact analysis more
tractable, heuristics and tools that identify likely to propagate
dependencies need further attention.
Colella Software Evolution and Maintenance
19. Introduction SMSL PMSC Research Teaching Software Maintenance Conclusion
Research Teaching
Empirical Work
Various techniques oer various levels of con
20. dence.
It is often impossible to replace one technique by the others.
For important observed facts, there should be more eort
devoted for replications.
Reasoning about Evolution
The goal is to make that reasoning explicit, pragmatic, and
sound.
A very promising approach advocates to create small models
geared towards speci
22. Introduction SMSL PMSC Research Teaching Software Maintenance Conclusion
Research Teaching
Teaching software evolution should builds a bridge between the
current academic programs and the expectations placed on the
graduates.
1 Introductory programming.
2 Portfolio of technologies (GUI, testing, modeling...).
3 PMSC basic.
4 ESD processes.
The grades correspond to exams (in the classic way) and projects,
which grades are based on commit code and reports that the
student are asked to prepare.
Colella Software Evolution and Maintenance
23. Introduction SMSL PMSC Research Teaching Software Maintenance Conclusion
Software Maintenance
The purpose of the Software Maintenance Process is to provide
cost-eective support to a delivered software product.
The goal of software Maintenance is to make corrective (bug
24. xes) or adaptive changes in the software.
More developer teams and more versions of the software have
to coexists.
An important issue is the End of Software Evolution.
Colella Software Evolution and Maintenance
25. Introduction SMSL PMSC Research Teaching Software Maintenance Conclusion
Software Maintenance
Stabilization
Software evolution is no longer necessary.
Frequently occurs in embedded systems.
Software evolution reach a stabilization when the stakeholder
learning process is complete.
Code Decay
Is a reason that may cause involuntary end of evolution.
Insucient developer knowledge.
Cultural shift.
Colella Software Evolution and Maintenance
26. Introduction SMSL PMSC Research Teaching Software Maintenance Conclusion
Conclusion
Software evolution has moved from a peripheral phenomenon into
the center of software development and SE.
This paper covers:
Evolutionary software development.
Software evolution and software change.
PMSC.
Research and Teaching methodologies.
Maintenance.
Colella Software Evolution and Maintenance