Research History
Research History
Debra Richardson’s research of late focuses on software quality and requirements engineering (while her earlier work focused on specification-based testing ... see below). A recent desire to explore how software engineering – requirements engineering, in particular – can be made to address socially relevant problems has led to considering the domains of development and sustainability. Much of her research in these domains considers how to adapt requirements engineering and other software development methods to be usable within the context of a wider variety of stakeholders, and investigating how software engineering can be extended to help solve some of the world’s critical problems, ICT support for human development in less economically developed regions and sustainability of our environment.
Ongoing projects include:
✦Software Engineering for Sustainability (SE4S) with Professor Bill Tomlinson and postdoc Birgit Penzenstadler: Creation of a methodology to develop software-intensive systems that meet the functional needs of users while reducing the environmental impacts brought about by those systems ... see more.
✦Requirements Engineering at the Margins (RE@tM): developing new methods for requirements engineering to develop ICT systems that help computationally marginalized populations (e.g., in underprivileged communities, developing regions and underdeveloped countries) ... see more.
Richardson inspired much of the work in “Specification-Based Testing”, beginning with her early development of the Partition Analysis Method, which proposed incorporating information from both specification and implementation in an integrated application of verification and testing techniques. Her more recent work in this area is largely focused at the requirements level, but prior work focused at the architecture and component level. As a principal investigator on the Arcadia project, Richardson collaborated on developing analysis and testing capabilities within a process-centered environment to support integration of and experimentation with a variety of techniques.
Some of her previous projects (in more or less reverse chronological order) include:
✦Integrated Model-based Use-case Storytelling Environment (iMuse), with former graduate student Kristina Winbladh: a requirements engineering tool designed to balance usability and precision and thereby enable and encourage non-technical stakeholder participation in requirements engineering
✦Secure and Usable Requirements Engineering (SURE), with former graduate student Jose Romero-Mariona: supports non-security experts in specifying usable, useful, and understandable security and privacy properties early in the software lifecycle
✦Multiple Objective Decision Analysis applied to Software Architectures (MODASA), with former graduate student Lihua Xu: supports an explorative software architecture design process, by identifying the important quality attributes to be addressed, and comparing the ultimate architecture design alternatives to make the right decisions to address and balance various stakeholders’ needs.
✦Model-based Selective Regression Testing with Traceability (MbSRT²), with former graduate student Leila Naslavsky: Makes testing more cost-effective through automated support for test generation, test execution, test result evaluation, test coverage measurement, and reuse and regression testing (eliminating human inefficiencies) – all based on scenarios, which is a behavioral notation that users and other stakeholders understand.
✦Analyzing Dependencies in Large Component-Based Systems, with former graduate student Marlon Vieira: developed a technique to analyze dependencies in large component-based systems. The method is based on the denotational semantics of partial-order multi-sets (pomsets, for short), a well-established linear-time non-interleaving model. The use of pomsets provides a scalable way for modeling and analyzing inter-component dependencies.
✦Architecture-Based Debugging, with former graduate student Marcio Dias: Software monitoring at the application's architectural level supports the developer at the adequate level of detail abstraction – i.e., at the application and component domain levels. This reduces the effort required to install software monitoring and enables analysis of the evolution of dynamic systems at its architectural level.
✦Software Architecture for Testing, Coordination and Views Model Checking, with Italian collaborators Henry Muccini, who was then visiting UC Irvine as a postdoctoral scholar, and Professor Paola Inverardi, both of the Univesity of L'Aquila: this project brought together work focused on using software architecture in testing and coordination.
✦Quality by Design, with Professor David Redmiles: This project combined for the first time (1) formal architecture and component design models, (2) analysis and testing techniques based on these formalisms, together with (3) cognitive-based, design environments for critiquing software design. The focus of the project is to help software developers design quality into their systems, rather than considering quality as an afterthought. (sponsored by the NSF Information Technology Research Program)
✦Architecture and Component Analysis based on Software Dependence, with former graduate students Marlon Vieira and Marcio Dias: developed a two-tiered dependence analysis method that independently studied a deployable component and its inclusion in a software structure represented by an architectural description language (ADL). (funded by Conexant and the UC MICRO program)
✦Redundant Arrays of Independent Components (RAIC), with former graduate student Chang Liu: a project building reliable software applications using redundant component arrays with just-in-time software component testing and component state recovery techniques.
✦Perpetual Testing, principal investigator, with Professors Lori Clarke, Leon Osterweil and Michal Young: developed capabilities to support analysis and testing throughout the software lifecycle, from early requirements analysis through operational use. (ARPA-funded EDCS project)
✦Formal Architecture-Based Approach to Software Testing, with Professor Alex Wolf: first extended specification-based testing techniques to be applicable at the level of software architecture. (NSF&ARPA-funded)
✦Integrated Toolset for Specifying and Testing Critical Software-intensive Systems, with Professor Laura Dillon: a toolset to support the production of highly dependable critical systems by combining and refining several advanced technologies including GIL, TAOS, and ProDAG. The toolset provides capabilities for formal specification of critical behavioral requirements, formal reasoning about specified requirements, continuous testing to provide assurance of behavioral correctness and/or detect failures, assisted debugging to reason about the cause of a failure, and cost-effective testing of evolving software systems. (supported by UC MICRO and Hughes/Raytheon)
✦EASOF, with former graduate student Owen O’Malley: a model of specification-based testing with support for execution-time checking of test results against formal specifications of required behavior.
✦Testing with Analysis and Oracle Support (TAOS): a testing environment that supports management of test assets, monitored test execution, automatic test result checking, and test coverage measurement.
✦Program Dependence Analysis Graph (ProDAG), with her research team: a program dependence analysis toolset that provides automated support for software understanding, debugging, test adequacy criteria, and maintenance.
✦The Relay model, with Margaret Thompson and Lori Clarke: developed the formal definition of test data selection criteria and evaluation of their fault detection capabilities.