Title: 2IS99 Capita Selecta Software Engineering and Technology
12IS99 Capita Selecta Software Engineering and
Technology
Software Evolution
Mark van den BrandAlexander Serebrenik
22IS99 Capita Selecta Software Engineering and
Technology
- 5 ECTS, i.e, 140 hours
- Classes
- Friday, 1530 1715 (7th 8th hours).
- Alternative time slots
- Wednesday 1330 1515 (5th 6th hours).
- Thursday 845 1030 (1st 2nd hours)
-
- 14 meetings (28 hours) self study (112 hours).
2IS99 Software evolution Research topics in
software evolution
3Assignments
- Software Evolution by Tom Mens and Serge
Demeyer - Presentation 1 (theory)
- A chapter from the book
- Mail us your choice!
- Presentation 2 (practice)
- Install a tool from, or similar to those from
your chapter. - Apply the tool to a case (at least one)
- Report on the application results
- What can you say about the tool?
- What can you say about the case?
- Paper theory practice
2IS99 Software evolution Research topics in
software evolution
4Software Evolution. In the beginning.
- Royce 1970, Waterfall model.
Maintenance bug fixes and minor adjustments
What are the main shortcomings of this model, in
your opinion?
NB Still in use anno 2009!
2IS99 Software evolution Research topics in
software evolution
51974. Lehmans laws.
- E-type system
- Systems operate in the real world (or address it)
- They should be evolved since the real world
evolves! - Evolution laws
- E-type systems must be continually adapted else
they become progressively less satisfactory. - As an E-type system evolves its complexity
increases unless work is done to maintain or
reduce it. - The quality of E-type systems will appear to be
declining unless they are rigorously maintained
and adapted to operational environment changes. - There are more
2IS99 Software evolution Research topics in
software evolution
6Macro look Bennett and Rajlich (2000)
architecture decay
Loss of architectural integrity
Patches too costly?
- Legacy system the system that is still valuable
despite its degraded quality. - Migration keep functionality, improve quality!
- At what stage would you like to plan migration?
2IS99 Software evolution Research topics in
software evolution
7Micro look Yau et al. (1978)
- Evolution stage of the Bennett-Rajlich model
- Refactoring keep functionality, improve
structure! - What is the difference between refactoring and
restructuring as defined in the Yau model?
2IS99 Software evolution Research topics in
software evolution
8Going extreme
- Software evolution (iterative, incremental)
- short time periods
- high degree of collaboration
- explicit accommodation of changing needs
- agile software development
- Extreme programming is an example of agile.
2IS99 Software evolution Research topics in
software evolution
9Software Evolution Definition
- Look at the discussion so far.
- How would you define software evolution?
- Software evolution is the set of activities, both
technical and managerial, that ensures that
software continues to meet organisational and
business objectives in a cost effective way.
2IS99 Software evolution Research topics in
software evolution
10Where do we start?
- Versioning repositories (CVS, SVN, )
- Software but what about models, requirements,
etc? - Bug tracking systems
- Change logs
- Documentation
- Mailing list archives
- Huge amount of information
- Tooling is essential!
2IS99 Software evolution Research topics in
software evolution
11Research Themes in Software Evolution Science
- What is the nature of software evolution?
- Lehmans law
- Evolution a multi-loop, multi-level and
multi-agent feedback system - Understanding the evolution requires
understanding - Human psychology
- Social interaction
- Organizational aspects
- Economics and management
- Legislation
2IS99 Software evolution Research topics in
software evolution
12Research Themes in Software Engineering
Engineering
- Technology, means and tools to direct, implement
and control software evolution. - Some relevant questions
- What artefacts evolve?
- Requirements, design, code, tests,
- What can we learn from evolution so far?
- Quality change
- How evolvable are our artefacts?
- How can we make them more evolvable?
- Migration, reverse engineering and reengineering
- How is the evaluation implemented?
- Refactoring, architecture transformations
2IS99 Software evolution Research topics in
software evolution
13What does evolve?
Requirements evolution
Design (architecture) evolution. Chapter 10
Data, code, documents, technology evolution
Evolution of different artefacts should be
consistent. This is called the co-evolution
problem.
Tests and proofs evolution Ch. 8
2IS99 Software evolution Research topics in
software evolution
14Consistency and co-evolution Points of discussion
- What should co-evolve?
- Code and database table definitions
- Code and design documentation
- Code and tests
-
- What constitutes inconsistency?
- How to detect inconsistencies?
- How to ensure absence of inconsistencies?
2IS99 Software evolution Research topics in
software evolution
15What can we learn from the evolution so far?
- What modules are stable?
- How to predict bugs from history?
- How to detect the architecture decay?
- What can we say about the project organisation?
- Is there a major developer? (risk if she leaves)
- Is there correlation between bugs, productivity
and certain developers/teams? - Chapters 3-4
- Analysing Software Repositories to Understand
Software Evolution by DAmbros, Gall, Lanza,
Pinzger - Predicting Bugs from History by Zimmermann,
Nagappan, Zeller
2IS99 Software evolution Research topics in
software evolution
16How evolvable are our artefacts?
- Resilience to change caused by
- Bad readability
- Bad structure
- Code clones (see next slide)
- High complexity
- Insufficient abstractness (OO)
-
- How to detect these situations?
- Metrics
- Dependencies
2IS99 Software evolution Research topics in
software evolution
17Special technique Code clones elimination
- Presence of code clones impedes evolution.
- Why?
- Points of discussion
- When A and B can be considered clones?
- Identical
- Up to variable/constant/number renaming
- Allowing gaps/repetitions
- How to detect clones?
- Chapter 2 in the book
- Identifying and Removing Software Clones by
Koschke
2IS99 Software evolution Research topics in
software evolution
18How to make the artefacts more evolvable?
Analysis
2IS99 Software evolution Research topics in
software evolution
19How to make the artefacts more evolvable?
Analysis
Reverse engineering
2IS99 Software evolution Research topics in
software evolution
20How to make the artefacts more evolvable?
Analysis
Reverse engineering
Restructuring, model evolution
2IS99 Software evolution Research topics in
software evolution
21How to make the artefacts more evolvable?
Analysis
Reverse engineering
Restructuring, model evolution
Forward engineering
2IS99 Software evolution Research topics in
software evolution
22How to make the artefacts more evolvable?
Analysis
Reverse engineering
Restructuring, model evolution
Forward engineering
2IS99 Software evolution Research topics in
software evolution
23Special kind of software Legacy
- Chapters 5-7 in our book
- Object-Oriented Reengineering by Demeyer
- Migration of Legacy Information Systems by
Hainaut, Cleve, Henrard and Hick - Architectural Transformations From Legacy to
Three-Tier and Services by Heckel, Correia,
Matos, El-Ramly, Koutsoukos and Andrade.
2IS99 Software evolution Research topics in
software evolution
24Special kinds of software
- Chapter 9
- Evolution Issues in Aspect-Oriented Programming
by Mens, Tourwé - Chapter 11
- Empirical Studies of Open Source Software by
Fernandez-Ramil, Lozano, Wermelinger, Capiluppi
2IS99 Software evolution Research topics in
software evolution
25How is the evolution implemented?
- Design
- Architecture (model) transformations
- Chapter 7 Architectural Transformations From
Legacy to Three-Tier and Services by Heckel,
Correia, Matos, El-Ramly, Koutsoukos and Andrade. - Code
- Refactoring
- Give an example of a model transformation.
- Do you know any languages allowing to describe
model transformations?
2IS99 Software evolution Research topics in
software evolution
26Software Evolution _at_ TU/e
- What does evolve?
- Repositories for models Zvezdan Protic, MvdB
- What can we learn from evolution so far?
- Statistical approaches Serguei Roubtsov, AS,
MvdB - How evolvable are our systems?
- SQuAVisiT Serguei Roubtsov, Martin vd Vlist,
Peter Schachtschabel - How to make the artefacts more evolvable?
- Reverse engineering Dennie van Zeeland, MvdB,
AS - How is the evolution implemented?
- Model transformations Marcel van Amstel, Luc
Engelen, MvdB - Migration coordination Erik de Vink, Suzana
Andova
and also YOU!
2IS99 Software evolution Research topics in
software evolution
27Questions?
28Giving presentations, writing papers
29Always keep in mind
30Audience and Purpose
- Audience
- Your audience are your fellow students.
- Neither underestimate nor overestimate them.
- Purpose
- Convince?
- Inform?
- Entertain?
Audience/Purpose Organization Style Flow
Presentation
31Organization
- What do you remember of a song?
- Identify the kern idea and repeat it
- Oral Keep in mind attention span!
Audience/Purpose Organization Style Flow
Presentation
32Style Vocabulary shift
- We got encouraging results.
- The economic outlook is mighty nice.
- The results of a lot of projects have been pretty
good. - NB Users, programmers, and other humans in
academic texts are usually feminine.
Audience/Purpose Organization Style Flow
Presentation
33Style Formal Grammar (1)
Written
- Avoid contractions
- wont ? will not
- Appropriate negative forms
- didnt yield any new results ? yielded no new
results - Limit the use of run on expressions
- robots, CD players, etc. ? robots, CD players and
other electronic devices.
Audience/Purpose Organization Style Flow
Presentation
34Style Formal Grammar (2)
Written
- Limit the use of direct questions
- What can be done to ?
- We need to consider what can be done to
- Place adverbs within the verbs
- Then the solution can be discarded.
- The solution can then be discarded.
Audience/Purpose Organization Style Flow
Presentation
35Style To be or not to be?
Written
- Avoid as much as possible
- The goal of our project is
- Our project aims at
- Crime was increasing rapidly and the police were
becoming concerned. - The rapid increase in crime was causing concern
among the police.
Audience/Purpose Organization Style Flow
Presentation
36Flow
- Progress or structure indicator?
- 4-steps scheme
- What shall I do?
- Why shall I do it?
- Do it
- What have I done?
Audience/Purpose Organization Style Flow
Presentation
37Flow
Written
- It, this, that
- Teachers know that students need to understand
the differences between formal and informal
language. It cannot usually be acquired quickly. - It this understanding
- Linking words
- however, furthermore, while, for instance,
Audience/Purpose Organization Style Flow
Presentation
38Presentation
- Long sentences that one cannot even understand
without rereading them at least twice, and
blah-blah-blah - 1 picture 1000 words?
-
Audience/Purpose Organization Style Flow
Presentation
39Presentation check!
Written
- Format
- Paragraphs? Line spacing?
- Grammar
- Subject/verb agreement?
- Parallel structures agreement?
- About these broken sentences.
- Spelling
- Spell-checker
- Did the spell-checker miss anything?
Audience/Purpose Organization Style Flow
Presentation
40Bibliography
Written
- Articles Authors, Title, Journal,
Volume(Number)PageFrom-PageTill, Year. - Papers Authors, Title, In Editors, eds.
Conference, Place, ltvolume Vol of Lecture Notes
in Computer Sciencegt, PageFrom-PageTill, Year.
Audience/Purpose Organization Style Flow
Presentation
41Bibliography
Written
- Internet Try to avoid
- URI date visited.
- Names
- J. Smith, Smith, J., Jane Smith ?
- Dutch van Dale before Deckers
- Check BibTeX style files for inspiration!
Audience/Purpose Organization Style Flow
Presentation
42Questions?