《CH08-Software-Prototyping-软件工程讲义英语版-教学课件.ppt》由会员分享,可在线阅读,更多相关《CH08-Software-Prototyping-软件工程讲义英语版-教学课件.ppt(39页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Ian Sommerville 2000 Software Engineering,6th edition.Chapter 8 Slide 1Chapter 8Software PrototypingIan Sommerville 2000 Software Engineering,6th edition.Chapter 8 Slide 2Software PrototypinglRapid software development to validate requirementsIan Sommerville 2000 Software Engineering,6th edition.Cha
2、pter 8 Slide 3ObjectiveslTo describe the use of prototypes in different types of development projectlTo discuss evolutionary and throw-away prototypinglTo introduce three rapid prototyping techniques-high-level language development,database programming and component reuselTo explain the need for use
3、r interface prototypingIan Sommerville 2000 Software Engineering,6th edition.Chapter 8 Slide 4Topics coveredlPrototyping in the software processlPrototyping techniqueslUser interface prototypingIan Sommerville 2000 Software Engineering,6th edition.Chapter 8 Slide 5Ian Sommerville 2000 Software Engin
4、eering,6th edition.Chapter 8 Slide 6Uses of system prototypeslThe principal use is to help customers and developers understand the requirements for the systemRequirements elicitation.Users can experiment with a prototype to see how the system supports their workRequirements validation.The prototype
5、can reveal errors and omissions in the requirementslPrototyping can be considered as a risk reduction activity which reduces requirements risksIan Sommerville 2000 Software Engineering,6th edition.Chapter 8 Slide 7Prototyping benefitslMisunderstandings between software users and developers are expos
6、edlMissing services may be detected and confusing services may be identifiedlA working system is available early in the processlThe prototype may serve as a basis for deriving a system specificationlThe system can support user training and system testingIan Sommerville 2000 Software Engineering,6th
7、edition.Chapter 8 Slide 8Prototyping processIan Sommerville 2000 Software Engineering,6th edition.Chapter 8 Slide 9Ian Sommerville 2000 Software Engineering,6th edition.Chapter 8 Slide 10Prototyping in the software processlEvolutionary prototypingAn approach to system development where an initial pr
8、ototype is produced and refined through a number of stages to the final systemlThrow-away prototypingA 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 p
9、rocessIan Sommerville 2000 Software Engineering,6th edition.Chapter 8 Slide 11Prototyping objectiveslThe objective of evolutionary prototyping is to deliver a working system to end-users.The development starts with those requirements which are best understood.lThe objective of throw-away prototyping
10、 is to validate or derive the system requirements.The prototyping process starts with those requirements which are poorly understoodIan Sommerville 2000 Software Engineering,6th edition.Chapter 8 Slide 12Ian Sommerville 2000 Software Engineering,6th edition.Chapter 8 Slide 13Evolutionary prototyping
11、lMust be used for systems where the specification cannot be developed in advance e.g.AI systems and user interface systemslBased on techniques which allow rapid system iterationslVerification is impossible as there is no specification.Validation means demonstrating the adequacy of the systemIan Somm
12、erville 2000 Software Engineering,6th edition.Chapter 8 Slide 14Ian Sommerville 2000 Software Engineering,6th edition.Chapter 8 Slide 15Evolutionary prototyping advantageslAccelerated delivery of the systemRapid delivery and deployment are sometimes more important than functionality or long-term sof
13、tware maintainabilitylUser engagement with the systemNot only is the system more likely to meet user requirements,they are more likely to commit to the use of the systemIan Sommerville 2000 Software Engineering,6th edition.Chapter 8 Slide 16Evolutionary prototypinglSpecification,design and implement
14、ation are inter-twinedlThe system is developed as a series of increments that are delivered to the customerlTechniques for rapid system development are used such as CASE tools and 4GLslUser interfaces are usually developed using a GUI development toolkitIan Sommerville 2000 Software Engineering,6th
15、edition.Chapter 8 Slide 17Ian Sommerville 2000 Software Engineering,6th edition.Chapter 8 Slide 18Prototypes as specifications#lSome parts of the requirements(e.g.safety-critical functions)may be impossible to prototype and so dont appear in the specificationlAn implementation has no legal standing
16、as a contractlNon-functional requirements cannot be adequately tested in a system prototypeIan Sommerville 2000 Software Engineering,6th edition.Chapter 8 Slide 19Incremental development#lSystem is developed and delivered in increments after establishing an overall architecturelRequirements and spec
17、ifications for each increment may be developedlUsers may experiment with delivered increments while others are being developed.therefore,these serve as a form of prototype systemlIntended to combine some of the advantages of prototyping but with a more manageable process and better system structureI
18、an Sommerville 2000 Software Engineering,6th edition.Chapter 8 Slide 20Incremental development processIan Sommerville 2000 Software Engineering,6th edition.Chapter 8 Slide 21Throw-away prototyping#lUsed to reduce requirements risklThe prototype is developed from an initial specification,delivered fo
19、r experiment then discardedlThe throw-away prototype should NOT be considered as a final systemSome system characteristics may have been left outThere is no specification for long-term maintenanceThe system will be poorly structured and difficult to maintainIan Sommerville 2000 Software Engineering,
20、6th edition.Chapter 8 Slide 22Throw-away prototypingIan Sommerville 2000 Software Engineering,6th edition.Chapter 8 Slide 23Ian Sommerville 2000 Software Engineering,6th edition.Chapter 8 Slide 24Rapid prototyping techniqueslVarious techniques may be used for rapid developmentDynamic high-level lang
21、uage developmentDatabase programmingComponent and application assemblylThese are not exclusive techniques-they are often used togetherlVisual programming is an inherent part of most prototype development systemsIan Sommerville 2000 Software Engineering,6th edition.Chapter 8 Slide 25Dynamic high-leve
22、l languages#lLanguages which include powerful data management facilitieslNeed a large run-time support system.Not normally used for large system developmentlSome languages offer excellent UI development facilitieslSome languages have an integrated support environment whose facilities may be used in
23、the prototypeIan Sommerville 2000 Software Engineering,6th edition.Chapter 8 Slide 26Choice of prototyping languagelWhat is the application domain of the problem?lWhat user interaction is required?lWhat support environment comes with the language?lDifferent parts of the system may be programmed in d
24、ifferent languages.However,there may be problems with language communicationsIan Sommerville 2000 Software Engineering,6th edition.Chapter 8 Slide 27Ian Sommerville 2000 Software Engineering,6th edition.Chapter 8 Slide 28Database programmingIan Sommerville 2000 Software Engineering,6th edition.Chapt
25、er 8 Slide 29Component and application assemblylPrototypes can be created quickly from a set of reusable components plus some mechanism to glue these component togetherlThe composition mechanism must include control facilities and a mechanism for component communicationlThe system specification must
26、 take into account the availability and functionality of existing componentsIan Sommerville 2000 Software Engineering,6th edition.Chapter 8 Slide 30Ian Sommerville 2000 Software Engineering,6th edition.Chapter 8 Slide 31Reusable component compositionIan Sommerville 2000 Software Engineering,6th edit
27、ion.Chapter 8 Slide 32Compound documents#lFor some applications,a prototype can be created by developing a compound documentlThis is a document with active elements(such as a spreadsheet)that allow user computationslEach active element has an associated application which is invoked when that element
28、 is selectedlThe document itself is the integrator for the different applicationsIan Sommerville 2000 Software Engineering,6th edition.Chapter 8 Slide 33Application linking in compound documentsIan Sommerville 2000 Software Engineering,6th edition.Chapter 8 Slide 34Visual programming#lScripting lang
29、uages 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 itemslA large library of components exists to support this type of developmentlThese may be tailored to suit the specific appl
30、ication requirementsIan Sommerville 2000 Software Engineering,6th edition.Chapter 8 Slide 35Visual programming with reuseIan Sommerville 2000 Software Engineering,6th edition.Chapter 8 Slide 36Problems with visual developmentlDifficult to coordinate team-based developmentlNo explicit system architec
31、turelComplex dependencies between parts of the program can cause maintainability problemsIan Sommerville 2000 Software Engineering,6th edition.Chapter 8 Slide 37User interface prototyping#lIt is impossible to pre-specify the look and feel of a user interface in an effective way.prototyping is essent
32、iallUI development consumes an increasing part of overall system development costslUser interface generators may be used to draw the interface and simulate its functionality with components associated with interface entitieslWeb interfaces may be prototyped using a web site editorIan Sommerville 200
33、0 Software Engineering,6th edition.Chapter 8 Slide 38Key pointslA prototype can be used to give end-users a concrete impression of the systems capabilitieslPrototyping is becoming increasingly used for system development where rapid development is essentiallThrow-away prototyping is used to understa
34、nd the system requirementslIn evolutionary prototyping,the system is developed by evolving an initial version to the final versionIan Sommerville 2000 Software Engineering,6th edition.Chapter 8 Slide 39Key pointslRapid development of prototypes is essential.This may require leaving out functionality
35、 or relaxing non-functional constraintslPrototyping techniques include the use of very high-level languages,database programming and prototype construction from reusable componentslPrototyping 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