Thursday, October 3, 2013

Software Q&T


Software Quality:

There are many different definitions of quality. For some it is the "capability of a software product to conform to requirements." (ISO 9001) while for others it can be synonymous with "customer value" (Highsmith, 2002)

Kitchenham, Pfleeger, and Garvin's 5 perspectives on quality:
Transcendental Perspective:  quality is hard to define or describe in abstract terms, but can be recognized if it is present. It generally associated with some intangible properties, which make customer happy.

User Perspective, quality is fitness to meet user’s needs.

Manufacturing Perspective, quality means conformance to process standards.

Product Perspective, the focus is on inherent characteristics in the product itself hoping that controlling these internal quality indicators will result in improved external product behaviour (quality in use).

Value-based Perspective, quality is the customers’ willingness to pay for a software.

In Consortium for IT Software Quality (CISQ) Quality Model: Quality is related to reliability, Efficiency, Security, Maintainability and size.

Quality assurance refers to the processes and procedures that systematically monitor different aspects of a service, process or facility to detect, correct and ensure that quality standards are being met.

Quality engineering

  
Discipline that deals with the analysis of a manufacturing system at all stages, to improve the quality of the production process and of its output.


Quality in software engineering

In Musa and Everett (1990), these varying primary concerns were conveniently used to divide software engineering into four progressive stages:

·         In the functional stage, the focus was on providing the automated functions to replace what had been done manually before.
·         In the schedule stage, the focus was on introducing important features and new systems on a timely and orderly basis to satisfy urgent user needs.
·         3. In the cost stage, the focus was on reducing the price to stay competitive accompanied by the widespread use of personal computers.
·         4. In the reliability stage, the focus was managing users’ quality expectations under the increased dependency on software and high cost or severe damages associated with software failures.



Pr-industrialmindset that insists on building huge portions of software applications from scratch. This is inefficient, prone to error, and ultimately dangerous for the national infrastructure and for all those who rely on it. Standardizing software might just be a future we need to consider.




Inspection

·         Inspections are critical reading and analysis of software code or other software artefacts, such as designs, product specifications, test plans, etc.

·         Inspections are typically conducted by multiple human inspectors, through some, coordination process. Multiple inspection phases or sessions might be used.
·         Faults are detected directly in inspection by human inspectors, either during their individual inspections or various types of group sessions.

·         Identified faults need to be removed as a result of the inspection process, and their removal also needs to be verified.
·         The inspection processes vary, but typically include some planning and follow-up activities in addition to the core inspection activity.
·         The formality and structure of inspections may vary, from very informal reviews and walkthroughs, to fairly formal variations of Fagan inspection, to correctness inspections approaching the rigor and formality of formal methods.

Inspection is most commonly applied to code, but it could also be applied to requirement specifications, designs, test plans and test cases, user manuals, and other documents or software artifact.


Defect Containment

Because of the large size of most software systems, the defect reduction activities can only reduce the number of faults to a low level but eliminate them. So some other means need to be used to prevent failures by breaking the casual relations between these faults and the resulting failures, thus “tolerating” these faults, or "to contain” the failures by reducing the resulting damage.
This way of dealing with defects is called "defect containment".

No comments:

Post a Comment