CS Home Research Software Engineering

Main menu

Software Engineering

The Software Engineering Group at the University of Maryland has focused in two areas experimentation and quality assurance.

Experimental Software Engineering Group (ESEG): www.cs.umd.edu/projects/SoftEng/ESEG/

Fraunhofer Center for Experimental Software Engineering - Maryland: http://fc-md.umd.edu

The group is a strong believer in empirical study and experimentation. Empirical software engineering involves the scientific use of quantitative and qualitative data to understand and improve the software product, software development process and software management. Our history has been in isolating problems faced by software organizations in developing and analyzing systems, identifying or proposing solutions, and empirically validating if, when and where the solutions are effective. The approaches involve observation, model building, and experimentation. This has been mode of operation from the 1970's, exemplified by the work at award winning NASA Goddard Space Flight Center in the Software Engineering Laboratory (Basili and Zelkowitz), where we were able to improve the software development process and product in a significant, sustained, and measured way.

Over the years there have been numerous objects of study from general software development methods like inspections and clean-room development to specific techniques like perspective based reading for software requirements and design, state based testing for GUIs, and message passing models for high end computing. The domains of interest have included high end scientific applications on parallel machines, ground support software for satellites, business applications, telecommunications, software development tools and general web applications.

The methods applied have varied from controlled experimental designs such as factional factorial designs and replicated studies to quasi-experimental designs like case studies to qualitative studies like grounded theory, structured interviews, and surveys.

Specific projects currently underway include:

High Productivity Computing Systems (HPCS): Basili, Zelkowitz
HPCS is about building sufficient knowledge through empirical studies about the high end computing so we can improve the time and cost of developing these codes. The underlying theme is to improve productivity by reducing the time to development. Activities include the development of theories, hypotheses, and guidelines that allow us to characterize, evaluate, predict and improve how an HPC environment (hardware, software, human) affects the development of high end computing codes. The work is related to the development of the new peta-scale computers supported by DARPA.

Unified Model of Dependability (UMD): Basili
UMD is a failure-centered framework for eliciting and modeling trust and quality requirements. It addresses the need to clearly understand and describe what quality attributes a system should possess, a difficult and often neglected aspect of requirements. The framework was originally developed based on the experience gained through the NASA High Dependability Computing Project. The synergy resulting from integrating trust and quality requirements on the basis of the modeling concept of failure greatly benefits stakeholders in clarifying their needs, and improving both trust and quality requirements elicitation.

Event-based System testing: Memon
The main focus of this project is the development of models and techniques for automated software quality assurance (SQA). To date, this project has resulted in several contributions to the field of testing event-driven software (EDS). A significant problem with model-based testing of EDS is that the models are difficult to obtain; they are typically state-machine models created manually. Moreover, it is resource intensive to maintain the models and test artifacts (e.g., test cases, test oracles - mechanisms that determine whether a test case passed/failed) during (frequent) software updates. Because the class of EDS is so diverse, the project concurrently focuses on four sub-classes of EDS (web applications, graphical user interfaces (GUIs), network protocols, and middleware), reaching different levels of research maturity and making various contributions with each sub-class. This work is support by the NSF, the Office of Naval Research (ONR); this work is also being extended to automated testing of service-oriented architectures (SOAs) with the help of researchers at the Accenture Technology Labs in Chicago.

Software Quality Assurance testing: Porter
This project is creating a new approach to quality assurance (QA), called Distributed, Continuous Quality Assurance. Inspired by volunteer computing projects such as SETI@Home and Folding@Home-which distribute pieces of enormous scientific computations to computers spread across the world- this effort is redesigning traditional QA analyses so they can be efficiently run across extensive grids of computing resources, volunteered by worldwide developer and user communities, in a distributed and continuous manner. This approach greatly improves the quality and speed of QA processes, gives developers greatly expanded insight into system performance on diverse runtime environments and workloads, and allows efficient, coordinated and transparent execution of very large scale QA processes. This work is support by the NSF, the Office of Naval Research (ONR), and DARPA and is being applied in developing collaborations with several high profile open source projects such as MySQL and JBoss Messaging, and with people and projects and leading IT companies such as Cisco, Raytheon and Lockheed Martin.

Model-Based Testing: Cleaveland
The focus of this project is on the development of effective automated techniques for assessing whether embedded-control software is behaviorally compliant with a specification given as an executable model. The work is motivated by the increasing importance of modeling in the embedded-software design flows in the automotive, aerospace and medical-device industries. The specific modeling notations being worked with include Simulink® and Stateflow®, although the general principles apply to other notations also, provided they have precise execution semantics. Our approach relies on the generation of test cases in the form of sequences of input vectors from models, with the goal of providing full coverage of the modeling constructs according to adaptations of traditional source-code coverage metrics such as statement coverage to the modeling arena. The work has been supported by the NSF, ONR, the Fraunhofer USA Center for Experimental Software Engineering Maryland, and Robert Bosch USA, Inc.

Flexible High Quality Design for Software: Basili, Shull
The goal of this NSF-funded work is to be able to predict the likely outcomes of proposed changes to a given software design, so that the tradeoffs involved in making the change can be understood. UMD is collaborating with the Fraunhofer Center in Maryland as well as Mississippi State University to address these questions by: mining information from repositories of tracked changes from open source, commercial, and government projects to generate hypotheses; testing these hypotheses on small-scale studies in universities to refine them and build confidence; and finally applying them to larger scale industrial projects to demonstrate their feasibility.

Information-hiding URLs: Sazawal
Many common elements of URLs do not adhere to the principle of information hiding. For example, filename extensions and parameter names can reveal volatile implementation details. As a result, when website implementations change, links between pages break. Bookmarks and code that generates URLs often break as well. An information-hiding URL uses an alias to identify a web resource and appends parameter values into the hierarchical structure of the URL. If a programmer follows certain conventions, such as providing default values for parameters, a link defined using an information-hiding URL will not break even if certain details about the page have changed.

University of Maryland
UM Home | CMPS | Directories | Calendar | Contact
Last modified: March 05, 2008