SlideShare a Scribd company logo
Software Prototyping 
Rapid software development to 
validate requirements 
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1
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 
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 2
Topics covered 
 Prototyping in the software process 
 Prototyping techniques 
 User interface prototyping 
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 3
System prototyping 
 Prototyping is the rapid development of a system 
 In the past, the developed system was normally 
thought of as inferior in some way to the required 
system so further development was required 
 Now, the boundary between prototyping and 
normal system development is blurred and many 
systems are developed using an evolutionary 
approach 
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 4
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 prototype 
to see how the system supports their work 
• Requirements validation. The prototype can reveal errors and 
omissions in the requirements 
 Prototyping can be considered as a risk reduction 
activity which reduces requirements risks 
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 5
Prototyping benefits 
 Misunderstandings between software users and 
developers are exposed 
 Missing services may be detected and confusing 
services may be identified 
 A working 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 
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 6
Prototyping process PoprEobrsojttoetacotbyttliypivsipehnesgfupnrDcotetiofoitnnyaepleitypDroetvoetlyoppepErvoatolutyatpee plandOefuintilitinoenEpxreoctouttyabpleeEvraelpuoatriton 
©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 
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 8
Prototyping in the software process 
 Evolutionary prototyping 
• An approach to system development where an initial prototype 
is produced and refined through a number of stages to the final 
system 
 Throw-away prototyping 
• A 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 
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 9
Prototyping objectives 
 The objective of evolutionary prototyping is to 
deliver a working system to end-users. The 
development starts with those requirements which 
are best understood. 
 The objective of throw-away prototyping is to 
validate or derive the system requirements. The 
prototyping process starts with those 
requirements which are poorly understood 
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 10
Approaches to prototyping ReqOuuirtelimneentsETpPvhrrooorolttoouwttti-yyaoppnwiiannarggyyESxyesctuetmaDbsleSeylpisePvtcereiomrfteiocdtaytpioen+ 
©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 
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 12
EDvesvpoeelcolifpuicaabttsiitoroanctnary pBruoilsdtypsorteomttoytyppeingUsespyrsotetomtype DsyeslitevmerYESadSeyqsutaetmNe? 
©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 
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 14
Evolutionary prototyping 
 Specification, 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 CASE tools and 4GLs 
 User interfaces are usually developed using a GUI 
development toolkit 
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 15
Evolutionary prototyping problems 
 Management problems 
• Existing management processes assume a waterfall model of 
development 
• Specialist skills are required which may not be available in all 
development teams 
 Maintenance problems 
• Continual change tends to corrupt system structure so long-term 
maintenance is expensive 
 Contractual problems 
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 16
Prototypes as specifications 
 Some parts of the requirements (e.g. safety-critical 
functions) may be impossible to prototype 
and so don’t appear in the specification 
 An implementation has no legal standing as a 
contract 
 Non-functional requirements cannot be 
adequately tested in a system prototype 
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 17
Incremental development 
 System 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 
 Intended to combine some of the advantages of 
prototyping but with a more manageable process 
and better system structure 
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 18
Incremental development DDadeersefcliiighnvienteersscayytbssulttreeesemmSpiencicfryemsyesnttemBiunilcdresmysetnetm proceinVcsarleisdmaetent 
DelsiyvsetremfinalYEScoSmysptleemteN?OVsaylsitdeamteiInnctreegmraetnet 
©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 
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 20
Throw-reqOuiurtelmineeantsway pDproetvoretlyooppetotyppEirovantolutyagtpeeSspysetceimfy 
sDoefvtewclaooRrmpeepusoanbelnets VsaylsitdeamteDsseoylfitsvwteearmreed 
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 21
Prototype delivery 
 Developers may be pressurised to deliver a 
throw-away prototype as a final system 
 This is not recommended 
• It 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 
• Normal organisational quality standards may not have been 
applied 
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 22
Rapid prototyping techniques 
 Various techniques may be used for rapid 
development 
• Dynamic high-level language development 
• Database programming 
• Component and application assembly 
 These are not exclusive techniques - they are 
