Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


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

1 ©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

2 ©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.

3 ©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.

4 ©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

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

6 ©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.

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

8 ©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.

9 ©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.

10 ©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 8 Slide 10 Throw-away Prototyping Process

11 ©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.

12 ©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.

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

14 ©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

15 ©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.

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

17 ©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.

18 ©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.

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

20 ©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.

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

22 ©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.

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

24 ©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.

25 ©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.


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

Similar presentations


Ads by Google