440 likes | 572 Views
XCTL - during the last year and more …. Uli Sacklowski Klaus Bothe Kay Schuetzler. From the workshop programs 2003 - 2006. Workshop Software Engineering Education and Reverse Engineering. 2003 – 2005:. K. Schützler, U. Sacklowski, K. Bothe: XCTL during the last year. 2006:.
E N D
XCTL - during the last year and more … Uli Sacklowski Klaus Bothe Kay Schuetzler
From the workshop programs 2003 - 2006 Workshop Software Engineering Education and Reverse Engineering 2003 – 2005: K. Schützler, U. Sacklowski, K. Bothe:XCTL during the last year 2006: K. Schützler, U. Sacklowski, K. Bothe:XCTL during the last year and more …
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
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)
Importance of real-world case studies:RPRCC workshop at CSEET 2006 RPRCC = Real-Projects for Real-Clients courses “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)” “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.”
Importance of real-world case studies:SWECP workshop at CSEET 2006 SWECP = Software Engineering Course Projects “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.”
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
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
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
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)
XCTL working place X-ray topography camera
Presenting structuresas graphics Graphic of an atom core with its e-shell • Measuring method: Diffractometry/Reflectometry
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)
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
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)
Basic one-semester real-project team work Tasks 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
Advanced project work: Areas of diploma theses (MA, BA) Testautomation:ATOS … (6 theses) Porting to anotherenviromentMicrosoft Visual C++ 6.0 IDE(3 thesis) Metrics forquality assessment(1 BA thesis) Environment simulator(1 BA thesis) Correctness of user interfaces (2 theses) Reengineering ofuser interfaces(2 thesis) XCTL system Architecture recovery (2 theses) Software reconstruction through refactoring(1 theses) New and extendeduse cases(6 thesis) Multi-media:visualisationof functions(1 BA thesis) Formal Specification(1 thesis) • Summary: • 33 thesis (MA,BA) • 14 men years
Advanced project work: particular activities Requirements negotiation with users • Cooperation: • Meetings • Team work XCTL system Version control: cvs • Reverse Engineering: develop documents at a higher abstraction level • Requirements documents • design • understand and comment code • Find and document errors Design test cases; Regression Testing: ATOS
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
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
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
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
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
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
Statistics Project participants and diploma theses
Beginners Advanced Diploma Theses 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
Lange (D) Graupner (D) Kraus (D) Tegos (D) Janitschek (D) Hirth (D) Damm (D) Treysse Seffler (D) Reinecker (D) Kullmann (D) Thiel (D) Letzel (D) Hanisch (D) Paschold (D) Harder (D) Picard (D) Klier (D) Müller (D) Ullrich (D) Bernd (D) Wenzel (S) Schützler (D) Lützkendorf (D) Freund (D) Hepp (D) Lühnsdorf Schad Gollnick (S) Auerbach Wolf 2000 2001 2002 2003 2004 2005 2006 1999 Advanced project work and diploma theses
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
Statistics Evolution of the Project Website
1.530 Documents total 296 Documents / Year Number of project documents (total and per year)
Analysis & Definition Test Design Implementation Errors Number of software development documents (per year)
Analysis & Definition 141 Test 91 Design 55 40 Implementation Errors 25 Number of software development documents (total number)
Project management Multimedia Project Tools Publications User Doc. Other project documents (per year)
Project management 196 Multimedia Project 109 Tools 76 Publications User Doc. 29 14 Other project documents (total number)
For the sake of overview:Table of developers documents
Size of software specification and number of errors found in the legacy system Pages Errors Behavioural specification (existing parts) 166 214 Requirements specification (new parts) - 165 331 Total
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
Statistics Evolution of the Software System
Program analysis by “Understand C++“ Milestone versions
3.000 2.696 2.500 2.000 1.500 1.088 Functions 1.000 173 168 Classes 84 51 Files + Diffr./Refl. Feb. 2002 + Protocol Jan. 2003 32 Bit Port Jul. 2003 PSD-Reeng. Aug. 2004 Architecture Nov. 2004 + 842-Motor Sep. 2006 Basic System Oct. 1998 Architecture Jul. 2001 + Auto. Adjustment May 2001 Program components: files, classes, functions
28.371 Executable Statements 13.648 9.703 Declarative Statements 4.461 PSD-Reeng. Aug. 2004 32 Bit Port. Jul. 2003 + Diffr./Refl. Feb. 2002 + Protocol Jan. 2003 Architecture Jul. 2001 Architecture Nov. 2004 + 842-Motor Sep. 2006 Basic System Oct. 1998 + Auto. Adjustment May 2001 Program statements: executable and declarative
79.499 80.000 60.000 50.079 Lines 40.000 29.534 Lines Code 22.488 20.000 20.000 18.350 14.000 10.674 Lines Comment 8.000 Lines Blank 2.819 2.763 2.000 Ratio Comment/Code 0,13 0,28 0,37 0,30 0,33 0,30 0,38 0,38 0,37 32 Bit Port. Jul. 2003 PSD-Reeng. Aug. 2004 Architecture Jul. 2001 + 842-Motor Sep. 2006 + Protocol Jan. 2003 Architecture Nov. 2004 + Diffr./Refl. Feb. 2002 Basic System Oct. 1998 + Auto. Adjustment May 2001 Program length and ratio comments/code
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