Chapter 2 Cs
Chapter 2 Cs
Chapter 02
Software Process
0
Topics Covered
◼ Software Process
1
Software Process………….?
◼ The software process defines the way in which
software development is organized, managed,
measured, supported and improved (independently
of the type of support technology exploited in the
development).
3
Conti…
◼ Many different software processes involve the following activities:
◼ Specification – The team defining what the system should do
and constraints of the project(SRS).
◼ Design and implementation – Defining the organization of
life cycle but the activities may be carried out in different orders.
6
Need for Software Process Model
◼ Development team must have a clear understanding about when and
what to do/outline your development process.
◼ Provide a visual representation of development process for both the
team and the customer to review.
◼ Without using of a particular process model:-
◼ the development of a software product would not be in a systematic
the project.
◼ A software process model defines entry and exit criteria for every
phase.
◼ A phase can start only if its phase-entry criteria have been satisfied. 7
How to Choose Software Process models
➢ The development team must identify suitable process model for
the particular project and then adhere to it.
◼ Nature of requirements
8
Different Software Process models
◼ Many software process models have been proposed so far. Each of
them has some advantages as well as some disadvantages.
◼ A few important and commonly used are:
1. Waterfall Model
2. V-Shaped Model
3. Structured Evolutionary Prototyping Model
4. RAD
5. Incremental Model
6. Spiral Model
7. The (Rational) Unified Process
8. Agile Model
9
Waterfall Model
❑ Also called the classic life cycle or the linear sequential model.
❑ There is no backtracking, Because the model does not support going back
to previously completed phases.
10
Cont…
11
Phases in Waterfall Model
Requirements analysis and definition.
❑ The system’s services, constraints, and goal are established
and defined(SRS) in a manner which is understandable by
users and development team.
Software design.
❑ In this system design process the requirements transform in to
Drawbacks:
❑ Unable to accommodate changes at later stages
❑ Because of its rigid structure, does not work well for complex projects
where there is a chance of a change in requirements .
14
When to Use Waterfall Model
◼ Requirements are very well known
◼ Technology is understood
15
V-Shaped Model
▪ V model is known as Verification and Validation model.
▪ The model demonstrates relationships between each phase of life cycle and
its associated phase of testing.
▪ That means , testing of product is planned in parallel with a corresponding
phase of development. 16
V-Shaped SDLC Model
17
V-Shaped Model Steps
◼ Project and Requirements Planning
◼ Production, operation and maintenance
◼ allocate resources
◼ Provide enhancement or corrections
◼ Product Requirements and Specification
◼ System and acceptance testing – check the
Analysis – complete specification of the
entire system in its environment.
software system(SRS).
◼ Integration and Testing – check that modules
◼ Architecture or High-Level Design –
a r e interconnect correctly.
defines how software functions fulfill the
◼ Unit testing – check that each module acts as
design
expected/not.
◼ Detailed Design – develop algorithms for
◼ Coding – transform algorithms into software
each architectural component.
18
V-Shaped Model Strengths
◼ Easy to use. 19
V-Shaped Weaknesses
⚫ Does not easily handle concurrent events
20
When to use the V-Shaped Model
⚫ Excellent choice for systems requiring high reliability – hospital patient
control applications
⚫ All requirements are known up-front.
21
Structured Evolutionary Prototyping Model
⚫ Developers build a prototype during requirements phase.
⚫It involves creating a working system quickly for the customer to ensure
the team is meeting the customer's parameters/not.
23
Structured Evolutionary Prototyping Steps
⚫ A preliminary project plan is developed
⚫The model is source for a partial requirements specification
⚫ A prototype is built with basic and critical attributes
⚫ The designer builds
⚫ the database
⚫ user interface
⚫ algorithmic functions
26
When to use Structured Evolutionary Prototyping
⚫ Requirements are unstable or good where requirements are
changing.
⚫Short-lived demonstrations
27
Incremental Development
⚫It combines the elements of waterfall model and they are
applied in an iterative fashion.
⚫The team develops in increments, developing one part of
software and submitting it to user testing, to obtain user
feedback (Modular design).
⚫Each increment builds give the product and submits it to the
customer for suggesting any modifications.
⚫And each subsequent release of the system adds function to
previous release until all designed functionally has been
implemented.
28
Cont…
▪ This process is repeated until the product is completed.
29
Cont…
⚫ So, rather than deliver system as a single delivery, the development
and the delivery is broken down into increments with each
increment delivering part of the required functionality.
32
When to use the Incremental Model
▪ A project has a lengthy development schedule.
▪ When software team are not very well skilled or trained.
▪ Most of the requirements are known up-front, but are
expected to evolve over time and when the requirements are
superior/ larger.
36
RAD Weaknesses
▪ It requires highly expansive developers
⚫ Risk of never achieving closure.
37
When to use RAD
⚫ When the requirements are well-known.
⚫ User involved throughout the life cycle.
⚫When the project easily modularized into several increments.
⚫ High performance not required.
⚫ Low technical risks
⚫When there's a necessity to make a system, which modularized
in 2-3 months of period.
⚫It should be used only if the budget allows the use of
automatic code generating tools.
38
Reading Assignment!!!
⚫ Spiral Model (Boehm 87)
⚫The (Rational) Unified Process
⚫Iterative Development Model
⚫Agile Model
39
Software Process Assessment
▪ Determine state of organization’s software process
▪ Assessment team uses CMM to guide, identifying &
prioritizing findings.
▪ CMM is a business model that companies can use to helps to
improve their software development capabilities.
▪ Findings & KPA guidance used to plan, improvement
strategy for organization.
▪ Key process areas (KPA) refers to an individual employee's
overall scope of activities that he's expected to perform.
40
Software Capability Evaluations
- Identify risks associated with a project or contract to build high
quality on schedule & budget
- During acquisition process, capability evaluation may be
performed on collectors
- Findings of an evaluation may be used to identify risk with using a
contractor.
- Performed on existing contracts to monitor process
performance.
41
Software Process Assessment & Capability Evaluation Steps:
SW Process Assessment …
• Common Steps:
- Team Selection
➢ Select team trained in CMM
➢ Knowledgeable in SE & mgmt
- Maturity Questionnaire
➢ Site reps complete questionnaire
- Response Analysis
➢ Analyze results of questionnaire
➢ Investigation areas = KPAs
43 43
Conti…
- On-site Visit
- Using results analysis, conduct on-site visit to view process
areas
- Using KPAs as guide, question, listen, review & synthesize info
- Apply professional judgment
- Document rationale for situations where KPAs not met
44
Why Measure Software?
⚫ To determine the quality of the current product or process
⚫ To predict qualities of a product/process
⚫ In order to improve the quality of a product/process
❖ Developer experience’s
❖ LOC, no class,….. 45
Motivation for Metrics
⚫Estimate the cost & schedule of future projects
⚫Evaluate the productivity impacts of new tools and techniques
⚫Improve software quality.
⚫Forecast future staffing needs.
⚫Anticipate and reduce future maintenance needs
46
Metrics in the Process Domain
⚫ Process metrics are collected across all projects and over long periods of time
⚫ They are used for making strategic decisions.
⚫ The intent is to provide a set of process indicators that lead to long- term software
process improvement.
⚫ The only way to know how/where to improve any process is to:-
⚫ Measure specific attributes of the process
⚫ Develop a set of meaningful metrics based on these attributes
⚫ Use the metrics to provide indicators that will lead to a strategy for
improvement.
47
END
Q?
48