Software Engineering
The Software Engineering research focus area addresses fundamental issues for improving the design, construction, maintenance, and use of software products. Current areas of software-engineering research include:
- Software design
- Software testing
- Software evolution
- Experimental and empirical software engineering
- Software process
- Software metrics
- Assurance of software for critical systems
- Applications of intelligent systems
- Real-time instrumentation systems
Center for Computer Security Research
Several software-engineering faculty are affiliated with the Center for Computer Security Research, which conducts research projects in the following areas.
- Computer security
- Information assurance
- Computer forensics
Faculty
Ongoing Collaborations
- Argonne National Laboratory
- CeBASE: NSF Center for Empirically Based Software Engineering
- Fraunhofer Center --- Maryland
- University of Maryland
- University of Nebraska --- Lincoln
- US Army Engineer Research and Development Center
- MSU Institute for Neurocognitive Science and Technology
- MSU High Performance Computing Lab
- MSU HPC* including:
Research Projects
- David A. Dampier, Ray Vaughn, and others
- Center for Computer Security Research - Projects in the areas of computer security, information assurance and computer forensics are described in the Computer Security and Forensics research focus area.
- Edward B. Allen
- Empirical Evaluation of Information Theory-Based Software Metrics - This project is empirically validating the usefulness of a new generation of software metrics, based on information theory.
- Assessment of Open-Source Software for High-Performance Computing - This project is finding ways to assess the quality of open-source software for high-performance computing. The open-source approach to software development has been attractive to the high-performance computing community, but the software's quality is uncertain. Our retrospective case studies are building and evaluating models that could have been developed during historical projects or releases, and thus, demonstrate methods for assessing software quality.
- Certification that Software Requirements are Perfectly Fulfilled at Delivery - This project is developing a methodology for verification of high priority software requirements, such as security requirements expressed in the Common Criteria. Our methodology will be based on a synthesis of diverse formal modeling methods, source-code analysis, and automated test generation techniques. We take a product-centered, white-box approach to verification that takes advantage of design information, if available. Our methodology will complement certification that development processes were rigorous. Contributions are expected to provide guidance both for specifying requirements and for selecting verification methods. Our initial case study has examined the Security Target document for the STAT Scanner by Harris Corp. based on the Common Criteria.
- Comprehension of Diagrams Representing Mental Models of Software - This project is applying cognitive-science results and methods to understanding cognitive errors during creation and comprehension of software-engineering diagrams.
- Thomas Philip
- Teaching the Science of Design to Undergraduate Software Engineering Majors - This project is finding coherent ways to teach undergraduate software-engineering majors to design software well.

