0% found this document useful (0 votes)
16 views55 pages

Chapter 2

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views55 pages

Chapter 2

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 55

Chapter Two

Software Processes and Models


Introduction
What is a process?
• A process is an organized set of activities, which transforms inputs to
outputs.
 We can use synonyms of process such as: procedure, method, course
of action, etc.
• Software engineering as a discipline has many processes.
 In the context of software engineering, a process is an adaptable
approach that enables the people doing the work (the software team)
to pick and choose the appropriate set of work actions and tasks.
• The intent is always to deliver software in a timely manner and with
sufficient quality to satisfy those who have sponsored its creation and
those who will use it.
 What is it? Software process
• When you work to build a product or system, it’s important to go
through a series of predictable steps—a road map that helps you
create a timely, high-quality result.
• The road map that you follow is called a “software process.”
 Who does it?

 Software engineers and their managers adapt the process to


their needs and then follow it.
 In addition, the people who have requested the software have a role
to play in the process of defining, building, and testing it.
 Why is it important? Cont’d…
• Because it provides stability, control, and organization to an activity
that can, if left uncontrolled, become quite chaotic.

 What are the steps?

• At a detailed level, the process that you adopt depends on the software
that you’re building.

 What is the work product?

• From the point of view of a software engineer, the work products are
the programs, documents, and data that are produced as a
consequence of the activities and tasks defined by the process.
Cont’d…
 How do you ensure that you have done it right?
• There are a number of software process assessment mechanisms that
enable organizations to determine the “maturity” of their software
process.
• However, the quality, timeliness, and long-term viability of the
product you build are the best indicators of the efficacy of the
process that you use.
Cont’d…
 Software process: organizing a structured set of activities
to develop software systems.
• These processes help in performing different
software engineering activities in an organized manner.
Characteristics of processes
• Produces intermediate and final products.
• Each process activity has entry and exit criteria
• Activities are organized in sequence, so timing is clear.
• Each process has guiding principles including goals of each
activity.
• Uses resources, subject to set of constraints (such
schedule,
as no. of people working )
• May be composed of sub-processes with hierarchy or links
Cont’d…
 There are many different software processes but all
must include four activities.
I. Software specification: the functionality of the
software and constraints on its operation must be defined.
II. Software design and implementation: the
software to meet the specification must be produced.
III.Software validation: the software must be
validated to ensure that it does what the
customer wants.
IV. Software evolution: the software must evolve to
meet changing customer needs.
Sequential Software Process models
• Sequential models such as Waterfall or V-Model rely on
intensive periods of collecting and refining requirements
for a product before design and development activity
can take place.
• Products developed using these models are intended to be
complete when released to customers.
• Central to the approach is an assumption that by adhering to
the requirements captured at the beginning, the product
will fulfil the wishes of those customers.
Cont’d…

Source: www.richrtesting.com (Richard Rogers)


Iterative Software Process Models
• Emphasis on delivering less complex products, often to test
customer response before making adjustments.
• The techniques encourage regular feedback from customers,
and rapid response to that feedback;
• refining ideas and revisiting design and development
activities with the intention of delivering products
which better reflect what customers want.
Cont’d…

Source: www.richrtesting.com (Richard Rogers)


Software Development Life Cycle (SDLC)
• A Software Development Life Cycle (SDLC) is a well-defined,
structured sequence of stages in software engineering to develop
the intended software product.
• It is a process used by the software industry to design, develop and
test a high quality software.
 It aims to produce a high quality software that meets or exceeds
customer expectations, reaches completion with in times and cost
estimates.
• It is also called Software Development Process.
Cont’d…
• The software development lifecycle begins with the identification of a
requirement for software and ends with the formal verification of
the developed software against that requirement.
• So SDLC goes through a series of phases.
• Helps to understand the entire process
• Enables planning of resources in advance
• Enforces a structured approach to development
• Helps to track progress of the system
Cont’d…
 The software development life-cycle can be divided into 5-9 phases:
• Project initiation and planning
• Project identification and selection
• Feasibility study
• Project analysis
• System design
• Coding
• Testing
• Implementation
• Maintenance
Cont’d…
I. Problem definition
• It is the decision about problems in the existing system and the motivation
for system change.
• The need for changes in the existing system are identified and shortcomings
of the existing system are detected. which leads to Feasibility Study.
II. Feasibility Study is an analysis of the viability of an idea.
• Answer the essential question of “should we proceed with the proposed
project idea?”
• Used to identify how, where, and to whom you intend to sell a service or
product.
• Provides detail concept about your business.
• How and where the business is operate
• How can I succeed
Cont’d…
 Organizational Feasibility: is how well a proposed information system
supports the objectives of the organization and is a strategic plan for an
information system.

 Economic feasibility (Cost/Benefits Analysis): how much start-up capital


is needed, sources of capital, returns on investment( profit ), etc.
• if a project can’t cover its development costs, it won’t be approved,

 Technical Feasibility

 Operational Feasibility

 Schedule Feasibility

 Political Feasibility
