6 Quality Software In your opinion, what are two key characteristics that mark,
ID: 637996 • Letter: 6
Question
6 Quality Software
In your opinion, what are two key characteristics that mark, and distinguish, quality software? Explain, and support your choices. Which metrics would you use to provide the best measurement of the characteristics you selected? What attitudes, and attributes, should employees possess in order to continually produce quality work and satisfy customer needs? What management practices would have to be put in place to foster those attitudes and attributes? Be sure to provide clear arguments, and support them with appropriate examples.
Explanation / Answer
The correct definition of Software Quality Assurance goes something like:-
The function of software quality that assures that the standards, processes, and procedures are appropriate for the project and are correctly implemented.
There are many definitions of these Software Quality Attributes but a common one is the FURPS+ model which was developed by Robert Grady at Hewlett Packard.
Under the FURPS model, the following characteristics are identified:-
Functionality
The F in the FURPS+ acronym represents all the system-wide functional requirements that we would expect to see described.
These functional requirements represent the main product features and answer the question What the product does for us rather than How does it do it.
The easiest way to think of functional requirements is to ask the question Why does this piece of software exist.
This question of reason for being is distinct from security, look and feel and reliability concerns which are important but are not the concerned with the main function (or value add) of the software.
Usability
Usability includes looking at, capturing, and stating requirements based around user interface issues, e.g. issues such as accessibility, interface aesthetics, and consistency within the user interface.
Reliability
Reliability includes aspects such as availability, accuracy, and recoverability, for example recoverability of the system from shut-down failure.
Performance
Performance involves issues such as throughput of information, system response time (which also relates to usability), recovery time, and startup time.
Supportability
This is a general bucket of requirements that address supporting the software: for example testability, adaptability, maintainability, compatibility, configurability, installability, scalability, localizability, and so on.
+
The "+" of the FURPS+ acronym allows for the specification of constraints, including design, implementation, interface, and physical constraints.
The specification of the FURPS+ characteristics needs to go into the Systems Requirements.
The testing of these characteristics should be done by the SQC (testing team). Some of the FURPS+ characteristics, i.e. Functionality and Usability can be tested by executing the actual software.
Some, however, like Supportability and Adaptability can only be verified by code inspection or dry running What if' scenarios.
It is important to note that neither the SQA nor SQC group should have the responsibility of putting the desired FURPS+ characteristic into the product.
The SQC group should only test the presence or absence of the FURPS+ characteristics, whilst SQA assures that everyone is following the correct procedures and standards during their process execution..
With an established practice of defining and measuring the FURPS+ (or similar model) characteristics it is possible to implement Software QAQC along similar lines to manufacturing QAQC.
Approaches such as the implementation of FURPS+ should, in theory, overcome the difficulties caused by the intangible nature of software, allowing each characteristic of the software to be measured by SQC.
By way of example, consider the Supportability FURPS+ characteristic. The effectiveness of the current (appropriate) standards and processes that impact Supportability can be measured by the length of time in takes to fix a defect. In order to improve this measure new coding standards could be implemented. In this scenario the SQC department would inspect the code to make sure that the coding standard was being implemented (in the code) and the SQA department would make sure the SQC and the development groups followed the correct (appropriate) process and standards. The SQA department would also collect and analyze the time needed to repair the defect (Supportability measure) in order to give input to the usefulness (aka the word appropriate taken from the standard QA definition) of the standards within a continuous process improvement initiative.
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.