XCTL - during the last year and more … Uli Sacklowski Klaus Bothe Kay Schuetzler
DAAD Workshop Ravda, September, 18th - 23th, From the workshop programs 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, 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, 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, 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, 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, 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, Cooperative work on XCTL within 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, ) 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, ) XCTL as a case study in our JCSE
DAAD Workshop Ravda, September, 18th - 23th, 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, 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, XCTL working place X-ray topography camera
DAAD Workshop Ravda, September, 18th - 23th, Presenting structures as graphics Graphic of an atom core with its e-shell Measuring method: Measuring method: Diffractometry/Reflectometry Diffractometry/Reflectometry
DAAD Workshop Ravda, September, 18th - 23th, 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, 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, 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, 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
DAAD Workshop Ravda, September, 18th - 23th, Advanced project work: Areas of diploma theses (MA, BA) XCTL system Porting to another enviroment Microsoft Visual C IDE (3 thesis) New and extended use cases (6 thesis) Test automation: ATOS … (6 theses) Reengineering of user interfaces (2 thesis) Multi-media: visualisation of functions (1 BA thesis) Metrics for quality 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, 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, 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, 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, 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, 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 Kay Schützler: Environment simulation of detectors, Oct Sebastian Freund, Derrick Hepp: Specification of an interface to motor devices: the C interface of the XCTL program, Oct Jan Picard, Rene Harder, Alexander Paschold: Reverse Engineering of the subsystem ‘Detectors‘, Nov. 2000
DAAD Workshop Ravda, September, 18th - 23th, Some important BA themes (2) Jens Klier: Reverse Engineering: Reengineering of the initialisation file structure of the XCTL program to increase the security, Jun Johann Letzel, Jens Hanisch: Automatic regression test fo the XCTL System, Jan Andreas Wenzel: XCTL project: Multimedia Presentation, Mar. 2005
DAAD Workshop Ravda, September, 18th - 23th, 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, Project participants and diploma theses Statistics
DAAD Workshop Ravda, September, 18th - 23th, 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, Wolf Auerbach Gollnick (S) Hepp (D) Freund (D) Lützkendorf (D) Schützler (D) Schad Lü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, 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, Evolution of the Project Website Statistics
DAAD Workshop Ravda, September, 18th - 23th, Project documents: detailed overview
DAAD Workshop Ravda, September, 18th - 23th, Number of project documents (total and per year) Documents total Documents / Year
DAAD Workshop Ravda, September, 18th - 23th, Number of software development documents (per year) Errors Test Design Implementation Analysis & Definition
DAAD Workshop Ravda, September, 18th - 23th, Errors Test Design Implementation Analysis & Definition Number of software development documents (total number)
DAAD Workshop Ravda, September, 18th - 23th, Project managementMultimedia Project Tools Publications User Doc. Other project documents (per year)
DAAD Workshop Ravda, September, 18th - 23th, Other project documents (total number) Project management Multimedia Project Tools Publications User Doc
DAAD Workshop Ravda, September, 18th - 23th, For the sake of overview: Table of developers documents
DAAD Workshop Ravda, September, 18th - 23th, Size of software specification and number of errors found in the legacy system Behavioural specification (existing parts) Requirements specification (new parts) Pages Errors Total 331
DAAD Workshop Ravda, September, 18th - 23th, 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, Evolution of the Software System Statistics
DAAD Workshop Ravda, September, 18th - 23th, Program analysis by “Understand C++“ Basic Legacy System Oct.98 +Autom Adjust May.01 Archi- tectur Jul.01 +Diff/ Refl. Feb.02 +Proto col Jan Bit- Port. Jul.03 +Psd Aug.04 Archi- tecture Nov Motor Sep.06 Classes Files Functions Lines Lines Blank Lines Code Lines Comment Lines Inactive Decl. Statements Exec. Statements Comment/Code Milestone versions
DAAD Workshop Ravda, September, 18th - 23th, Basic System Oct Auto. Adjustment May 2001 Architecture Jul Diffr./Refl. Feb Protocol Jan Bit Port Jul PSD-Reeng. Aug Architecture Nov Motor Sep Functions Classes Files Program components: files, classes, functions
DAAD Workshop Ravda, September, 18th - 23th, Program statements: executable and declarative Basic System Oct Auto. Adjustment May 2001 Architecture Jul Diffr./Refl. Feb Protocol Jan Bit Port. Jul PSD-Reeng. Aug Architecture Nov Motor Sep Executable Statements Declarative Statements
DAAD Workshop Ravda, September, 18th - 23th, Program length and ratio comments/code Basic System Oct Auto. Adjustment May 2001 Architecture Jul Diffr./Refl. Feb Protocol Jan Bit Port. Jul PSD-Reeng. Aug Architecture Nov Motor Sep Lines Comment Lines Lines Code Lines Blank 0,13 0,28 0,30 0,37 0,33 0,38 0,37 Ratio Comment/Code
DAAD Workshop Ravda, September, 18th - 23th, 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