0% found this document useful (0 votes)
33 views40 pages

Ch2 - 1 SW Processes

Notes

Uploaded by

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

Ch2 - 1 SW Processes

Notes

Uploaded by

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

Chapter 2 – Software Processes

2/19/2024 Chapter 2 Software Processes 1


Topics covered

 Software process models


o Waterfall model
o Integration and configuration model
o Incremental development
 Process activities
o Software specification
o Software design and implementation
o Software validation
o Software evolution
 Coping with change
o Software prototyping
 Process improvement
2/19/2024 Chapter 2 Software Processes 2
The software process

 A structured set of activities required to develop a


software system.
 Many different software processes but all involve:
▪ Specification – defining what the system should do;
▪ Design and implementation – defining the organization of the
system and implementing the system;
▪ Validation – checking that it does what the customer wants;
▪ Evolution – changing the system in response to changing
customer needs.
 A software process model is an abstract representation
of a process. It presents a description of a process from
some particular perspective.
2/19/2024 Chapter 2 Software Processes 3
Plan-driven and agile processes

 Plan-driven processes are processes where all of the


process activities are planned in advance and progress
is measured against this plan.
 In agile processes, planning is incremental and it is
easier to change the process to reflect changing
customer requirements.
 In practice, most practical processes include elements of
both plan-driven and agile approaches.
 There are no right or wrong software processes.

2/19/2024 Chapter 2 Software Processes 4


Software process models

2/19/2024 Chapter 2 Software Processes 5


Software process models

 The waterfall model


▪ Plan-driven model. Separate and distinct phases of specification
and development.
 Incremental development
▪ Specification, development and validation are interleaved. May
be plan-driven or agile.
 Integration and configuration
▪ The system is assembled from existing configurable
components. May be plan-driven or agile.
 In practice, most large systems are developed using a
process that incorporates elements from all of these
models.
2/19/2024 Chapter 2 Software Processes 6
The waterfall model

2/19/2024 Chapter 2 Software Processes 7


Waterfall model phases

 There are separate identified phases in the waterfall


model:
▪ Requirements analysis and definition
▪ System and software design
▪ Implementation and unit testing
▪ Integration and system testing
▪ Operation and maintenance
 The main drawback of the waterfall model is the difficulty
of accommodating change after the process is
underway. In principle, a phase has to be complete
before moving onto the next phase.

2/19/2024 Chapter 2 Software Processes 8


Waterfall model problems

 Inflexible partitioning of the project into distinct stages


makes it difficult to respond to changing customer
requirements.
▪ Therefore, this model is only appropriate when the requirements
are well-understood and changes will be fairly limited during the
design process.
▪ Few business systems have stable requirements.
 The waterfall model is mostly used for large systems
engineering projects where a system is developed at
several sites.
▪ In those circumstances, the plan-driven nature of the waterfall
model helps coordinate the work.

2/19/2024 Chapter 2 Software Processes 9


Integration and configuration

 Based on software reuse where systems are integrated


from existing components or application systems
(sometimes called COTS -Commercial-off-the-shelf)
systems).
 Reused elements may be configured to adapt their
behaviour and functionality to a user’s requirements
 Reuse is now the standard approach for building many
types of business system
▪ Reuse covered in more depth in Chapter 15.

2/19/2024 Chapter 2 Software Processes 10


Incremental development

2/19/2024 Chapter 2 Software Processes 11


Advantages of incremental development

 The cost of accommodating changing customer


requirements is reduced.
 It is easier to get customer feedback on the
development work that has been done.
 More rapid delivery and deployment of useful software
to the customer.

2/19/2024 Chapter 2 Software Processes 12


Disadvantages of incremental development

 The process is not visible.


 System structure tends to degrade as new increments
are added.

2/19/2024 Chapter 2 Software Processes 13


Process activities

2/19/2024 Chapter 2 Software Processes 14


Process activities

 Real software processes are inter-leaved sequences of


technical, collaborative and managerial activities with the
overall goal of specifying, designing, implementing and
testing a software system.
 The four basic process activities of specification,
design and implementation, validation and evolution
are organized differently in different development
processes.
 For example, in the waterfall model, they are organized
in sequence, whereas in incremental development they
are interleaved.

2/19/2024 Chapter 2 Software Processes 15


The requirements engineering process

2/19/2024 Chapter 2 Software Processes 16


Software specification

 The process of establishing what services are required


and the constraints on the system’s operation and
development.
 Requirements engineering process
▪ Requirements elicitation and analysis
• What do the system stakeholders require or expect from the system?
▪ Requirements specification
• Defining the requirements in detail
▪ Requirements validation
• Checking the validity of the requirements

2/19/2024 Chapter 2 Software Processes 17


Software design and implementation

 The process of converting the system specification into


an executable system.
 Software design
▪ Design a software structure that realises the specification;
 Implementation
▪ Translate this structure into an executable program;
 The activities of design and implementation are closely
related and may be inter-leaved.

2/19/2024 Chapter 2 Software Processes 18


A general model of the design process

2/19/2024 Chapter 2 Software Processes 19


Design activities

 Architectural design, where you identify the overall


structure of the system, the principal components
(subsystems or modules), their relationships and how
they are distributed.
 Database design, where you design the system data
