University of Minnesota
Software Engineering Center
/

You are here

Mats Heimdahl

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

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

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

Biography: 

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.

Research: 

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.

Interests: 

Software engineering and safety critical systems.

Recent Publications

Toward Rigorous Object-Code Coverage Criteria

Object-branch coverage (OBC) is often used as a measure of the thoroughness of tests suites, augmenting or substituting source-code based structural criteria such as branch coverage and modified condition/decision coverage (MC/DC). In addition, with the increasing use of third-party components for which source-code access may be unavailable, robust object-code coverage criteria are essential to assess how well the components are exercised during testing.

Architecture Modeling and Analysis for Safety Engineering

Architecture description languages such as AADL allow systems engineers to specify the structure of system architectures and perform several analyses over them, including schedulability, resource analysis, and information flow. In addition, they permit system-level requirements to be specified and analyzed early in the development process of airborne and ground-based systems. These tools can also be used to perform safety analysis based on the system architecture and initial functional decomposition.

Discovering Instructions for Robust Binary-level Coverage Criteria

Object-Branch Coverage (OBC) is often used to measure e ective- ness of test suites, when source code is unavailable. The traditional OBC de nition can be made more resilient to variations in compil- ers and the structure of generated code by creating more robust de nitions. However nding which instructions should be included in each new de nition is laborious, error-prone, and architecture- dependent. We automate the discovery of instructions to be in- cluded for an improved OBC de nition on the X86 and ARM archi- tectures.

Pages