300 likes | 689 Views
SOFTWARE QUALITY ASSURANCE. DEFINITIONS OF SQA SOFTWARE STANDARDS Process Quality Assurance Product Quality Assurance SQA ATTRIBUTES SOFTWARE METRICS: CONTROL METRICS PREDICTOR METRICS DOCUMENTATAION. DEFINITION OF SQA. Bersoff (1984) provides a good working definition of SQA;
E N D
SOFTWARE QUALITY ASSURANCE • DEFINITIONS OF SQA • SOFTWARE STANDARDS • Process Quality Assurance • Product Quality Assurance • SQA ATTRIBUTES • SOFTWARE METRICS: • CONTROL METRICS • PREDICTOR METRICS • DOCUMENTATAION
DEFINITION OF SQA • Bersoff (1984) provides a good working definition of SQA; • “SQA consists of those procedures, techniques and tools applied by professionals to ensure that a product meets or exceeds pre-specified standards during a product's development cycle; and without specific prescribed standards, quality assurance entails ensuring that a product meets or exceeds a minimal industrial and /or commercially acceptablelevel of excellence.”
SOFTWARE QUALITY ASSURANCE • SQA is defined as; • “Conformance to explicitly stated functional and performance requirements, explicitly documented development standards and implicit characteristics that are expected of all professionally developed software.”
SQA DEFINITION • According to Dunn and Ullman; • “SQA is the mapping of managerialprecepts and design disciplines of quality assurance onto the applicable managerial and technological space of software engineering.”
SOFTWARE QUALITY ASSURANCE • SQA encompasses; • A Quality Management Approach; • Effective Software Engineering Technology; • Formal Technical Reviews that are applied throughout the process; • A Multi-tiered Testing Strategy;
SOFTWARE QUALITY ASSURANCE • Control of Software Documentation and changes made to it; • A procedure to ensure compliance to software development standards; • Measurement and reporting mechanism;
SQA ACTIVITIES • The SQA activities are divided between two groups; • Software Engineer who incorporate the quality into the design by using solid technical methods and procedures; • SQA Team, who is responsible for quality assurance planning, oversight, record keeping, analysis and reporting.
SOFTWARE STANDARDS • One of the most important roles of the QA team is the development of product and process standards: • Product Standards:These define characteristics which all product components should exhibit. An example is- Review Form- which defines the information to be collected during review.
SOFTWARE STANDARDS • Process Standards: • These define how the software process should be conducted.e.g. procedural definition of how design review should be conducted.
Why Standards are important ? • They provide an encapsulation of best or at least most appropriate practice.This knowledge is often only acquired after a great deal of trial and error.Building it into standard avoids the repetition of past mistakes. • They provide a framework around which QA process may be implemented. • They assist in continuity where work carried out by one person is taken up and continued by another. They ensure that all SE follow the practice.
ISO9000 STANDARDS • The ISO 9000 standards have been adapted by many countries like Canada, Mexico,The United States and India and so on. • ISO 9001 STANDARD: This is the standard applicable to Software Engineering.The standard contains 20 requirements that must be present for an effective Quality assurance system. • The actual standard for Software Process is ISO 9001.3.
ISO 9001 REQUIREMENTS • The requirements delineated by ISO 9001 address topics such as; • Management Responsibilities; • Quality System; • Contact Review; • Process Control;
ISO 9001 REQUIREMENTS • Design Control; • Document and Data Control; • Corrective and preventive Actions; • Internal Quality Audits;
ECONOMY INTEGRITY DOCUMENTATION UNDERSTABILITY FLEXIBILITY INTEROPERABILITY MODULARITY CORRECTNESS RELIABILITY EVOLEVEBILITY VALIDITY GENERALITY TESTABILITY REUSABILITY USABILITY CLARITY PORTABILITY EFFICIENCY RESILIENCE MAINTAINABILITY SQA ATTRIBUTES Boehm et.al. (1978) suggest that quality criteria include, but not limited to, the attributes as shown;
CORRECTNESS : • The extent to which a software satisfies its specifications. A program is functionally correct, if it behaves according to the specifications of the functions it is suppose to provide, which are called functional requirements specifications.
RELIABILITY • Informally, software is reliable if the user can depend on it. The specialized literature on software reliability defines reliability in terms of statistical behavior, the probability that the software will operate as expected over a specified period of time.
ROBUSTNESS • A program is robust if it behaves “reasonably”, even in circumstances that were not anticipated in the requirements specifications, for example, it encounters incorrect input data or some hardware malfunction (disk crash). • A program that assumes perfect input and generates an unrecoverable run-timeerror, if user type some commands, will not be robust.
USER-FRIENDLYNESS • A software is user-friendly if its human interface is easy to use. An application that is designed using GUI concept will be more user friendly in comparison to that which uses text Commands to be typed from the key-board. • MSDOS Based:Not user friendly. Windows-Based:User-friendly.
VERIFIABILITY • A software is “verifiable” if its properties can be verified easily.For example it correctness can be verified. • A common technique for improving the verifiability is the use of “Software Monitors” that is, code inserted in the software to monitor various qualities such as performance or correctness. • Verifiability is an Internal Quality.
MAINTAINABILITY • Software Maintenance is commonly used to refer to the modifications that are to be made to software system after initial release and some user trial. • Maintenance used to be viewed as; • BUG-FIXING • ENHANCING THE PRODUCT CAPABILITY.
REUSABILITY • Reusability means to use the functions or objects or components written by other programmers in our program to achieve our goals and objectives in minimum possible time with optimum coding at our end.
EFFICIENCY • The amount of computingresources and code required by a software system to perform its intended functionality is called the efficiencyof the system. • The efficiency comparison is done on standard hardware to make a fair decision.
ACCURACY AND ERROR TOLERANCE • The correctness in intendedprecision is called accuracy of the software system. • When program encounters an error, what is the limit / extent to which the program can tolerate this error (i.e. program is not damaged due to this error) is called error tolerance,
SOFTWARE QUALITY FACTOR • The Software Quality Factor is defined as; • Where C1, C2 … are Regression Coeff. • M1,M2.. Are Software Metrics. Fq = C1*M1+C2*M2+…….Cn* Mn.
SOFTWARE METRICS • A software metric is any measurement which relates to a software system, process or related documents. Examples are measures of the size of the product as; • Line of Code, • Fog Index of a product Manual, • The number of faults reported in the product, • The number of Man-Months required for development.
METRIC CATEGORIES • CONTROL METRICS:These are used by management to control the software process. Ex. are Efforts expended, elapsed time and disk usage. • PREDICTOR METRICS:These are measurements of a product attributes which can be used to predict associated product quality.Ex. are readability of manual,ease of operation and maintenance and so on.
SUMMARY • We have defined the SQA. • The attributes of SQA are explained. • Software ISO 9001 Standard was discussed. • Software Metrics were presented. • Control Metrics • Predictor Metrics