Professional Documents
Culture Documents
3-Module - 1-02-Dec-2019Material - III - 02-Dec-2019 - PPT - 3 PDF
3-Module - 1-02-Dec-2019Material - III - 02-Dec-2019 - PPT - 3 PDF
UNIT I – Hour IV
FUNDAMENTALS OF SE AND REQUIREMENT
ENGINEERING
Topic: Software Process, Process Assessment, Project
Management
1
Software Engineering is a Layered
Technology
Tools
Methods
Processes
Quality Focus
2
Process, Methods, and Tools
• Process
– Provides the glue that holds the layers together; enables rational and
timely development; provides a framework for effective delivery of
technology; forms the basis for management; provides the context for
technical methods, work products, milestones, quality measures, and
change management
• Methods
– Provide the technical "how to" for building software; rely on a set of basic
principles; encompass a broad array of tasks; include modeling activities
• Tools
– Provide automated or semi-automated support for the process and
methods (i.e., CASE tools)
3
Generic Process Framework
• Communication
– Involves communication among the customer and other stake holders;
encompasses requirements gathering
• Planning
– Establishes a plan for software engineering work; addresses technical tasks,
resources, work products, and work schedule
• Modeling (Analyze, Design)
– Encompasses the creation of models to better understand the requirements and
the design
• Construction (Code, Test)
– Combines code generation and testing to uncover errors
• Deployment
– Involves delivery of software to the customer for evaluation and feedback
4
Umbrella Activities
• Software requirements management
• Software project planning
• Software project tracking and oversight
• Software quality assurance
• Software configuration management
• Software subcontract management
• Formal technical reviews
• Risk management
• Measurement – process, project, product
• Reusability management (component reuse)
• Work product preparation and production
5
What is a Process?
6
What is a Software Process?
• (SEI) A set of activities, methods, practices, and transformations that
people use to develop and maintain software and the associated products
(e.g., project plans, design documents, code, test cases, and user manuals)
• As an organization matures, the software process becomes better defined
and more consistently implemented throughout the organization
• Software process maturity is the extent to which a specific process is
explicitly defined, managed, measured, controlled, and effective
7
Capability Maturity Model
(SW-CMM)
8
Immature Software Organizations
• Software processes are generally improvised
• If a process is specified, it is not rigorously followed or enforced
• The software organization is reactionary
• Managers only focus on solving immediate (crisis) problems
• Schedules and budgets are routinely exceeded because they are not based
on realistic estimates
• When hard deadlines are imposed, product functionality and quality are
often compromised
• There is no basis for judging process quality or for solving product or
process problems
• Activities such as reviews and testing are curtailed or eliminated when
projects fall behind schedule
9
Five Levels of Software Process
Maturity
10
Characteristics of Each Level
11
Characteristics of Each Level
(continued)
• Defined (Level 3)
– The software process for both management and engineering activities is
documented, standardized, and integrated into a standard software
process for the organization
– All projects use an approved, tailored version of the organization's
standard software process for developing and maintaining software
• Managed (Level 4)
– Detailed measures of the software process and product quality are
collected
– Both the software process and products are quantitatively understood
and controlled
12
Characteristics of Each Level
(continued)
• Optimized (Level 5)
– Continuous process improvement is enabled by quantitative feedback
from the process and from piloting innovative ideas and technologies
13
Visibility into the Software Process
14
Probability of Schedule and Budget
15
The CMM Structure
16
Key Process Areas
17
Software Process Assessments
18
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.
• Project management is needed because
software development is always subject to
budget and schedule constraints that are set
by the organisation developing the software.
Software management distinctions
• The product is intangible.
• The product is uniquely flexible.
• Software engineering is not recognized as an
engineering discipline with the sane status as
mechanical, electrical engineering, etc.
• The software development process is not
standardised.
• Many software projects are 'one-off' projects.
Management activities
• Proposal writing.
• Project planning and scheduling.
• Project costing.
• Project monitoring and reviews.
• Personnel selection and evaluation.
• Report writing and presentations.
Management commonalities
• These activities are not peculiar to software
management.
• Many techniques of engineering project
management are equally applicable to
software project management.
• Technically complex engineering systems tend
to suffer from the same problems as software
systems.
Project staffing
• May not be possible to appoint the ideal people to work on a
project
– Project budget may not allow for the use of highly-paid staff;
– Staff with the appropriate experience may not be available;
– An organisation may wish to develop employee skills on a software
project.
• Managers have to work within these constraints especially when
there are shortages of trained staff.
Project planning
• Probably the most time-consuming project
management activity.
• Continuous activity from initial concept through
to system delivery. Plans must be regularly
revised as new information becomes available.
• Various different types of plan may be developed
to support the main software project plan that is
concerned with schedule and budget.
Types of project plan
Plan Description
Quality plan Describes the quality procedures and standards that will be
used in a project. See Chapter 27.
Validation plan Describes the approach, resources and schedule used for
system validation. See Chapter 22.
Configuration Describes the configuration management procedures and
management plan structures to be used. See Chapter 29.
Maintenance plan Predicts the maintenance requirements of the system,
maintenance costs and effort required. See Chapter 21.
Staff development Describes how the skills and experience of the project team
plan. members will be developed. See Chapter 25.
Project planning process
Establish the project constraints
Make initial assessments of the project parameters
Define project milestones and deliverables
while project has not been completed or cancelled loop
Draw up project schedule
Initiate activities according to schedule
Wait ( for a while )
Review project progress
Revise estimates of project parameters
Update the project schedule
Re-negotiate project constraints and deliverables
if ( problems arise ) then
Initiate technical review and possible revision
end if
end loop
The project plan
• The project plan sets out:
– The resources available to the project;
– The work breakdown;
– A schedule for the work.
Project plan structure
• Introduction.
• Project organisation.
• Risk analysis.
• Hardware and software resource
requirements.
• Work breakdown.
• Project schedule.
• Monitoring and reporting mechanisms.
Activity organization
• Activities in a project should be organised to
produce tangible outputs for management to
judge progress.
• Milestones are the end-point of a process
activity.
• Deliverables are project results delivered to
customers.
• The waterfall process allows for the
straightforward definition of progress
milestones.
Milestones in the RE process
ACTIVITIES
MILESTONES
Project scheduling
• Split project into tasks and estimate time and
resources required to complete each task.
• Organize tasks concurrently to make optimal
use of workforce.
• Minimize task dependencies to avoid delays
caused by one task waiting for another to
complete.
• Dependent on project managers intuition and
experience.
The project scheduling process
T10 10da ys
1 8/7 /03
T12
M5
2 5 da ys
T8 Finish
19/9/03
Activity timeline
4/7 11/7 18/7 2 5/7 1/8 8/8 1 5/8 22/8 2 9/8 5/9 12/9 1 9/9
Star t
T4
T1
T2
M1
T7
T3
M5
T8
M3
M2
T6
T5
M4
T9
M7
T10
M6
T11
M8
T12
Finish
Staff allocation
4/7 1 1/7 18/7 2 5/7 1/8 8/8 15/8 2 2/8 2 9/8 5/9 1 2/9 19/9
Fred T4
T8 T11
T12
Jane T1
T3
T9
Anne T2
T6 T10
Jim T7
Mary T5
Risk management
• Risk management is concerned with
identifying risks and drawing up plans to
minimise their effect on a project.
• A risk is a probability that some adverse
circumstance will occur
– Project risks affect schedule or resources;
– Product risks affect the quality or performance of
the software being developed;
– Business risks affect the organisation developing
or procuring the software.
Software risks
Risk Affects Description
Staff turnover Project Experienced staff will leave the project before it is finished.
Management change Project There will be a change of organisational management with
different priorities.
Hardware unavailability Project Hardware that is essential for the project will not be
delivered on schedule.
Requirements change Project and There will be a larger number of changes to the
product requirements than anticipated.
Specification delays Project and Specifications of essential interfaces are not available on
product schedule
Size underestimate Project and The size of the system has been underestimated.
product
CASE tool under- Product CASE tools which support the project do not perform as
performance anticipated
Technology change Business The underlying technology on which the system is built is
superseded by new technology.
Product competition Business A competitive product is marketed before the system is
completed.
The risk management process
• Risk identification
– Identify project, product and business risks;
• 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;
The risk management process
Risk Risk
Risk analysis Risk planning
identification monitoring
Risk avoidance
List of potential Prioritised risk Risk
and contingency
risks list assessment
plans
Risk identification
• Technology risks.
• People risks.
• Organisational risks.
• Requirements risks.
• Estimation risks.
Risks and risk types
Risk type Possible risks
Technology The database used in the system cannot process as many transactions per second
as expected.
Software components that should be reused contain defects that limit their
functionality.
People It is impossible to recruit staff with the skills required.
Key staff are ill and unava ilable at critical times.
Required training for staff is not available.
Organisational The organisation is restructured so that different management are responsible for
the project.
Organisational financial problems force reductions in the project budget.
Tools The code generated by CASE tools is inefficient.
CASE tools cannot be integrated.
Requirements Changes to requirements that require major design rework are proposed.
Customers fail to understand the impact of requirements changes.
Estimation The time required to develop the software is underestimated.
The rate of defect repair is underestimated.
The size of the software is underestimated.
Risk analysis
• Assess probability and seriousness of each
risk.
• Probability may be very low, low, moderate,
high or very high.
• Risk effects might be catastrophic, serious,
tolerable or insignificant.
Risk analysis (i)
Risk Strategy
Organisational Prepare a briefing document for senior management
financial problems showing how th e project is making a very important
contribution to the goals of the business.
Recruitment Alert customer of potential difficulties and the
problems possibility of delays, investigate buying-in
components.
Staff illness Reorganise team so that there is more overlap of work
and people therefore understand each other’s jobs.
Defective Replace potentially defective components with bough t-
components in components of known reliability.
Risk management strategies (ii)
Risk Strategy
Requirements Derive traceability information to assess requirements
changes change impact, maximise information hiding in the
design.
Organisational Prepare a briefing document for senior management
restructuring showing how th e project is making a very important
contribution to the goals of the business.
Database Investigate the possibility of buying a higher-
performance performance database.
Underestimated Investigate buying in components, investigate use of a
development time program generator
Risk monitoring
• Assess each identified risks regularly to decide
whether or not it is becoming less or more
probable.
• Also assess whether the effects of the risk
have changed.
• Each key risk should be discussed at
management progress meetings.
Risk indicators