Overview and Organization of the Course Software Evolution 1
Overview and Organization of the Course
Software Evolution
Mark van den Brand
&
Paul Klint
Overview and Organization of the Course Software Evolution 2
Overview
Schedule
Lectures and Article reading Practical Lab work
Assessment
Overview and Organization of the Course Software Evolution 3
Global Schedule
Week
36 L1 P1 P2 L2
37 L3 P3 P4 A1
38 L4 P5 P6 A2
39 L5 P7 P8 A3
40 L6 P9 P10 A4
41 L7 P11 P12 A5
42 L8 P13 P14 A6
43
= lecture
= practical lab work
= articles
= examination
Tuesday (11-13) Tuesday (13-17)Thursday (13-17) Friday (13-15)
Overview and Organization of the Course Software Evolution 4
Rooms
Week Friday (13-15)
36 B.341 P.015A/P.123 P.127 P.127 & A.108 P.127 B.341
37 B.341 P.015A/P.123 P.127 P.127 & A.108 P.127 B.341
38 B.341 P.015A/P.123 P.127 P.127 & A.108 P.127 B.341
39 B.341 P.015A/P.123 P.127 P.127 & A.108 P.127 B.341
40 B.341 P.015A/P.123 P.127 P.127 & A.108 P.127 B.341
41 B.341 P.015A/P.123 P.127 P.127 & A.108 P.127 B.341
42 B.341 P.015A/P.123 P.127 P.127 & A.108 P.127 B.341
43
= lecture: B.341
= practical lab work:P.127
private study: P.015A/P.123/A.108
= articles B.341
Tuesday (11-13)Tuesday (13-15)Tuesday (15-17) Thursday (13-17)Thursday (15-17)
Overview and Organization of the Course Software Evolution 5
Lecture and Article Sessions
Week Date Lecturer Subject
36 L1 September, 2 Klint Overview and Organization; Intro software evolution 36 L2 September, 5 Klint Introduction to software evolution
37 L3 September, 9 Van den Brand Basic technology for analysis and transformation 37 A1 September, 12 Van den Brand Student presentations
38 L4 September, 16 Van den Brand Basic technology for analysis and transformation 38 A2 September, 19 Klint Student presentations
39 L5 September, 23 Klint Analysis of software systems 39 A3 September, 26 Van den Brand Student presentations 40 L6 September, 30 Klint Analysis of software systems 40 A4 October, 3 Klint Student presentations
41 L7 October, 7 Van den Brand Transformation of software systems 41 A5 October, 10 Klint Student presentations
42 L8 October, 14 Van den Brand Transformation of software systems 42 A6 October, 17 Van den Brand Student presentations
43
Overview and Organization of the Course Software Evolution 6
Article Sessions: Goals
Becoming aware of the relevant literature (2003) Workshop on Program Comprehension:
csdl.computer.org/comp/proceedings/iwpc/2003/1883/00/1883toc.htm
Conf. on Software Maintenance and Reengineering
csdl.computer.org/comp/proceedings/csmr/2003/1902/00/1902toc.htm
Writing a summary of each article Presenting a summary of each article
7
Article Sessions: Form
Each student reads,
summarizes, and presents two articles
Each article is only discussed once Mail your selection to:
and it will appear on the course website:
8
Article Sessions: Summary
Summary of ... (precise reference to article) Your name
Global summary of the contents What is the main idea?
What did you learn from it?
What did you not understand?
Other comments
Overview and Organization of the Course Software Evolution 9
Article Sessions: Summary
Size: less than 2 pages A4 Language: English
Submit on paper during the presentation session
Overview and Organization of the Course Software Evolution 10
Article Sessions: Presentation
Give a presentation about the article Same structure as written summary Duration: 10 minutes
Material: (3) overhead sheets/power point screens
Overview and Organization of the Course Software Evolution 11
A1 (12 sept) A2 (19 sept) A3 (26 sept) A4 (3 oct) A5 (10 oct) A6 (17 oct)
Idris Alamutu 1 1
Yassin Asri 1 1
Wilfred Belo 1 1
Rinke Blootens 1 1
Shah Chaudry 1 1
August de l'Annee de Betrancourt 1 1
Hans Dekker 1 1
Abdelhad Elamraoui 1 1
Sabrina Filemon 1 1
Chris Houwing 1 1
Erik-jan Kok 1 1
Said Lakhloufi 1 1
Peter Lamers 1 1
Martijn Langereis 1 1
Erik Mulder 1 1
Oliveiro Matthias 1 1
Silvester Prinsen 1 1
1 1
Fatma Tosun 1 1
6 6 7 6 6 7
Martijn Th rig
Schedule for Articles
per Student
Overview and Organization of the Course Software Evolution 12
Practical Lab Work: Goals
Experience the problems of understanding an unknown software system
Get acqainted with language-processing tools Get acquainted with software-querying techniques
Overview and Organization of the Course Software Evolution 13
Practical Lab Work: Schedule
Week
36 L1 P1 P2 L2
37 L3 P3 P4 A1
38 L4 P5 P6 A2
39 L5 P7 P8 A3
40 L6 P9 P10 A4
41 L7 P11 P12 A5
42 L8 P13 P14 A6
43
= lecture
= practical lab work Series I: P1--P6 Series II: P7--P10
= articles Series III: P11--P14
= examination
Tuesday (11-13)Tuesday (13-17)Thursday (13-17) Friday (13-15)
Overview and Organization of the Course Software Evolution 14
Practical Lab Work: Series I
Given is a large software system (“The system”) in this case Java's AWT library, available at
Given are questions about this system (see later) Look for methods to answer these questions
any tools/techniques are allowed!
15
Practical Lab Work: Reports
Report on your findings as follows:
The methods/tools used (including URL or reference)
What did you find?
How many occurrences did you find (if applicable)
Your experience with the method/tool used Any other observations
16
Practical Lab Work: Series I Questions
Q1: How many source lines?
Q2: How many source files?
Q3: How many class declarations?
Q4: How many interface declarations?
Q5: What is the largest class?
Q6: What is largest method?
Motivation: these facts are needed to get an initial impression of a system
Overview and Organization of the Course Software Evolution 17
Practical Lab Work: Series I Questions
Q7: Find cyclic class dependencies A class uses (directly or indirectly) itself Use = methods calls, inheritance, containment
Motivation: cyclic class dependencies are difficult to understand/maintain
Example of a contained class
Overview and Organization of the Course Software Evolution 18
Cyclic Dependencies: Examples
! " # $
% %
! " # $
%
Overview and Organization of the Course Software Evolution 19
A Note on Method Calls
When considering method calls you do not have to consider the type of the object of which the method is called.
Effect: all methods in different classes with the same name are treated as the same
This may gives false positives but simplifies the analysis
Overview and Organization of the Course Software Evolution 20
Practical Lab Work: Series I Questions
Q8: Find degenerate inheritance
a class inherits an interface directly and indirectly
& '
( ) ) '
(+* ) ) '
Motivation: the direct inheritance is misleading (and redundant)
Overview and Organization of the Course Software Evolution 21
Practical Lab Work: Series I Questions
Q9: Detect subclass knowledge: a super class
“knows” its subclass by containment or (possibly indirect) method calls
Motivation: Superclasses should be understandable and reusable independently of their subclasses
Overview and Organization of the Course Software Evolution 22
Practical Lab Work: Series I Questions
Q10: Find similar classes (also known as
“clones”).
Two classes are similar if they
call the same methods
contain the same classes
inherit from the same classes
Motivation: clones require maintenance that can be avoided by merging them
23
Practical Lab Work: Series II + III
Series II: Get acquainted with the ASF+SDF Meta-Environment
Series III: Use relational calculus to answer some of the questions from Series I
Details follow later
24
Assessment
Grades for Article summaries + presentations Grades for Lab work Series I, II & III
Grades for exam in week 43
Overview and Organization of the Course Software Evolution 25
Practical matters
Lab Assistent: Taeke Kooiker (
) Course web site:
Book: T.M. Pigoski, Practical Software
Maintenance is used as background material. Is not required.
Other material will be made available at the web- site