Font Size: a A A

THE USE OF MM-PATHS IN CONSTRUCTIVE SOFTWARE DEVELOPMENT (SPECIFICATION, INTEGRATION, TESTING)

Posted on:1986-08-29Degree:Ph.DType:Dissertation
University:Arizona State UniversityCandidate:JORGENSEN, PAUL CLIFTONFull Text:PDF
GTID:1478390017960740Subject:Computer Science
Abstract/Summary:
Systems such as nuclear reactors, weapons systems, and real-time switching systems present a variety of problems for conventional software development. In addition to the sheer magnitude of these systems, high reliability requirements and deep complexities best characterized by Petri nets demand improvements in specification, design, and testing. Specification of such systems is considered: traditional functional decomposition is shown to be inadequate, as is the approach based on Finite State Machines. A rigorous form of process descriptions is developed here; these are demonstrated to have the same expressive power as Petri nets. Use of these process descriptions as a specification technique leads naturally to a truly intermediate level concept, the MM-Path, which is the basis of the development methodology proposed here. This methodology is highly constructive in the sense that information needed in later phases is used to populate a database structured by the process description and MM-Path concepts. Sample queries are given to illustrate the use of the database in the software testing phases.; Test coverage metrics are developed for the unit, integration, and system levels of software testing. Existing unit test coverage metrics are shown to be upper bounds to the unit test coverage metrics defined here. A lattice of four integration test coverage metrics is defined in terms of MM-Paths, and MM-Paths are used to extend the concepts of path analysis to system level testing. Five system test coverage metrics are proposed; these are shown to be in a partial ordering. Finally, the problem of trade-offs among the three levels of testing is considered, and a heuristic solution is offered.; The goal of software engineering is to apply technology to difficult problems, thereby reducing them to a practice possible of a team of software developers. The constructive approach to the development of difficult systems conforms to this goal. The rich structure defined and developed here supports future research in software safety, performance modeling, development effort estimation, the specification and testing of distributed systems, and database views of the Ripple Effect problem in software maintenance.
Keywords/Search Tags:Software, Testing, Development, Specification, Systems, Constructive, Mm-paths, Integration
Related items