Upload
vincent-henderson
View
213
Download
1
Embed Size (px)
Citation preview
SOFTWARE PROTOTYPING CHAPTER 4
SOFTWARE PROTOTYPING Prototype: Customers and end-users of the system find it difficult
to express their real requirements.
Software analyst find it difficult to predict how system operates and how it can interact with other system.
This problem can be avoided by presenting Prototype Model.
Prototype is a technique to demonstrate the concepts.
Definition: Prototyping is a technique for providing a reduced functionality or a limited performance version of a software system.
Prototyping can also be used as risk analysis and risk reduction technique.
Prototyping
Listen To Customer
Build/Revise Mockup
Customer Test Drives Mockup
working model of something built for study or testing or display
Prototype:
Prototype is the initial version of software system.
Prototype supports Requirement Elicitation and Requirement Validation.
User can highlight new ideas and help to develop new version of prototype.
Prototype allows the user to validate the software.
They can point out errors and omissions in the beginning.
ADVANTAGES OF PROTOTYPING IN SOFTWARE DEVELOPMENT
Prototype acts as a bridge between customers, end-users and system developer to understand the system functions.
At each stage developer adds on to the sub-system as they discover incomplete or inconsistent changes during development.
Prototype acts as ready model so that customer and user gets basic idea of the candidate system.
The purpose of prototyping is to support the analysis and design stages of a project by enabling the users to see very clearly what the system will do.
ADVANTAGES OF PROTOTYPING
Missing requirements can be added.
Incomplete and inconsistent requirements can be identified.
Prototype can be used for training the user before final system is delivered.
Disadvantages of Prototyping
1. In the first version itself, the customer often wants “few fixes” rather than rebuilding the system.
2. The first version may have some compromises.
3. Sometimes developer may take implementation compromises to get the prototype working quickly. Later developer may become comfortable with compromises and forget why they are inappropriate.
PROTOTYPE DEVELOPMENT IN SOFTWARE PROCESS
Plan prototype
Specify the objectives
Define the requirements
Include all the possible functions
Establish relationships and interfaces
Develop prototype
Evaluate the prototype
Execute prototype
1. Plan prototype: This is the first stage. Prototype type depends on the type of the project to be
developed.
Plan Prototype
Function Specificatio
n
Develop Prototype
Define Requireme
nts
Establish Objectives
EvaluatePrototype
Execute Prototype
Establish Interface &
Relationships
Process of prototype development
Prototype development in software process
2. Establish Objectives: Objectives of the project must be clearly established in the
beginning.
Prototype may not be the same for all the projects.
It is different for different projects.
Prototype may be used:
To study and validate functions of already existing system.
To study the extension of the existing system.
To set user interface.
In business and scientific cases to establish simulation movements.
Prototype development in software process
3. Define Requirements Specify the functional and non-functional
requirements of the system.
4. Function Specification
Determine input, output and process functions to get preliminary idea of the working of prototype.
5. Establish interface and relationship
Interface management is very essential as the system has to operate in a complex inter-locked pattern.
6. Develop Evaluate and execute preliminary prototype.
Prototype development in software process
TYPES OF PROTOTYPE IN SOFTWARE PROCESS
Developer can develop useful and operational prototype only when he gets the co-operation and co-ordination from client and end-users.
Prototypes can be of 2 types :-
Evolutionary prototypeThrow-away prototype
APPROACHES TO PROTOTYPING
Evolutionaryprototyping
Throw-awayPrototyping
Deliveredsystem
Executable Prototype +System Specification
OutlineRequirements
TYPES OF PROTOTYPE IN SOFTWARE PROCESS
Evolutionary prototyping
Evolutionary development is based on the idea of developing an initial implementation, exposing this to user comment and refining this through many versions until the acceptable system has been developed.
The development of the product starts with the parts
of the system, which is well understood by the developer.
This product is exposed to the user. New features are added to the product and
process continues until a final acceptable product is built.
EVOLUTIONARY PROTOTYPING
User
Executable Prototype
Suggests Modification
Prototype Version 1
Prototype Version 2
Prototype Version 3
Evolutionary prototyping
Advantages:
1. Fast delivery of the working system.2. User is involved while developing the system.3. More useful system can be delivered.4. Specifications, design and implementation
work in co-ordinated manner.
Evolutionary prototyping
Problems:1. Management Problems: Typically a waterfall model is adopted in which the development skill is required in all the development team members.
2. Maintenance problems: Continuous changes may lead to changes in the system structure that may cause maintenance problems.
3. Verification: It is impossible as there is no specification.
Throw-away prototyping The development of the product starts with
the part of system which is poorly understood.
It is then exposed to the user to get more and refined requirements.
This type of development is helpful to understand the user’s needs.
Afterwards this development part is thrown-away and actual system development starts from scratch.
THROW-AWAY PROTOTYPING
Steps in the development of throw away prototype:
Outline system requirements.Develop prototype.Evaluate prototype.Release the executable system.Throw away prototype.
Concurrentactivities
ValidationFinal
version
DevelopmentIntermediate
versions
SpecificationInitial
version
Outlinedescription
THROW-AWAY PROTOTYPE
Advantages:
If the delivered model is not as per the customer needs, then it can be discarded and development can occur with another new engineering paradigm.
Requirement risks are very less.
THROW-AWAY PROTOTYPES
Disadvantages:
Prototypes are normally undocumented.
Developers may be pressurized to deliver throw-away prototype as final system. This is not recommended.
The prototype structure is usually degraded through rapid change
The prototype probably will not meet normal organizational quality standards.
Evolutionary prototyping
Throw-away prototyping
An approach to system development where an initial prototype is produced and refined through a number of stages to the final system.
Objective: the evolutionary prototyping is to deliver a working system to end-users.
The development starts with those requirements which are best understood.
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.
• Objective: the throw-away prototyping is to validate or deliver the system requirements.
• The prototyping process starts with those requirements which are poorly understood
PROTOTYPING TECHNIQUES
Is a developing technique which focuses on fast or speedy delivery of system rather than system characteristics such as efficiency, performance and reliability.
Three important rapid prototype techniques/types are:1. Dynamic high level language development.2. Database Programming3. Component and application assembly (also
called as reusability).
PROTOTYPING TECHNIQUES1. Dynamic high level language development:
They simplify the program development.
Reduces many problems such as storage allocation and management.
Till recently high level languages were not widely used for system development because they need large run-time support system, which increases the storage needs and reduces the execution speed etc.
However, with the increasing power and reduction in the cost of computer hardware, these factors have become less important.
2. Database programming:
It is carried out using specialized language which embeds (fix) knowledge of the database and which also includes operations for database manipulation.
The term fourth generation language (4GL) refers to both database Programming Language and Supporting Environment.
2. Database programming:
The tools which are included in a 4GL environment are:
1. A database query which is now SQL.
2. An interface generator which is used to create forms for data input and display.
3. A spreadsheet for the analysis and manipulation of numeric information.
4. A report generator which is used to define and create reports from information in the database.
3. Component and application assembly:
Prototypes can be constructed quickly if a set of reusable components are available.
Prototype development with reuse can be supported at two levels.
1. Application level 2. Component level
3. Component and application assembly:
1. Application level: In this the entire application is integrated with the prototype so that the functionality can be shared.
Ex: Suppose if a prototype requires text processing capability, then it can be integrated with word processing system such as MS-Office application.
2. Component level: In this the individual components are integrated within a standard framework.Ex: VB to implement the system.
USER INTERFACE PROTOTYPING
GUI (Graphical User Interface) have now become standard for the interactive system.
From the Software Engineering point of view, prototyping is essential part of user interface design process.
Because of the dynamic nature of user interface, textual descriptions and diagrams are not sufficient.
Therefore, evolutionary prototype with the end user involvement is the sensible way of developing (GUI) software system.
USER INTERFACE PROTOTYPING
Interface generators are graphical design system, where interface components such as menus, icons and buttons are selected from menu and positioned on an interface.
In the Web pages- buttons, fields, tables can be included.
Multimedia objects can also be included which gives access to pictures, sound etc.
PROTOTYPING EXAMPLE
Prototype for building a tool to track how much a user exercises each day
Graphical representation of first prototype, in which the user must type the day, month and year
PROTOTYPING EXAMPLE (CONTINUED) Second prototype shows a more interesting and
sophisticated interface involving a calendar User uses a mouse to select the month and year The system displays the chart for that month, and
the user selects the appropriate date in the chart
PROTOTYPING EXAMPLE (CONTINUED)
Third prototype shows that instead of a calendar, the user is presented with three slide bars User uses the mouse to slide each bar left or right The box at the bottom of the screen changes to show
the selected day, month, and year
QUESTIONS AND EXERCISES
Two mark questions:
1.Define prototype?2.What are the characteristics of prototype?3.What is prototype process?4.Define prototype model.5.What are the advantages of prototype model?6.What are the disadvantages of prototype model?7.Define evolutionary prototyping.8.Define throw-away prototyping.9.What are the objectives of prototyping?
35
QUESTIONS AND EXERCISES
Five, Seven and Eight marks Questions:1. What is the basis of prototyping as a software engineering
paradigm?2. Explain prototyping model?3. What is the need for prototyping in software development?4. What are the benefits of developing a prototype early in software
process?5. Difference between evolutionary and throw-away prototyping.6. Write a short notes on a) Prototyping techniquesb) User interface prototyping1. Explain prototype development process with advantages and
disadvantages.2. Describe two types of prototyping with advantage sand
disadvantages.
36