Research
Software is being increasingly used for a variety of critical applications. These range from on-line transaction processing systems, such as banking systems and airline reservation systems, to embedded computer systems, such as manufacturing systems, automobiles, air traffic and space vehicle control systems, nuclear power plant safety control systems, medical and military applications. The driving force behind the use of computers in these applications is the delivery of vastly sophisticated control algorithms or system features via software. The existence of software faults in safety critical systems is not tolerable. The potential for catastrophic loss of life and property makes it imperative to develop "perfect software".
Yet, it is a cruel reality that the goal of producing "perfect software" remains elusive. As a consequence of several disastrous (or potentially disastrous) failures of safety critical systems in the past, the consciousness to our vulnerability to computer failures is developing. When software is part of a critical system, it is necessary to estimate the risk associated with its use. My research addresseMy research addresses, in broad terms, the estimation and minimization of the above risks through the advances of verification and validation methods for high-assurance systems. What distinguishes my research path from the "mainstream" is the search for better solutions through the synthesis of known methodologies, which address only part of the problem. The examples of the syntheses include the interplay of software testing and formal verification, the investigation of the role of computational intelligence methods in software assurance, the combination of virtual reality modeling and model checking for requirements validation, novel component based and Bayesian approaches to early lifecycle prediction of software reliability, etc. All these approaches are highly innovative and open fresh directions in software dependability research. The constant themes guiding my work are statistical and logical substantiation, convincing scientific argumentation and the demonstration of applicability to real world ccomplex systems.
iption of a few of my past and current research projects.
  • Bayesian Frameworks for Software Reliability Assessment
  • Project is developing theoretical frameworks for software reliability assessment based on Bayesian Hypothesis Testing. These frameworks are especially suitable for reliability assessment in situations where extensive qualitative software V&V activities are being performed, but their results are not easily quantifiable. The true novelty of these frameworks is their versatility, i.e., the ability to apply them early in the software development life cycle, or within software product lines and component based development environments, or even following system deployment. Innovation is due to the integration of formal and informal approaches to software verification, followed by the sound statistical analysis. The model uses software artifacts (requirements, design, data and control flow diagrams, etc.), the results of the qualitative and quantitative verification activities and expert opinions to recommend appropriate random testing effort at the tail end of the development lifecycle, leading to a methodology for practical software reliability assessment. This work, performed in collaboration with Profs. Singh and Gunel (WVU Statistics), and Prof. Smidts (U. Maryland) is sponsored by NASA Office of Safety and Mission Assurance (NASA IV&V University Initiatives) and by the CAREER grant from the National Science Foundation.
  • Verification and Validation of Adaptive Systems
  • Adaptive Systems are systems whose function evolves over time, as they improve their performance through learning. The advantage of adaptive systems is that they can react to situations that were never individually identified and analyzed by the designer. If learning and adaptation are allowed to occur after the control system if deployed, the system is called online adaptive system. Online adaptive systems are attracting increasing attention in application domains where autonomy is an important feature, or where it is virtually impossible to analyze ahead of time all the possible combinations of environmental conditions that may arise. An archetype of the former are long term space missions where communication delays to ground stations are prohibitively long, and we have to depend on the systems' local capabilities to deal with unforseen circumstances. An archetype of the latter are flight control systems, which deal with a wide range of parameters, and a wide range of environmental factors. In collaboration with Prof. Marcello Napolitano (Aerospace Engineering, WVU), and Prof. Ali Mili (New Jersey Institute of Technology) we are investigating verification and validation issues for adaptive, fault-tolerant flight control systems. Our approach is based on the combination of novelty detection techniques and Lyapunov stability analysis. Our methodology is being used in the flight assurance procedures of the F-15A - IFCS aircraft. This project is sponsored by NASA Dryden Flight Research Center and by NASA Office of Safety and Mission Assurance.
  • Increasing Fault Detection Probability in Software Testing
  • Software testing is the most commonly used software verification technique. It is widely acknowledged that it is also one of the costliest activities in the software development lifecycle. Significant advances have been made in software test automation, including automated test generation from specifications, generation of oracles, test coverage measures, etc. However, the central question pertinent to the efficacy of software testing, addressing the repetitive ability of the test method to identify software failures, remains open. In the context of debugging, partition and random testing strategies have been frequently compared with respect to their ability to detect at least a single fault in the program's input space. In principle, many practical testing methods (branch testing, specification-based testing, feature-based testing, etc.) can be abstracted by input domain partitioning paradigm. In collaboration with Prof. Phillip Boland (National University of Ireland - Dublin) and Prof. Harshinder Singh (WVU Statistics), we are developing truly innovative statistical frameworks for reasoning about comparative advantages of different forms of partition and random test strategies. We evaluate these strategies in terms of suitable stochastic majorization and precedence orderings. The additional factors considered include failure/fault severity classifications, practicality of the domain construction, assumption validation through industrial size case studies and the availability and/or the development of tool support. Current results have been published by IEEE Transactions on Software Engineering and Applied Probability Journal. The derived theories will assist in identifying testing strategies with the highest probability of fault detection, thus facilitating improved reliability prediction and/or cost reduction.
  • Multifractal Analysis of Software Aging
  • Software aging is the side effect of the complexity of modern software applications and operating systems. Accumulation of unreleased file locks, memory leaks, data corruption effects cause the exhaustion of operating system resources. As a result of aging, systems can crash or experience substantial performance degradation problems. This project investigates the applicability of fractal theory in the analysis of software aging phenomenon and is expected to develop algorithms for the prediction of system performance problems due to memory exhaustion. We demonstrated that fractal analysis can be used to predict the occurrence of a crash, making the deployment of a preventive maintenance action a viable option. This work is sponsored by NASA Office of Safety and Mission Assurance (NASA IV&V University Initiatives).
  • Statistical Assessment and Evaluation of Biometric Systems
  • This line of research represents a departure from the traditional software engineering scope of problems. Biometric devices offer substantial advantages over the traditional user authentication approaches. But very limited knowledge is available to assess the performance of biometric systems in isolation and/or as a part of larger applications. In 2001, we initiated a study of information assurance aspects of the use of biometric devices in large-scale computer networks. Research emphasis was on the study of system-wide reliability impacts of biometric authentication devices. Currently, in collaboration with Prof. Singh (WVU, Statistics), we investigate the identification of statistical parameters for the improved performance of multi-modal biometric identification systems. We plan to develop an optimal algorithm for the adjustment of thresholds of individual biometrics working in a multimodal authentication framework. The final result of this research should provide design guidelines for multimodal miometric systems that provide provably optimal False Acceptance and False Rejection rates. The work has been funded through the NSF-IUCRC (Industry-University Collaborative Research Center) called CITeR (Center for Research in Identification Technologies).