SOFTWARE PROTOTYPING Anil Kumar Arikepudi DEFNITION A Software

  • Slides: 19
Download presentation
SOFTWARE PROTOTYPING Anil Kumar. Arikepudi

SOFTWARE PROTOTYPING Anil Kumar. Arikepudi

DEFNITION – A Software prototype is rapid development of a system. – It is

DEFNITION – A Software prototype is rapid development of a system. – It is intended for the user requirements and not for the deign validation.

OBJECTIVES To describe the use of software prototypes. l To discuss the process of

OBJECTIVES To describe the use of software prototypes. l To discuss the process of prototyping l To discuss evolutionary, throw-away prototyping techniques and about the tools and techniques available. l To know the advantages and disadvantages of prototyping l

WHY PROTYPING? To reduce cost and to improve the quality of final product. l

WHY PROTYPING? To reduce cost and to improve the quality of final product. l Useful for risk assessment and as a means for validation to end users. l To demonstrate the feasibility of the system early in the life cycle. l The principal use is to help customers and developers understand the requirements for the system l

Prototyping process

Prototyping process

Phases of prototyping 1. Prototyping Plan: l To gain further specification requirements from the

Phases of prototyping 1. Prototyping Plan: l To gain further specification requirements from the customer. l Convey about the ideas to the customers, what the developers believe will be vital aspects of the project. l Knowing the more risky aspects of the project, if any

Phases of prototyping (contd. . ) 2. Outline definition l This stage focuses in

Phases of prototyping (contd. . ) 2. Outline definition l This stage focuses in determining the level of functionality of the prototype and documenting these decisions. l We can use a GUI with no functionality if our intention is only to demonstrate the intended design. Whereas if the goal is to get the customer to consider more functionality it may be necessary to implement large parts of the existing functionality

Phases of prototyping (contd…) 3. Executable Prototype: l This stage is the development of

Phases of prototyping (contd…) 3. Executable Prototype: l This stage is the development of the prototype; this will generally involve the use of some form of prototyping tool such as Visual Basic to allow the prototype to be constructed quickly. l The length of this stage will be greatly dependent on the required functionality of the prototype

Phases of prototyping (contd…) 4. Evaluation report: l l l At this point feedback

Phases of prototyping (contd…) 4. Evaluation report: l l l At this point feedback will be gathered from both management and the customer thus allowing the prototype to be evaluated. Three main events may happen after this stage The customer will be happy with the prototype and the development of the actual system will continue. The project will be deemed unfeasible and the project will not continue. The customer lists more requirements and the Specification will be amended to include these changes

FORMS OF PROTOTYPING 1. Evolutionary prototyping Evolutionary prototype life cycle considers to first deliver

FORMS OF PROTOTYPING 1. Evolutionary prototyping Evolutionary prototype life cycle considers to first deliver an initial fielded prototype , subsequent modifications and enhancements result in delivery of further more mature prototypes. Objective : To deliver a working system to endusers. The development starts with those requirements which are best understood.

Evolutionary prototyping

Evolutionary prototyping

2. Throw-away prototyping Software developer develops a working prototype to clarify and define the

2. Throw-away prototyping Software developer develops a working prototype to clarify and define the specifications with the help of the customer. The prototype is not part of the final product, so it is not necessary to maintain, and its structure is also not important as it should not influence the final product Objective : To validate or derive the system requirements. The prototyping process starts with those requirements which are poorly understood

Throw-Away Prototyping

Throw-Away Prototyping

Advantages of Evolutionary and Throw-Away prototypes 1. Evolutionary prototype: l The most needed functionality

Advantages of Evolutionary and Throw-Away prototypes 1. Evolutionary prototype: l The most needed functionality will be produced first, thereby solving the user’s basic needs. l This model establishes user engagement with the system 2. Throw-Away Prototype: l Unlike upfront specifications, these can be used to allow the customer to further define the product as it is being developed. l The throw away prototypes can be written in a language other than what is used for the final system to speed up the process of creating the prototype l The prototype is not documented and it is not intended to be part of the final product

Disadvantages of Evolutionary and Throw-Away prototypes 1. Evolutionary prototype: l Existing management processes assume

Disadvantages of Evolutionary and Throw-Away prototypes 1. Evolutionary prototype: 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 2. Throw-Away Prototype: l Finding it difficult to turn away the prototypes as prototypes are not part of the final product. l Makes software maintenance very difficult and costly

Tools and techniques available 1. Low-tech tools Word Power point Visio 2. High-Tech tools

Tools and techniques available 1. Low-tech tools Word Power point Visio 2. High-Tech tools Visual basic Easy pilot 3. Fourth generation languages SQL MYSql Access 4. Evolutionary prototyping tools Smalltalk Lisp Xml PHP Java

Benefits of prototyping l l l Misunderstandings between software users and developers are exposed

Benefits of prototyping l l l Misunderstandings between software users and developers are exposed Missing services may be detected 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 Can give training to users before productionquality system had been delivered.

Disadvantages of prototyping l l Non-functional requirements such as those concerning reliability, robustness and

Disadvantages of prototyping l l Non-functional requirements such as those concerning reliability, robustness and safety cannot be adequately expressed in a prototype implementation. The user may not use the prototype in the same way as an operational system. Time spent on the prototype may take away from time spent solving other serious problems. Developers may be forced to endlessly refine the specifications and create many prototypes as customers continually have more wants for the project as inspired by the prototype

References l http: //www. shu. ac. uk/schools/cms/rapid. software. prototypin g/rapid. software. prototyping. html l

References l http: //www. shu. ac. uk/schools/cms/rapid. software. prototypin g/rapid. software. prototyping. html l http: //www. dacs. dtic. mil/awareness/newsletters/technews 21/dacsstc 98. html l l http: //www. softwareprototypes. com/resources/pages/SP_Ab out. html http: //nas. cl. uh. edu/helm/swen 5231/PROTO_HTML/ppfram e. htm http: //woorisol. kyungpook. ac. kr/lab/prof/Soft. Eng/ch 8. htm http: //www. sei. cmu. edu/pub/documents/92. reports/pdf/tr 13. 9 2. pdf