often used together 
 Visual programming is an inherent part of most 
prototype development systems 
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 23
Dynamic high-level languages 
 Languages which include powerful data 
management facilities 
 Need a large run-time support system. Not 
normally used for large system development 
 Some languages offer excellent UI development 
facilities 
 Some languages have an integrated support 
environment whose facilities may be used in the 
prototype 
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 24
Prototyping languages 
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 25
Choice of prototyping language 
 What is the application domain of the problem? 
 What user interaction is required? 
 What support environment comes with the 
language? 
 Different parts of the system may be programmed 
in different languages. However, there may be 
problems with language communications 
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 26
Database programming languages 
 Domain specific languages for business systems 
based around a database management system 
 Normally include a database query language, a 
screen generator, a report generator and a 
spreadsheet. 
 May be integrated with a CASE toolset 
 The language + environment is sometimes known 
as a fourth-generation language (4GL) 
 Cost-effective for small to medium sized business 
systems 
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 27
Database programming prolagnrDagumBamgienggInetneeDrrfaaattcaoebrasemanagementSsypsrteeamdshetgeRneeproatrotr Fourth-generationlanguage 
©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 
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 29
Prototyping with reuse 
 Application level development 
• Entire application systems are integrated with the prototype so 
that their functionality can be shared 
• For example, if text preparation is required, a standard word 
processor can be used 
 Component level development 
• Individual components are integrated within a standard 
framework to implement the system 
• Frame work can be a scripting language or an integration 
framework such as CORBA 
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 30
Reusable component cosRmoefputsowanaberlenets cCforomammppeooswintoeironktn composEpixrtoetciouottyabpnlee intCegornattrioolnacnodde 
©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 
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 32
Application linkingC ionm pcouonmdpocouumnendt documents 
WordprocesorSpreadshetAudioplayer 
Text1Table2Table1TexTte4xt2SouTnedxt23TeSxotu5nd1 
©Ian Sommerville 2000 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 
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 34
Datecomponent displHayypceormtepxotnent 
Rangseccrihpetcking 
Visual programming with reuse FileEditViewsLayoutOptionsHelpGeneraIndexl 
Dcroamwpcoannevnats13.28t7h6January20 cUosmesrpcropinrpoetmntp+t 
Tcroemepdoisnpelanty 
©Ian Sommerville 2000 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 
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 36
User interface prototyping 
 It is impossible to pre-specify the look and feel of 
a user interface in an effective way. prototyping is 
essential 
 UI development consumes an increasing part of 
overall system development costs 
 User interface generators may be used to ‘draw’ 
the interface and simulate its functionality with 
components associated with interface entities 
 Web interfaces may be prototyped using a web 
site editor 
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 37
Key points 
 A prototype can be used to give end-users a 
concrete impression of the system’s capabilities 
 Prototyping is becoming increasingly used for 
system development where rapid development is 
essential 
 Throw-away prototyping is used to understand 
the system requirements 
 In evolutionary prototyping, the system is 
developed by evolving an initial version to the 
final version 
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 38
Key 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 
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 39

More Related Content

What's hot

Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
Amity University | FMS - DU | IMT | Stratford University | KKMI International Institute | AIMA | DTU
 
Software Engineering Methodologies
Software Engineering MethodologiesSoftware Engineering Methodologies
Software Engineering MethodologiesDamian T. Gordon
 
software engineering
 software engineering software engineering
software engineering
Ahmed Elshahat Mohamed
 
ITFT - Software development life cycle
ITFT  -   Software development life cycleITFT  -   Software development life cycle
ITFT - Software development life cycle
Shruti Kunwar
 
SDLC- concept and models
SDLC- concept and modelsSDLC- concept and models
SDLC- concept and modelsAnjali Arora
 
Itertaive process-development model
Itertaive process-development modelItertaive process-development model
Itertaive process-development model
university of education,Lahore
 
Comparison of Software Engineering Models
Comparison of Software Engineering  ModelsComparison of Software Engineering  Models
Comparison of Software Engineering Modelstahir iqbal
 
