Software Prototyping: Csc532 Term Paper
Software Prototyping: Csc532 Term Paper
SOFTWARE PROTOTYPING
ANIL KUMAR.ARIKEPUDI
1. Introduction
2. Why Prototyping
3. Prototyping Process
4. Forms of Prototyping
6. Benefits of Prototyping
7. Disadvantages of Prototyping
8. References
ABSTRACT:
Prototyping, the creation and enaction of models based on operational scenarios,
has been advocated as a useful software engineering paradigm because it lends
itself to intense interaction between customers, users, and developers, resulting
in early validation of specifications and designs. An extensive and widespread
interest in software prototyping in recent years has resulted in a daunting amount
of literature and dozens of proposed methods and tools. As with any immature
and growing technology, the expanding literature and approaches have resulted
in correspondingly expansive and confusing terminology. This report presents an
overview of technology and literature relating to the creation and use of software
system prototypes [6].
1. INTRODUCTION:
A prototype is a version of the product that reflects only the design decisions
made in the process of preparing the conceptual model, and not the decisions
driven by implementation concerns. This allows the developer to probe the
customer for further specifications. This process significantly reduces the risks
associated with the project and the customer is less likely to request changes to
the product later in the development process as they discover requirement errors
and omissions early in the software process. Prototyping also allows the
developers to consider the high-risk aspects of the specifications and therefore
consider the feasibility of the project. This allows the customer to decide whether
the project is worth while before too much of time and money are invested in the
project. Basically software prototype is not intended for design validation (its
design will often be quite different from the final system developed) but to
validate the user requirements [7].
2. WHY PROTOTYPING:
The goal of any software processes is to reduce cost and to improve the quality
of the final product. This is also used to demonstrate the feasibility of the system
early in the life cycle. This method is also useful in risk assessment and as a
means for validation to end users. Although there have been substantial
advancements in software engineering methods and tools during the past two
decades, requirements engineering still remains a key problem area in the
development of complex, software-intensive systems. The toughest part of the
software development is the analysis and setting of the exact requirements. One
major source of continued difficulty is the lack of early requirements validation. Its
not easy to validate requirements because they often are not well understood
prior to development and they change frequently during development[6].
THE IMPORTANCE OF EARLY REQUIREMENTS VALIDATION [7]
3. PROTOTYPING PROCESS:
All the objectives for developing the prototype must be considered and
documented. The main goal of the initial process will be
This stage focuses in determining the level of functionality of the prototype and
documenting these decisions. 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 so that the customer may consider that
functionality and realize what else is necessary after interacting with the
prototype. The level of functionality required will be very dependent on the goals
listed in the previous document[8].
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. The length of this stage will be greatly dependent on the
required functionality of the prototype.
At this point feedback will be gathered from both management and the customer
thus allowing the prototype to be evaluated. This evaluation is then documented
and considered. Three main events may happen after this stage, each of which is
dependent on the evaluation.
1. The customer will be happy with the prototype and the development
of the actual system will continue.
2. The project will be deemed unfeasible and the project will not
continue.
1. Evolutionary prototyping
2. Throw-away prototyping
3. Concept prototyping
1. The most needed functionality will be produced first, thereby solving the user’s
basic needs. This prevents the users from waiting through the entire
software process to get a functional system and having to wait for another
period of time if there are any discrepancies in the user's requirements.
2. This model establishes user engagement with the system. This increases the
chances of producing a system that meets the users' requirements and also
more likely to have users commit to the use of the system. However, this
procedure requires frequent feedback from the user in order to validate and
judge the success of the system [10].
.1. The first problem that arises is the management problem. The evolutionary
prototype's existing management processes always assumes a waterfall model
of development which provides more visibility. Besides that, specialist skills are
required throughout the process and it may not be available in all development
teams.
This approach is beneficial when certain requirements are not clear. 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. It is used make sure that the product will meet the
requirements of the customer.
Process
The system requirements are outlined and prototypes are developed for these
requirements. The prototypes are then evaluated by the development team, and
when required the customer will help. The specifications for the system are
derived from those prototypes that meet the requirements. This cycle is repeated,
and these smaller prototypes are gradually combined to form more functional
prototypes. This process continues until the customer is satisfied with all the
specifications. While the prototyping and the specification processes continue,
the software development proceeds with the derived specifications. Where there
are reusable components in the prototype, these are further refined and added
into the system.
2. 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.
3. The prototype is not documented and it is not intended to be part of the final
product. It is mainly used to define the specifications for the product. This
reduces the overall time that would have been spent on writing the specifications
upfront, and leaves the fine details for later where the specifications are further
defined with the help of the prototypes [10].
2. If the developer is under pressure to finish the final product, they may use
parts of the prototypes in the final product. As a result this may lead to other
problems, and it will make software maintenance very difficult and costly [10].
In the earliest design stages prototypes are often just pictures, charts and notes
designed to facilitate communication between the customer and the developer.
This type of prototyping is also known as “low tech” and both the customer and
the developer may take an active part in this form of prototyping. Low tech is also
the cheapest form of prototyping. Suitable tools include:
Word
PowerPoint
Visio
The following sections outline the tools that are suitable for “high tech”
prototyping, which is where technical skill is necessary to build the prototype. A
high tech prototype is an implemented system that has functionality. The
customer will be able to use the prototype and observe its behavior. Other
prototyping tools are necessary when deciding on the layout of the software that
should take the arrangement of a GUI or a set of web pages.
Visual Basic
Denim
EasyPilot
The next level in prototyping involves the use of 4th Generation Languages
(4GL’s), which are results orientated, compiled or interpreted and less efficient
than most other forms of code. 4GL’s are often useful for applications containing
databases. The key concern when using a 4GL is the loss of efficiency and
flexibility as this may impact design decisions [4].
SQL
MySQL
Access
Abeille
Sculptor
The following tools are more flexible then those previously mentioned and are
popular for use in evolutionary prototyping because they are also suitable for
general development and thus it is suitable for the final system to still be written
in them.
Smalltalk
Lisp
XML
PHP
Java [4]
6. BENEFITS OF PROTOTYPING:
Missing user services may be detected.
Difficult-to-use or confusing user services may be identified and refined.
Software development staff may find incomplete and/or inconsistent
requirements as the prototype is developed.
A working, albeit limited, system is available quickly to demonstrate the
feasibility and usefulness of the application to management.
The prototype serves as a basis for writing the specification for a
production quality system.
It can be used for training users before the production-quality system has
been delivered.
It can be used during system testing to run 'back-to-back' tests. This
means that the same test cases are submitted to both the prototype and to
the system being tested [4].
7. DISADVANTAGES OF PROTOTYPING:
Important system features may have been deliberately left out of the
prototype to simplify rapid implementation.
An implementation is an inadequate basis for a contract between client
and contractor
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.
A high cost of implementing an idea may lead to it being rejected early in
the cycle [4].
8. REFERENCES
1. http://www.shu.ac.uk/schools/cms/rapid.software.prototyping/rapid.softwar
e.prototyping.html
2. http://www.dacs.dtic.mil/awareness/newsletters/technews2-
1/dacsstc98.html
3. http://www.softwareprototypes.com/resources/pages/SP_About.html
4. http://nas.cl.uh.edu/helm/swen5231/PROTO_HTML/ppframe.htm
5. http://woorisol.kyungpook.ac.kr/lab/prof/SoftEng/ch8.htm\
6. http://www.sei.cmu.edu/pub/documents/92.reports/pdf/tr13.92.pdf
7. http://www.soften.ktu.lt/jep-06032/city/courses/IFPR402/protot.html
8. http://www.dacs.dtic.mil/techs/abstracts/spare.html
9. http://www.itee.uq.edu.au/~comp3500/A3webs/t1a2/
10. http://www.cs.sonoma.edu/~johnson/ces592/Lectures/Chapter08.pdf
11. http://www.comp.lancs.ac.uk/computing/resources/IanS/SE6/Slides/PDF/c
h8.pdf