2 - software processes
TRANSCRIPT
-
7/30/2019 2 - Software Processes
1/16
Reference: Software Engineering, by IanSommerville, 9th edition, Chapter 2
-
7/30/2019 2 - Software Processes
2/16
Objectives
To introduce the idea of software process acoherent set of activities for softwareproduction.
Understand the concepts of software
processes To describe various generic software process
models and their pros and cons
Know about the fundamental process
activities Understand why processes should cope with
changes in requirements and design
-
7/30/2019 2 - Software Processes
3/16
Software ProcessDefinition:
the set of related activities that leads to
the production of a software product. These activities may involve
developing software from scratch.
Evolution of an existing software
3
-
7/30/2019 2 - Software Processes
4/16
Activities in Software Process
Software Specification
what the system should do and its development constraints,
Software Design and Implementation
production of the software system
Software Verification
checking that the software meets the requirements,
Software Validation
checking that the software does what the customer wants,
Software Evolution
changing the software in response to changing customerdemands.
4
-
7/30/2019 2 - Software Processes
5/16
Software Life Cycle The phases necessary to develop and maintain a
software system. These phases include:
Requirements (Specification)
Design
Implementation (Coding)
Testing (Validation)
Maintenance (Evolution)
Asoftware process model is an abstractrepresentation of how these phases can beaddressed.
-
7/30/2019 2 - Software Processes
6/16
Requirements
The process of establishing
what services are required of the system
the constraints on the systemsoperation and development
The what of the software life cycle
-
7/30/2019 2 - Software Processes
7/16
A Generic Requirements Process
Feasibilitystudy
Requirementselicitation and
analysisRequirementsspecification
Requirementsvalidation
Feasibilityreport
Systemmodels
User and system
requirements
Requirements
document
-
7/30/2019 2 - Software Processes
8/16
Design
The process of converting the system specification(requirements) into a software structure that realizesthat specification
The how of the software life cycle
-
7/30/2019 2 - Software Processes
9/16
A Generic Software Design Process
-
7/30/2019 2 - Software Processes
10/16
Implementation
Implementation is the process of converting asystem specification into an executable system.
Translating a design into a program and removingerrors from that program
Programming is a personal activity - there is nogeneric programming process.
Programmers carry out some program testing todiscover faults in the program and remove thesefaults in the debugging process.
The activities of design and implementation areclosely related and may be interleaved.
-
7/30/2019 2 - Software Processes
11/16
Testing
Verification and validation is intended to show thata system conforms to its specification and meetsthe requirements of the system customer.
Involves checking and review processes and system
testing System testing involves executing the system with
test cases that are derived from the specification ofthe real data to be processed by the system.
-
7/30/2019 2 - Software Processes
12/16
A Generic Testing Process
Sub-systemtesting
Moduletesting
Unittesting
Systemtesting
Acceptance
testing
Componenttesting
Integration testing Usertesting
-
7/30/2019 2 - Software Processes
13/16
V-Model of Test PlanningRequirementsspecification
Systemspecification
Systemdesign
Detaileddesign
Module andunit codeand tess
Sub-systemintegrationtest plan
Systemintegrationtest plan
Acceptancetest plan
Service Acceptancetest
Systemintegration test
Sub-systemintegrat ion test
-
7/30/2019 2 - Software Processes
14/16
System Maintenance Software is inherently flexible and can change (as
opposed to hardware).
In the past, there has been a demarcation betweendevelopment and evolution (maintenance). This is
increasingly irrelevant as fewer and fewer systems arecompletely new.
Software engineering should be thought of as anevolutionary process where software is continually
changed over its lifetime in response to customerneeds.
-
7/30/2019 2 - Software Processes
15/16
Summary In every software project, large or small, there are five
phases that will be involved: Requirements gathering/analysis
Design Implementation /coding
Testing
Maintenance
However, there is no rule of thumb that these phasesmust be followed systematically. In most projects,developers do as they find appropriate depending onthe type of project.
-
7/30/2019 2 - Software Processes
16/16
END
Next: We will look at Software Process Models