You are on page 1of 46

L2 – Software Processes

COMP3297 by Leo Yeung L2 - Software Processes 1


Topics covered

² Software process models


² Process activities
² Coping with change
² Process improvement

COMP3297 by Leo Yeung L2 - Software Processes 2


Real-life examples - Making Smart Choices 2:
Sexuality Education Experiential Learning Game

COMP3297 by Leo Yeung COMP3297 by Leo Yeung 3


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.
COMP3297 by Leo Yeung L2 - Software Processes 4
Software process descriptions

² When we describe and discuss processes,


we usually talk about the activities in these Activity 1
processes such as specifying a data model,
designing a user interface, etc. and the Activity 2
ordering of these activities.
² Process descriptions may also include: Activity 3

§ Products - outcomes of a process activity;


§ Roles - reflect the responsibilities of the
people involved in the process;
§ Pre- and post-conditions - statements that
are true before and after a process activity has
been enacted or a product produced.

COMP3297 by Leo Yeung L2 - Software Processes 5


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.

COMP3297 by Leo Yeung L2 - Software Processes 6


Software process models

COMP3297 by Leo Yeung L2 - Software Processes 7


Software process models (a.k.a. Software
Development Life Cycle or SDLC)

1. The waterfall model Question


§ Plan-driven model. Shall we use these three
models together? For
§ Separate and distinct phases of specification example…
and development.
Sub-system A
2. Incremental development
? essential
§ May be plan-driven or agile. system requirements

§ Specification, development and validation are Sub-system B


interleaved. difficult to specify
? system requirements
3. Integration and configuration in advance

§ May be plan-driven or agile. Sub-system C


? bought in as off-the-
§ The system is assembled from existing shelf systems
configurable components.

COMP3297 by Leo Yeung L2 - Software Processes 8


Example of The Waterfall Model - How we developed
“Making Smart Choice 2”?

• Client suggests the new features


to be added in this new version.
Requirements
definition • main game flow design
• characters and UI/UX design
System and
software design • revamp old version using PhaserJS
• test Games 1, 2, 3, …, 6 one by one
Implementation
and unit testing
• combine games with leaderboard
• conduct test
Integration and
system testing
• Pilot run in 5 schools
Operation and • Collect new
maintenance requirements (e.g.
adding game
incentive)
COMP3297 by Leo Yeung L2 - Software Processes 9
The waterfall model

• Define system’s services,


constraints, and goals in details
Requirements • Allocates the requirements to hardware or software,
definition • design overall system architecture,
• describing the fundamental system abstractions and their relationships.
System and
software design • Realize as a set of programs (or program units),
• perform unit testing verifying each unit meets its spec.
Implementation • Units are integrated, and tested as a
and unit testing complete system.
• After testing, delivered to the customer.
Integration and
system testing • The system is installed
and put into practical
Operation and use.
maintenance
• Maintenance involves
correcting errors.
• Discovering new
COMP3297 by Leo Yeung L2 - Software Processes requirements. 10
The main drawback of the waterfall model

² Difficulty of accommodating change after the process is


underway. In principle, a phase has to be completed before moving
onto the next phase.
Example 1: Example 2:
Requirements
During design, problems with definition During
implementation, design
requirements are identified problems are found
Requirements System and
definition software design

System and Implementation


software design and unit testing

Implementation Integration and


and unit testing system testing
² Too early to freeze software specification may lead to bad quality
system, higher development cost and longer time to complete.
Integration and
system testing

COMP3297 by Leo Yeung L2 - Software Processes 11


Operation and
Waterfall model usages

² Inflexible partitioning of the project into distinct stages


makes it difficult to respond to changing customer
requirements.
§ Only appropriate when the requirements are well-
understood and changes will be fairly limited during the design
process, e.g. Embedded systems and Critical systems
§ Few business systems have stable requirements.
² Mostly used for Large Systems engineering projects where a
system is developed at several sites.
§ The plan-driven nature helps coordinate the work.

COMP3297 by Leo Yeung L2 - Software Processes 12


Example of Incremental development model - How we
developed an online booking system for training centers?
Spec à Develop à Validate: The flow and formula
Concurrent
activities to assign a trainer for a specific booking
Scenario: Parents select
an available timeslot and Initial
V1: Support
book a lesson with the Specification version confirming booking
system assigned trainer with customers
using email
Outline Intermediate
description Development versions V2: + Support
WhatsApp

Final V3: + Mark


Validation version
booking in
trainers’ calendars
Think-Pair-Share
How may we decide which features should be developed first
in software projects? What are the benefits of this approach?
COMP3297 by Leo Yeung L2 - Software Processes 13
Incremental development

² Specification, development, and validation activities are


interleaved rather than separate, with rapid feedback across
activities.
Concurrent
activities

Initial
Specification version

Outline Intermediate
description Development versions

Validation
Final Plan-driven
version
Agile

COMP3297 by Leo Yeung L2 - Software Processes 14


Incremental development benefits

² The cost of accommodating changing customer


