IV&V Facility Research Program Results and SARP Results  

Advanced Search
Click here to complete a short survey. The results of this survey will be used to help us improve the research program and this website.

Click here to view research projects that had new research results added in the last 90 days.


Interface Validation for Distributed Software Systems
Point of Contact Pavan Rajagopal
pavan.rajagopal@titan.com
Dates September 2004 - June 2007
Problem Past history indicates that many failures in distributed software systems are attributable to errors and deficiencies in interactions between software components. Comprehensive validation of command and data exchange between the components of a distributed software system is crucial to validation of the entire system but typically is not performed. The major reasons for this omission are as follows:
  1. The activity required to accomplish this validation has not been defined.
  2. The effort required is perceived as being unfeasible in terms of time and cost.
Instead, validation of interfaces between software components is typically performed through system integration testing. This type of testing however is designed to concurrently exercise groups of CSCIs, and lacks the detail required to comprehensively validate command and data exchange across the interfaces. System integration testing also occurs late in the development cycle and deficiencies found at this stage are expensive to fix.

The research and development proposed in this study will attempt to address this deficiency by defining an IV&V process for performing software interface validation and developing tools to make it feasible.

Objective In terms of software development, validating a software interface at the specification stage provides the most benefit for the amount of effort expended. Interface validation becomes progressively more expensive at each subsequent stage of software development. Validating an interface specification means ensuring that it properly captures and describes all the necessary interactions between the software components on either side of the interface. For the scope of this proposal it means verifying that the interface specification completely and correctly describes all the command and data exchanges that should occur between two software components.

A suitable approach for validating an interface is the following:

  1. Develop a model of the external interface for each component based on analysis of its requirements specifications (SRS). The model should identify and characterize the following:
    1. The input data required by each component
    2. The output data provided by each component
    3. The input commands accepted by each component
    4. The output commands issued by each component
  2. Develop a model of the command and data exchange based on analysis of the interface specifications (IRS). This model should characterize the data and commands that flow in both directions across the interface.
  3. Combine the derived models
  4. Check the combined model to verify if it is consistent and if not, identify the inconsistencies.
  5. Analyze the identified inconsistencies and determine the impact.

The above approach is flexible in that it does not require a common format for the component software requirement specifications. Also it can be used with specifications at various stages of maturity. As requirements mature and more properties of the interface are defined the models can be enhanced but the underlying process (model comparison) for validation does not have to change.

Results Facility Initiative Technical Presentation.ppt
SAS 06 Executive Presentation.ppt
SAS 06 Technical Presentation.ppt
Concept Charts.doc
SAS_07_ExecBrief_IVDS_Rajagopal.ppt
SAS_07_Tech_Pres_IVDS_Rajagopal.ppt
IVDS Phase II Final Report.doc
IVDS Prototype.doc
IVDS_Users_Manual.zip
Keywords software testing, software validation, interface specification, requirements specifications, software components
Categories Domain-Specific Analysis
Interface Analysis