KEMBAR78
ASE Ch2-SoftwareProcess | PDF | Software Development Process | Agile Software Development
0% found this document useful (0 votes)
17 views34 pages

ASE Ch2-SoftwareProcess

Chapter 2 discusses software processes, including various models such as waterfall, incremental development, and reuse-oriented development. It outlines fundamental activities like requirements engineering, design and implementation, validation, and evolution, emphasizing the importance of coping with change through methods like prototyping and iterative delivery. The chapter highlights the need for flexibility in software development to accommodate changing requirements and improve system usability.

Uploaded by

huandaoudemy1
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)
17 views34 pages

ASE Ch2-SoftwareProcess

Chapter 2 discusses software processes, including various models such as waterfall, incremental development, and reuse-oriented development. It outlines fundamental activities like requirements engineering, design and implementation, validation, and evolution, emphasizing the importance of coping with change through methods like prototyping and iterative delivery. The chapter highlights the need for flexibility in software development to accommodate changing requirements and improve system usability.

Uploaded by

huandaoudemy1
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/ 34

Chapter 2 – Software Processes

Chapter 2. Software Processes 1


Topics covered

 Software process models


 Process activities
 Coping with change
 Process improvement

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
 Design and implementation
 Validation
 Evolution.
 A software process model
 an abstract representation of a process

Chapter 2. Software Processes 3


Some 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.

Chapter 2. Software Processes 4


The waterfall model

In principle, a phase has to be complete before


moving onto the next phase.
Chapter 2. Software Processes 5
Waterfall model usages

 The main drawback:


 the difficulty of accommodating change after the process is
underway.
 Mostly used for large systems engineering projects
 a system is developed at several sites.
 the plan-driven nature of the waterfall model helps coordinate
the work.
 When the requirements are well-understood and
changes will be fairly limited during the design process.
 Few business systems have stable requirements.

Chapter 2. Software Processes 6


Incremental development

Chapter 2. Software Processes 7


Incremental development benefits

 Reduce the cost of accommodating changing customer


requirements

 Easier to get customer feedback on the development


work that has been done.

 More rapid delivery and deployment of useful software to


the customer

Chapter 2. Software Processes 8


Incremental development problems

 The process is not visible.


 Managers need regular deliverables
 Not cost-effective to produce documents for every product
version

 System structure tends to degrade as new increments


are added.
 Need time and money on refactoring to improve the software
 Regular change tends to corrupt the structure.
 Incorporating further software changes becomes increasingly
difficult and costly.

Chapter 2. Software Processes 9


Agile development

i.e.: waterfall model, incremental


development

Chapter 2. Software Processes 10


SCRUM – THE MOST POPULAR AGILE
DEVELOPMENT APPROACHES
AGILE DEVELOPMENT

PROs CONs
More flexible Hard to predict
Product get to Final product is
market faster not released first
Better Documentation
communication gets left behind
Reuse-oriented software engineering

 Based on software reuse where systems are integrated


from existing components or application systems (COTS
-Commercial-off-the-shelf systems).
 Stand-alone application systems (COTS)
 Package objects / component framework such as .NET or J2EE.
 Web services
 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

Aug 2019 Chapter 2. Software Processes 13


Reuse-oriented software engineering

Chapter 2. Software Processes 14


Advantages and disadvantages

 Reduced costs and risks as less software is developed


from scratch
 Faster delivery and deployment of system
 But requirements compromises are inevitable so system
may not meet real needs of users
 Loss of control over evolution of reused system elements

Chapter 2. Software Processes 15


PROCESS ACTIVITIES
The four basic process activities are specification, development,
validation and evolution

Chapter 2. Software Processes 16


Activity 1: Software specification

 The process of establishing what services are required


and the constraints on the system’s operation and
development.

 Use: Requirements engineering process


 Requirements elicitation and analysis
 Requirements specification
 Requirements validation

Chapter 2. Software Processes 17


The requirements engineering process

Chapter 2. Software Processes 18


Activity 2: Software design and implementation
~ Software development

 The process of converting the system specification into


an executable system.

 Two (sub) activities:


 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.

Chapter 2. Software Processes 19


A general model of the design process

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.

Chapter 2. Software Processes 21


Activity 3: Software validation
building the thing right?

 Verification and validation (V & V)


 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: executing the system with test cases
 Testing: the most commonly used V & V activity.

building the right thing?

Chapter 2. Software Processes 22


Stages of testing

• Test individual components


independently

• Testing of the system as a


whole

• Testing with
customer data
Chapter 2. Software Processes 23
Testing phases in a plan-driven software
process

Chapter 2. Software Processes 24


Activity 4: Software evolution

 Software is inherently flexible and can change.


 Requirements can change
 (changing business circumstances) => the software must also
evolve and change.

Chapter 2. Software Processes 25


COPING WITH CHANGE

Chapter 2. Software Processes 26


Coping with change

 Change is inevitable in all large software projects.


 Business changes
 New technologies
 Changing platforms

 Change leads to rework


 costs include rework (re-analysing requirements) and
implementing new functionality

Chapter 2. Software Processes 27


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:
 requirements engineering process: requirements elicitation and
validation;
 design processes: options and develop UI design;
 testing process: run back-to-back tests.
Benefits:
• Improved system usability.
• A closer match to users’ real
needs.
• Improved design quality.
• Improved maintainability.
• Reduced development effort.
Chapter 2. Software Processes 28
The process of prototype development

Prototype development:
• May be based on rapid
prototyping languages or tools
• May involve leaving out
functionality

Chapter 2. Software Processes 29


Incremental delivery

 The development and delivery is broken down into


increments
 each increment delivering part of the required functionality.
 user requirements are prioritised and the highest priority
requirements are included in early increments.
 Two approaches:
 Incremental development: by developer
 Incremental delivery: for end-user

Chapter 2. Software Processes 30


Incremental delivery

Advantages:
• system functionality is
available earlier.
• early increments act as a Problems:
prototype • may require a set of basic
• lower risk of overall project facilities
failure. • the specification is
• highest priority system developed in conjunction
services receive most with the software.
testing.
Chapter 2. Software Processes 31
Software Project Documentation

Activity Document
Validation & Verification SVVP - Software Validation & Verification Plan

Quality Assurance SQAP - Software Quality Assurance Plan

Configuration SCMP - Software Configuration Management Plan

Project status SPMP - Software Project Management Plan

Requirements SRS - Software Requirements Specifications

Design SDD - Software Design Document / Software Detail


Design Document
Code Source Code
Testing STD - Software Test Document
Operation User’s Manual
Chapter 2. Software Processes 32
Summary

 Software processes
 Software process models
 waterfall, incremental development, reuse-oriented
development.
 Fundamental activities:
 Requirements engineering: developing specification.
 Design and implementation: transforming a requirements
specification into an executable software system
 Software validation: checking that the system conforms to its
specification.
 Software evolution: change existing software systems to meet
new requirements

Aug 2019 Chapter 2. Software Processes 33


Summary (cont.)

 Coping with change


 prototyping
 iterative development and delivery

Aug 2019 Chapter 2. Software Processes 34

You might also like