requirements is reduced because less redone on
analysis and documentation are required.
² It is easier to get customer feedback on the
development work that has been done through
demonstrations of the software.
² 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.

COMP3297 by Leo Yeung L2 - Software Processes 15


Incremental development problems

² The process is not visible.


§ Managers need regular deliverables to Client Manager
measure progress.
§ If systems are developed quickly, it is not
cost-effective to produce documents that
reflect every version of the system. Developers

² System structure tends to degrade as new increments


are added.
§ Incorporating further software changes becomes increasingly
difficult and costly.
§ Solution: Refactoring (L3)

COMP3297 by Leo Yeung L2 - Software Processes 16


Integration and configuration

² Based on software reuse where systems WordPress Setup & Config


are integrated from existing
components or application systems,
sometimes called Commercial-off-the-
shelf (COTS) systems.
² Reused elements may be configured to
adapt their behaviour and functionality to
a user’s requirements (Setup page)

² Reuse is now the standard approach for


building many types of business system,
e.g. Enterprise Resource Planning (ERP)
system

(Config file)
COMP3297 by Leo Yeung L2 - Software Processes 17
Types of reusable software

² Stand-alone application
systems that are configured
for use in a particular
environment. (Wix – Create Online Store)

² Components:
§ Collections of objects that are
developed as a package to be
integrated with a component (Una Platform embeds an
opensource coding editor -
framework
Users Microsoft MakeCode)
§ Web services that are
developed according to service Subscribe AI App
standards and which are AI result
available to use over the Internet. Pay as you go Microsoft Azure AI
COMP3297 by Leo Yeung L2 - Software Processes
Cognitive Services
18
Reuse-oriented software engineering

4a. If an off-the-shelf application system


that meets the requirements is available,
it may then be configured for use to
create the new system.
Application system Configure
Software available application
discovery system

Requirements Requirements
specification refinement Adapt
components
Software Integrate
evaluation system
1. Initial Components
available Develop new
requirements components
are proposed. 2. Search is 3. The requirements
made for are refined using info 4b. If there is no off-the-shelf
components about the reusable system, individual reusable
and systems components and components may be modified
that provide the applications. The and new components
functionality system specification developed.
required. is re-defined.
COMP3297 by Leo Yeung L2 - Software Processes 19
Advantages and disadvantages

² Advantages:
§ Reduced costs and risks as less software is developed from
scratch
§ Faster delivery and deployment of system
² Disadvantages:
§ But requirements compromises are inevitable so system may
not meet real needs of users
§ Loss of control over evolution of reused system elements

COMP3297 by Leo Yeung L2 - Software Processes 20


Think–Pair–Share

Answer ² In practice, do you prefer to use all


In principle, we may use
ALL three models in this
three models together or only
way one/two model(s) instead? Why?
Sub-system A 1. The waterfall model
1 essential
system requirements 2. Incremental development
Sub-system B 3. Integration and configuration
difficult to specify
2 system requirements
in advance

Sub-system C
3 bought in as off-the-
shelf systems

COMP3297 by Leo Yeung L2 - Software Processes 21


Process activities

COMP3297 by Leo Yeung L2 - Software Processes 22


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,
development, validation and evolution are organized
differently in different development processes.

COMP3297 by Leo Yeung L2 - Software Processes 23


Software specification (a.k.a. Requirements
Engineering) (L4)

² 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

COMP3297 by Leo Yeung L2 - Software Processes 24


Software design and implementation (L5-L9)

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

COMP3297 by Leo Yeung L2 - Software Processes 25


A general model of the design process

Design inputs

Platform Requirements Data


information specification description

Design activities

Architectural Interface Component


design design design

Database design

Design outputs

System Database Interface Component


architecture specification specification specification

COMP3297 by Leo Yeung L2 - Software Processes 26


System implementation

² The software is implemented either by developing


program(s) 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.

COMP3297 by Leo Yeung L2 - Software Processes 27


Software validation (L10)

² 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.
² Program/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.

COMP3297 by Leo Yeung L2 - Software Processes 28


Stages of testing

² Defects are discovered, the program must be debugged, and this


may require other stages in the testing process to be repeated.

Component Acceptance
System testing
testing testing

• Individual • Testing of the • Testing with


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

COMP3297 by Leo Yeung L2 - Software Processes 29


Software evolution (L11)

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

Define system Assess existing Propose system Modify


requirements systems changes systems

Existing New
systems system

COMP3297 by Leo Yeung L2 - Software Processes 30


Coping with change

COMP3297 by Leo Yeung L2 - Software Processes 31


Coping with change

² Change is inevitable in all large software projects, due


to …
§ Business changes
§ New technologies
§ Changing platforms

Costs of Change = Rework + Implementing new functionality


(e.g. re-analysing
requirements)

COMP3297 by Leo Yeung L2 - Software Processes 32


Reducing the costs of rework

