Dependable Software through a Holistic Framework of Tool Interoperability and Artifact Dependency

Thumbnail Image
Puett, J.
Date of Issue
Monterey, California. Naval Postgraduate School
Objectives. The goal of this research is to develop a holistic framework for engineering dependable computing and communications software. The framework establishes collaborative mechanisms by which existing software development tools and models (and the artifacts produced by those tools and models) will work together with greater efficiency and effectiveness to produce dependable software. The objectives are to improve the efficiency of software development processes and to directly improve developed software's reliability, availability, quality, and safety. Intellectual Merit. Volumes ofsoftware engineering research have been conducted with the aim of developing or improving individual aspects ofsoftware development such as: research into software evolution models, requirements engineering, risk and cost estimation, software reuse, prototyping, testing, software integration, software maintenance, re-engineering, performance analysis, domain analysis, architecture design, etc. However, there has been comparatively little research investigating holistic models of how these various threads and processes could (and should) most efficiently and effectively interact to produce dependable computing and communications software. Establishing a holistic framework for software engineering where the dependencies (both type of dependency and degree of dependency) between software development artifacts can be visualized, reasoned with, and leveraged promises to provide new mechanisms whereby software processes and products can be made more dependable. Broader Impact. Establishing such a framework promises to provide improved interoperability between these processes, enabling complex software to be produced more efficiently and reliably with improved quality. Additionally, the existence of such a framework enhances the discovery of new dependencies among the different aspects of the software engineering process. The holistic framework would help software engineers to discover process improvements that would provide product integrity with respect to those dependencies. Methods. Constructingtheframeworkrequiresdevelopmentofasoftwaredevelopmenttool ontology and integrating that ontology within a software evolution system that provides strong version control ofall artifacts produced during system development as well as tracking the dependencies among artifacts. Integrated into the evolution system is Quality Function Deployment (QFD), a quality methodology used widely in other (non-software) engineering disciplines to embed quality into the entire engineering process and product. The artifacts to be controlled in the holistic framework vary in both purpose and format (e.g., organizational policy and vision documents, business case documents, development plans, status assessments, user's manuals, requirements and specifications, customer interviews, meeting minutes, code, software documentation, software architecture documents, unit tests, test cases, test results). Research considerations required to establish the holistic framework include identifying standards for representation and interpretation ofinformation (e.g. tree structure), object models, term algebras, inference rules, etc., establishing a communications medium (e.g. net, databases, publish and subscribe with CORBA, object mechanisms using XML, etc.), accounting for process order (e.g. sequential, parallel, hybrid), providing missing data, accounting for ambiguity ofinputs and outputs, accounting for conflict resolution between models, and providing for extensibility. After the holistic framework is established, this research will seek to improve the efficiency and effectiveness ofsoftware development in a number ofways. First, the entire process ofsoftware development will become more automatic. As long as model/tool inputs and outputs can be supplied through the holistic model, different tools will be able to interact automatically, with reduced involvement by the software engineer. Second, because all artifacts within the holistic model are tracked together as a large dependency graph, it is possible to extract select "slices" ofthe dependency graph for particular purposes, allowing more "focused" development, analysis and improvement (e.g. a slice that represents the greatest risk to the project) so that prototyping and analysis effort is not wasted on developing artifacts that are already well defined, understood, or successfully implemented in previous versions. The improvements in dependability provided by the holistic framework will be measured on the HDCP Testbed by comparing the dependability ofthe software artifacts produced by tools integrated within the holistic framework against similar artifacts produced by tools that have not undergone such integration.
Technical Report
Series/Report No
Computer Science (CS)
NPS Report Number
15 p.
Distribution Statement
Approved for public release; distribution is unlimited.
This publication is a work of the U.S. Government as defined in Title 17, United States Code, Section 101. Copyright protection is not available for this work in the United States.