Software Engineering - Ch4
Software Engineering - Ch4Software Engineering - Ch4
Software Engineering - Ch4Siddharth Ayer
 
Software Engineering - Lecture 02
Software Engineering - Lecture 02Software Engineering - Lecture 02
Software Engineering - Lecture 02
Asifuzzaman Hridoy
 
S.D.L.C (Software Development Life Cycle.)
S.D.L.C (Software Development Life Cycle.)S.D.L.C (Software Development Life Cycle.)
S.D.L.C (Software Development Life Cycle.)Jayesh Buwa
 
Software Engineering - Software Models
Software Engineering - Software ModelsSoftware Engineering - Software Models
Software Engineering - Software Models
Reddhi Basu
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
Saqib Raza
 
Software engineering tutorial
Software engineering tutorial Software engineering tutorial
Software engineering tutorial
Ahmed Elshal
 
Lecture 02 Software Process Model
Lecture 02 Software Process ModelLecture 02 Software Process Model
Lecture 02 Software Process Model
Achmad Solichin
 
Prototype model
Prototype modelPrototype model
Prototype modelsadhana8
 
Sdlc (software development life cycle)
Sdlc (software development life cycle)Sdlc (software development life cycle)
Sdlc (software development life cycle)
Nadeesha Thilakarathne
 
Software process
Software processSoftware process
Software process
Jennifer Polack
 

What's hot (18)

Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
 
Software Engineering Methodologies
Software Engineering MethodologiesSoftware Engineering Methodologies
Software Engineering Methodologies
 
software engineering
 software engineering software engineering
software engineering
 
ITFT - Software development life cycle
ITFT  -   Software development life cycleITFT  -   Software development life cycle
ITFT - Software development life cycle
 
SDLC- concept and models
SDLC- concept and modelsSDLC- concept and models
SDLC- concept and models
 
Itertaive process-development model
Itertaive process-development modelItertaive process-development model
Itertaive process-development model
 
Comparison of Software Engineering Models
Comparison of Software Engineering  ModelsComparison of Software Engineering  Models
Comparison of Software Engineering Models
 
Software Engineering - Ch4
Software Engineering - Ch4Software Engineering - Ch4
Software Engineering - Ch4
 
Software Engineering - Lecture 02
Software Engineering - Lecture 02Software Engineering - Lecture 02
Software Engineering - Lecture 02
 
S.D.L.C (Software Development Life Cycle.)
S.D.L.C (Software Development Life Cycle.)S.D.L.C (Software Development Life Cycle.)
S.D.L.C (Software Development Life Cycle.)
 
Software Engineering - Software Models
Software Engineering - Software ModelsSoftware Engineering - Software Models
Software Engineering - Software Models
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
SDLC
SDLCSDLC
SDLC
 
Software engineering tutorial
Software engineering tutorial Software engineering tutorial
Software engineering tutorial
 
Lecture 02 Software Process Model
Lecture 02 Software Process ModelLecture 02 Software Process Model
Lecture 02 Software Process Model
 
Prototype model
Prototype modelPrototype model
Prototype model
 
Sdlc (software development life cycle)
Sdlc (software development life cycle)Sdlc (software development life cycle)
Sdlc (software development life cycle)
 
Software process
Software processSoftware process
Software process
 

Viewers also liked

Customer App Flow
Customer App FlowCustomer App Flow
Customer App FlowZafar Ayub
 
Binary Search Tree
Binary Search TreeBinary Search Tree
Binary Search Tree
Zafar Ayub
 
UML Review
UML ReviewUML Review
UML Review
Zafar Ayub
 
Generations of computers
Generations of computersGenerations of computers
Generations of computers
Zafar Ayub
 
Inside the computer
Inside the computerInside the computer
Inside the computer
Zafar Ayub
 
Computer communications and networks
Computer communications and networksComputer communications and networks
Computer communications and networksVarun Jain
 
Ch2-Software Engineering 9
Ch2-Software Engineering 9Ch2-Software Engineering 9
Ch2-Software Engineering 9Ian Sommerville
 
