Rapid Software Development To Validate Requirements
Rapid Software Development To Validate Requirements
Rapid Software Development To Validate Requirements
Rapid software development to
validate requirements
iplangdO h
ep
f
uD
r
o
n
c e
t
uf
in
y e
p
al
i
t
y
teflinoeED
e
p
r
o
x
e v
t
cl
y
uo pe E
p
tproyabpleEv
r
o a
t l
uy t
e
p
vraelputrion
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 7
Prototyping benefits
Improved system usability
Closer match to the system needed
Improved design quality
Improved maintainability
Reduced overall development effort
h
rPotw
-yapw y
ingSE
x
ec
ut
a
b
l
e
ysm
Si
v
e
t
P
rr
m
otd
ype+
pcifaion
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 11
Evolutionary prototyping
Must be used for systems where the specification
cannot be developed in advance e.g. AI systems
and user interface systems
Based on techniques which allow rapid system
iterations
Verification is impossible as there is no
specification. Validation means demonstrating the
adequacy of the system
p
rsyo
tem ypeNUsep
rysoetm
ype
D erY
esylitvm E
SadS y
sequteam
?
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 13
Evolutionary prototyping advantages
Accelerated delivery of the system
• Rapid delivery and deployment are sometimes more important
than functionality or long-term software maintainability
User engagement with the system
• Not only is the system more likely to meet user requirements,
they are more likely to commit to the use of the system
S
p
me
c
i
f
y
s
n
r
e
mt
e
m
n B
u
i
l
d
s
y
n
c
r
e
mt
e
m
n V
a
l
i
i
n
c
r
ed
a
t
e
m
n
D elsiyvetrm finalY c
E
SS
y
s
t
e
m
o
m
p
lN
O
? V
a
l
i
d
a
s
yt
e
m I
n
t
e
i
cg
r
a
t
e
m
n
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 19
Throw-away prototyping
Used to reduce requirements risk
The prototype is developed from an initial
specification, delivered for experiment then
discarded
The throw-away prototype should NOT be
considered as a final system
• Some system characteristics may have been left out
• There is no specification for long-term maintenance
• The system will be poorly structured and difficult to maintain
Spr
ea
d
s
h
e
t R
e
p
o
r
t
g
n
a
aF
toub
arths-egem
ann gem n ts
y te
m
rationlanguage
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 28
Component and application assembly
Prototypes can be created quickly from a set of
reusable components plus some mechanism to
‘glue’ these component together
The composition mechanism must include control
facilities and a mechanism for component
communication
The system specification must take into account
the availability and functionality of existing
components
on
s
ireagonatriw e
rolackt
nodeEx
e
c
u
t
a
b
p
r
o
y
pl
e
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 31
Compound documents
For some applications, a prototype can be created
by developing a compound document
This is a document with active elements (such as
a spreadsheet) that allow user computations
Each active element has an associated application
which is invoked when that element is selected
The document itself is the integrator for the
different applications
W preadshet A
ordprocesorS
©Ian Sommerville 2000
udioplayer
Software Engineering, 6th edition. Chapter 8 Slide 33
Visual programming
Scripting languages such as Visual Basic support
visual programming where the prototype is
developed by creating a user interface from
standard items and associating components with
these items
A large library of components exists to support
this type of development
These may be tailored to suit the specific
application requirements
i
t
Vi
e
ws
La
y
o
u
tO
p
ti
o n s H d
e
l
pH
i
s
p
l
ay
p
e
r
t
c
o
mx
p
o n
e t
R
aD
n
g e
scroam
rwc h
ipcop eck in
g 12
t
hJ
a
n
u
ar
y
2
0
tanevats 3.876 cU G
I n
r
a
d
xl osm
ercpinoetm
p+
t
©Ian Sommerville 2000
T
croem
doisnpelay
t
Software Engineering, 6th edition. Chapter 8 Slide 35
Problems with visual development
Difficult to coordinate team-based development
No explicit system architecture
Complex dependencies between parts of the
program can cause maintainability problems