Chapter 24 : Quality Management
(originally a business, manufacturing term)
Software, fit for purpose, meet needs, efficient.
	Reliable, on time, in budget…
Framework of processes 
	Get quality product, get verification of quality
QM team should be independent
	Non-functional requirements
		Increase the subjectivity
		Might need to prioritize
	QM is not really about following strict procedure
		Develop a “quality culture”
24.1 Software quality
	Hard to have complete and unambiguous requirements
	Sometimes requirements can clash; 
		So even if meets the stated requirements,
		Might not be “Quality”
	ASSUMPTION: good processes lead to high quality

24.2 Software Standards
	National standards
	Standards capture wisdom
	Framework to define quality
	Helps continuity

	Product standards
	Process standards
	Cost effective

Want support from SE, involve them
Tool support
ISO 9001 standards
	Standards for develop	ping software
	Quality of the process != quality of the product
Review process
	Pre-review
	Meeting
	Post review
		Address issues 
Review team
	3-4 people, one a designer
	(NOT a designer for this process)
Program inspections
	Someone from a different perspective
	60% of errors can be caught by inspection
	(25% by unit testing)
	There is even a gain from explaining to to your dog
	Additional cost with no (obvious) benefit

4.4 agile development
	Doesn’t mesh as well with QM
		Check before check in
		Never break the build
		Fix problems when you see them
	Reasons agile might skimp on methods	
		Mutual misunderstandings
		Reputation
		Want to keep moving
		Relationships

4.5 software measurement
	Ideally use complexity and reliability of product
 to assess process
	does a new tool catch more errors?
		Software:
			Lines of code
			Readability (fan in, fan out)
			Number of days to develop
		Process:
			Time to complete
			Resources
			Occurrences of errors
			(metrics in chapter 26)

Measurements
		Static (compile)
			Length
			Complexity of code
		Dynamic (run time)
			Bug reports
			Time to complete computation
	Component analysis
		Pick a measure
		Select component to measure
		Measure
		Identify anomalous readings
		Analyze
	Ambiguity
		Use custom change requests?
				Might be not good enough
				Might be that so popular, everyone
					Thought of new things to add
	Analytics
		Data mining
		Automatic collection of information
		(open source software—easier)
		Get info in real time
		Tools should be easy, run quickly, give precise answers
		Use many parameters, interactive