Cont’d…
III. Project Analysis: a detailed study of the various operations
performed by a system and their relationships within and outside the
system.
• Examine and document the relevant aspects of the existing system,
its shortcomings and problems.
• Analyze the findings and record the results.
• Define and document the proposed system.
• Test the proposed design against the known facts.
• Produce a detailed report to support the proposals.
• Estimate the resources required to design and
implement the system.
• The objective is to provide solutionsCont’d…
to stated problems, usually in
the form of specifications to meet the users requirements and to make
recommendations for a new computer-based system.
•Analysis is iterative and progressive process.
IV. System Design: it is the most creative and challenging phase.
 Determining data required to produce the output
 Determining processing methods and using software
 Determining methods of data capture
 Defining detailed critical procedures
 Calculating timings of processing
Cont’d…
V. Coding: the goal of the coding phase is to translate the
design of the system into code in a given
programming language.
• affects both testing and maintenance

VI. Testing: testing is the major quality-control measure used


during software development.
• Its basic function is to detect errors in the software
VII. Implementation: it is mainly concerned with
user training, site selection, and preparation and file
Cont’d…
VIII.Maintenance: it is an important part of the SDLC.
 But it has some problems:
• Availability of a few maintenance tools.
• User may not accept the cost of maintenance.
• Standards and guidelines of project may be
poorly defined.
• A good test plan is lacking.
 There Classifications of SDLC Model
are a number of different models for software
development
lifecycles which describe the interrelationships between software
development phases.
 Waterfall model
 prototype model
 incremental model
 V-shaped model
 Spiral model
Waterfall
 Organize the activities in linear fashion.
model
• Each phase is end up with expected output in the forms of document.
• Waterfall model is the simplest model.
• All the phases of SDLC will function one after another in
linear
manner.
• That is, when the first phase is finished then only the second phase
will start and so on.
Classical Waterfall Model
Cont’d…
 Classical waterfall model is idealistic:
• Assumes that no defect is introduced
during any development activity.
• In practice developers commit errors:
• Defects do get introduced in almost every
phase of the life cycle.
Iterative Waterfall Model
Cont’d…
 Defects usually get detected much later in the life cycle:

• For example, a design defect might go unnoticed till the coding


or testing phase.
 Once a defect is detected:

• The phase in which it occurred and parts of the work


already completed subsequent phases needs to be reworked.
 Therefore need feedback paths in the classical waterfall model.
Cont’d…
Waterfall model Strengths
• Easy to understand, easy to use
• Provides a reference to inexperienced staff
• Provides requirements stability
• Facilitates strong management control (plan, staff, track)

Waterfall Deficiencies
• All requirements must be known upfront
• Does not accommodate any change.
• There is no risk analysis.
• Can give a false impression of progress.
• Little opportunity for customer to pre-view the system.
When to use the Waterfall Model
Cont’d…
• Requirements are very well known and stable
• Technology is understood
• Experienced Development team
• When it is possible to produce a stable design

E.g. a new version of an existing product


• E.g. porting an existing product to a new platform.
Prototype process model
• It is model implementation of the project with limited
functionalities.
• The prototype model suggests that before development
of the actual software, a working prototype of the
system should be built first.
What is a Prototype?
• It is a quickly developed, easily modifiable and extendible
working model of the required application.
Reasons for prototyping
Cont’d…

• learning by doing: useful where requirements are only partially known

• improved communication

• improved user involvement

• reduces the need for documentation

• reduces maintenance costs i.e. changes after the application goes


live
Cont’d…
Prototyping: advantages Cont’d…
• The resulting software is more usable
• User needs are better accommodated
• The design is of higher quality
• The resulting software is easier to maintain
• Overall, the development incurs less effort

Prototyping Weaknesses
• Sometimes expensive
• Overall maintainability may be overlooked
• Process may continue forever (scope creep)
Cont’d…
What is the main goal of prototyping model?
• To avoid early freezing of the requirements.

• Instead of freezing the requirement, prototype is built


to understand the requirement.

• To enable the client to better understand the requirement.


Cont’d…
When to use the Prototyping Model?
• When requirements are not known at the beginning of
the project.
• When requirements are unstable and constantly changing.
• When quick demonstrations are required.
• When user requires proof of concept.
Incremental
• Incremental development process
is dividing themodel
project in various
independent parts and developing these sub-parts at
the same rate/ different rate and integrating them when
ready.
 Steps
• Develop a system in smaller portions at a time.
• Then slowly add increased functionality.
• Each subsequent release of the system adds function to the
previous release, until all designed functionality has
been implemented.
Cont’d…
Cont’d…
Incremental Model Strengths
• Develop high-risk or major functions first
• Each release delivers an operational product
• Customer can respond to each build
• Uses “divide and conquer” breakdown of
tasks
• Lowers initial delivery cost
• Initial product delivery is faster
• Customers get important functionality early
Cont’d…
Incremental Model Weaknesses
⚫ Requires good planning and design
⚫ Requires early definition of a complete and fully functional system to
allow for the definition of increments
⚫ Well-defined module interfaces are required
⚫ Total cost of the complete system is not lower
When to use the Incremental Cont’d…
Model
⚫ Most of the requirements are known up-front but are expected
to evolve over time

