Process

advertisement
Chapter 3
1. Quality Management,
2. Software Cost Estimation
3. Process Improvement
1
Quality Management
Process and product quality
Quality assurance and standards
Quality control
Software Engineering Application
Development----> Chapter 3
2
Software quality management
 Concerned with ensuring that the required level of quality
is achieved in a software product.
 Involves defining appropriate quality standards and
procedures and ensuring that these are followed.
 Should aim to develop a ‘quality culture’ where quality is
seen as everyone’s responsibility.
Software Engineering Application
Development----> Chapter 3
3
What is quality?
 Quality, means that a product should meet its specification.
 Some quality requirements are difficult to specify in an unambiguous way
 Software specifications are usually incomplete and often unpredictable.
Software Engineering Application
Development----> Chapter 3
4
Quality management activities
 Quality assurance
 Establish organisational procedures and standards for quality.
 Quality planning
 Select applicable procedures and standards for a particular project and
modify these as required.
 Quality control
 Ensure that procedures and standards are followed by the software
development team.
 Quality management
 should be separate from project management to ensure independence.
Software Engineering Application
Development----> Chapter 3
5
Quality Assurance and Standards
• Standards are the key to effective quality management. They may
be international, national, organizational or project standards.
• Product standards define characteristics that all components
should exhibit. e.g. a common programming style.
• Process standards define how the software process should be
Performed.
Software Engineering Application
Development----> Chapter 3
6
Product and Process Standards
Product standards
Process standa rds
Design review form
Design review conduct
Requirements document structure
Submission of documents to CM
Method header format
Version release process
Java programming style
Project plan approval process
Project plan format
Change control process
Change request form
Test recording process
Software Engineering Application
Development----> Chapter 3
7
Importance of standards
 Encapsulation of best practice- avoids repetition of past mistakes.
 They are a framework for quality assurance processes - they
involve checking compliance to standards.
 They provide continuity - new staff can understand the