Data communication and network Chapter - 2
Data communication and network Chapter - 2Data communication and network Chapter - 2
Data communication and network Chapter - 2
Zafar Ayub
 
Software Engineering ppt
Software Engineering pptSoftware Engineering ppt
Software Engineering pptshruths2890
 
Data communication and network Chapter -1
Data communication and network Chapter -1Data communication and network Chapter -1
Data communication and network Chapter -1
Zafar Ayub
 
software engineering
software engineeringsoftware engineering
software engineeringramyavarkala
 
The Top Skills That Can Get You Hired in 2017
The Top Skills That Can Get You Hired in 2017The Top Skills That Can Get You Hired in 2017
The Top Skills That Can Get You Hired in 2017
LinkedIn
 

Viewers also liked (14)

Customer App Flow
Customer App FlowCustomer App Flow
Customer App Flow
 
Use case
Use caseUse case
Use case
 
Binary Search Tree
Binary Search TreeBinary Search Tree
Binary Search Tree
 
UML Review
UML ReviewUML Review
UML Review
 
Generations of computers
Generations of computersGenerations of computers
Generations of computers
 
Inside the computer
Inside the computerInside the computer
Inside the computer
 
Computer communications and networks
Computer communications and networksComputer communications and networks
Computer communications and networks
 
Ch2-Software Engineering 9
Ch2-Software Engineering 9Ch2-Software Engineering 9
Ch2-Software Engineering 9
 
Data communication and network Chapter - 2
Data communication and network Chapter - 2Data communication and network Chapter - 2
Data communication and network Chapter - 2
 
Chapter 3
Chapter 3Chapter 3
Chapter 3
 
Software Engineering ppt
Software Engineering pptSoftware Engineering ppt
Software Engineering ppt
 
Data communication and network Chapter -1
Data communication and network Chapter -1Data communication and network Chapter -1
Data communication and network Chapter -1
 
software engineering
software engineeringsoftware engineering
software engineering
 
The Top Skills That Can Get You Hired in 2017
The Top Skills That Can Get You Hired in 2017The Top Skills That Can Get You Hired in 2017
The Top Skills That Can Get You Hired in 2017
 

Similar to Software Prototyping

about how software prototyping helps in SDLC
about how software prototyping helps in SDLCabout how software prototyping helps in SDLC
about how software prototyping helps in SDLC
shettyplacement08
 
Software Engineering - Ch17
Software Engineering - Ch17Software Engineering - Ch17
Software Engineering - Ch17Siddharth Ayer
 
ch1.ppt
ch1.pptch1.ppt
SOFTWAREENGINEERING CONCEPTS INJNTUK MO
SOFTWAREENGINEERING CONCEPTS INJNTUK  MOSOFTWAREENGINEERING CONCEPTS INJNTUK  MO
SOFTWAREENGINEERING CONCEPTS INJNTUK MO
tpvvsreenivasarao
 
Introduction to Software Enigneering
Introduction to Software Enigneering Introduction to Software Enigneering
Introduction to Software Enigneering
university of education,Lahore
 
merged (1).pdf
merged (1).pdfmerged (1).pdf
merged (1).pdf
ssuser92d367
 
Software Engineering- Crisis and Process Models
Software Engineering- Crisis and Process ModelsSoftware Engineering- Crisis and Process Models
Software Engineering- Crisis and Process Models
Nishu Rastogi
 
Ian_Sommerville_Software_Engineering_6th.pdf
Ian_Sommerville_Software_Engineering_6th.pdfIan_Sommerville_Software_Engineering_6th.pdf
Ian_Sommerville_Software_Engineering_6th.pdf
jyotineeli1
 
Software Verification & Validation
Software Verification & ValidationSoftware Verification & Validation
Software Verification & Validation
university of education,Lahore
 
962 sech04
962 sech04962 sech04
962 sech04aldwal
 
Se wk3
Se wk3Se wk3
Se wk3
aliawkum
 
Software reengineering
Software reengineeringSoftware reengineering
Software reengineering
gourav kottawar
 
