Term Paper of Principles of Software Engg
Term Paper of Principles of Software Engg
Term Paper of Principles of Software Engg
Of
Roll no- 02
Sec- D2702
Reg no- 3470070011
ACKNOLEDGEMENT
THANKS TO ALL...........
Index
• Introduction
• Further Research
- Software Prototyping
- Approaches to Prototyping
- Evolutionary Prototyping
- Prototypes as specifications
- Dimensions of Prototyping
- Methods
• Bibliography
INTRODUCTION
The idea behind software prototyping is to allow people who have some stake or interest in a
system to test drive designs, rather than having to interpret those designs based on some other
means. Though not all prototypes are interactive, but the most useful application of
prototyping is based upon providing a similation of some behaviour and functionality.
Types of Software Prototyping:-
There are many different approaches to prototyping, from the very simple sketches-on-a-post-
it to rich, fully interactive software simulations. However, we can classify these into three
main categories:
Wireframes/Paper Prototypes
Wireframes and Paper Prototypes are useful early-stage techniques, though limited in as
much as they are non-interactive and usually very broad. If our project were to be painting a
landscape, you might think of wireframes and paper prototypes as the early sketches on a
notepad, or some under-painting. In other words, suggesting the basic shape but not saying
much about the details. Though often simplistic, this style of prototype is useful because they
can be very quick to create and don't require so much technical expertise to put together.
Visual Prototypes
These often come in the form of screen mock-ups, perhaps in a paper form or created using a
graphics tool such as Adobe Photoshop. They offer an opportunity to prototype the look and
feel of a system design, though not normally any functionality or operational flows. They are
often visual mock-ups rather than true prototypes, in as much as they represent a useful tool
to demonstrate potential appearances and layouts. These typically come from a designer's
viewpoint rather than a business or software expert.
Interactive Prototypes
These are far more useful, though require an increased investment in time to create. They aim
to model a system design more faithfully, and represent actual paths through that system.
They generally will combine the visual aspects of a static prototype with a certain degree of
interactive functionality. This might mean navigation, or the use of real web controls, or even
mock data processing. As a platform for demonstrating a system, these are the richest, most
useful types of prototype, although the slowest to create.
Visualisation of a design is another benefit. We all know how difficult it is to picture an end-
product from a paper specification. By creating prototype models and simulations we can
improve our understanding of what is to be developed. Once a prototype has been created for
a project, it is easy for everyone to gain a 'sneak preview' of what the end system will look
like and what it will do. This is a very productive process as problems with a design are
usually much more obvious when a prototype is created, and can be addressed long before the
costly development phase starts.
FURTHER RESEARCH
Software Prototyping
Objectives:
Prototyping is the rapid development of a system. The principal use is to help customers and
developers understand the requirements for the system
Approaches to prototyping
Evolutionary Delivered
prototyping system
Outline
Requirements
Throw-away Executable Prototype+
Prototyping SystemSpecification
Evolutionary prototyping
• Must be used for systems where the specification cannot be developed in advance
o E.g., AI systems and user interface systems
• Based on techniques which allow rapid system iterations
• Verification is impossible as there is no specification
• Validation means demonstrating the adequacy of the system
Prototypes as specifications
Dimensions of prototypes
Horizontal Prototype
A common term for a user interface prototype is the horizontal prototype. It provides a
broad view of an entire system or subsystem, focusing on user interaction more than low-
level system functionality, such as database access. Horizontal prototypes are useful for:
Vertical Prototype
Methods
There are few formal prototyping methodologies even though most Agile Methods rely
heavily upon prototyping techniques.
• Business prototypes – used to design and demonstrates the business processes being
automated.
• Usability prototypes – used to define, refine, and demonstrate user interface design
usability, accessibility, look and feel.
• Performance and capacity prototypes - used to define, demonstrate, and predict
how systems will perform under peak loads as well as to demonstrate and evaluate
other non-functional aspects of the system (transaction rates, data storage volume,
response time, etc.)
• Capability/technique prototypes – used to develop, demonstrate, and evaluate a
design approach or concept.
1. Identify prototype
2. Agree to a plan
3. Create the prototype
4. Review the prototype
Operational prototyping
Operational Prototyping was proposed by Alan Davis as a way to integrate throwaway and
evolutionary prototyping with conventional system development. "[It] offers the best of both
the quick-and-dirty and conventional-development worlds in a sensible manner. Designers
develop only well-understood features in building the evolutionary baseline, while using
throwaway prototyping to experiment with the poorly understood features."
Davis' belief is that to try to "retrofit quality onto a rapid prototype" is not the correct
approach when trying to combine the two approaches. His idea is to engage in an
evolutionary prototyping methodology and rapidly prototype the features of the system after
each evolution.
Obviously, a key to this method is to have well trained prototypers available to go to the user
sites. The Operational Prototyping methodology has many benefits in systems that are
complex and have few known requirements in advance.
Systemscraft was designed as a 'prototype' methodology that should be modified and adapted
to fit the specific environment in which it was implemented.
Systemscraft was not designed as a rigid 'cookbook' approach to the development process. It
is now generally recognised[sic] that a good methodology should be flexible enough to be
adjustable to suit all kinds of environment and situation…
The basis of Systemscraft, not unlike Evolutionary Prototyping, is to create a working system
from the initial requirements and build upon it in a series of revisions. Systemscraft places
heavy emphasis on traditional analysis being used throughout the development of the system.
Fundamental to ERD is the concept of composing software systems based on the reuse of
components, the use of software templates and on an architectural template. Continuous
evolution of system capabilities in rapid response to changing user needs and technology is
highlighted by the evolvable architecture, representing a class of solutions. The process
focuses on the use of small artisan-based teams integrating software and systems engineering
disciplines working multiple, often parallel short-duration timeboxes with frequent customer
interaction.
Key to the success of the ERD-based projects is parallel exploratory analysis and
development of features, infrastructures, and components with and adoption of leading edge
technologies enabling the quick reaction to changes in technologies, the marketplace, or
customer requirements.
To elicit customer/user input, frequent scheduled and ad hoc/impromptu meetings with the
stakeholders are held. Demonstrations of system capabilities are held to solicit feedback
before design/implementation decisions are solidified. Frequent releases (e.g., betas) are
made available for use to provide insight into how the system could better support user and
customer needs. This assures that the system evolves to satisfy existing user needs.
The design framework for the system is based on using existing published or de facto
standards. The system is organized to allow for evolving a set of capabilities that includes
considerations for performance, capacities, and functionality. The architecture is defined in
terms of abstract interfaces that encapsulate the services and their implementation. The
architecture serves as a template to be used for guiding development of more than a single
instance of the system. It allows for multiple application components to be used to implement
the services. A core set of functionality not likely to change is also identified and established.
The prototype provides a vehicle for systems engineers to better understand the
environment and the requirements problem being addressed.
A prototype is a demonstration of what's actually feasible with existing technology, and
where the technical weak spots still exist.
A prototype is an efficient mechanism for the transfer of design intent from system
engineer to the developer.
A prototype lets the developer meet earlier schedules for the production version.
A prototype allows for early customer interaction.
A prototype demonstrates to the customers what is functionally feasible and stretches
their imagination, leading to more creative inputs and a more forward-looking system.
The prototype provides an analysis test bed and a vehicle to validate and evolve system
requirements.
BIBLIOGRAPHY
WEB SITES:
www.google.co.in
www.wikipedia.com
www.wisegeek.com
www.softpanorama.org
http://woorisol.kyungpook.ac.kr/lab/prof/SoftEng/ch8.htm
www.reynardthomson.com
OTHERS: