Universal verification and validation system and method of...

Data processing: software development – installation – and managem – Software program development tool – Testing or debugging

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

Reexamination Certificate

active

06671874

ABSTRACT:

FIELD OF INVENTION
This invention relates to computer programs. In particular, this invention relates to a method of developing and testing computer programs, and computer software for implementing the method.
BACKGROUND OF THE INVENTION
The use of computers for home, commercial, industrial and academic applications has expanded exponentially in the past two decades, to the point where computers are now amongst the most versatile tools known to mankind. In large part this is due to software development, which can be credited for the versatility and complexity of today's myriad computer functions.
The software development life cycle (SDLC) has conventionally consisted of three phases:
1. Determining system requirements through information from the intended user, which typically involves a detailed interrogation of the user to determine the user's objectives, and extrapolation from the developer's understanding of these objectives to determine the desired system behavior under the circumstances contemplated by the end user;
2. Constructing design parameters which most efficiently achieve the system requirements in the context of data entry, data processing and user interface; and
3. Implementing the design requirements by developing program code intended to meet the design parameters. This phase typically concludes with extensive testing of the program code designed to uncover errors introduced during the implementation phase.
This software development methodology was adequate when software engineering was in its infancy, because of the relative simplicity of the software and hardware components of most computer systems. However, it has led to a ‘create, develop and test’ software development approach, which is unsuitable and inefficient in the context of today's complex computer systems and networks.
This approach to software development presents problems at all three levels.
First, errors are introduced at each phase. Because there is no universally accepted formal language available to describe the system requirements, the system developer's understanding of the user's requirements is subject to the vagaries and ambiguities of the informal language (for example, English) in which the requirements are conveyed. There is no common frame of reference from which it can be determined whether the system requirements are consistent with the user's intent, and invariably due to the diversity of human experience and understanding, in many respects developer's understanding will not be consistent with the user's intent. Thus, errors are introduced into the first phase of software development by inaccurate translation of the user's requirements into system requirements, and these errors are perpetuated throughout the remainder of the SDLC.
Errors are similarly introduced into the design phase, based on the extrapolation of the system requirements into design requirements, again due to the informality of the language used to represent these requirements at both levels. These errors are cumulative with the errors introduced in the system requirements phase, and all of these errors become latent limitations of the system design phase. At this stage none of these errors are manifest, because the end user typically does not participate in the SDLC after the first phase, and the end user has thus not received any feedback which would indicate that the user's requirements have been misunderstood and/or improperly translated into the design level.
Errors are introduced into the implementation phase in the same fashion, so that by the time the creation of the actual program code commences the initial system requirements as contemplated by the user are contaminated by three levels of errors. In a complex computer system, immense time and effort is required to expose and correct these errors, and there is the possibility (in fact, a high probability) that errors will be overlooked and the software will be released for use with errors still in it. This is at best an annoyance to the end user, and at worst can be catastrophic; for example in the case of computer systems for diagnostic or therapeutic use in hospitals, systems controlling functions in nuclear facilities, air traffic control systems etc.
Moreover, computer programs are incapable of resolving inherent inconsistency, incompleteness, incompatibility and ambiguity. These deficiencies can arise at each stage of the SDLC, but the system requirements stage is acutely susceptible to the injection of such errors. The end user may have a detailed understanding of their own requirements, but can rarely anticipate all possible results of any particular data entry or processing scenario, which leads to incompleteness and ambiguity errors; in the design requirements phase it is usually impossible to appreciate all possible ways and environments in which the system will be used, which leads to incompleteness and incompatibility errors; and in complex systems system behavior may be reliant upon thousands or even millions of processing steps, with many possible results, which can lead to ambiguity and inconsistency errors. Complex computer programs are chaotic systems, in which a small error occurring early in a computational process can result in unpredictable and unproductive, or even counterproductive, system behavior.
Rectification of these types of errors often involves creating rectifying code which is designed solely to “undo” the errors, and which has no other legitimate purpose. This serves only to increase the complexity of the system, and is almost entirely a consequence of the ‘create, develop and test’ approach to software development. The cost and difficulty of rectifying an error in the implementation phase of the SDLC is orders of magnitude greater than the cost and difficulty of rectifying an error in the requirements phase or the design phase of the SDLC. Moreover, identification and rectification of errors in the pre-implementation phases considerably reduces the need for rectifying code in the implementation stage.
The testing of such systems is also problematic. According to conventional software testing methods, an analysis is conducted on the completed computer program and one or more test programs are derived from the original program. Being derivatives of the original program, however, the test programs will necessarily contain the same errors as the original program. Thus, the results of further analysis using these derivative test programs may be satisfactory, or even excellent, but only because the test programs themselves are flawed in the same manner as the original program and therefore latent errors injected into the various stages of the SDLC cannot be detected by the tests. There is no effective way to test the tests, because there is no standard methodology used to create the tests and therefore no way of validating the usefulness of the results.
Moreover, these tests are created on an ad hoc basis by each software developer in the context of the particular computer program under consideration, without regard for the compatibility of the original computer program with software and systems created by other developers. There has heretofore been no widely used verification or validation model which can be applied universally to software created by different developers. These problems are exacerbated by the explosive popularity of the Internet, which endeavors to accommodate software of many different types and platforms. Latent incompatibility problems have become so pervasive as to be commonplace, and are actually expected by most Internet users.
The present invention overcomes these disadvantages by providing a method of modeling a computer program at each stage of the SDLC, and a computer-aided software testing and quality assurance method using a universal verification and validation model which can be applied to any type of software at any stage during the SDLC. The invention also provides software for implementing the verification and validation functions of t

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Universal verification and validation system and method of... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Universal verification and validation system and method of..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Universal verification and validation system and method of... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3108097

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.