©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Animating and.

Slides:



Advertisements
Similar presentations
Chapter 8 Software Prototyping.
Advertisements

Software Processes.
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 1 Software Engineering Software Engineering.
SWEN 5130 Requirements EngineeringSlide 1 Software Prototyping u Animating and demonstrating system requirements.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 المحاضرة الثانية.
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
7M701 1 Software Prototyping Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 8
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Rapid software development
1 Software Engineering Muhammad Fahad Khan Software Engineering Muhammad Fahad Khan University Of Engineering.
Alternate Software Development Methodologies
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Chapter 17: Rapid software development November 3, 2008.
Software Engineering 6/e, Chapter 8
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development.
Lecture 4 Prototyping CS 540 – Quantitative Software Engineering.
Software Engineering General Project Management Software Requirements
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Process Models.
©Ian Sommerville 2000 Software Engineering, 6th edition Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing.
CS 551 – Requirements and Prototyping Fall 2004 Thanks to Rand Edwards and Ian Summerville for this material.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
7M822 Information Technology in Design and Construction 7M822 Joran Jessurun and Jan Dijkstra Quartile 2, Week 1.
Chapter 3 Software Processes.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements l.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements.
CSI315 Web Technology and Applications
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1 Software Processes (Chapter 3)
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
SOFTWARE PROTOTYPING Anil Kumar.Arikepudi.
Chapter 11: Software Prototyping Omar Meqdadi SE 273 Lecture 11 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements.
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
소프트웨어공학 강좌 1 Chap 7. Software Prototyping - Rapid software development to validate requirements -
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory1 Requirements Validation Section Four Version: 1.0 Mehr.
Slide 1 Software Prototyping Class Notes for ReqEng.
S OFTWARE P ROTOTYPING C HAPTER 4. SOFTWARE PROTOTYPING Prototype: Customers and end-users of the system find it difficult to express their real requirements.
Software Prototyping Rapid software development to validate requirements.
© Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 軟體雛形 l 快速的軟體開發以確認需求.
CS 240, Prof. Sarwar Slide 1 CS 240: Software Project Fall 2003 Sections 1 & 2 Dr. Badrul M. Sarwar San Jose State University Lecture #9.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000, Tom Dietterich 2001 Slide 1 System prototyping l Prototyping is the rapid development of a system l In the past, the developed system.
Software Engineering, 8th edition. Chapter 4 1 Courtesy: ©Ian Sommerville 2006 FEB 13 th, 2009 Lecture # 5 Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
1 SYS366 Week 2 - Lecture Visual Modeling and Process.
CS 389 – Software Engineering Lecture 2 – Part 2 Chapter 2 – Software Processes Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Rekayasa Perangkat Lunak Part-6
Prototyping in the software process
Software Prototyping.
Lecture 4 Prototyping.
Software Prototyping.
Software Prototyping Animating and demonstrating system requirements.
Rapid software development
Presentation transcript:

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Animating and demonstrating system requirements

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 8 Slide 2 Uses of System Prototypes l The principal use is to help customers and developers understand the requirements for the system. l The prototype may be used for user training before a final system is delivered. l The prototype may be used for back-to-back testing.

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 8 Slide 3 Prototyping Benefits l Misunderstandings between software users and developers are exposed. l Missing services may be detected. l Confusing services may be identified. l A working system is available early in the process. l The prototype may serve as a basis for deriving a system specification.

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 8 Slide 4 Prototyping Objectives l The objective of evolutionary prototyping is to deliver a working system to end-users. The development starts with those requirements which are best understood. l 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 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 8 Slide 5 Approaches to Prototyping

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 8 Slide 6 Evolutionary Prototyping l Must be used for systems where the specification cannot be developed in advance e.g., AI systems and user interface systems l Based on techniques which allow rapid system iterations. l Verification is impossible as there is no specification. Validation means demonstrating the adequacy of the system.

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 8 Slide 7 Evolutionary Prototyping

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 8 Slide 8 Evolutionary Prototyping Problems l Existing management processes assume a waterfall model of development. l Continual change tends to corrupt system structure so long-term maintenance is expensive. l Specialist skills are required which may not be available in all development teams. l Organizations must accept that the lifetime of systems developed this way will inevitably be short.

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 8 Slide 9 Throw-away Prototyping l Used to reduce requirements risk. l The prototype is developed from an initial specification, delivered for experiment then discarded. l 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 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 8 Slide 10 Throw-away Prototyping Process

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 8 Slide 11 Prototypes as Specifications l Some parts of the requirements (e.g., safety- critical functions) may be impossible to prototype and so don’t appear in the specification. l An implementation has no legal standing as a contract. l Non-functional requirements cannot be adequately tested in a system prototype.

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 8 Slide 12 Incremental Development l System is developed and delivered in increments after establishing an overall architecture. l Users may experiment with delivered increments while others are being developed. l Intended to combine some of the advantages of prototyping but with a more manageable process and better system structure.

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 8 Slide 13 Incremental Development Process

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 8 Slide 14 Prototyping Techniques l Very high-level languages l Application generators and 4GLs l Composition of reusable components

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 8 Slide 15 Very High-level Languages l Languages which include powerful data management facilities. l Need a large run-time support system. Not normally used for large system development. l Some languages offer excellent UI development facilities (e.g., Java Foundation Classes). l Some languages have an integrated support environment whose facilities may be used in the prototype.

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 8 Slide 16 Prototyping Languages

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 8 Slide 17 Smalltalk l Very powerful system for prototyping interactive systems. l Object-oriented language so systems are resilient to change. l The Smalltalk environment objects are available to the prototype developer. l The system includes support software such as graphical user interface generation tools.

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 8 Slide 18 Fourth-generation Languages l Domain specific languages for business systems based around a database management system. l Normally include a database query language, a screen generator, a report generator and a spreadsheet. l May be integrated with a CASE tool set. l Cost-effective for small to medium sized business systems.

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 8 Slide 19 4GLs

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 8 Slide 20 Prototyping with Reuse l The system is prototyped by “gluing” together existing components. l Likely to become more widely used as libraries of objects become available. l Needs a composition language such as a Unix shell language. l Visual Basic is largely based on this approach.

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 8 Slide 21 Reusable Component Composition

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 8 Slide 22 Visual Programming l 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. l A large library of components exists to support this type of development. l These may be tailored to suit the specific application requirements.

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 8 Slide 23 Visual Programming with Reuse

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 8 Slide 24 Problems with Visual Development l Difficult to coordinate team-based development. l No explicit system architecture. l Complex dependencies between parts of the program can cause maintainability problems.

©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 8 Slide 25 User Interface Prototyping l It is impossible to pre-specify the “look and feel” of a user interface in an effective way. Prototyping is essential. l UI development consumes an increasing part of overall system development costs. l Prototyping may use very high level languages such as Smalltalk, Java, Visual Basic, or Lisp. l User interface generators may be used to “draw” the interface and simulate its functionality.