Download - Ch17 Rapid SW Dev
-
8/10/2019 Ch17 Rapid SW Dev
1/46
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1
Rapid software development
-
8/10/2019 Ch17 Rapid SW Dev
2/46
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 2
Objectives
To explain how an iterative, incrementaldevelopment process leads to faster deliveryof more useful software
To discuss the essence of agile developmentmethodsTo explain the principles and practices ofextreme programming
To explain the roles of prototyping in thesoftware process
-
8/10/2019 Ch17 Rapid SW Dev
3/46
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 3
Topics covered
Agile methodsExtreme programmingRapid application developmentSoftware prototyping
-
8/10/2019 Ch17 Rapid SW Dev
4/46
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 4
Rapid software development
Because of rapidly changing businessenvironments, businesses have to respondto new opportunities and competition.
This requires software and rapiddevelopment and delivery often to be themost critical requirement for softwaresystems.
Businesses may be willing to accept lowerquality software if rapid delivery of essentialfunctionality is possible.
-
8/10/2019 Ch17 Rapid SW Dev
5/46
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 5
Requirements
Because of the changing environment, it isoften impossible to arrive at a stable,consistent set of system requirements.
Therefore a waterfall model of developmentis impractical and an approach todevelopment based on iterative specificationand delivery is the only way to deliversoftware quickly.
-
8/10/2019 Ch17 Rapid SW Dev
6/46
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 6
Characteristics of RAD processes
The processes of specification, design andimplementation are concurrent. There is no detailedspecification and design documentation isminimised.The system is developed in a series of increments.End users evaluate each increment and makeproposals for later increments.System user interfaces are usually developed usingan interactive development system.
-
8/10/2019 Ch17 Rapid SW Dev
7/46Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 7
An iterative development process
-
8/10/2019 Ch17 Rapid SW Dev
8/46Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 8
Advantages of incremental development
Accelerated delivery of customer services .Each increment delivers the highest priorityfunctionality to the customer.
User engagement with the system . Usershave to be involved in the developmentwhich means the system is more likely tomeet their requirements and the users aremore committed to the system.
-
8/10/2019 Ch17 Rapid SW Dev
9/46
-
8/10/2019 Ch17 Rapid SW Dev
10/46Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 10
Problems with incrementaldevelopment (cont.)
Validation problems Without a specification, what is the system
being tested against?
Maintenance problems Continual change tends to corrupt software
structure making it more expensive to changeand evolve to meet new requirements.
-
8/10/2019 Ch17 Rapid SW Dev
11/46Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 11
Prototyping
For some large systems, incrementaliterative development and delivery may beimpractical; this is especially true when
multiple teams are working on different sites.Prototyping, where an experimental systemis developed as a basis for formulating therequirements may be used. This system isthrown away when the system specificationhas been agreed.
-
8/10/2019 Ch17 Rapid SW Dev
12/46Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 12
Incremental development andprototyping
-
8/10/2019 Ch17 Rapid SW Dev
13/46Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 13
Conflicting objectives
The objective of incremental development isto deliver a working system to end-users.The development starts with those
requirements which are best understood.The objective of throw-away prototyping is tovalidate or derive the system requirements.The prototyping process starts with thoserequirements which are poorly understood.
-
8/10/2019 Ch17 Rapid SW Dev
14/46Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 14
Agile methods
Dissatisfaction with the overheads involved in designmethods has led to the creation of agile methods.These methods:
Focus on the code rather than the design; Are based on an iterative approach to software
development; Are intended to deliver working software quickly and
evolve this quickly to meet changing requirements.
Agile methods are probably best suited tosmall/medium-sized business systems or PCproducts.
-
8/10/2019 Ch17 Rapid SW Dev
15/46
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 15
Principles of agile methods
-
8/10/2019 Ch17 Rapid SW Dev
16/46
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 16
Problems with agile methods
It can be difficult to keep the interest of customerswho are involved in the process. Pressures from job;represent all stateholders.
Team members may be unsuited to the intenseinvolvement that characterises agile methods.Prioritising changes can be difficult where there aremultiple stakeholders.
Maintaining simplicity requires extra work.Contracts may be a problem as with otherapproaches to iterative development.
-
8/10/2019 Ch17 Rapid SW Dev
17/46
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 17
Extreme programming
Perhaps the best-known and most widelyused agile method.Extreme Programming (XP) takes an
extreme approach to iterative development. New versions may be built several times perday;
Increments are delivered to customers every 2weeks;
All tests must be run for every build and thebuild is only accepted if tests run successfully.
-
8/10/2019 Ch17 Rapid SW Dev
18/46
-
8/10/2019 Ch17 Rapid SW Dev
19/46
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 19
Extreme programming practices 1
-
8/10/2019 Ch17 Rapid SW Dev
20/46
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 20
Extreme programming practices 2
-
8/10/2019 Ch17 Rapid SW Dev
21/46
-
8/10/2019 Ch17 Rapid SW Dev
22/46
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 22
Requirements scenarios
In XP, user requirements are expressed asscenarios or user stories.These are written on cards and thedevelopment team break them down intoimplementation tasks. These tasks are thebasis of schedule and cost estimates.
The customer chooses the stories forinclusion in the next release based on theirpriorities and the schedule estimates.
-
8/10/2019 Ch17 Rapid SW Dev
23/46
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 23
Story card for document downloading
-
8/10/2019 Ch17 Rapid SW Dev
24/46
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 24
XP and change
Conventional wisdom in softwareengineering is to design for change. It isworth spending time and effort anticipatingchanges as this reduces costs later in the lifecycle.XP, however, maintains that this is notworthwhile as changes cannot be reliably
anticipated.Rather, it proposes constant codeimprovement (refactoring) to make changeseasier when they have to be implemented.
-
8/10/2019 Ch17 Rapid SW Dev
25/46
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 25
Testing in XP
Test-first development.Incremental test development fromscenarios.User involvement in test development andvalidation.
Automated test harnesses are used to run all
component tests each time that a newrelease is built.
-
8/10/2019 Ch17 Rapid SW Dev
26/46
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 26
Task cards for document downloading
Task 1: Implement principal workf low
Task 2: Implement article catalog and selection
Task 3: Implement payment collection
Payment may be made in 3 different ways. The user selects which way they wish to pay. If the user has a library subscription, then they can input thesubscriber key which should be checked by thesystem. Alternatively, they can input an organisationalaccount number . If this is valid, a debit of the costof the article is posted to this account. Finally, theymay input a 16 digit credit card number and expirydate. This should be checked for validity and, if valid a debit i s posted to that credit card account.
-
8/10/2019 Ch17 Rapid SW Dev
27/46
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 27
Test case description
-
8/10/2019 Ch17 Rapid SW Dev
28/46
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 28
Test-first development
Writing tests before code clarifies therequirements to be implemented.Tests are written as programs rather than
data so that they can be executedautomatically. The test includes a check thatit has executed correctly.
All previous and new tests are automatically
run when new functionality is added. Thuschecking that the new functionality has notintroduced errors.
-
8/10/2019 Ch17 Rapid SW Dev
29/46
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 29
Pair programming
In XP, programmers work in pairs, sitting together todevelop code.This helps develop common ownership of code andspreads knowledge across the team.It serves as an informal review process as each lineof code is looked at by more than 1 person.It encourages refactoring as the whole team canbenefit from this.
Measurements suggest that developmentproductivity with pair programming is similar to thatof two people working independently.
-
8/10/2019 Ch17 Rapid SW Dev
30/46
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 30
Rapid application development
Agile methods have received a lot ofattention but other approaches to rapidapplication development have been used for
many years.These are designed to develop data-intensive business applications and rely onprogramming and presenting informationfrom a database.
-
8/10/2019 Ch17 Rapid SW Dev
31/46
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 31
RAD environment tools
Database programming languageInterface generatorLinks to office applicationsReport generators
-
8/10/2019 Ch17 Rapid SW Dev
32/46
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 32
A RAD environment
-
8/10/2019 Ch17 Rapid SW Dev
33/46
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 33
Interface generation
Many applications are based around complex formsand developing these forms manually is a time-consuming activity.RAD environments include support for screengeneration including:
Interactive form definition using drag and droptechniques;
Form linking where the sequence of forms to be
presented is specified; Form verification where allowed ranges in form fields is
defined.
-
8/10/2019 Ch17 Rapid SW Dev
34/46
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 34
Visual programming
Scripting languages such as Visual Basicsupport visual programming where theprototype is developed by creating a user
interface from standard items andassociating components with these items
A large library of components exists tosupport this type of developmentThese may be tailored to suit the specificapplication requirements
-
8/10/2019 Ch17 Rapid SW Dev
35/46
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 35
Visual programming with reuse
-
8/10/2019 Ch17 Rapid SW Dev
36/46
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 36
Problems with visual development
Difficult to coordinate team-baseddevelopment.No explicit system architecture.Complex dependencies between parts of theprogram can cause maintainability problems.
-
8/10/2019 Ch17 Rapid SW Dev
37/46
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 37
COTS reuse
An effective approach to rapid developmentis to configure and link existing off the shelfsystems.
For example, a requirements managementsystem could be built by using: A database to store requirements; A word processor to capture requirements and
format reports; A spreadsheet for traceability management;
-
8/10/2019 Ch17 Rapid SW Dev
38/46
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 38
Compound documents
For some applications, a prototype can be createdby developing a compound document.This is a document with active elements (such as aspreadsheet) that allow user computations.Each active element has an associated applicationwhich is invoked when that element is selected.The document itself is the integrator for the differentapplications.
-
8/10/2019 Ch17 Rapid SW Dev
39/46
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 39
Application linking
-
8/10/2019 Ch17 Rapid SW Dev
40/46
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 40
Software prototyping
A prototype is an initial version of a systemused to demonstrate concepts and try outdesign 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; In the testing process to run back-to-back tests.
-
8/10/2019 Ch17 Rapid SW Dev
41/46
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 41
Benefits of prototyping
Improved system usability. A closer match to users real needs. Improved design quality.Improved maintainability.Reduced development effort.
-
8/10/2019 Ch17 Rapid SW Dev
42/46
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 42
Back to back testing
-
8/10/2019 Ch17 Rapid SW Dev
43/46
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 43
The prototyping process
-
8/10/2019 Ch17 Rapid SW Dev
44/46
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 44
Throw-away prototypes
Prototypes should be discarded afterdevelopment as they are not a good basisfor 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.
-
8/10/2019 Ch17 Rapid SW Dev
45/46
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 45
Key points
An iterative approach to software development leadsto faster delivery of software.
Agile methods are iterative development methodsthat aim to reduce development overhead and so
produce software faster.Extreme programming includes practices such assystematic testing, continuous improvement andcustomer involvement.The approach to testing in XP is a particular strengthwhere executable tests are developed before thecode is written.
-
8/10/2019 Ch17 Rapid SW Dev
46/46
Key points
Rapid application development environmentsinclude database programming languages,form generation tools and links to officeapplications.
A throw-away prototype is used to explorerequirements and design options.When implementing a throw-away prototype,
start with the requirements you leastunderstand; in incremental development,start with the best-understood requirements.