University of Minnesota
Software Engineering Center

You are here

Mats Heimdahl

Photo of Mats Heimdahl
Computer Science and Engineering Department Head
Phone Number: 
Office Location: 
Kenneth H Keller Hall room 6-201

M.S. Computer Science and Engineering from the Royal Institute of Technology, Sweden, 1988.

Ph.D. Computer Science, University of California at Irvine, 1994.


Professor Mats Heimdahl specializes in software engineering and safety critical systems. He is the director of the University of Minnesota Software Engineering Center (UMSEC).

Heimdahl is the recipient of the National Science Foundation's CAREER award, a McKnight Land-Grant Professorship and the McKnight Presidential Fellow award at the University of Minnesota, and the University of Minnesota Award for Outstanding Contributions to Post-Baccalaureate, Graduate, and Professional Education.


Software is increasingly involved in our lives; software controls physical systems ranging from microwave ovens and watches to nuclear power plants, aircraft, and cars. Computer-related failures can, in many of these applications, have catastrophic effects.

My research group, the Critical Systems Research Group (CriSys), is conducting research in software engineering and is investigating methods and tools to help us develop software with predictable behavior free from defects.

Research in this area spans all aspects of system development ranging from concept formation and requirements specification, through design and implementation, to testing and maintenance. In particular, we are currently investigating model-based software development for critical systems.

Specifically, we are focusing on how to use various static verification techniques to assure that software requirements models possess desirable properties, how to correctly generate production code from software requirements models, how to validate models, and how to effectively use the models in the testing process.


Software engineering and safety critical systems.

Recent Publications

Specification Centered Testing

This position paper discusses a framework for automating the testing of systems with stringent structural coverage requirements, for example, avionics systems. The framework covers testing of the model of the desired behavior as well as the resulting implementation. We use a formal model of the required software behavior as the central component of our testing strategy; we call this approach specification centered testing. We discuss how a model checker can be used to automatically generate complete test sequences that will provide

Ideas on How Product-Line Engineering Can be Extended

Product-line engineering can result in cost savings and increases in productivity. In addition, in safety-critical systems, the approach has the potential for reuse of analysis and testing results which can lead to a safer system. Nevertheless, there are times when it seems like a product family approach should work when, in fact, there are difficulties in properly defining the boundaries of the product family. In this paper, we present a position on n-dimensional and hierarchical product families, which we have recently introduced.

Coverage Based Test-Case Generation using Model Checkers

This paper presents a method for automatically generating test cases to structural coverage criteria. We show how a model checker can be used to automatically generate complete test sequences that will provide a predefined coverage of any software development artifact that can be represented as a finite state model. Our goal is to help reduce the high cost of developing test cases for safety-critical software applications that require a certain level of coverage for certification, for example, safety-critical avionics systems that need to demonstrate