What is Quality Assurance? What do you understand by Prototyping?
The amount and complexity of software produced today stagger the imagination. Software development strategies have not kept pace, however, and software products fall short of meeting application objectives. The goal of this stage is to define the factors that contribute to the quality of the candidate system. Several factors determine the quality of a system:
- Correctness: The extent to which a program meets system specifications and user objectives.
- Reliability: The degree to which the system performs its intended functions over a time.
- Efficiency: The amount of computer resources required by a program to perform a function.
- Usability: The effort required to learn and operate the system.
- Maintainability: The ease with which pro¬gram errors are located and corrected.
- Test-ability: The effort required to test a pro-gram to ensure its correct performance.
- Portability: The ease of transporting a pro¬gram from one hardware configuration to another.
- Accuracy: The required precision in input editing, computations and output.
- Error tolerance: Error detection and correction versus error avoidance.
- Expand-ability: An ease of adding or expanding the existing database.
- Access control and audit: to control the access to the system and the extent to which that access can be audited.
- Communicativeness: How descriptive or useful the inputs and outputs of the system are.
As it can be understood from the discussion on system development, there are two major problems with building information systems:
- The system development life cycle takes too long.
- The right system is rarely developed the first time.
Lengthy development frustrates the user. Analysis seems to be bogged down with tedious methodologies for developing systems. The reason they often come up with the wrong system is that they expect users to define their information requirements. It usually turns out that what users ask for is not what they want, is not want they need. An alternative to this “paralysis by analysis” is an advanced technique called prototyping. Prototyping recognizes problems of cognitive style and users advanced computer technology.
- Develop a working prototype that focuses on only the most important functions, using a basic database.
- Allow the user to use the prototype, discuss requested changes, and implement the most important changes.
- Repeat the next version of the prototype with further changes incorporated until the system fully meets user requirements.
Prototype and advanced system development techniques have been successful in a wide variety of applications. The benefits include shorter development time, more accurate user requirements, and greater user participation and support.