Software quality is important. Should be paid attention to. But it is a complex thing.
It includes:
- ensuring that required level of quality is achieved (internal and external(client) quality level)
- defining quality standards
- aim to develop a 'quality culture'; quality as everyone's responsibility
* when we sign up a contract, by agreeing on the quality we agree on the price - theses two go together - the customer should be explained that!
* how to measure quality? - surveys..
Quality = product meets its specification, but there are some problems with that applied to the software:
- except from user requirements we can have organization requirements that are not included in the specification
- it's hard to specify some characteristics in an unambiguous way (e.g. maintainability)
- meeting specification does not mean meeting user's expectations; this is because writing complete specification is hard
... so what we do? We resign from paying so much attention to specification, and we hire a person who does quality management ;p - now it's his problem;p
This quality management is important especially for big systems.. we have then quality documentation over the time of development.. If the system is small we can make less documentation and focus just on "quality culture".
/* if we want to create a "marching to the north culture" what do we do? If it's only us in the classroom it is enough to tell you: "let's march north!" but if we want to have more people across Finland, we have to send messages to them and set the date for example next Tuesday at 12am we start marching north */
* quality management should be separate from project management ! - to have someone 'external'
QUALITY MANAGEMENT ACTIVITIES:
- quality assurance - establish quality standards and procedures
- quality planning - select applicable standards and procedures and modify if needed
- quality control - ensure the standards and procedures are followed
.. the last two are at the project level //whatever it means.. something connected to the triangle..
** quality assurance is external to organization - we try to show customers we are good
** quality management is internal to organization - we try to be good ;p
We know that process => product. But where is the connection between process quality and product quality? - no one knows it;p
But, anyway, we assume there is the connection.. some connection.. so we should try to keep high process quality. How? Diagram: we improve process as long as the product is not good enough. If it is good we standardize the process (But even having standards we shouldn't use them if they're not appropriate..). Standards are the key to effective quality management. They may be national, international, organizational, ... . We can have product standards (e.g. common programming style) and process standards. They encapsulate best practices, help avoid repeating mistakes, provide framework for quality assurance processes, provide continuity so new staff knows what is going on.
PROBLEMS WITH STANDARDS:
-> may be seen as irrelevant, to much bureaucratic work, much work to associate documentation with the standard => we should motivate the developers ;p
--> wikipedia:
ISO 9000 is a family of standards for quality management systems. ISO 9000 is maintained by ISO, the International Organization for Standardization and is administered by accreditation and certification bodies. Some of the requirements in ISO 9001 (which is one of the standards in the ISO 9000 family) include
- a set of procedures that cover all key processes in the business;
- monitoring processes to ensure they are effective;
- keeping adequate records;
- checking output for defects, with appropriate and corrective action where necessary;
- regularly reviewing individual processes and the quality system itself for effectiveness; and
- facilitating continual improvement
A company or organization that has been independently audited and certified to be in conformance with ISO 9001 may publicly state that it is "ISO 9001 certified" or "ISO 9001 registered". Certification to an ISO 9000 standard does not guarantee any quality of end products and services; rather, it certifies that formalized business processes are being applied. Indeed, some companies enter the ISO 9001 certification as a marketing tool.
ISO 9000 is an international standard for quality management, applicable for many organizations; ... and so, for the ones that design, develop and maintain products there is ISO 9001 (from the ISO 9000 family) - generic model of quality process.
It concerns several things which I am too tired to describe and understand now.
To make our company ISO 9000 certified, an external body must do that. WHY oh why do we need the certification? Because our clients want it.
//There's a diagram on the slides..... zzzz.... my memory is becoming overloaded at this point..
- Documentation standards
- Quality planning
- Software quality attributes (15)
- Quality control
- Quality reviews
- Software measurement and metrics