Software Processes
Software Processes Software Processes
Software Processes
Mayuran Ramanathan
 

Similar to Software Prototyping (20)

about how software prototyping helps in SDLC
about how software prototyping helps in SDLCabout how software prototyping helps in SDLC
about how software prototyping helps in SDLC
 
Software Engineering - Ch17
Software Engineering - Ch17Software Engineering - Ch17
Software Engineering - Ch17
 
0273710133 pp01v2
0273710133 pp01v20273710133 pp01v2
0273710133 pp01v2
 
ch1.ppt
ch1.pptch1.ppt
ch1.ppt
 
SOFTWAREENGINEERING CONCEPTS INJNTUK MO
SOFTWAREENGINEERING CONCEPTS INJNTUK  MOSOFTWAREENGINEERING CONCEPTS INJNTUK  MO
SOFTWAREENGINEERING CONCEPTS INJNTUK MO
 
Introduction to Software Enigneering
Introduction to Software Enigneering Introduction to Software Enigneering
Introduction to Software Enigneering
 
Lecture-17.ppt
Lecture-17.pptLecture-17.ppt
Lecture-17.ppt
 
merged (1).pdf
merged (1).pdfmerged (1).pdf
merged (1).pdf
 
ch14.ppt
ch14.pptch14.ppt
ch14.ppt
 
Software Engineering- Crisis and Process Models
Software Engineering- Crisis and Process ModelsSoftware Engineering- Crisis and Process Models
Software Engineering- Crisis and Process Models
 
Ian_Sommerville_Software_Engineering_6th.pdf
Ian_Sommerville_Software_Engineering_6th.pdfIan_Sommerville_Software_Engineering_6th.pdf
Ian_Sommerville_Software_Engineering_6th.pdf
 
Software Verification & Validation
Software Verification & ValidationSoftware Verification & Validation
Software Verification & Validation
 
962 sech04
962 sech04962 sech04
962 sech04
 
Software Processes
Software ProcessesSoftware Processes
Software Processes
 
Se wk3
Se wk3Se wk3
Se wk3
 
Software reengineering
Software reengineeringSoftware reengineering
Software reengineering
 
Software Processes
Software Processes Software Processes
Software Processes
 
Prototyping model
Prototyping modelPrototyping model
Prototyping model
 
Evolution-2.ppt
Evolution-2.pptEvolution-2.ppt
Evolution-2.ppt
 
Ch1
Ch1Ch1
Ch1
 

Recently uploaded

Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
Celine George
 
Digital Artifact 2 - Investigating Pavilion Designs
Digital Artifact 2 - Investigating Pavilion DesignsDigital Artifact 2 - Investigating Pavilion Designs
Digital Artifact 2 - Investigating Pavilion Designs
chanes7
 
Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
TechSoup
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
Sandy Millin
 
Chapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptxChapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptx
Mohd Adib Abd Muin, Senior Lecturer at Universiti Utara Malaysia
 
Marketing internship report file for MBA
Marketing internship report file for MBAMarketing internship report file for MBA
Marketing internship report file for MBA
gb193092
 
The Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptxThe Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptx
DhatriParmar
 
STRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBC
STRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBCSTRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBC
STRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBC
kimdan468
 
Synthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptxSynthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptx
Pavel ( NSTU)
 
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup   New Member Orientation and Q&A (May 2024).pdfWelcome to TechSoup   New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
TechSoup
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
camakaiclarkmusic
 
Embracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic ImperativeEmbracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic Imperative
Peter Windle
 
The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
Jisc
 
The French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free downloadThe French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free download
Vivekanand Anglo Vedic Academy
 
Multithreading_in_C++ - std::thread, race condition
Multithreading_in_C++ - std::thread, race conditionMultithreading_in_C++ - std::thread, race condition
Multithreading_in_C++ - std::thread, race condition
Mohammed Sikander
 
S1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptxS1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptx
tarandeep35
 
Francesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptxFrancesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptx
EduSkills OECD
 
Unit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdfUnit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdf
Thiyagu K
 
"Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe..."Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe...
SACHIN R KONDAGURI
 
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
Nguyen Thanh Tu Collection
 

Recently uploaded (20)

Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
 
Digital Artifact 2 - Investigating Pavilion Designs
Digital Artifact 2 - Investigating Pavilion DesignsDigital Artifact 2 - Investigating Pavilion Designs
Digital Artifact 2 - Investigating Pavilion Designs
 
Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
 
Chapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptxChapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptx
 
Marketing internship report file for MBA
Marketing internship report file for MBAMarketing internship report file for MBA
Marketing internship report file for MBA
 
The Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptxThe Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptx
 
STRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBC
STRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBCSTRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBC
STRAND 3 HYGIENIC PRACTICES.pptx GRADE 7 CBC
 
Synthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptxSynthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptx
 
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup   New Member Orientation and Q&A (May 2024).pdfWelcome to TechSoup   New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
 
Embracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic ImperativeEmbracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic Imperative
 
The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
 
The French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free downloadThe French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free download
 
Multithreading_in_C++ - std::thread, race condition
Multithreading_in_C++ - std::thread, race conditionMultithreading_in_C++ - std::thread, race condition
Multithreading_in_C++ - std::thread, race condition
 
S1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptxS1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptx
 
Francesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptxFrancesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptx
 
Unit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdfUnit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdf
 
"Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe..."Protectable subject matters, Protection in biotechnology, Protection of othe...
"Protectable subject matters, Protection in biotechnology, Protection of othe...
 
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
 

