0% found this document useful (0 votes)
14 views

Lecture 4

The document discusses different types of software processes. It describes a software process as a structured set of activities to develop software, including specification, design/implementation, validation, and evolution. Process models provide abstract representations of processes from different perspectives. The document then covers plan-driven and agile processes, as well as specific process models like waterfall, incremental development, and integration/configuration. It provides details on the phases and advantages/disadvantages of each.

Uploaded by

muazzam22
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views

Lecture 4

The document discusses different types of software processes. It describes a software process as a structured set of activities to develop software, including specification, design/implementation, validation, and evolution. Process models provide abstract representations of processes from different perspectives. The document then covers plan-driven and agile processes, as well as specific process models like waterfall, incremental development, and integration/configuration. It provides details on the phases and advantages/disadvantages of each.

Uploaded by

muazzam22
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 17

Chapter 2 – Software Processes

30/10/2014 Chapter 2 Software Processes 1


The software process

 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.
30/10/2014 Chapter 2 Software Processes 2
Software process descriptions

 The Process activities involve:


 specifying a data model
 designing a user interface
 ordering of these activities.
 Process descriptions include:
 Products, which are the outcomes of a process activity;
 Roles, which reflect the responsibilities of the people involved in the process;
 Pre- and post-conditions, which are statements that are true before and after a process
activity has been enacted or a product produced.

30/10/2014 Chapter 2 Software Processes 3


Plan-driven and agile processes

 Plan-driven processes:
 all the process activities are planned
 progress is measured against this plan.
 In agile processes
 planning is incremental
 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.

30/10/2014 Chapter 2 Software Processes 4


Software process models

30/10/2014 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.

30/10/2014 Chapter 2 Software Processes 6


The waterfall model

30/10/2014 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
intolerance to change in requirements after the
process is underway.
 In principle, a phase has to be complete before
moving onto the next phase.
30/10/2014 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.
 stable requirements is very rare.
 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.

30/10/2014 Chapter 2 Software Processes 9


Incremental development

30/10/2014 Chapter 2 Software Processes 10


Incremental development benefits

 The cost of accommodating changing customer


requirements is reduced.
 The amount of analysis and documentation that has to be
redone is much less than is required with the waterfall model.
 It is easier to get customer feedback on the
development work that has been done.
 Customers can comment on demonstrations of the software and
see how much has been implemented.
 More rapid delivery and deployment of useful
software to the customer is possible.
 Customers are able to use and gain value from the software
earlier than is possible with a waterfall process.
30/10/2014 Chapter 2 Software Processes 11
Incremental development problems

 The process is not visible.


 Managers need regular deliverables to measure progress. If systems are developed
quickly, it is not cost-effective to produce documents that reflect every version of the
system.
 System structure tends to degrade as new increments are added.
 Unless time and money is spent on refactoring to improve the software, regular change
tends to corrupt its structure. Incorporating further software changes becomes
increasingly difficult and costly.

30/10/2014 Chapter 2 Software Processes 12


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

30/10/2014 Chapter 2 Software Processes 13


Types of reusable software

 Stand-alone application systems (sometimes called COTS) that are


configured for use in a particular environment.
 Collections of objects that are developed as a package to be integrated with
a component framework such as .NET
 Web services that are developed according to service standards and which
are available for remote invocation.

30/10/2014 Chapter 2 Software Processes 14


Reuse-oriented software engineering

30/10/2014 Chapter 2 Software Processes 15


Key process stages

 Requirements’ specification
 Software discovery and evaluation
 Requirements’ refinement
 Application system configuration
 Component adaptation and integration

30/10/2014 Chapter 2 Software Processes 16


Advantages and disadvantages

 Reduced costs and risks as less software is developed from scratch


 Faster delivery and deployment of the system
 But requirements compromises are inevitable so it might be possible that the
system may not meet the real needs of client.
 Loss of control over the evolution of reused system elements

30/10/2014 Chapter 2 Software Processes 17

You might also like