1 fwo research network foundations of software evolution research meeting friday, september 20, 2002...
TRANSCRIPT
1
FWO Research Network
Foundations of Software Evolution
FWO Research Network
Foundations of Software Evolution
Research Meeting
Friday, September 20, 2002
Technical University of Vienna
Vienna, Austria
3FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Today’s ScheduleToday’s Schedule
9:00 Welcome by Mehdi Jazayeri9:30 Overview of past activities and finances by Tom Mens10:00 Overview of ESF RELEASE network by Serge Demeyer10:30 --- Coffee break ---11:00 Talk about Evolution Taxonomy by Tom Mens11:30 Discussion about Evolution Taxonomy12:00 --- Lunch ---13:00 Summary Q&A Software Evolution by Tom Tourwe13:30 Discusion about Q&A Software Evolution by Serge Demeyer
identification of opportunities for collaboration15:00 --- Coffee break --- 15:30 Discussion about future activities17:00 End of the workshop 20:00 --- Workshop Dinner ---
5FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Overview of finances for 2002Overview of finances for 2002
Available budget for 2002: 12394,68 EUR+ rest of last year: 7715,44 EUR
Research visits -1274,33 EUR Conferences and workshops -5662,44 EUR
WOG meeting (18/1/02) 3746,46 EUR ECOOP workshop USE 457,50 EUR IWPSE 2002 450,48 EUR SEKE 2002 1008,00 EUR
network lunches - 118,40 EUR special issue J. software evolution - 66,86 EUR other?
? boeken mens tom 19,81 ? kost Tampa D’Hondt 319,53
Amount still available: 12988,09 EUR Organisation of this meeting -????,?? EUR Barcelona evolution workshop -????,?? EUR
6FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Detail of finances for 2002Detail of finances for 2002
Conference and workshop fees, travel and accomodation expenses WOG network meeting 18/1/2002 3746,46 EUR
food and drink and room 316,80 Tom Mens 9,30 Mehdi Jazayeri 902,14 Raymond Boute 11,00 Michel Wermelinger 377,80 Reiko Heckel 189,90 Gall & Jazayeri 1021,63 Serge Demeyer 10,16 Michele Lanza 433,42 Stephane Ducasse 474,31
ECOOP Workshop USE 457,50 EUR Tom Mens (ws registration) 250 Tom Mens (travel costs) 207,50
IWPSE 2002 450,48 EUR Michel Wermelinger 450,48
SEKE 2002 1008,00 EUR Kim Mens 1008,00
7FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Detail of finances for 2002Detail of finances for 2002
Research visits 1274,33 EUR
Serge Demeyer (Dec. 2001, Bern) 486,00 Serge Demeyer (May 2002, Bern) 313,58 Tom Mens (Paderborn) 474,75
Lunches 118,40 EUR
T Mens, K Mens, M Wermelinger 118,40
Special issue JSME 66,86 EUR DHL 11,60 + 55,26
8FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Publications in 2002Publications in 2002
Conferences and workshops Conferences
T. Mens, S. Demeyer, D. Janssens. Formalising Behaviour Preserving Program Transformations. Proc. ICGT 2002
K. Mens, T. Mens, M. Wermelinger. Maintaining software through intentional source-code views. SEKE 2002
Workshops T. Mens, M. Lanza. A Graph-Based Metamodel for Object-Oriented Software
Metrics, GraBaTS workshop, ENTCS 72(2), 2002 G. Arevalo, T. Mens. Analysing Object-Oriented Application Frameworks Using
Concept Analysis. MASPEGHI workshop, LNCS, September 2002 G. Arevalo, T. Mens. Analysing Object Oriented Framework Reuse using
Concept Analysis. ECOOP 2002 Inheritance workshop, June 2002 K. Mens, T. Mens, M. Wermelinger. Supporting software evolution with
Intentional Software Views. IWPSE 2002, pp. 138-142, ACM Press, May 2002
9FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Publications in 2002Publications in 2002
Books, journals and dissertations Journals
T. Mens, M. Wermelinger. Separation of concerns for software evolution. Special issue of JSME Journal
Dissertations T. Tourwe. Automated Support for Framework-Based Software
Evolution. PhD Thesis, Vrije Universiteit Brussel, September 2002 T. Richner. Recovering Behavioral Design Views: a Query-based
Approach. PhD Thesis, University of Bern, May 2002 Books
S. Demeyer, S. Ducasse, O. Nierstrasz. Object-Oriented Reengineering Patterns. Morgan Kaufmann, 2002
11FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
ESF RELEASEESF RELEASE
VUBUA
UCL RUG
KUL
UL-PT
UB-CHTUV-AT
UPB-DE
TUD-DE
In BelgiumAbroad
FWO
-WO
G
Title: Formal foundations of software evolutionFunding: FWO FlandersDuration: 1/1/2001 – 31/12/2005Funding: 61973 EUR
SU-ITSER-NL
IC-UK LSR-FR
ESF-
REL
EASE
Title: Research links to explore and advance software evolutionFunding: European Science FoundationDuration: 1/7/2002 – 31/12/2005Funding: 93660 EUR
12FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
ESF RELEASEESF RELEASE
Proposed network activities Establish a sound scientific research method
(Lehman and Ramil activity coordinators)
Set up evolution benchmarks (Serge Demeyer activity coordinator)
13FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
ESF RELEASEESF RELEASE
Network convenors Tom Mens (VUB-BE) Serge Demeyer (UA-BE)
Coordination committee Giulio Antoniol (SU-IT) Jan Bosch (SER-NL) Michel Wermelinger (UL-PT) Stéphane Ducasse (UB-CH) Harald Gall (TUV-A) Gregor Engels (UPB-DE) Meir M. Lehman (IC-UK) Jacky Estublier (LSR-FR)
14FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
ESF RELEASEESF RELEASE
Official observers Theo D’Hondt (VUB-BE) José Luiz Fiadeiro (UL-PT) Oscar Nierstrasz (UB-CH) Mehdi Jazayeri (TUV-A) Reiko Heckel (UPB-DE) Jean-Marie Favre (LSR-FR) Juan F. Ramil (OU-UK)
Advisors Kim Mens, Axel van Lamsweerde (UCL-BE) Chris Verhoef (UA-NL) Keith Bennett (UD-UK) Malcolm P. Atkinson (UG-UK) Stephen Cook, Rachel Harrison (UR-UK) Reidar Conradi (UST-NO) Dag Sjøberg (UO-NO)
15FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
ESF RELEASEESF RELEASE
Distribution of responsibilities Network convenor Treasurer Website and mailing list manager Report manager Workshop coordinator Meeting coordinator Activity coordinators
Evolution TaxonomyEvolution Taxonomy
by Tom Mens
in collaboration with Jim Buckley,
Awais Rashid, Matthias Zenger
17FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Evolution TaxonomyEvolution Taxonomy
Taxonomy of software evolution based on mechanisms of change and factors that impact upon these mechanisms (ECOOP USE 2002 working group)
Six “dimensions” of properties Temporal properties (when?) Change properties (what?) Drivers of change (who?) Object of change (where?) Change process (how?) System properties
18FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Evolution TaxonomyEvolution Taxonomy
Related work: categorising the “why” of software evolution based on the “purpose” of software changes Lientz&Swanson 1980
perfective / adaptive / corrective maintenance Chapin et al. 2001
evidence-based classification of 12 types of software evolution evaluative, consultive, training, updative, reformative, adaptive,
performance, preventive, groomative, enhancive, corrective, reductive
19FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Evolution TaxonomyEvolution Taxonomy
Use the taxonomy to Provide an overview of the domain of software evolution Position individual software evolution tools and techniques
identify their strengths and weaknesses Compare and combine software evolution tools and techniques
choose the best one among different alternatives find out whether two tools are complementary or overlapping
Evaluate the use of a tool or technique in a particular evolution context
20FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Evolution TaxonomyEvolution Taxonomy
System properties Change properties (what)
Object of change (where)
Temporalproperties
(when)
Changeprocess(how)
Drivers of change (who)
openness
activeness
availability type
effect
invasiveness
safety
locality
time ofchange
changehistory
changefrequency
artifact
plan control measure verify
driver
automation
distribution
CHANGE
granularity
scope
21FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Evolution TaxonomyEvolution Taxonomy
Temporal properties Time of change
time when a change is requested time when the change is prepared time when the changes becomes available for execution time when the change is executed
Change history Versioning
Change frequency
22FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Evolution TaxonomyEvolution Taxonomy
Temporal properties Change history
sequential / parallel versions synchronous / asynchronous divergent / convergent changes (merging) invasive (destructive) / non-invasive changes
sequential change
change 1
change 2
parallel asynchronous change
change 1 change 2
parallel synchronous change
change 1 change 2
23FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Evolution TaxonomyEvolution Taxonomy
Drivers of change Distribution
local / distributed Degree of automation
automatic / interactive / manual Role
person requesting the change person making the change person evaluating the change manager approving the change
24FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Evolution TaxonomyEvolution Taxonomy
Change properties Type of change
structural versus semantic changes Effect of change
addition / subtraction / modification Safety
type safety backward compatibility safety semantic safety (impossible)
Invasiveness
25FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Evolution TaxonomyEvolution Taxonomy
Object of change Artifact being changed
documents, requirements specification, analysis and design models, source code, tests, binaries, executables, architectures, …
Granularity from very coarse to very fine granularity
Locality of change local/propagated/global
Scope of change to different kinds of artifacts?
26FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Evolution TaxonomyEvolution Taxonomy
System properties Activeness
Passive = changes are driven externally Active = system drives the changes itself (e.g. by monitoring events)
e.g. dynamic reconfiguration
Openness Open system = explicit provisions are built in the software to make it
easier to evolve e.g. framework, plug-ins, templates, reflection
Availability system must keep running under all circumstances
27FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Evolution TaxonomyEvolution Taxonomy
Change process Plan
e.g. using change request forms Control
e.g. with or without versioning; extreme programming Measure
e.g. impact analysis, effort estimation, evolution metrics, estimating the size of a change, …
Verify
28FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Evolution TaxonomyEvolution Taxonomy
Validation: Apply the taxonomy to a number of tools Refactoring Browser, CVS, eLiza, …
29FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Evolution TaxonomyEvolution Taxonomy
RefactoringBrowser CVS eLiza
temporal properties
time of change
change history irrelevant parallel asynchronous sequential
change frequency arbitrary arbitrary
drivers
of
change
distribution local distributed
automation semi-automatic fully automated
role
change properties
type of change structural any semantic
effect of change
safety static: more or less no ?
invasiveness
30FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Evolution TaxonomyEvolution Taxonomy
RefactoringBrowser CVS eLiza
object
of
change
artifact source code file executable code
granularity several classes / methods file
locality local changes with low impact
scope
system properties
activeness passive passive active
openness source available / reflection
open source / add ons / plug ins
no
availability
change
process
plan irrelevant irrelevant yes
control irrelevant irrelevant yes
measure
verify
31FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Evolution TaxonomyEvolution Taxonomy
Apply the taxonomy to the WOG-Evol network Techniques
Graph rewriting for refactoring (VUB, UA) Architectural reconfiguration (Lisbon) Coordination contracts (Lisbon) Model transformations (Paderborn) …
Tools CodEvolver (Bern) Soul DupLoc (Bern) Café (Vienna) …
32FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Evolution TaxonomyEvolution Taxonomy
temporal properties
time of change
change history
change frequency
drivers
of
change
distribution
automation
role
change properties
type of change
effect of change
safety
invasiveness
33FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Evolution TaxonomyEvolution Taxonomy
object
of
change
artifact
granularity
locality
scope
system properties
activeness
openness
availability
change
process
plan
control
measure
verify
35FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Q&A Software EvolutionQ&A Software Evolution
General questions1. What is software evolution (SE)?
2. Can you provide a taxonomy/classification of SE?
3. What are the most important problems in SE that need to be addressed?1. From a practical/industrial point of view
2. From a research point of view
36FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Q&A Software EvolutionQ&A Software Evolution
Research questions1. Which of the important SE problems do you (intend to) address?
1. In your past research
2. In your current research
3. In your future research
2. Which approaches do you take to tackle these problems?
3. How do you (intend to) validate your approach(es) in practice?
4. If you intend to validate your approach(es) on a concrete software system, what are the specific characteristics that you require of this software system?
37FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Q&A Software EvolutionQ&A Software Evolution
Contributions by Serge Demeyer, Luuk Groenewegen, Mehdi Jazayeri, Kim Mens,
Tom Mens, Tobias Rotsche, Tom Tourwe
38FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Definition of Software EvolutionDefinition of Software Evolution
The way a software system reacts to changing requirements
Software evolution occurs when software artefacts change Implementation, but other artefacts as well
Software evolution refers to the sequence of changes that software goes through from its first release until its retirement
Software evolution is the systematic process of extending and adapting systems, without starting from scratch
The realized history of the software system during its lifetime
39FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
SummarySummary
Effect (result) vs. action (how) Evolution vs. maintenance
Change of requirements vs. any kind of change
Evolution after first release vs. starting from scratch
40FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Taxonomy of Software EvolutionTaxonomy of Software Evolution
Anticipated vs. unanticipated Version controlled or not Planned vs. unplanned Controlled vs. uncontrolled Manual vs. supported
E.g. by means of refactoring What is being changed?
Requirements, design, implementation, .. Type of change
Perfective, adaptive, corrective, ..
41FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Taxonomy of Software EvolutionTaxonomy of Software Evolution
Granularity of changes Systems, subsystems, classes, methods, statements, ..
Change process Sequential changes, parallel changes, ..
Dynamic (runtime) vs. static evolution Short vs. long period
42FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Industrial ProblemsIndustrial Problems
Change & Impact analysis Effort & cost estimation Change propagation Conflict detection
Merge conflicts, .. Re(verse) Engineering Software aging
When does software degrade? Why does(n’t) it degrade? How can we take countermeasures?
43FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Industrial ProblemsIndustrial Problems
Software development/evolution processes Impact of software development process on evolution Organize and structure evolution process
Tool support for all of the above Effect of training, experience, education, etc.
How to measure this? How to teach?
44FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Research ProblemsResearch Problems
Software evolution methodology Techniques and tools to understand, explain & discipline software
evolution processes
Research methodology Techniques to evaluate and measure software evolution
techniques & processes
Conformance checking of design & implementation, implementation & documentation
Co-evolution How to keep architecture, design, implementation, .. in sync
45FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Research ProblemsResearch Problems
How to measure software evolution in industry? Effect of technology on software evolution?
E.g. programming language, environment, .. How to measure this effect? How to improve existing technologies?
Use of formalisms To address software evolution To enable tool support for evolution
46FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Current Research TopicsCurrent Research Topics
Re(verse) engineering (of software architectures) Refactoring
Use of formalisms Identifying refactorings that have been or should be applied
Conformance checking Avoiding architectural decay
Co-evolution
47FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Current Research TopicsCurrent Research Topics
Use of measurements (metrics) for software evolution to identify refactorings that have been applied
Analyzing evolution To predict future evolution To support software merging & upgrading
48FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Approaches takenApproaches taken
Prototype tools based on metamodels, formalisms, ..
Exploring mathematical formalisms E.g. graph rewriting, metrics, ..
Visualization techniques
49FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
ValidationValidation
Case studies Small vs. large scale
50FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Requirements for ValidationRequirements for Validation
Large scale Different versions of the source code
Smalltalk, Java, C++, …
Version controlled Well-documented
Artefacts Design models, architectural views, … Version controlled if possible
Evolution Changes, transformations, …
52FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Forthcoming workshops 2002Forthcoming workshops 2002
October 7-12: ICGT 2002 workshops (Barcelona, Spain) Graph-based tools (7-8 october)
organised by Andy Schurr, Tom Mens, Gabriele Taentzer Software evolution through transformations (11-12 october)
organised by Reiko Heckel, Tom Mens, Michel Wermelinger
53FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Workshops 2003Workshops 2003
ETAPS 2003 Unanticipated Software Evolution
5-6 April 2003, Warsaw, Poland
ECOOP 2003 July 21-25, Darmstadt, Germany proposed workshop about Refactoring
ESEC 2003 1-5 September 2003, Helsinki, Finland IWPSE 2003: Int. Workshop on Principles of Software Evolution, 1-2 Sept.
ICSM 2003 (“The architecture of existing systems”) 22-26 September 2003, Amsterdam, The Netherlands Sept. 23: workshop on “Evolution of Large-Scale
Industrial Software Applications”
54FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Network Meetings 2003Network Meetings 2003
First ESF-RELEASE meeting Date? Location?
Next WOG-Evol meeting Date? Location?
NoE-ELISA coordination meeting Date? Location? Official EU meeting in Brussels 11-13 November 2002
Refactoring Event Date? Somewhere in 2003 Location: Antwerp
55FWO-WOG, September 2002, Vienna © Tom Mens, Vrije Universiteit Brussel
Research visits 2003Research visits 2003
1 person from Bern to Brussels 1 person from Bern to Antwerp 2 persons from Brussels to Bern 3 persons from Brussels to Vienna 2 persons from Antwerp to Paderborn 1 person from Leiden to Antwerp