structures and how these are to be represented in a
database.
 Interface design, where you define the interfaces
between system components.
 Component selection and design, where you search
for reusable components. If unavailable, you design how
it will operate.
2/19/2024 Chapter 2 Software Processes 20
System implementation

 The software is implemented either by developing a


program or programs or by configuring an application
system.
 Design and implementation are interleaved activities for
most types of software system.
 Programming is an individual activity with no standard
process.
 Debugging is the activity of finding program faults and
correcting these faults.

2/19/2024 Chapter 2 Software Processes 21


Software validation

 Verification and validation (V & V) is intended to show


that a system conforms to its specification and meets the
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 of the real
data to be processed by the system.
 Testing is the most commonly used V & V activity.

2/19/2024 Chapter 2 Software Processes 22


Stages of testing

2/19/2024 Chapter 2 Software Processes 23


Testing stages

 Component testing
▪ Individual components are tested independently;
▪ Components may be functions or objects or coherent groupings
of these entities.
 System testing
▪ Testing of the system as a whole. Testing of emergent properties
is particularly important.
 Customer testing
▪ Testing with customer data to check that the system meets the
customer’s needs.

2/19/2024 Chapter 2 Software Processes 24


Software evolution

 Software is inherently flexible and can change.


 As requirements change through changing business
circumstances, the software that supports the business
must also evolve and change.
 Although there has been a demarcation between
development and evolution (maintenance) this is
increasingly irrelevant as fewer and fewer systems are
completely new.

2/19/2024 Chapter 2 Software Processes 25


System evolution

2/19/2024 Chapter 2 Software Processes 26


Coping with change

2/19/2024 Chapter 2 Software Processes 27


Coping with change

 Change is inevitable in all large software projects.


▪ Business changes lead to new and changed system
requirements
▪ New technologies open up new possibilities for improving
implementations
▪ Changing platforms require application changes
 Change leads to rework so the costs of change include
both rework (e.g. re-analysing requirements) as well as
the costs of implementing new functionality

2/19/2024 Chapter 2 Software Processes 28


Reducing the costs of rework

 Change participation
▪ The software process includes activities that can anticipate
possible changes before significant rework is required.
▪ For example, a prototype system may be developed to show key
features of the system to customers.
 Change tolerance
▪ The process is designed so that changes can be accommodated
at relatively low costs.
▪ Proposed changes can be implemented increments that have
not yet been developed.

2/19/2024 Chapter 2 Software Processes 29


Two ways of coping with change

 System prototyping
▪ Support change participation by allowing users to experiment
with the system before delivery and so refine their requirements.
 Incremental delivery
▪ System increments are delivered to the customer for comment
and experimentation.
▪ It avoids the premature commitment to requirements for the
whole system and allows changes to be incorporated into later
increments at relatively low cost.

2/19/2024 Chapter 2 Software Processes 30


Software prototyping

 A prototype is an initial version of a system used to


demonstrate concepts and try out design options.
 A prototype can be used in:
▪ The requirements engineering process to help with
requirements elicitation and validation;
▪ In system design processes to explore options and develop a
UI design; and in the testing process to run back-to-back tests.

2/19/2024 Chapter 2 Software Processes 31


Benefits of prototyping

 Improved system usability.


 A closer match to users’ real needs.
 Improved design quality.
 Improved maintainability.
 Reduced development effort.

2/19/2024 Chapter 2 Software Processes 32


Incremental delivery

 The development and delivery is broken down into


increments with each increment delivering part of the
required functionality.
 User requirements are prioritized and the highest priority
requirements are included in early increments.
 Once an increment is completed and delivered,
customers can put it into service.
 Unlike prototypes, increments are part of the real
system.

2/19/2024 Chapter 2 Software Processes 33


Process improvement

2/19/2024 Chapter 2 Software Processes 34


Process improvement

 Many software companies have turned to software


process improvement as a way of enhancing the quality
of their software, reducing costs or accelerating their
development processes.
 Process improvement means understanding existing
processes and changing these processes to increase
product quality and/or reduce costs and development
time.

2/19/2024 Chapter 2 Software Processes 35


Approaches to improvement and change

 The process maturity approach, which focuses on


improving process and project management and
introducing good software engineering practice.
▪ The level of process maturity reflects the extent to which good
technical and management practice has been adopted in
organizational software development processes.
 The agile approach, which focuses on iterative
development and the reduction of overheads in the
software process.
▪ The primary characteristics of agile methods are rapid delivery of
functionality and responsiveness to changing customer
requirements.

2/19/2024 Chapter 2 Software Processes 36


The process improvement cycle

2/19/2024 Chapter 2 Software Processes 37


Five levels of process maturity

2/19/2024 Chapter 2 Software Processes 38


Key points

 Processes may be structured for iterative development


and delivery so that changes may be made without
disrupting the system as a whole.
 The principal approaches to process improvement are
agile approaches, geared to reducing process
overheads, and maturity-based approaches based on
better process management and the use of good
software engineering practice.
 The SEI process maturity framework identifies maturity
levels that essentially correspond to the use of good
software engineering practice.

2/19/2024 Chapter 2 Software Processes 39


Any Questions???

2/19/2024 Chapter 2 Software Processes 40

You might also like