organisation by understanding the standards that are used.
Software Engineering Application
Development----> Chapter 3
8
Software Quality Attributes
Safety
Understandability
Portability
Security
Testability
Usability
Reliability
Adaptability
Reusability
Resilience
Modularity
Efficiency
Robustness
Complexity
Lea rnability
Software Engineering Application
Development----> Chapter 3
9
Quality control
• This involves checking the software
development process to ensure that procedures
and standards are being followed.
• There are two approaches to quality control
– Quality reviews;
– Automated software assessment and software
measurement.
Software Engineering Application
Development----> Chapter 3
10
Quality reviews
• This is the principal method of validating the quality of a process
or of a product.
• A group examines part or all of a process or system and its
documentation to find potential problems.
• There are different types of review with different objectives
– Inspections for defect removal
– Reviews for progress assessment
– Quality reviews (product and standards).
Software Engineering Application
Development----> Chapter 3
11
Software Measurement and Metrics
• Software measurement is concerned with deriving a numeric
value for an attribute of a software product or process.
• Measure - quantitative indication of amount, dimension,
capacity, or size of some attribute of a product or process.
• Metric - quantitative measure of degree to which a system,
component or process holds a given attribute.
“A handle or guess about a given attribute.”
Software Engineering Application
Development----> Chapter 3
12
Software Measurement and Metrics
• Why Measure Software?
– To determine the quality of the current product or process
– To predict qualities of a product/process
– To improve quality of a product/process
1. Quality Management,
2. Software Cost Estimation
3. Process Improvement
Software Engineering Application
Development----> Chapter 3
14
Software Cost Estimation
•
Budget - To know what you will spend
•
Controls - A lever to control the project
•
Differential analysis - Monitor progress by comparing planned with estimated costs
•
Cost database - Make future estimation better
•
Marry costing to management - Cost estimation and planning/scheduling are closely
related activities
Software Engineering Application
Development----> Chapter 3
15
Estimation Techniques
1. Expert judgment
2. Estimation by analogy
3. Pricing to win
4. Top-down estimation
5. Bottom-up estimation
6. Algorithmic cost modeling
Software Engineering Application
Development----> Chapter 3
16
(1) - Expert judgement
• One or more experts in both software development and the
application domain use their experience to predict software costs.
Process iterates until an agreement is reached.
• Advantages: Relatively cheap estimation method. Can be accurate
if experts have direct experience of similar systems
• Disadvantages: May be very costly
Software Engineering Application
Development----> Chapter 3
17
Estimation by analogy
• The cost of a project is computed by comparing the project to a
similar project in the same application domain.
• Advantages: Accurate if project data available
• Disadvantages: Impossible if no comparable project has been
tackled. Needs systematically maintained cost database.
Software Engineering Application
Development----> Chapter 3
18
Pricing to win
• The project costs whatever the customer has to spend on it.
• Advantages: You get the contract.
• Disadvantages: The probability that the customer gets the
system he/she wants is small. Costs do not accurately reflect
the work required
Software Engineering Application
Development----> Chapter 3
19
Top-down estimation
• Start at system level and work out how the system functionality is
provided.
• Usable without knowledge of the system architecture and the
components that might be part of the system.
• Takes into account costs such as integration, configuration management
and documentation
• Can underestimate the cost of solving difficult low-level technical
problems.
Software Engineering Application
Development----> Chapter 3
20
Bottom-up estimation
• Start at the lowest system level. The cost of each component is
estimated individually. These costs are added to give final cost
estimate.
• Accurate method if the system has been designed in detail.
• May underestimate costs of system level activities such as
integration and documentation.
Software Engineering Application
Development----> Chapter 3
21
Estimation methods
– Each method has strengths and weaknesses. Therefore,
estimation should be based on several methods
– If these do not return approximately the same result, there is
insufficient information available
–Pricing to win is sometimes the only applicable method
Software Engineering Application
Development----> Chapter 3
22
Algorithmic cost modelling
• Cost is estimated as a mathematical function of product, project
and process attributes whose values are estimated by project
managers.
• Most commonly used product attribute for cost estimation
• Most models are basically similar but with different attribute
values
Software Engineering Application
Development----> Chapter 3
23
1. Quality Management,
2. Software Cost Estimation
3. Process Improvement
Software Engineering Application
Development----> Chapter 3
24
Process Improvement
Understanding, Modelling and Improving the Software Process
•
•
•
•
Process and product quality
Process analysis and modelling
Process measurement
Process classification
Software Engineering Application
Development----> Chapter 3
25
The Process Improvement Cycle
Software Engineering Application
Development----> Chapter 3
26
Process Improvement
• Understanding existing processes
• Introducing process changes to achieve organisational objectives
which are usually focused on quality improvement, cost reduction
and schedule acceleration
• Most process improvement work so far has focused on defect
reduction. This reflects the increasing attention paid by industry to
quality
• However, other process attributes can be the focus of improvement
Software Engineering Application
Development----> Chapter 3
27
Process attributes
Software Engineering Application
Development----> Chapter 3
28
Process improvement stages
• Process analysis
– Model and analyse (quantitatively if possible) existing processes
• Improvement identification
– Identify quality, cost or schedule bottlenecks
• Process change introduction
– Modify the process to remove identified bottlenecks
• Process change training
– Train staff involved in new process proposals
• Change tuning
– Evolve and improve process improvements
Software Engineering Application
Development----> Chapter 3
29
Process and product quality
• Process quality and product quality are closely related
• A good process is usually required to produce a good product
• For manufactured goods, process is the principal quality
determinant
Software Engineering Application
Development----> Chapter 3
30
Process Improvement
•
•
•
•
Process and product quality
Process analysis and modelling
Process measurement
Process classification
Software Engineering Application
Development----> Chapter 3
31
Process analysis and modelling
• Process analysis
– The study of existing processes to understand the
relationships between parts of the process and to compare
them with other processes
• Process modelling
– The documentation of a process which records the tasks,
the roles and the entities used
– Process
models
may
be
presented
from
different
perspectives (examples ?)
Software Engineering Application
Development----> Chapter 3
32
Process analysis techniques
• Questionnaires and interviews
– Must be carefully designed. Participants may tell you what
they think you want to hear
• Ethnographic analysis
– Involves assimilating process knowledge by observation
Software Engineering Application
Development----> Chapter 3
33
Process Improvement
•
•
•
•
Process and product quality
Process analysis and modelling
Process measurement
Process classification
Software Engineering Application
Development----> Chapter 3
34
Process measurement
• Wherever possible, quantitative process data should be collected
– However, where organisations do not have clearly defined process
standards this is very difficult as you don’t know what to measure. A
process may have to be defined before any measurement is possible
• Process measurements should be used to assess process improvements
– But this does not mean that measurements should drive the
improvements. The improvement driver should be the organizational
objectives
Software Engineering Application
Development----> Chapter 3
35
Process Improvement
•
•
•
•
Process and product quality
Process analysis and modelling
Process measurement
Process classification
Software Engineering Application
Development----> Chapter 3
36
Process classification
• Informal
– No detailed process model. Development team chose their
own way of working. Works with prototypes & short
lifetime products
• Managed
– Defined process model which drives the development
process. Works with large systems & long lifetime products
• Methodical
– Defined development methods supported by CASE tools
• Improving
– improvements considered and introduction procedures
Software Engineering Application
Development----> Chapter 3
37
Process choice
• Process used should depend on type of product which
is being developed
– For large systems, management is usually the principal
problem so you need a strictly managed process. For smaller
systems, more informality is possible.
• There is no uniformly applicable process which
should be standardised within an organisation
– High costs may be incurred if you force an inappropriate
process on a development team
Software Engineering Application
Development----> Chapter 3
38
Thank you
Software Engineering Application
Development----> Chapter 3
39
Download