DAAD Workshop Ravda, September, 18th - 23th, 2006
2
From the workshop programs 2003 - 2006
Workshop Software Engineering Education
and Reverse Engineering
K. Schützler, U. Sacklowski, K. Bothe:XCTL during the last year
K. Schützler, U. Sacklowski, K. Bothe:XCTL during the last year and more …
2003 – 2005:
2006:
DAAD Workshop Ravda, September, 18th - 23th, 2006
3
Agenda
Motivation XCTL and our DAAD project Short introduction to the XCTL system Educational project work: tasks, theses,
statistics Evolution of project documents Evolution of the software system
DAAD Workshop Ravda, September, 18th - 23th, 2006
4
Importance of case studies
“Well chosen case studies are often the most useful material, ‘borrowed’ by colleagues from different universities.”
(Reviewer of our FIE 2005 paper)
DAAD Workshop Ravda, September, 18th - 23th, 2006
5
Importance of real-world case studies:RPRCC workshop at CSEET 2006
“Because many software development skills can be learned only through practical experience, a … course in which students work as part of a team to develop a real project for a real client can provide students with invaluable insights and experience.”
“The purpose of this workshop is to begin the development of an evolving archive of materials to help faculty desiring to run Real-Projects for Real-Clients courses (RPRCC’s)”
RPRCC = Real-Projects for Real-Clients courses
DAAD Workshop Ravda, September, 18th - 23th, 2006
6
Importance of real-world case studies:SWECP workshop at CSEET 2006
“Team-based projects are the cornerstones of many undergraduate software engineering courses. In these projects, the students learn the importance of topics such as project management and issues of scale that separate software engineering from program development.”
SWECP = Software Engineering Course Projects
DAAD Workshop Ravda, September, 18th - 23th, 2006
7
Agenda
Motivation XCTL and our DAAD project Short introduction to the XCTL system Educational project work: tasks, theses,
statistics Evolution of project documents Evolution of the software system
DAAD Workshop Ravda, September, 18th - 23th, 2006
8
Cooperative work on XCTLwithin the DAAD project
Plovdiv: A refactoring based on XCTL (UCs: Linescan, Areascan)(A. Stoyanova and students, 2002 – 2006)
Belgrade: URCA applied to XCTL for architecture recovery (D. Bojic, 2002 - 2004)
Novi Sad: XCTL use case ‘Manual adjustment’ described by an English requirements specification (Z. Budimac, 2001/02) Case study of JCSE (requirements specification, reverse engineering, metrics)
Berlin: XCTL used for practical project work and 21 diploma theses (U. Sacklowski, K. Schützler, K. Bothe, 1998 - 2006)
XCTL as a case study in our JCSE
DAAD Workshop Ravda, September, 18th - 23th, 2006
9
Agenda
Motivation XCTL and our DAAD project Short introduction to the XCTL system Educational project work: tasks, theses,
statistics Evolution of project documents Evolution of the software system
DAAD Workshop Ravda, September, 18th - 23th, 2006
10
Short introduction to the XCTL system
Hardware controlling software used in experimental physics
Usage area: Analysis of semiconductor structures Displaying investigated structures in graphical
form Cooperation between the SE group at HU
(K. Bothe) and the Institute of Physics at HU (H. Köhler)
DAAD Workshop Ravda, September, 18th - 23th, 2006
12
Presenting structuresas graphics
Graphic of an atom Graphic of an atom core with its e-shellcore with its e-shell
Measuring method:Measuring method: Diffractometry/ReflectometryDiffractometry/Reflectometry
DAAD Workshop Ravda, September, 18th - 23th, 2006
13
Features of the XCTL system
Control motors (e.g. on sample holder)
Control x-ray detecting devices Control measurement processes
Adjust samples (before and during measurements)
Evaluate and display results (during and after measurements)
DAAD Workshop Ravda, September, 18th - 23th, 2006
14
Agenda
Motivation XCTL and our DAAD project Short introduction to the XCTL system Educational project work: tasks, theses,
statistics Evolution of project documents Evolution of the software system
DAAD Workshop Ravda, September, 18th - 23th, 2006
15
Educational project work
XCTL: real-project, real-client (RPRCC)
Two kinds of project work: Basic one-semester real-project team
work (ordinary one-semester class) Advanced professional real-project team
work (diploma thesis / master / bachelor)
DAAD Workshop Ravda, September, 18th - 23th, 2006
16
Basic one-semester real-project team workTasks and goals: Become familiar with a new application
domain Experiment with a real-life software system Review of requirements and behavioural
specifications Compare the specification with the behaviour
of the system Determine test cases based on the
classification tree method Reengineering non-ergonomic windows of GUI Work in a team
DAAD Workshop Ravda, September, 18th - 23th, 2006
17
Advanced project work: Areas of diploma theses (MA, BA)
XCTL system
Porting to
anotherenviromentMicrosoft Visual C++ 6.0 IDE
(3 thesis)
New and extendeduse cases(6 thesis)
Testautomation:ATOS … (6 theses)Reengineering of
user interfaces(2 thesis)
Multi-media:visualisationof functions(1 BA thesis)
Metrics forquality assessment(1 BA thesis)
Software reconstruction through refactoring(1 theses)
Formal Specification(1 thesis)
Correctness of user interfaces(2 theses)
Environment simulator(1 BA thesis)
Summary: • 33 thesis (MA,BA)• 14 men years
Architecture recovery (2 theses)
DAAD Workshop Ravda, September, 18th - 23th, 2006
18
Advanced project work: particular activities
XCTL system
Reverse Engineering: develop documents at a higher abstraction level • Requirements documents• design• understand and comment code• Find and document errors
Cooperation:• Meetings• Team work
Version control: cvs
Requirements negotiation with users
Design test cases;Regression Testing: ATOS
DAAD Workshop Ravda, September, 18th - 23th, 2006
19
Diploma theses at HU (1) Kay Schützler:
Recovery of subsystems by use case analysis and file restructuring demonstrated by the XCTL system, April 2001
Sebastian Freund, Derrick Hepp:From reverse engineering to program extension: automatic adjustment of a X-ray topogrophy control program, May 2001
Bernhard Buss:From reverse engineering to program extension of the XCTL system: Grafical representation measurement results of diffraktometry/reflektometry, October 2001
Stephan Berndt, Jens Ullrich: From reverse engineering to program extension: Diffraktometry/Reflektometry component of a program for X-ray structure analysis, November 2001
DAAD Workshop Ravda, September, 18th - 23th, 2006
20
Diploma theses at HU (2) Stefan Lützkendorf:
Software test in reverse engineering processes, December 2001
Michael Müller: Metrics for portability analysis in Window-based software systems, March 2002
Jens Hanisch, Johann Letzel:Automating of regression testing of a program for X-ray-based structure analysis, November 2002
Jens Klier: Extention of a software legacy system by a component for automating of manual protocol tasks, June 2003
René Harder, Alexander Paschold: Porting strategy for a hardware control program using reverse engineering techniques, August 2003
DAAD Workshop Ravda, September, 18th - 23th, 2006
21
Diploma theses at HU (3) Jan Picard:
Software reconstruction through refactoring, September 2003
Tobias Thiel: Automatic reconstruction and assessment of subsystem interfaces, January 2004
Thomas Kullmann, Günther Reinecker: Decomposition of software systems into functional component and user interface in forward and reengineering, Januar 2004
Hendrik Seffler: A metrics and instrumentation tool for Java and C++, December 2004
Andreas Hirth:Automatic generation of testscript kommands by capturing of user inputs in GUI programmes, September 2005
DAAD Workshop Ravda, September, 18th - 23th, 2006
22
Some important BA themes (1)
Stefan Lüzkendorf:Softwaremetrics of XCTL using the McCabe-Tool, May 1999
Marlies Gollnick:Reverse Engineering des Subsystems ‘Topographie‘, Oct. 2000
Kay Schützler: Environment simulation of detectors, Oct. 2000
Sebastian Freund, Derrick Hepp:Specification of an interface to motor devices: the C interface of the XCTL program, Oct. 2000
Jan Picard, Rene Harder, Alexander Paschold:Reverse Engineering of the subsystem ‘Detectors‘, Nov. 2000
DAAD Workshop Ravda, September, 18th - 23th, 2006
23
Some important BA themes (2)
Jens Klier:Reverse Engineering: Reengineering of the initialisation file structure of the XCTL program to increase the security, Jun. 2001
Johann Letzel, Jens Hanisch:Automatic regression test fo the XCTL System, Jan. 2002
Andreas Wenzel:XCTL project: Multimedia Presentation, Mar. 2005
DAAD Workshop Ravda, September, 18th - 23th, 2006
24
Current work in September 2006 Theses (Diploma): Development environment,
Reengineering, sophisticated subjects Testing: ATOS for Java (basic version for C++) Correctness of user interface Reengineering of the motor use case Modifications and extensions: New motors (drives) Software architecture assessment Formal specification with Z to assess and improve
verbal requirements specifications Language to control measurement processes
One-semester real project team work
DAAD Workshop Ravda, September, 18th - 23th, 2006
25
Project participants and
diploma theses
Statistics
DAAD Workshop Ravda, September, 18th - 23th, 2006
26
0
5
10
15
20
25
1998 1999 2000 2001 2002 2003 2004 2005 2006
Beginners
Diploma Theses
Advanced
Project participants and diploma theses
Total numbers:• Beginners (basic one-semester work): 131• Advanced: 31• Diploma thesis: 21• Other fundamental theses (e.g. BA): 13
DAAD Workshop Ravda, September, 18th - 23th, 2006
27
1999 2000 2001 2002 2003 2004 2005 2006
WolfAuerbachGollnick (S)
Hepp (D)Freund (D)Lützkendorf (D)Schützler (D)
SchadLühnsdorf
Bernd (D)Ullrich (D)
Müller (D)
Hanisch (D)Letzel (D)
Wenzel (S)
Klier (D)Picard (D)Harder (D)Paschold (D)
Thiel (D)Kullmann (D)Reinecker (D)
Seffler (D)Treysse
Damm (D)Hirth (D)
Janitschek (D)Tegos (D)Kraus (D)Graupner (D)Lange (D)
Advanced project work and diploma theses
DAAD Workshop Ravda, September, 18th - 23th, 2006
28
Agenda
Motivation XCTL and our DAAD project Short introduction to the XCTL system Educational project work: tasks, theses,
statistics Evolution of project documents Evolution of the software system
DAAD Workshop Ravda, September, 18th - 23th, 2006
31
Number of project documents (total and per year)
0
200
400
600
800
1.000
1.200
1.400
1.600
1998 1999 2000 2001 2002 2003 2004 2005 2006
Documents total
Documents / Year
1.530
296
DAAD Workshop Ravda, September, 18th - 23th, 2006
32
Number of software development documents (per year)
0
5
10
15
20
25
30
35
40
1998 1999 2000 2001 2002 2003 2004 2005 2006
Errors
Test
Design
Implementation
Analysis & Definition
DAAD Workshop Ravda, September, 18th - 23th, 2006
33
0
20
40
60
80
100
120
140
160
1998 1999 2000 2001 2002 2003 2004 2005 2006
Errors
Test
Design
Implementation
Analysis & Definition141
91
55
40
25
Number of software development documents (total number)
DAAD Workshop Ravda, September, 18th - 23th, 2006
34
0
10
20
30
40
50
60
1998 1999 2000 2001 2002 2003 2004 2005 2006
Project management Multimedia Project
Tools
Publications
User Doc.
Other project documents (per year)
DAAD Workshop Ravda, September, 18th - 23th, 2006
35
Other project documents (total number)
0
50
100
150
200
250
1998 1999 2000 2001 2002 2003 2004 2005 2006
Project management
Multimedia Project
Tools
Publications
User Doc.
14
29
76
109
196
DAAD Workshop Ravda, September, 18th - 23th, 2006
36
For the sake of overview:
Table ofdevelopersdocuments
DAAD Workshop Ravda, September, 18th - 23th, 2006
37
Size of software specification and number of errors found in the legacy system
Behavioural specification (existing parts)
Requirements specification (new parts)
Pages Errors
166
165 -
214
Total 331
DAAD Workshop Ravda, September, 18th - 23th, 2006
38
Agenda
Motivation XCTL and our DAAD project Short introduction to the XCTL system Educational project work: tasks, theses,
statistics Evolution of project documents Evolution of the software system
DAAD Workshop Ravda, September, 18th - 23th, 2006
40
Program analysis by “Understand C++“
Basic LegacySystem
Oct.98
+AutomAdjust
May.01
Archi-tectur
Jul.01
+Diff/Refl.
Feb.02
+Protocol
Jan.03
32-Bit-Port.
Jul.03
+Psd
Aug.04
Archi-tecture
Nov.04
+842-Motor
Sep.06
Classes 84 94 97 97 134 142 155 155 173
Files 51 58 65 66 113 118 123 157 168
Functions 1088 1167 1170 1192 2042 2204 2471 2471 2696
Lines 29534 38910 41003 42694 58402 65260 68453 68925 79499
Lines Blank 2763 4192 4435 4742 7715 9053 9624 9804 10674
Lines Code 22488 25702 26629 27649 35997 41630 43141 43239 50079
Lines Comment 2819 7168 8105 8428 13176 13686 16213 16300 18350
Lines Inactive 528 792 811 871 991 923 678 658 929
Decl. Statements 4461 4802 4990 4993 7480 7945 8820 8877 9703
Exec. Statements 13648 15475 16055 16819 22624 23210 25144 25143 28371
Comment/Code 0.13 0.28 0.30 0.30 0.37 0.33 0.38 0.38 0.37
Milestone versions
DAAD Workshop Ravda, September, 18th - 23th, 2006
41
1.000
1.500
2.000
2.500
3.000
1 2 3 4 5 6 7 8 9
0
30
60
90
120
150
180
Au
sg
an
gs
sy
ste
m
Ok
t. 1
99
9
.+ A
uto
m.
Ju
sta
ge
Ma
i 2
00
1
ne
ue
Arc
hite
ktu
r
Ju
l. 2
00
1
.+ D
iffr
./R
efl.
Fe
b.
20
02
.+ P
roto
ko
ll
Ja
n.
20
03
32
Bit-P
ort
ieru
ng
Ju
l. 2
00
3
.+ P
SD
Au
g.
20
04
ne
ue
Arc
hite
ktu
r
No
v.
20
04
.+ 8
42
er
Mo
tor
Se
p.
20
06
1.000
1.500
2.000
2.500
3.000
Basic System
Oct. 1998
+ Auto
. Adjustm
ent
May 2001Arc
hitectu
re
Jul. 2001
+ Diff
r./Refl.
Feb. 2002
+ Pro
tocol
Jan. 2003
32 Bit P
ort
Jul. 2003
PSD-Reeng.
Aug. 2004
Archite
cture
Nov. 2004
+ 842-Moto
r
Sep. 2006
Functions
Classes
Files51
168
84
1.088
2.696
173
Program components: files, classes, functions
DAAD Workshop Ravda, September, 18th - 23th, 2006
42
Program statements: executable and declarative
0
3.000
6.000
9.000
12.000
15.000
18.000
21.000
24.000
27.000
30.000
1 2 3 4 5 6 7 8 9
Basic
Sys
tem
Oct. 1
998
+ Auto
. Adju
stm
ent
May
200
1Arc
hitect
ure
Jul.
2001
+ Diff
r./Ref
l.
Feb. 2
002
+ Pro
toco
l
Jan. 2
003
32 B
it Port.
Jul.
2003
PSD-Ree
ng.
Aug. 200
4
Archite
cture
Nov. 2
004
+ 842
-Moto
r
Sep. 2
006
Executable Statements
Declarative Statements
4.461
13.648
9.703
28.371
DAAD Workshop Ravda, September, 18th - 23th, 2006
43
Program length and ratio comments/code
2.000
8.000
14.000
20.000
1 2 3 4 5 6 7 8 9
20.000
40.000
60.000
80.000
1 2 3 4 5 6 7 8 9
Basic System
Oct. 1998
+ Auto
. Adjustm
ent
May 2001Arc
hitectu
re
Jul. 2001
+ Diff
r./Refl.
Feb. 2002
+ Pro
tocol
Jan. 2003
32 Bit P
ort.
Jul. 2003
PSD-Reeng.
Aug. 2004
Archite
cture
Nov. 2004
+ 842-Moto
r
Sep. 2006
2.000
8.000
14.000
20.000
20.000
40.000
60.000
80.000
Lines Comment
Lines
Lines Code
Lines Blank
0,13 0,28 0,30 0,30 0,37 0,33 0,38 0,38 0,37
Ratio Comment/Code
18.350
10.674
50.079
79.499
2.8192.763
22.488
29.534
DAAD Workshop Ravda, September, 18th - 23th, 2006
44
Summary XCTL as a real-life real-client project course: useful
for motivation, learning effects … Reuse of the project necessary (efforts for staff and
students) Reuse and evolution of the system
requires: strict project management e.g. project website, version management …
XCTL: continuous evolution over years, with permanently changing project members
XCTL is an exceptional project: no firm deadline, could run over years
XCTL: strong requirements to security could be satisfied by a strict tool-based regression testing
Top Related