0% found this document useful (0 votes)
35 views44 pages

Software Process Models and Feasibility Studies

Uploaded by

hellowingjer
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)
35 views44 pages

Software Process Models and Feasibility Studies

Uploaded by

hellowingjer
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

Software Processes

Russell Lock

1
Topics covered

 Feasibility Studies
 Software process models
 Process activities
 Coping with change

 Background Reading
 Chapter 2 of the course textbook
Feasibility Studies
Feasibility study overview

 A feasibility study decides whether or not the


proposed system is worthwhile. (go/no go)
 Determines obvious constraints, facts and
assumptions
 A short focused study that checks
 Contribution
 Engineering & Budget
 Integration
Feasibility study implementation

 Produces a short report


 Explores the risks associated with a potential project
 Independently produced if at all possible
 Potential questions for people in the organisation
 What if the system wasn’t implemented?
 What are current process problems?
 How will the proposed system help?
 What will be the integration problems?
 Is new technology needed? What skills?
 What facilities must be supported by the proposed system?
 Should not get bogged down in implementation
details
The software process

6
The software process

 A structured set of activities


 Many different software processes but all
involve:
 Specification
 Design and implementation
 Validation
 Evolution
 A software process model is an abstract
representation of a process.

7
Plan-driven and Agile processes

 Plan-driven vs Agile

 In practice, most practical processes include


elements of both plan-driven and agile
approaches.

 No right, no wrong, just context and


environment

8
Plan-Driven Software process models

9
Plan-Driven Software process models

 The waterfall model


 Plan-driven model. Separate and distinct phases of
specification and development.
 V Model
 Plan-driven. Waterfall with added emphasis on testing
 Iterative Development
 May be plan-driven or agile
 Incremental development
 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.

10
The waterfall model

11
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
 Signoff mechanism for stages

12
Waterfall model problems

 Inflexible partitioning (affects modification)


 Appropriate when the requirements are well-
understood and changes are limited
 Few business systems have truly stable
requirements.
 Mostly used for large systems engineering
projects where a system is developed at
several sites.
 Plan driven makes large-scale coordination
easier.

13
V-Model of development)

Wikipedia commons: Image is within


the public domain and is not subject to
copyright
V-Model Advantages & disadvantages

 Advantages
 Helps ensure legitimacy of testing (leading to
higher chance of success than waterfall)
 Disadvantages
 Changes to specification midway require
changes to past phases (same as waterfall)
and testing documentation

15
Incremental development

 Develop system in parts, each part providing


some useful function to the customer
 Could be imagined as multiple mini waterfalls
if plan driven

16
Incremental Advantages &
Disadvantages
 Advantages
 Reduced cost of change for future increments
 Debugging easier for each increment
 Easier to get ongoing feedback.
 Rapid delivery and deployment possible.
 Customers are able to use and gain value from the
software earlier than is possible with a waterfall
process.
 Disadvantages
 Increased cost of change for past increments
 Inevitably more complex for management
 Costs will be higher

17
Iterative Development

 Works from a high level design


 Builds parts of the system iteratively
 Could include developing some parts multiple times to
improve them
 Can be used within phases of a rigid system such as
waterfall (but not across them…)
 Common for HCI design

Sourced from:
[Link]
uk/2015/11/you-cannot-
iterate-upon-
[Link]
18
Iterative Advantages and
Disadvantages
 Advantages
 Good for prototyping risky or badly understood
functionality
 Potential for ongoing feedback
 Disadvantages
 More flexible than the waterfall model, but still rigid
between iterations
 Expensive if system was well understood
 It is not cost-effective to produce documents that
reflect every version of the system.
 System structure can degrade
 Structure can become impenetrable
and chaotic

19
Building iteration into existing models

 Waterfall
 Iterate within a given stage. Common for
requirements, and HCI design
 V-Model
 Effectively prevents prototyping by largescale
iteration due to the more fine detailed nature
of the model

20
Integration and configuration

 Based on software reuse where systems are


integrated from existing components or
application systems (COTS Commercial-off-
the-shelf systems).

 Reused elements are configured / adapted

 Reuse is now very common


 Sharepoint, SAP solutions etc are all COTS

21
Types of reusable software

 Stand-alone application systems (sometimes


called COTS) that are configured for use in a
particular environment.

 Web services that are developed according to


service standards and which are available for
remote invocation.

 Collections of objects that are developed as a


package to be integrated with a component
framework such as .NET or J2EE.

22
Reuse-oriented software engineering

No need to draw diagram for exam

23
Key process stages for reuse

 Requirements specification
 Software discovery and evaluation
 Requirements refinement

 Application system configuration


or
 Component adaptation and integration

24
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

25
Generic process activities

26
Process activities

 Real software processes are:


 Inter-leaved sequences of technical,
collaborative and managerial activities
 The four basic process activities of
specification, development, 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.

27
Software specification

 Establishing services required and constraints on the


system’s operation and development.
 Requirements engineering process (not necessarily
sequential)
 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
 Produces descriptions, requirement documentation

28
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;
 Closely related activities, may be inter-
leaved.

29
Common design activities

 Architectural design

 Database design

 Interface design

 Component selection and design

30
System implementation

 Implemented or configured?
 Often interleaved with design
 Programming is an individual activity with no standard
process.
 In industry debugging is a more robust and key process
1. Identify bug
2. Find code
3. Analyze code
4. Prove cause
5. Gather unit tests
6. Fix code
7. Run tests

31
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 derived from real data.
 Testing is the most commonly used V & V
activity.

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

33
Software evolution

 The world changes => Software changes


 Software should be inherently flexible and
support change.

COBOL

 Although there has been a demarcation between


development and evolution (maintenance) this is
increasingly irrelevant as fewer and fewer
systems are completely new.

34
System evolution

35
Coping with change during projects

36
Coping with change

 Change is inevitable
 Business changes lead to new and changed
system requirements
 New technologies, Changing platforms etc
 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

37
Reducing the costs of rework

 Change can be anticipated


 For example, a prototype system may be
developed to show some key features of the
system to customers.

 Prototyping and Incremental developments


are more change tolerant

38
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;
 Range from Low Fidelity to High

39
Benefits of prototyping

 Improved system usability


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

 So, what do you think the disadvantages are?

40
Prototype development

 May be based on rapid prototyping languages


or tools
 May involve leaving out functionality….
 We prototype for a reason!
 Error checking and recovery may not be
included in the prototype;
 Focus on functional rather than non-functional
requirements such as reliability and security

41
Throw-away prototypes

 Prototypes should be discarded after


development as they are not a good basis for
a production system:

42
Throw-away prototypes

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

43
Key points

 Feasibility studies are a potential way of


reducing project risks
 There are many approaches to software
development
 Use depends on project context
 Change and evolution have to be planned for

44

You might also like