NO

Research associates

Parallele und Funktionale Programmierung

Title Parallele und Funktionale Programmierung
Short text PFP
Module frequency nur im Wintersemester
Semester hours per week 2

Die Materialien zur Lehrveranstaltung werden über StudOn bereitgestellt.

1. Parallelgruppe

Date and Time Start date – End date Cancellation date Lecturer(s) Comment Room
wöchentlich Tue, 12:15 – 13:45 14.10.2025 – 03.02.2026 06.01.2026
30.12.2025
23.12.2025
  • Prof. Dr. Michael Philippsen
  • Dr.-Ing. Norbert Oster
11907.01.030

Übungen zu Parallele und Funktionale Programmierung

Title Übungen zu Parallele und Funktionale Programmierung
Short text UePFP
Module frequency nur im Wintersemester
Semester hours per week 2

1. Parallelgruppe

Maximum number of participants: 40

Link to Campo

Date and Time Start date – End date Cancellation date Lecturer(s) Comment Room
wöchentlich Wed, 08:15 – 09:45 15.10.2025 – 04.02.2026 31.12.2025
24.12.2025
11302.02.133

2. Parallelgruppe

Maximum number of participants: 40

Link to Campo

Date and Time Start date – End date Cancellation date Lecturer(s) Comment Room
wöchentlich Fri, 14:15 – 15:45 17.10.2025 – 06.02.2026 02.01.2026
19.12.2025
26.12.2025
11302.02.133

3. Parallelgruppe

Maximum number of participants: 40

Link to Campo

Date and Time Start date – End date Cancellation date Lecturer(s) Comment Room
wöchentlich Mon, 10:15 – 11:45 13.10.2025 – 02.02.2026 29.12.2025
22.12.2025
05.01.2026
11302.02.133

4. Parallelgruppe

Maximum number of participants: 40

Link to Campo

Date and Time Start date – End date Cancellation date Lecturer(s) Comment Room
wöchentlich Wed, 16:15 – 17:45 15.10.2025 – 04.02.2026 31.12.2025
24.12.2025
  • Dr.-Ing. Norbert Oster
  • Ludwig Schmotzer
11302.02.133

5. Parallelgruppe

Maximum number of participants: 40

Link to Campo

Date and Time Start date – End date Cancellation date Lecturer(s) Comment Room
wöchentlich Tue, 14:15 – 15:45 14.10.2025 – 03.02.2026 30.12.2025
06.01.2026
23.12.2025
  • Dr.-Ing. Norbert Oster
  • Ludwig Schmotzer
11302.00.152

6. Parallelgruppe

Maximum number of participants: 40

Link to Campo

Date and Time Start date – End date Cancellation date Lecturer(s) Comment Room
wöchentlich Wed, 10:15 – 11:45 15.10.2025 – 04.02.2026 24.12.2025
31.12.2025
11302.02.133

12. Parallelgruppe

Maximum number of participants: 25

Link to Campo

Date and Time Start date – End date Cancellation date Lecturer(s) Comment Room
wöchentlich Fri, 14:15 – 15:45 17.10.2025 – 06.02.2026 19.12.2025
26.12.2025
02.01.2026
11302.00.153

13. Parallelgruppe

Maximum number of participants: 25

Link to Campo

Date and Time Start date – End date Cancellation date Lecturer(s) Comment Room
wöchentlich Tue, 14:00 – 16:00 14.10.2025 – 03.02.2026 30.12.2025
06.01.2026
23.12.2025
11302.00.153

14. Parallelgruppe

Maximum number of participants: 25

Link to Campo

Date and Time Start date – End date Cancellation date Lecturer(s) Comment Room
wöchentlich Wed, 14:00 – 16:00 15.10.2025 – 04.02.2026 24.12.2025
31.12.2025
11302.00.153

15. Parallelgruppe

Maximum number of participants: 25

Link to Campo

