Chapter 8. Software Prototyping
Chapter 8. Software Prototyping
Software Prototyping
Chapter 8. Software Prototyping
‐. The benefits of developing a prototype early in the software process are :
(1) Misunderstandings between software developers and users may be identified as the system functions
are demonstrated.
(2) Missing user services may be detected.
(3) Difficult‐to‐use or confusing user services may be identified and refined.
(4) Software development staff may find incomplete and/or inconsistent requirements as the prototype is
developed.
(5) A working, albeit limited, system is available quickly to demonstrate the feasibility and usefulness of
the application to management.
(6) The prototype serces as a basis for writing the specification for a production quality system.
‐. Software prototypes also have other uses:
(1) User training
(2) System testing
‐. The final stage of the process is prototype evaluation.
‐. There are non‐technical managerial problems which may make it difficult to use prototyping in some organizations.
8.1 Prototyping in the software process
‐. One way of tackling this difficulty is to use an evolutionary approach to systems development.
‐. Alternatively, a deliverate decision mignt be made to build a 'throw‐away' prototype to help requirements analysis
and validation.
‐. There is an important difference between the objectives of evolutionary and throw‐away programming:
(1) The objective of evolutionary prototyping is to deliver a working system to end‐users.
(2) The objective of throw‐away prototyping is to validate or derive the system requirements.
8.1.1 Evolutionary prototyping
‐. There are three main problems with evolutionary prototyping which are particularly important when large,
long‐lifetime systems are to be developed:
‐. Difficulties do not mean that evolutionary prototyping should be rejected.
8.1.2 Throw‐away prototyping
‐. This approach extends the requirements analysis process with the intention of reducing overall lige cycle costs.
‐. Customers and end‐users should resist the temptation to turn the throw‐away prototyping into a delivered system
that is put into use.
8.1.3 Incremental development
‐. This incremental development model involves developing the requirements and delivering the system in an
incremental fashion.
‐. Incremental development is more manageable than evolutionary prototyping as the normal software process
standards are followed.
‐. A problem with incremental development is that the system architecture has to be estabilished before the
http://woorisol.kyungpook.ac.kr/lab/prof/softeng/ch8.htm 1/2
4/29/2015 Chapter 8. Software Prototyping
requirements are complete.
8.2 Prototyping techniques
‐. There are a number of techniques which have been used for system prototyping. These include:
+. Executable specification languages,
+. very high level language,
+. application generators and fourth‐generation languages,
+. composition of reusable components.
8.2.1 Executable specification languages
‐. There are practical difficulties in applying this approach.
8.2.2 Very high level languages
‐. Very high level languages are programming languages which include powerful data management facilities.
‐. Very high level dynamic languages are not normally used for large system development because they
need a large run‐time support system.
8.2.3 Fourth‐generation languages
‐. Fourth‐generation languages are successful because there is a great deal of commonality across data
processing applications.
‐. There is no standardization or uniformity across fourth‐generation languages.
8.2.4 Composition of reusable components
‐. Prototyping with reusable components involves developing a system specification by taking account of
what reusable components are available.
‐. Prototyping using reusable components is often combined with other approaches using very high level
or fourth‐generation languages.
8.3 User interface prototyping
‐. Interface generation systems may be based aroun user interface management systems which provide basic user interface
functionality such as menu selection, object display and so on.
‐. From a software engineering point of view, it is important to realize that user interface prototyping is an essential part
of the process.
[Previous] [Next]
http://woorisol.kyungpook.ac.kr/lab/prof/softeng/ch8.htm 2/2