Software Prototyping

  • 1. Software Prototyping Rapid software development to validate requirements ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1
  • 2. 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 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 2
  • 3. Topics covered Prototyping in the software process Prototyping techniques User interface prototyping ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 3
  • 4. System prototyping Prototyping is the rapid development of a system In the past, the developed system was normally thought of as inferior in some way to the required system so further development was required Now, the boundary between prototyping and normal system development is blurred and many systems are developed using an evolutionary approach ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 4
  • 5. 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 prototype to see how the system supports their work • Requirements validation. The prototype can reveal errors and omissions in the requirements Prototyping can be considered as a risk reduction activity which reduces requirements risks ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 5
  • 6. Prototyping benefits Misunderstandings between software users and developers are exposed Missing services may be detected and confusing services may be identified A working 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 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 6
  • 7. Prototyping process PoprEobrsojttoetacotbyttliypivsipehnesgfupnrDcotetiofoitnnyaepleitypDroetvoetlyoppepErvoatolutyatpee plandOefuintilitinoenEpxreoctouttyabpleeEvraelpuoatriton ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 7
  • 8. Prototyping benefits Improved system usability Closer match to the system needed Improved design quality Improved maintainability Reduced overall development effort ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 8
  • 9. Prototyping in the software process Evolutionary prototyping • An approach to system development where an initial prototype is produced and refined through a number of stages to the final system Throw-away prototyping • A 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 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 9
  • 10. Prototyping objectives The objective of evolutionary prototyping is to deliver a working system to end-users. The development starts with those requirements which are best understood. The objective of throw-away prototyping is to validate or derive the system requirements. The prototyping process starts with those requirements which are poorly understood ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 10
  • 11. Approaches to prototyping ReqOuuirtelimneentsETpPvhrrooorolttoouwttti-yyaoppnwiiannarggyyESxyesctuetmaDbsleSeylpisePvtcereiomrfteiocdtaytpioen+ ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 11
  • 12. 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 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 12
  • 14. 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 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 14
  • 15. Evolutionary prototyping Specification, 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 CASE tools and 4GLs User interfaces are usually developed using a GUI development toolkit ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 15
  • 16. Evolutionary prototyping problems Management problems • Existing management processes assume a waterfall model of development • Specialist skills are required which may not be available in all development teams Maintenance problems • Continual change tends to corrupt system structure so long-term maintenance is expensive Contractual problems ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 16
  • 17. Prototypes as specifications Some parts of the requirements (e.g. safety-critical functions) may be impossible to prototype and so don’t appear in the specification An implementation has no legal standing as a contract Non-functional requirements cannot be adequately tested in a system prototype ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 17
  • 18. Incremental development System 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 Intended to combine some of the advantages of prototyping but with a more manageable process and better system structure ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 18
  • 19. Incremental development DDadeersefcliiighnvienteersscayytbssulttreeesemmSpiencicfryemsyesnttemBiunilcdresmysetnetm proceinVcsarleisdmaetent DelsiyvsetremfinalYEScoSmysptleemteN?OVsaylsitdeamteiInnctreegmraetnet ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 19
  • 20. 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 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 20
  • 21. Throw-reqOuiurtelmineeantsway pDproetvoretlyooppetotyppEirovantolutyagtpeeSspysetceimfy sDoefvtewclaooRrmpeepusoanbelnets VsaylsitdeamteDsseoylfitsvwteearmreed ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 21
  • 22. Prototype delivery Developers may be pressurised to deliver a throw-away prototype as a final system This is not recommended • It 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 • Normal organisational quality standards may not have been applied ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 22
  • 23. Rapid prototyping techniques Various techniques may be used for rapid development • Dynamic high-level language development • Database programming • Component and application assembly These are not exclusive techniques - they are often used together Visual programming is an inherent part of most prototype development systems ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 23
  • 24. Dynamic high-level languages Languages which include powerful data management facilities Need a large run-time support system. Not normally used for large system development Some languages offer excellent UI development facilities Some languages have an integrated support environment whose facilities may be used in the prototype ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 24
  • 25. Prototyping languages ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 25
  • 26. Choice of prototyping language What is the application domain of the problem? What user interaction is required? What support environment comes with the language? Different parts of the system may be programmed in different languages. However, there may be problems with language communications ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 26
  • 27. Database programming languages Domain specific languages for business systems based around a database management system Normally include a database query language, a screen generator, a report generator and a spreadsheet. May be integrated with a CASE toolset The language + environment is sometimes known as a fourth-generation language (4GL) Cost-effective for small to medium sized business systems ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 27
  • 28. Database programming prolagnrDagumBamgienggInetneeDrrfaaattcaoebrasemanagementSsypsrteeamdshetgeRneeproatrotr Fourth-generationlanguage ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 28
  • 29. 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 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 29
  • 30. Prototyping with reuse Application level development • Entire application systems are integrated with the prototype so that their functionality can be shared • For example, if text preparation is required, a standard word processor can be used Component level development • Individual components are integrated within a standard framework to implement the system • Frame work can be a scripting language or an integration framework such as CORBA ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 30
  • 31. Reusable component cosRmoefputsowanaberlenets cCforomammppeooswintoeironktn composEpixrtoetciouottyabpnlee intCegornattrioolnacnodde ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 31
  • 32. 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 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 32
  • 33. Application linkingC ionm pcouonmdpocouumnendt documents WordprocesorSpreadshetAudioplayer Text1Table2Table1TexTte4xt2SouTnedxt23TeSxotu5nd1 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 33
  • 34. 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 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 34
  • 35. Datecomponent displHayypceormtepxotnent Rangseccrihpetcking Visual programming with reuse FileEditViewsLayoutOptionsHelpGeneraIndexl Dcroamwpcoannevnats13.28t7h6January20 cUosmesrpcropinrpoetmntp+t Tcroemepdoisnpelanty ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 35
  • 36. 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 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 36
  • 37. User interface prototyping It is impossible to pre-specify the look and feel of a user interface in an effective way. prototyping is essential UI development consumes an increasing part of overall system development costs User interface generators may be used to ‘draw’ the interface and simulate its functionality with components associated with interface entities Web interfaces may be prototyped using a web site editor ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 37
  • 38. Key points A prototype can be used to give end-users a concrete impression of the system’s capabilities Prototyping is becoming increasingly used for system development where rapid development is essential Throw-away prototyping is used to understand the system requirements In evolutionary prototyping, the system is developed by evolving an initial version to the final version ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 38
  • 39. Key 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 ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 39