Date and Time Start date – End date Cancellation date Lecturer(s) Comment Room
wöchentlich Thu, 16:00 – 18:00 16.10.2025 – 05.02.2026 01.01.2026
25.12.2025
  • Dr.-Ing. Norbert Oster
11302.00.153

11. Parallelgruppe

Maximum number of participants: 25

Link to Campo

Date and Time Start date – End date Cancellation date Lecturer(s) Comment Room
wöchentlich Wed, 10:00 – 12:00 15.10.2025 – 04.02.2026 31.12.2025
24.12.2025
11302.00.153

7. Parallelgruppe

Maximum number of participants: 40

Link to Campo

Date and Time Start date – End date Cancellation date Lecturer(s) Comment Room
wöchentlich Thu, 08:15 – 09:45 16.10.2025 – 05.02.2026 01.01.2026
25.12.2025
11302.02.133

16. Parallelgruppe

Date and Time Start date – End date Cancellation date Lecturer(s) Comment Room
wöchentlich Thu, 10:15 – 11:45 16.10.2025 – 05.02.2026 25.12.2025
01.01.2026
  • Dr.-Ing. Norbert Oster
  • Ludwig Schmotzer
14201.00.001

2023

2020

2017

2011

2008

2007

2006

2005

2004

2002

2001

2025 Member of Berufungskommission W3-Professorship Data Management
2010-2019 embedded world Conference, PC-Member, Session-Chair
2016-2019 MINTerAKTIV/GIFzuMINTS, Project Coordinator
2015 Software Engineering 2015 (SE2015), PC-Member
2012-2014 WEMUCS – Methods and tools for iterative development and optimization of software for embedded multicore systems, Project Coordinator
2012/2013 Member of Berufungskommission W2-Professorship Didaktik der Informatik (Successor Brinda)
2006-2008 UnITeD – Unterstützung Inkrementeller TestDaten, Project Coordinator
2007 International Conference on Computer Safety, Reliability and Security (SAFECOMP 2007), Member of the Organizing Committee

Our thesis are managed using StudOn.
Please use the available filters to search for specific entries.

Brief description:

.gEAr-Meilensteine

In spite of remarkably improved methods in software development, the increasing complexity of modern software systems still represents a main hindrance towards fault-free software development. Size and budget of today’s projects mostly forbid a complete formal verification, which in turn covers only the logical domain of the code but not the real environment, even in cases where verification is feasible. On this account, testing is still considered to be an important means of quality assurance previous to the final release. In order to increase the chances of revealing faults during the testing phase, test cases are selected according to different strategies: for functional testing, inputs are derived from the specified requirements, whilst for structural testing the code has to be executed as exhaustively as possible. In consequence of the complexity of the control structures, the identification of test data allowing to achieve high dataflow coverage is exceedingly time consuming. Checking the correctness of the test results has usually to be carried out by hand and therefore requires a high amount of effort. Therefore, the overall number of test cases is crucial, even if their generation can be performed at low cost, e. g. by means of a random generator.

The aim of the ongoing research project is to automate the generation of adequate sets of dataflow-oriented test cases and to evaluate the adequacy of different techniques with respect to both quality achieved and effort required. In various application areas evolutionary algorithms have revealed as providing suitable search and optimisation strategies. Previous related investigations based on genetic algorithms were restricted to simple control flow criteria (statement and branch coverage), to special purpose programming languages or to language subsets hardly transferable to real projects.

