|
|
STEM |
|
Complex systems are developed to solve complex problems. Complexity can be caused by complex computation algorithms or by complex data relationships. Analyzing and Testing a complex system requires that system functions be verified many times. In addition, complex systems typically interface with external systems and consequently expand the scope of analysis and test activities.
The overall goal of this project is to develop industry relevance techniques and tools for analyzing, assessing, testing and certifying software. Three concrete subprojects will be carried out to achieve this objective:
1. Graph Representations of Software Systems: Analysis tools and methods make extensive use of graph representations of software systems. However neither the graph representations themselves, nor the underlying methods for constructing them, are expressive enough for certain kinds of precise analysis. We propose extensions to several common representations and the methods for constructing them, that facilitate the analysis of object-oriented software. We also propose extensions to static slicing algorithms that make use of the augmented graph representations.
2. Testing & Debugging tool design: As application development becomes more complex, software developers need more and more tools that can systematically check source code or detect unexpected behavior at run time. Automated software-testing tools in cooperation with advanced debugger may provide cost-efficient solutions to improve the quality of products. Thus designing a suitable tool regarding application for large scale software requires development of new and efficient analysis algorithms. Test data generator, automated verifier and algorithmic debugger are key components in this project.
3. Discovering of erroneous input using fault injection: Fault-injection involves the deliberate insertion of faults or errors into a computer system in order to determine its response. This requires attention to program inputs, program outputs, and all states in between. In this project we investigate analysis methods and algorithms to identify erroneous inputs by using fault injection technique. The analysis technique should find out an accurate and feasible way back to the input domain from corrupted state caused by injection.
Graduate students: David Byers (lic 1997), Jon Edvardsson, Carl Cederberg.
Supervisor: Mariam Kamkar.