² Change anticipation, where 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 some key
features of the system to customers. System prototyping, where a
version of the system or part of the system is developed quickly to check
the customer’s requirements and the feasibility of design decisions.
² Change tolerance, where the process is designed so that changes
can be accommodated at relatively low cost.
§ This normally involves some form of incremental development.
Proposed changes may be implemented in increments that have not yet
been developed.
§ For example, incremental delivery, where system increments are
delivered to the customer for comment and experimentation.
§ Another example is Refactoring.
COMP3297 by Leo Yeung L2 - Software Processes 33
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 design processes to explore options and develop a UI design;
(Figma workshop)

For example, Benefits


1. Improved system usability
2. A closer match to users’
real needs
3. Improved design quality
4. Improved maintainability
the initial version of Una the existing version of Una 5. Reduced development
Platform is designed for Platform best fits AI Education. effort
collaborative coding.

COMP3297 by Leo Yeung L2 - Software Processes 34


The process of prototype development

Establish Define
prototype prototype Develop Evaluate
objectives functionality prototype prototype

Prototyping Outline Executable Evaluation


plan definition prototype report

² May be based on rapid prototyping languages or tools


² May involve leaving out functionality
§ Prototype should focus on areas of the product that are not well-
understood;
§ Error checking and recovery may NOT be included in the prototype;
§ Focus on functional rather than non-functional requirements such as
reliability and security
COMP3297 by Leo Yeung L2 - Software Processes 35
Throw-away prototypes

² Prototypes should be discarded after development as


they are not a good basis for a production system:
§ It may be impossible to tune the system to meet non-functional
requirements;
§ Prototypes are normally undocumented;
§ The prototype structure is usually degraded through rapid
change;
§ The prototype probably will not meet normal organisational
quality standards.

COMP3297 by Leo Yeung L2 - Software Processes 36


Incremental delivery

² Rather than deliver the system as a single delivery, the


development and delivery is broken down into
increments with each increment delivering part of the
required functionality.
² User requirements are prioritised and the highest
priority requirements are included in early increments.
² Once the development of an increment is started, the
requirements are frozen though requirements for later
increments can continue to evolve.

COMP3297 by Leo Yeung L2 - Software Processes 37


Incremental development vs Incremental delivery

² Incremental development
§ Develop the system in increments and evaluate each increment
before proceeding to the development of the next increment;
§ Normal approach used in agile methods;
§ Evaluation done by user/customer proxy.
² Incremental delivery
§ Deploy an increment for use by end-users;
§ More realistic evaluation about practical use of software;

COMP3297 by Leo Yeung L2 - Software Processes 38


Incremental delivery

Define outline Assign requirements Design system Develop system


requirements to increments architecture increment

System
incomplete?
Validate Integrate Validate Deploy
increment increment system increment

System
complete?
Final
system
Advantages Problems
1. Customer value can be delivered with 1. Most systems require a set of basic
each increment so system functionality facilities that are used by different
is available earlier. parts of the system.
2. Early increments act as a prototype to 2. The essence of iterative processes is
help elicit requirements for later that the specification is developed in
increments. conjunction with the software. However,
3. Lower risk of overall project failure. this conflicts with the procurement
4. The highest priority system services model of many organizations.
tend to receive the most testing.
COMP3297 by Leo Yeung L2 - Software Processes 39
Process improvement

COMP3297 by Leo Yeung L2 - Software Processes 40


Process improvement

² Background: 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.

COMP3297 by Leo Yeung L2 - Software Processes 41


Approaches to improvement

² The process maturity approach, which focuses on


improving process, project management and introducing
good software engineering practice.
§ The primary goals of this approach are improved product
quality and process predictability.
² The agile approach (L3), 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.

COMP3297 by Leo Yeung L2 - Software Processes 42


The process improvement cycle

• Measure one or more


• Propose process attributes of the software
changes to address process or product.
some of the identified • Form a baseline that helps
Measure
process weaknesses. you decide if process
• Resume cycle to improvements have been
collect data about the effective.
effectiveness of the
changes.
Change Analyze

• Assess the current process.


• Process weaknesses and
bottlenecks are identified.

COMP3297 by Leo Yeung L2 - Software Processes 43


Process metrics

² Time taken for process activities to be completed


§ E.g. Calendar time or effort to complete an activity or process.
² Resources required for processes or activities
§ E.g. Total effort in person-days.
² Number of occurrences of a particular event
§ E.g. Number of defects discovered.

COMP3297 by Leo Yeung L2 - Software Processes 44


Key points

² Software processes are the activities involved in producing a


software system. Software process models are abstract
representations of these processes.
² General process models describe the organization of software
processes.
§ Examples of these general models include the ‘waterfall’ model,
incremental development, and reuse-oriented development.
² Requirements engineering is the process of developing a software
specification.
² Design and implementation processes are concerned with
transforming a requirements specification into an executable
software system.

COMP3297 by Leo Yeung L2 - Software Processes 45


Key points

² Software verification and validation (V & V) is the process of checking


that the system conforms to its specification and that it meets the real
needs of the users of the system.
² Software evolution takes place when you change existing software
systems to meet new requirements. The software must evolve to
remain useful.
² Processes should include activities such as prototyping and
incremental delivery to cope with change.

COMP3297 by Leo Yeung L2 - Software Processes 46

You might also like