Milestones achieved

  • Dynamic analysis of the test execution
    In order to identify the definition/use-pairs actually covered during the execution of a test case, a tool for monitoring the dynamic execution of a program was developed. It is intended to instrument the test object in such a manner that all relevant dataflow information is logged during each test run. The results were published on the occasion of the international conference PSAM7/ESREL’04.
  • Global optimization of test data sets
    Based on the dynamic assessment of the coverage achieved by a test set, a procedure was developed aiming at generating an optimal set of test cases using evolutionary algorithms. The fitness function for evaluating each test set depends both on the number of covered dataflow pairs (see dynamic analysis) and on the size of the test set. For this reason the task is considered as a global optimisation problem independent from the control flow structure of the test object. For the actual generation of the test data, different genetic operators were developed to be used in parallel in the context of adaptive evolutionary algorithms. The different options were implemented in a toolset and tested and evaluated. Details have been published by the GI technical group TAV.
  • Static analysis of the test object
    The evaluation of the results determined by the evolutionary algorithm requires the knowledge of both the coverage actually achieved (see dynamic analysis) and the coverage attainable. For this purpose a static analyzer has to locate the respective definitions and uses of each variable in the data flow graph. Together with the results achieved by the dynamic analysis, the static analysis is meant to improve the stopping criterion for the global optimisation.
  • Evaluation of the defect detection capability of the automatically generated test cases
    In addition to evaluating the relative quality of a test set in terms of coverage (see static analysis), this project also aimed to estimate the quality of automatically generated test cases by considering their fault detection capability. For this purpose, a back-to-back test procedure based on the principle of mutation testing was implemented. Representative errors are injected into the original program and the behavior of the modified version during the execution of the generated test cases is compared with that of the unmodified version. The proportion of corrupted programs for which a deviation in behavior could be uncovered is an indicator of the fault detection capability of the test set. The results of the last two subtasks were published on the occasion of the international conference SOQUA 2005.
  • Extension of the approach to further testing strategies
    The developed method for multi-objective generation and optimization of test cases can also be applied to other testing strategies. If coverage criteria are chosen which are orthogonal to the considered data flow oriented strategies, the detection of other types of defects can be expected. For example, in one subproject an approach for static analysis of the test object and dynamic analysis of the test execution with respect to the condition coverage criterion was developed and implemented. In another subproject, support for the structural equivalence class and boundary testing criterion was implemented, which, in combination with the existing criteria, is expected to result in an additional increase in the defect detection rate.
  • Addition of automatic test driver generators
    Since specialized test drivers are required for the automatic generation of test cases, which are only suitable to a limited extent for the manual verification of test results, a two-stage automatic test driver generation was also implemented as part of a subproject. It first creates parameterizable test drivers, which are used solely during the test case optimization pahse, and then translates them into the usual jUnit syntax as soon as the generated and optimized test data is available.
  • Experimental evaluation of the developed tool
    The practical relevance of the developed method was tested and evaluated in various experimental deployments. Java packages with up to 27 classes (5439 lines of code) served as test objects. The concurrent test execution during the generation and optimization of the test cases was parallelized on up to 58 networked computers. The results were published on the occasion of the international conference SAFECOMP 2006.

Planned milestones

  • Extension of the automatic generation
    In addition to the already supported testing criteria from the family of control and data flow strategies, the method and the implemented tool will be extended to other test procedures. Based on the already developed methods and tools, it is to be investigated how the above research results can be extended and improved using domain-specific knowledge in order to make the heuristics faster and more efficient – for example using distributed evolutionary methods.
  • Porting the tool to support other programming languages
    Having already successfully implemented the automatic generation of test drivers and the generation and optimization of test data for Java programs, the broader applicability of the tool in industrial settings can be achieved by offering support for additional programming languages. This includes, in particular, the C language family widely used in the embedded domain – including the more recent derivatives C++ and C#. Building on the previous findings for Java, the existing tool will be extended to include static and dynamic analysis for C# programs.
  • Generation of additionally required test data by means of local optimization
    Based on the identification of all data flow pairs (see static analysis), additional but yet missed control flow paths required for the fulfillment of the testing criterion can be determined. Corresponding test cases can be generated by applying evolutionary methods in a local optimization. For this purpose, a new fitness function is defined based on graph-theoretic properties of the control flow graph. The already implemented instrumentation (dynamic analysis) of the test object will be extended suitably. Thus, the automatic generation of test cases is locally directed in a more targeted way and further improved with respect to time and achieved data flow coverage.