Date post: | 03-Jun-2018 |
Category: |
Documents |
Upload: | cuongtvabc |
View: | 221 times |
Download: | 0 times |
of 44
8/12/2019 1 Software Processes
1/44
8/12/2019 1 Software Processes
2/44
Topics covered
concepts of software processes and software
process models;
three generic software process models and when
they might be used;
fundamental process activities of software
requirements engineering, software
development, testing, and evolution; coping with changes in the software
requirements and design;
2
8/12/2019 1 Software Processes
3/44
The software process
A structured set of activities required to develop asoftware system.
Many different software processes but all involve:
Specificationdefining what the system should do;
Design and implementationdefining the organization of thesystem and implementing the system;
Validationchecking that it does what the customer wants;
Evolutionchanging the system in response to changingcustomer needs.
A software process model is an abstract representation of aprocess. It presents a description of a process from someparticular perspective.
3
8/12/2019 1 Software Processes
4/44
Software process descriptions
When we describe and discuss processes, weusually talk about the activities in these processessuch as specifying a data model, designing a userinterface, etc. and the ordering of these activities.
Process descriptions may also 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 beenenacted or a product produced.
4
8/12/2019 1 Software Processes
5/44
8/12/2019 1 Software Processes
6/44
Software process models
A software process model is an abstract representation of aprocess. It presents a description of a process from some particularperspective.
The waterfall model
Plan-driven model. Separate and distinct phases of specification anddevelopment.
Incremental development
Specification, development and validation are interleaved. May beplan-driven or agile.
Reuse-oriented software engineering
The system is assembled from existing components. May be plan-driven or agile.
In practice, most large systems are developed using a process thatincorporates elements from all of these models.
6
8/12/2019 1 Software Processes
7/44
The waterfall model
7
8/12/2019 1 Software Processes
8/44
8/12/2019 1 Software Processes
9/44
Waterfall model problems
Inflexible partitioning of the project into distinctstages makes it difficult to respond to changingcustomer requirements.
Therefore, this model is only appropriate when therequirements are well-understood and changes will be
fairly limitedduring the design process.
Few business systems have stable requirements.
The waterfall model is mostly used for large
systems engineering projects where a system isdeveloped at several sites.
In those circumstances, the plan-driven nature of thewaterfall model helps coordinate the work.
9
8/12/2019 1 Software Processes
10/44
Incremental development
10
8/12/2019 1 Software Processes
11/44
Incremental development benefits
The cost of accommodating changing customerrequirements is reduced.
The amount of analysis and documentation that has to beredone 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 tothe customer is possible.
Customers are able to use and gain value from the softwareearlier than is possible with a waterfall process.
11
8/12/2019 1 Software Processes
12/44
Incremental development problems
The process is not visible. Managers need regular deliverables to measure
progress. If systems are developed quickly, it is notcost-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 toimprove the software, regular change tends to corruptits structure. Incorporating further software changesbecomes increasingly difficult and costly.
12
8/12/2019 1 Software Processes
13/44
Reuse-oriented software engineering
Based on systematic reuse where systems are integratedfrom existing components or COTS (Commercial-off-the-shelf) systems.
Process stages
Requirement specification;
Component analysis;
Requirements modification;
System design with reuse;
Development and integration;
Validation.
Reuse is now the standard approach for building manytypes of business system
13
8/12/2019 1 Software Processes
14/44
Types of software component
Stand-alone software systems (COTS) that areconfigured for use in a particular environment.
Collections of objects that are developed as a
package to be integrated with a componentframework such as .NET or J2EE.
Web services that are developed according to
service standards and which are available forremote invocation.
14
8/12/2019 1 Software Processes
15/44
8/12/2019 1 Software Processes
16/44
8/12/2019 1 Software Processes
17/44
8/12/2019 1 Software Processes
18/44
Software design and implementation
The process of converting the systemspecification into an executable system.
Software design
Design a software structure that realises thespecification;
Implementation
Translate this structure into an executable program;
The activities of design and implementation are
closely related and may be inter-leaved.
18
8/12/2019 1 Software Processes
19/44
A general model of the design process
19
8/12/2019 1 Software Processes
20/44
Design activities
Architectural design,where you identify the overallstructure of the system, the principal components(sometimes called sub-systems or modules), theirrelationships and how they are distributed.
Interface design,where you define the interfacesbetween system components.
Component design, where you take each systemcomponent and design how it will operate.
Database design, where you design the system datastructures and how these are to be represented in adatabase.
20
8/12/2019 1 Software Processes
21/44
Software validation
Verification and validation (V & V) is intended toshow that a system conforms to its specificationand meets the requirements of the systemcustomer.
Involves checking and review processes andsystem testing.
System testing involves executing the system with
test cases that are derived from the specificationof the real data to be processed by the system.
Testing is the most commonly used V & V activity.
21
8/12/2019 1 Software Processes
22/44
Stages of testing
22
8/12/2019 1 Software Processes
23/44
Testing stages
Development or component testing Individual components are tested independently;
Components may be functions or objects or coherentgroupings of these entities.
System testing
Testing of the system as a whole. Testing of emergentproperties is particularly important.
Acceptance testing
Testing with customer data to check that the systemmeets the customers needs.
23
8/12/2019 1 Software Processes
24/44
8/12/2019 1 Software Processes
25/44
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 andchange.
Although there has been a demarcation
between development and evolution(maintenance) this is increasingly irrelevant as
fewer and fewer systems are completely new.
25
8/12/2019 1 Software Processes
26/44
System evolution
26
8/12/2019 1 Software Processes
27/44
Key points up to now
Software processes are the activities involvedin 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 waterfallmodel, incremental development, and reuse-
oriented development.
27
8/12/2019 1 Software Processes
28/44
Key points up to now
Requirements engineering is the process of developinga software specification.
Design and implementation processes are concernedwith transforming a requirements specification into an
executable software system. Software validation is the process of checking that the
system conforms to its specification and that it meetsthe real needs of the users of the system.
Software evolution takes place when you changeexisting software systems to meet new requirements.The software must evolve to remain useful.
28
8/12/2019 1 Software Processes
29/44
d h f k
8/12/2019 1 Software Processes
30/44
Reducing the costs of rework
Change avoidance, where the software process
includes activities that can anticipate possible changesbefore significant rework is required.
For example, a prototype system may be developed toshow some key features of the system to customers.
Change tolerance, where the process is designed sothat changes can be accommodated at relatively lowcost.
This normally involves some form of incrementaldevelopment. Proposed changes may be implemented in
increments that have not yet been developed. If this isimpossible, then only a single increment (a small part ofthe system) may have be altered to incorporate thechange.
30
f i
8/12/2019 1 Software Processes
31/44
Software prototyping
A prototype is an initial version of a systemused 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 anddevelop a UI design
31
fi f i
8/12/2019 1 Software Processes
32/44
Benefits of prototyping
Improved system usability A closer match to users real needs
Improved design quality
32
8/12/2019 1 Software Processes
33/44
8/12/2019 1 Software Processes
34/44
Th
8/12/2019 1 Software Processes
35/44
Throw-away prototypes
Prototypes should be discarded afterdevelopment as they are not a good basis for aproduction 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.
35
I t l d li
8/12/2019 1 Software Processes
36/44
Incremental delivery
Rather than deliver the system as a singledelivery, the development and delivery is brokendown into increments with each incrementdelivering part of the required functionality.
User requirements are prioritised and the highestpriority requirements are included in earlyincrements.
Once the development of an increment is started,the requirements are frozen though requirementsfor later increments can continue to evolve.
36
I t l d li
8/12/2019 1 Software Processes
37/44
Incremental delivery
37
I t l d li d t
8/12/2019 1 Software Processes
38/44
Incremental delivery advantages
Customer value can be delivered with eachincrement so system functionality is available
earlier.
Early increments act as a prototype to helpelicit requirements for later increments.
Lower risk of overall project failure.
The highest priority system services tend to
receive the most testing.
38
8/12/2019 1 Software Processes
39/44
S i l d l f th ft
8/12/2019 1 Software Processes
40/44
Spiral model of the software process
40
8/12/2019 1 Software Processes
41/44
S i l d l
8/12/2019 1 Software Processes
42/44
Spiral model usage
Spiral model has been very influential inhelping people think about iteration in
software processes and introducing the risk-
driven approach to development.
In practice, however, the model is rarely used
as published for practical software
development.
42
Key points
8/12/2019 1 Software Processes
43/44
Key points
Processes should include activities to copewith change. This may involve a prototyping
phase that helps avoid poor decisions on
requirements and design.
Processes may be structured for iterative
development and delivery so that changes
may be made without disrupting the system
as a whole.
43
8/12/2019 1 Software Processes
44/44