⚫ A need to get basic functionality to the market early

⚫ On projects which have lengthy development schedules


Spiral Model
• The spiral model is an evolutionary software process model that
couples the iterative feature of prototyping with the controlled
and systematic aspects of the linear sequential model.
• It implements the potential for rapid development of new versions of
the software.
• Using the spiral model, the software is developed in a series
of incremental releases.
• During the early iterations, the additional release may be a
paper model or prototype.
• During later iterations, more and more complete versions of
the engineered system are produced.
Cont’d…
Cont’d…
 Each cycle in the spiral is divided into four parts:
 Objective setting: Each cycle in the spiral starts with the
identification of purpose for that cycle, the various alternatives that
are possible for achieving the targets, and the constraints that exists.
 Risk Assessment and reduction: The next phase in the cycle is to
calculate these various alternatives based on the goals and constraints.
• The focus of evaluation in this stage is located on the risk perception
for the project.
Cont’d…
 Development and validation: The next phase is to develop strategies
that resolve uncertainties and risks.
• This process may include activities such as benchmarking, simulation,
and prototyping.
 Planning: Finally, the next step is planned.

• The project is reviewed, and a choice made whether to continue with a


further period of the spiral.
• If it is determined to keep, plans are drawn up for the next step of the
project.
Cont’d…
 The development phase depends on the remaining risks.

• For example, if performance or user-interface risks are treated more essential


than the program development risks, the next phase may be an evolutionary
development that includes developing a more detailed prototype for solving
the risks.
 The risk-driven feature of the spiral model allows it to accommodate any
mixture of a specification-oriented, prototype-oriented, simulation-oriented,
or another type of approach.
• An essential element of the model is that each period of the spiral is
completed by a review that includes all the products developed during that
cycle, including plans for the next cycle.
• The spiral model works for development as well as enhancement projects.
Cont’d…
Spiral Model Strengths
• Provides early indication of insurmountable risks, without much
cost

• Users see the system early because of rapid prototyping tools

• Critical high-risk functions are developed first

• The design does not have to be perfect

• Users can be closely tied to all lifecycle steps

• Early and frequent feedback from users

• Cumulative costs assessed frequently


Cont’d…
Spiral Model Weaknesses
• Time spent for evaluating risks too large for small or low-
risk projects
• Time spent planning, resetting objectives, doing risk analysis and
prototyping may be excessive
• The model is complex
• Risk assessment expertise is required
• Spiral may continue indefinitely
• May be hard to define objective, verifiable milestones
that indicate readiness to proceed through the next iteration
Cont’d…
When to use Spiral Model
• When creation of a prototype is appropriate
• When costs and risk evaluation is important
• For medium to high-risk projects
• Users are unsure of their needs
• Requirements are complex
• When changes may require at any time
• Large and high budget projects
• When deliverance is required to be frequent.
V Model
• It is a variant of the Waterfall
• emphasizes verification and validation
• V&V activities are spread over the entire life cycle.
• Verification and validation (V & V) is intended to show that a
system conforms to its specification and meets the requirements of
the system customer.
• In every phase of development:
• Testing activities are planned in parallel with development.
Developers life cycle
Cont’d…
Testers life cycle
Verification: Cont’d…
• It involves a static analysis method (review) done without executing code.
• It is the process of evaluation of the product development process to find
whether specified requirements meet.
Validation:
• It involves dynamic analysis method (functional, non-functional), testing is
done by executing code.
• Validation is the process to classify the software after the completion of the
development process to determine whether the software meets the customer
expectations and requirements.
• Verification and Validation process is joined by coding phase in V-shape.
• Thus it is known as V-Model.
52
Cont’d…
V. Shaped Steps
• Project and Requirements Planning – allocate resources
• Product Requirements and Specification Analysis –
specification of the software system
complete
• Architecture or High-Level Design – defines how software
functions fulfill the design
• Detailed Design – develop algorithms for each architectural component
• Coding – transform algorithms into software
• Unit testing – check that each module acts as expected
• Integration and Testing – check that modules interconnect correctly
• System and acceptance testing – check the entire software system in its
environment
• Production, operation and maintenance – provide for enhancement and
corrections
Cont’d…
V model Strengths
• Emphasize planning for verification and validation of the product in
early stages of product development.
• Each deliverable must be testable
• Easy to use

V Model Weaknesses
• Does not support overlapping of phases

• Does not handle iterations or phases

• Does not easily handle later changes in requirements

• Does not support risk analysis activities


Cont’d…
When to use V Model
• All requirements are known up-front
• Solution and technology are known
• Natural choice for systems requiring high reliability:

• Embedded control applications


Thank
You!
?
57

You might also like