Ch08- To Be Reported by Group7 and Group8
-
Upload
kitkatcabz -
Category
Documents
-
view
13 -
download
0
Transcript of Ch08- To Be Reported by Group7 and Group8
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
1/39
Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1
Chapter 8
Software Prototyping
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
2/39
Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 2
Software Prototyping
Rapid software development to validate
requirements
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
3/39
Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 3
Objectives
To describe the use of prototypes in different
types of development project
To discuss evolutionary and throw-away
prototyping To introduce three rapid prototyping techniques -
high-level language development, database
programming and component reuse To explain the need for user interface prototyping
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
4/39
Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 4
Topics covered
Prototyping in the software process
Prototyping techniques
User interface prototyping
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
5/39
Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 5
System prototyping
Prototyping is the rapid development of a system
n the past, the developed system was normally
thought of as inferior in some way to the required
system so further development was required !ow, the boundary between prototyping and
normal system development is blurred and many
systems are developed using an evolutionaryapproach
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
6/39
Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 6
Uses of system prototypes
The principal use is to help customers and
developers understand the requirements for the
system
" Requirements elicitation# Users can experiment with a prototypeto see how the system supports their wor$
" Requirements validation# The prototype can reveal errors and
omissions in the requirements
Prototyping can be considered as a ris$ reductionactivity which reduces requirements ris$s
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
7/39Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 7
Prototyping benefits
%isunderstandings between software users and
developers are exposed
%issing services may be detected and confusing
services may be identified & wor$ing system is available early in the process
The prototype may serve as a basis for deriving a
system specification
The system can support user training and system
testing
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
8/39Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 8
Prototyping process
Establishprototype
objectives
Defineprototype
functionality
Developprototype
Evaluateprototype
Prototypingplan
Outlinedefinition
Executableprototype
Evaluationreport
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
9/39Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 9
Prototyping benefits
mproved system usability
'loser match to the system needed
mproved design quality
mproved maintainability
Reduced overall development effort
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
10/39Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 10
Prototyping in the software process
(volutionary prototyping" &n approach to system development where an initial prototype
is produced and refined through a number of stages to the final
system
Throw-away prototyping" & prototype which is usually a practical implementation of the
system is produced to help discover requirements problems and
then discarded# The system is then developed using some other
development process
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
11/39Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 11
Prototyping objectives
The objective of evolutionary prototypingis to
deliver a wor$ing system to end-users# The
development starts with those requirements
which are best understood# The objective of throw-away prototypingis to
validate or derive the system requirements# The
prototyping process starts with those
requirements which are poorly understood
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
12/39Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 12
Approaches to prototyping
Evolutionary
prototyping
Throw-away
Prototyping
Delivered
system
Executable Prototype +System Specification
OutlineRequirements
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
13/39Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 13
Evoltionary prototyping
%ust be used for systems where the specification
cannot be developed in advance e#g# & systems
and user interface systems
)ased on techniques which allow rapid systemiterations
*erification is impossible as there is no
specification# *alidation means demonstratingthe adequacy of the system
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
14/39Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 14
Evoltionary prototyping
Build prototypesystem
Develop abstractspecification
Use prototypesystem
Deliver
system
System
adequate?
YES
N
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
15/39
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
16/39
Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 16
Evoltionary prototyping
+pecification, design and implementation are
inter-twined
The system is developed as a series of
increments that are delivered to the customer Techniques for rapid system development are
used such as '&+( tools and .s
User interfaces are usually developed using aU development tool$it
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
17/39
Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 17
Evoltionary prototyping problems
%anagement problems" (xisting management processes assume a waterfall model of
development
" +pecialist s$ills are required which may not be available in all
development teams
%aintenance problems" 'ontinual change tends to corrupt system structure so long-
term maintenance is expensive
'ontractual problems
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
18/39
Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 18
Prototypes as specifications
+ome parts of the requirements /e#g# safety-
critical functions0 may be impossible to prototype
and so don1t appear in the specification
&n implementation has no legal standing as acontract
!on-functional requirements cannot be
adequately tested in a system prototype
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
19/39
Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 19
!ncremental development
+ystem is developed and delivered in increments after
establishing an overall architecture
Requirements and specifications for each increment may
be developed Users may experiment with delivered increments while
others are being developed# therefore, these serve as a
form of prototype system
ntended to combine some of the advantages ofprototyping but with a more manageable process and
better system structure
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
20/39
Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 20
!ncremental development process
Validateincrement
Build systemincrement
Specify systemincrement
Design system
architecture
Define system
deliverables
Systemcomplete?
Integrateincrement
Validatesystem
Deliver finalsystem
YES
NO
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
21/39
Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 21
Throw"away prototyping
Used to reduce requirements ris$
The prototype is developed from an initial
specification, delivered for experiment then
discarded The throw-away prototype should !2T be
considered as a final system" +ome 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
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
22/39
Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 22
Throw"away prototyping
Outline
requirements
Develop
prototype
Evaluate
prototype
Specify
system
Developsoftware
Validatesystem
Deliveredsoftware
system
Reusablecomponents
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
23/39
Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 23
Prototype delivery
3evelopers may be pressurised to deliver a
throw-away prototype as a final system
This is not recommended" t may be impossible to tune the prototype to meet non-
functional requirements
" The prototype is inevitably undocumented
" The system structure will be degraded through changes made
during development
" !ormal organisational quality standards may not have been
applied
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
24/39
Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 24
#apid prototyping techni$es
*arious techniques may be used for rapid
development" 3ynamic high-level language development
" 3atabase programming" 'omponent and application assembly
These are not exclusive techniques - they are
often used together
*isual programming is an inherent part of mostprototype development systems
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
25/39
Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 25
%ynamic high"level langages
.anguages which include powerful data
management facilities
!eed a large run-time support system# !ot
normally used for large system development +ome languages offer excellent U development
facilities
+ome languages have an integrated supportenvironment whose facilities may be used in the
prototype
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
26/39
Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 26
Choice of prototyping langage
4hat is the application domain of the problem5
4hat user interaction is required5
4hat support environment comes with the
language5
3ifferent parts of the system may be
programmed in different languages# 6owever,
there may be problems with languagecommunications
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
27/39
Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 27
%atabase programming langages
3omain specific languages for business systems based
around a database management system
!ormally include a database query language, a screen
generator, a report generator and a spreadsheet# %ay be integrated with a '&+( toolset
The language 7 environment is sometimes $nown as a
fourth-generation language /.0
'ost-effective for small to medium si8ed businesssystems
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
28/39
Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 28
%atabase programming
DB
programminglanguage
Interfacegenerator Spreadsheet
Report
generator
Database management system
Fourth-generation language
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
29/39
Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 29
Component and application assembly
Prototypes can be created quic$ly from a set of
reusable components plus some mechanism to
9glue1 these component together
The composition mechanism must includecontrol facilities and a mechanism for component
communication
The system specification must ta$e into accountthe availability and functionality of existing
components
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
30/39
Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 30
Prototyping with rese
&pplication level development" (ntire application systems are integrated with the prototype so
that their functionality can be shared
" :or example, if text preparation is required, a standard word
processor can be used
'omponent level development" ndividual components are integrated within a standard
framewor$ to implement the system
" :rame wor$ can be a scripting language or an integrationframewor$ such as '2R)&
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
31/39
Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 31
#esable component composition
Componentcomposition
framework
Executable
prototype
Reusablesoftware
components
Control and
integration code
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
32/39
Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 32
Compond docments
:or some applications, a prototype can be created by
developing a compound document
This is a document with active elements /such as a
spreadsheet0 that allow user computations (ach active element has an associated application which
is invo$ed when that element is selected
The document itself is the integrator for the different
applications
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
33/39
Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 33
Application lin&ing in compond docments
Compound document
Word processor Spreadsheet Audio player
Text 1 Text 2 Text 3
Text 4 Text 5
Table 1
Table 2
Sound 1
Sound 2
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
34/39
Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 34
'isal programming
+cripting languages such as *isual )asic support
visual programming where the prototype is
developed by creating a user interface from
standard items and associating components withthese items
& large library of components exists to support
this type of development
These may be tailored to suit the specific
application requirements
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
35/39
Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 35
'isal programming with rese
File Edit Views Layout Options Help
GeneralIndex
Hypertextdisplay componentDate component
Range checkingscript
Tree displaycomponent
12th January 2000
3.876
Draw canvascomponent
User promptcomponent +
script
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
36/39
Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 36
Problems with visal development
3ifficult to coordinate team-based development
!o explicit system architecture
'omplex dependencies between parts of the
program can cause maintainability problems
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
37/39
Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 37
User interface prototyping
t is impossible to pre-specify the loo$ and feel of a user
interface in an effective way# prototyping is essential
U development consumes an increasing part of overall
system development costs
User interface generators may be used to 9draw1 the
interface and simulate its functionality with components
associated with interface entities
4eb interfaces may be prototyped using a web site editor
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
38/39
Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 38
(ey points
& prototype can be used to give end-users a concrete
impression of the system1s capabilities
Prototyping is becoming increasingly used for system
development where rapid development is essential
Throw-away prototyping is used to understand the
system requirements
n evolutionary prototyping, the system is developed by
evolving an initial version to the final version
-
7/21/2019 Ch08- To Be Reported by Group7 and Group8
39/39
(ey points
Rapid development of prototypes is essential# This may
require leaving out functionality or relaxing non-functional
constraints
Prototyping techniques include the use of very high-level
languages, database programming and prototype
construction from reusable components
Prototyping is essential for parts of the system such as
the user interface which cannot be effectively pre-
specified# Users must be involved in prototype evaluation