560 likes | 661 Views
FWO Research Network Foundations of Software Evolution. Research Meeting Friday, September 20, 2002 Technical University of Vienna Vienna, Austria. Welcome. by Mehdi Jazayeri. Today’s Schedule. 9:00 Welcome by Mehdi Jazayeri 9:30 Overview of past activities and finances by Tom Mens
E N D
FWO Research NetworkFoundations of Software Evolution Research Meeting Friday, September 20, 2002 Technical University of Vienna Vienna, Austria
Welcome by Mehdi Jazayeri
Today’s Schedule 9:00 Welcome by Mehdi Jazayeri 9:30 Overview of past activities and finances by Tom Mens 10:00Overview of ESF RELEASE network by Serge Demeyer 10:30 --- Coffee break --- 11:00 Talk about Evolution Taxonomy by Tom Mens 11:30 Discussion about Evolution Taxonomy 12:00 --- Lunch --- 13:00 Summary Q&A Software Evolution by Tom Tourwe 13:30 Discusion about Q&A Software Evolution by Serge Demeyer identification of opportunities for collaboration 15:00 --- Coffee break --- 15:30 Discussion about futureactivities 17:00 End of the workshop 20:00 --- Workshop Dinner ---
Overview of past activities and finances by Tom Mens
Overview 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
Detail 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
Detail 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
Publications 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
Publications 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
Overview of ESF RELEASE by Serge Demeyer
TUD-DE UCL RUG FWO-WOG KUL Title: Formal foundations of software evolution Funding: FWO Flanders Duration: 1/1/2001 – 31/12/2005 Funding: 61973 EUR UPB-DE UL-PT TUV-AT UB-CH ESF-RELEASE SER-NL SU-IT Title: Research links to explore and advance software evolution Funding: European Science Foundation Duration: 1/7/2002 – 31/12/2005 Funding: 93660 EUR IC-UK LSR-FR ESF RELEASE In Belgium Abroad UA VUB
ESF RELEASE • Proposed network activities • Establish a sound scientific research method • (Lehman and Ramil activity coordinators) • Set up evolution benchmarks • (Serge Demeyer activity coordinator)
ESF 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)
ESF 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)
ESF RELEASE • Distribution of responsibilities • Network convenor • Treasurer • Website and mailing list manager • Report manager • Workshop coordinator • Meeting coordinator • Activity coordinators
Evolution Taxonomy by Tom Mens in collaboration with Jim Buckley, Awais Rashid, Matthias Zenger
Evolution 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
Evolution 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
Evolution 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
System properties Change properties (what) openness safety invasiveness activeness effect type availability plan control measure verify Change process (how) Temporal properties (when) CHANGE time of change change history change frequency granularity driver locality scope automation artifact distribution Object of change (where) Drivers of change (who) Evolution Taxonomy
Evolution 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
Evolution Taxonomy • Temporal properties • Change history • sequential / parallel versions • synchronous / asynchronous • divergent / convergent changes (merging) • invasive (destructive) / non-invasive changes
Evolution 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
Evolution 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
Evolution 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?
Evolution 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
Evolution 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
Evolution Taxonomy • Validation: Apply the taxonomy to a number of tools • Refactoring Browser, CVS, eLiza, …
Evolution 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) • …
Q&A Software Evolution by Tom Tourwe
Q&A Software Evolution • General questions • What is software evolution (SE)? • Can you provide a taxonomy/classification of SE? • What are the most important problems in SE that need to be addressed? • From a practical/industrial point of view • From a research point of view
Q&A Software Evolution • Research questions • Which of the important SE problems do you (intend to) address? • In your past research • In your current research • In your future research • Which approaches do you take to tackle these problems? • How do you (intend to) validate your approach(es) in practice? • 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?
Q&A Software Evolution • Contributions by • Serge Demeyer, Luuk Groenewegen, Mehdi Jazayeri, Kim Mens, Tom Mens, Tobias Rotsche, Tom Tourwe
Definition 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
Summary • Effect (result) vs. action (how) • Evolution vs. maintenance • Change of requirements vs. any kind of change • Evolution after first release vs. starting from scratch
Taxonomy 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, ..
Taxonomy 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
Industrial 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?
Industrial 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?
Research 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
Research 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
Current 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
Current 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
Approaches taken • Prototype tools • based on metamodels, formalisms, .. • Exploring mathematical formalisms • E.g. graph rewriting, metrics, .. • Visualization techniques
Validation • Case studies • Small vs. large scale
Requirements 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, …