Software Engineering Chapter5
Software Engineering Chapter5
• Plan-driven development
• Risk management
• Managing people
• Teamwork
2
Software project management
• Concerned with activities involved in ensuring
that software is delivered on time and on
schedule and in accordance with the
requirements of the organisations developing
and procuring the software.
4
Software management distinctions
• The product is intangible.
– Software cannot be seen or touched. Software project
managers cannot see progress by simply looking at the
artefact that is being constructed.
• Many software projects are 'one-off' projects.
– Large software projects are usually different in some
ways from previous projects. Even managers who have
lots of previous experience may find it difficult to
anticipate problems.
• Software processes are variable and organization
specific.
– We still cannot reliably predict when a particular software
process is likely to lead to development problems.
5
Factors influencing project management
• Company size
• Software customers
• Software size
• Software type
• Organizational culture
7
Management activities
• Reporting
– Project managers are usually responsible for reporting
on the progress of a project to customers and to the
managers of the company developing the software.
• Proposal writing
– The first stage in a software project may involve writing a
proposal to win a contract to carry out an item of work.
The proposal describes the objectives of the project and
how it will be carried out.
8
Plan-driven development
• Plan-driven or plan-based development is an approach to
software engineering where the development process is
planned in detail.
11
Project plan supplements
Plan Description
Configuration Describes the configuration management
management plan procedures and structures to be used.
Deployment plan Describes how the software and associated
hardware (if required) will be deployed in
the customer’s environment. This should
include a plan for migrating data from
existing systems.
Maintenance plan Predicts the maintenance requirements,
costs, and effort.
Quality plan Describes the quality procedures and
standards that will be used in a project.
Validation plan Describes the approach, resources, and
schedule used for system validation.
12
The planning process
• Project planning is an iterative process that starts when
you create an initial project plan during the project
startup phase.
13
The project planning process
14
Risk management
15
Risk management
• Risk management is concerned with identifying risks
and drawing up plans to minimise their effect on a
project.
• Software risk management is important because of
the inherent uncertainties in software development.
– These uncertainties stem from loosely defined
requirements, requirements changes due to changes in
customer needs, difficulties in estimating the time and
resources required for software development, and
differences in individual skills.
• You have to anticipate(expect) risks, understand the
impact of these risks on the project, the product and
the business, and take steps to avoid these risks.
16
Risk classification
• There are two dimensions of risk classification
– The type of risk (technical, organizational, ..)
• Risk analysis
– Assess the likelihood and consequences of these risks;
• Risk planning
– Draw up plans to avoid or minimise the effects of the risk;
• Risk monitoring
– Monitor the risks throughout the project;
19
The risk management process
20
Risk identification
• May be a team activities or based on the individual
project manager’s experience.
– Organizational risks.
– People risks.
– Requirements risks.
– Estimation risks.
21
Examples of different risk types
Risk type Possible risks
Estimation The time required to develop the software is underestimated. (12)
The rate of defect repair is underestimated. (13)
The size of the software is underestimated. (14)
Organizational The organization is restructured so that different management are
responsible for the project. (6)
Organizational financial problems force reductions in the project
budget. (7)
People It is impossible to recruit staff with the skills required. (3)
Key staff are ill and unavailable at critical times. (4)
Required training for staff is not available. (5)
Requirements Changes to requirements that require major design rework are
proposed. (10)
Customers fail to understand the impact of requirements changes. (11)
Technology The database used in the system cannot process as many transactions
per second as expected. (1)
Reusable software components contain defects that mean they cannot
be reused as planned. (2)
Tools The code generated by software code generation tools is inefficient. (8)
Software tools cannot work together in an integrated way. (9)
Risk analysis
• Assess probability and seriousness of each risk.
23
Figure 11-5. Sample Probability/Impact
Matrix
24
25
Risk types and examples
Risk Probability Effects
• Avoidance strategies
– The probability that the risk will arise is reduced;
• Minimization strategies
– The impact of the risk on the project or product will be
reduced;
• Contingency plans
– If the risk arises, contingency plans are plans to deal with
that risk; 28
What-if questions
• What if several engineers are ill at the same time?
31
Risk monitoring
• Assess each identified risks regularly to decide
whether or not it is becoming less or more probable.
32