Systems Analysis I Prototyping & XP ISYS 200 Glenn Booker ISYS 200 Week #3 Prototyping   Prototyping is often a good tool for clarifying requirements of a system,

Download Report

Transcript Systems Analysis I Prototyping & XP ISYS 200 Glenn Booker ISYS 200 Week #3 Prototyping   Prototyping is often a good tool for clarifying requirements of a system,

Systems Analysis I
Prototyping & XP
ISYS 200
Glenn Booker
ISYS 200
Week #3
1
Prototyping


Prototyping is often a good tool for clarifying
requirements of a system, and/or resolving
risks associated with developing a system
It generally helps determine the functional
requirements for users, especially associated
with the user interface
ISYS 200
Week #3
2
Prototyping

There are four major types of prototype




ISYS 200
Patched-up prototype
Nonoperational prototype
First-of-a-series prototype
Selected features prototype
Week #3
3
Patched-up Prototype



This is a functional prototype, but it works
very crudely or inefficiently
Based on the proof of concept prototype –
slap something together quickly that will
work well enough to tell if the idea is
technically feasible
Also can be used to determine if a given
technology is compatible with the system
ISYS 200
Week #3
4
Nonoperational Prototype


This is using a prototype more like a
storyboard
The interfaces are developed, but there’s
no actual code behind them


Like the façade of a building used on a movie set
Only helps with functional requirements, and
the general look and feel of the system
ISYS 200
Week #3
5
First-of-a-series Prototype



This is the development of a fully functional
pilot version of the system, in the hopes that
it will be close to the final product
Based on this prototype, the system is refined
and then produced en masse
Might be helpful for a physical installation,
such as a MAC terminal or information kiosk
ISYS 200
Week #3
6
Selected Features Prototype



The last kind of prototype is used to
completely develop a portion of the system
This avoids over committing to the design
before a user can approve its approach
Works well with an iterative life cycle


ISYS 200
Develop the core of the system with a couple
of working features
Then see if the users like it before the rest of
the system is added
Week #3
7
Prototyping

Notice for two kinds of prototype, the
prototype is not like the final product



Patched-up prototype
Nonoperational prototype
The other two kinds of prototype are
similar to the final product


ISYS 200
First-of-a-series prototype
Selected features prototype
Week #3
8
Prototyping vs. the SDLC


Some propose that prototyping can replace
the development life cycle
This isn’t practical in most cases, because



ISYS 200
Developing a First-of-a-series prototype is about
the same effort as following the SDLC to create
the same thing
Prototypes often use impromptu designs, which
couldn’t meet nonfunctional system requirements
Prototyping may stop the design process
prematurely
Week #3
9
Prototyping Guidelines

Guidelines for developing a “Selected
features prototype” include





ISYS 200
Estimate costs for creating the desired parts
of the system
Work in manageable modules
Build the prototype quickly
Modify the prototype iteratively; minimize coupling
Focus on the user interface; or users will hate
the system from the beginning
Week #3
10
Prototyping Disadvantages

It can be hard to distinguish between
finishing prototyping, and starting
development of the real system



Need to make sure the scope of prototyping
is clear
Users may view the prototype as the
end product
Users may wonder why the real system
takes so much longer than the prototype
ISYS 200
Week #3
11
Prototyping Advantages


Prototyping gives an opportunity to ensure
that the users’ needs are clearly translated
into system requirements
Prototyping helps clarify if the project is
reasonably close to the intended scope


Can stop funding the project if it isn’t fixable
Prototyping gives visibility into the
developer’s design concept, which
is often reassuring to the customer
ISYS 200
Week #3
12
Prototyping with COTS

COTS (Commercial, Off-The-Shelf) products
are used in almost every information system


ISYS 200
You don’t design custom motherboards, operating
systems, database management systems, etc. –
instead you use a commercially available product
Though an extreme example, even ERP
applications such as SAP and PeopleSoft could
be considered COTS products, even though they
are heavily customized
Week #3
13
Users and Prototyping


Analysts need honest, realistic involvement
from users, or prototyping will have no benefit
Users play a key role in prototyping



ISYS 200
Users should experiment with the prototype
Give qualitative feedback – do they like it,
and why or why not?
Give quantitative feedback – what features
are missing, hard to use, counter-intuitive,
not needed, etc.? Don’t ask for the impossible!
Week #3
14
Rapid Application
Development (RAD)



RAD is another method for speeding
development time, this time using
specialized development tools
Often used when time to market is critical
RAD uses three phases



ISYS 200
Requirements Planning Phase
RAD Design Workshop
Implementation
Week #3
15
Requirements Planning Phase



Users and analysts identify the objectives
of the system, and use that to determine
the information requirements
May involve high level business managers,
e.g. a CIO, as well as users and analysts
Focus is on solving the business problems
to meet goals
ISYS 200
Week #3
16
RAD Design Workshop

This is highly iterative between two activities



Work with users to design the system
Build the system
This may involve prototyping to build part of
the actual system, and refine it from user
feedback (selected features prototyping)

ISYS 200
Then repeat for all parts of the system
Week #3
17
RAD Implementation



Implementation here means putting the
system into operational use
Often RAD projects have no legacy system,
so there is no conversion strategy needed
If system features are sufficiently modular,
parts of it can be implemented when
completed, instead of waiting for the entire
system to be ready
ISYS 200
Week #3
18
RAD Tools


Most RAD tools are object oriented
Choice of tool may depend on the need
for client/server support



Microsoft Access doesn’t
Microsoft Visual Studio does
Often RAD applications are relatively
small and not mission critical
ISYS 200
Week #3
19
RAD vs. the SDLC

RAD has fewer management controls over a
project than a typical development life cycle



A key tradeoff is the opportunity for development
speed, versus the higher risk
RAD has less systematic validation of the
solution, so there is higher risk of missing
a key requirement, or using a weak design
RAD has little documentation, making the
application harder to maintain
ISYS 200
Week #3
20
When RAD is Good

RAD works well when




ISYS 200
Your developers are experienced using it
There are critical business reasons for
speeding development
Users can support the development process
The possible gains are worth the additional risks
Week #3
21
Extreme Programming (XP)

Extreme Programming is one of a family of
“agile” development methods which includes




Scrum
DSDM
Evo
And others
Please note that the linked file has copyright by the Software Productivity Consortium.
ISYS 200
Week #3
22
Extreme Programming (XP)

Agile projects



ISYS 200
Attack small but complex problems
Must balance cost and time-to-market against
product features and design robustness
Operate in poorly defined, dynamic markets
Week #3
23
Extreme Programming (XP)



Extreme Programming tries to accelerate
the development life cycle through rapid
feedback and incremental development
XP allows and encourages changes to occur
Four values and five principles define the
foundation of extreme programming
ISYS 200
Week #3
24
Four XP Values




Open communication to identify and fix
problems as early as possible
Strive for simplicity, both in design, and in
the approach to defining tasks (KISS)
Encourage clear, specific feedback
Have the courage to admit mistakes, and
follow your instincts
ISYS 200
Week #3
25
Five XP Principles


Provide rapid feedback (sound familiar?)
Assume the simplest solution




Contradicts normal practice to plan for future
enhancements
Accept incremental change, hence avoid
sweeping changes
Embrace change as a good thing to help
the project adapt
Perform quality work
ISYS 200
Week #3
26
Four XP Activities

XP includes activities you’d expect from
any software life cycle




Design – here, evolutionary design is normal
Code
Test – here, automated testing is assumed
But it also includes listening, to help
overcome the relative lack of documentation

ISYS 200
Listen to other developers, and the customer
Week #3
27
Four XP Resource Controls

XP has the same kinds of resources any
other project has:





Time (schedule)
Scope of the product (its features)
Cost (related to the amount of effort)
Quality
Planning for XP development needs to
balance these resources to meet the project’s
needs and customer’s wishes (we hope)
ISYS 200
Week #3
28
Four XP Core Practices

XP is best known for its core practices




Short releases – some features now, others later
Forty-hour workweek – don’t burn out
your developers!
Onsite customer – to make all that
communication possible
Pair programming – develop code in pairs, so
everyone can quickly have peer reviews

ISYS 200
Change pairs frequently to keep objectivity intact
Week #3
29
XP Development Process

XP has a life cycle (p. 77), with these phases





ISYS 200
Exploration the concept
Planning
Conduct many iterations until you get to the first
release
Productionizing – build the rest of the system in
more iterations
Maintenance – leading back to planning
improvements
Week #3
30
XP Stories


XP captures requirements in oral stories
Each story describes a type of user activity
which the system will need to support




ISYS 200
Also known as scenarios
They are used as the basis for estimating the
project resources needed
Stories are simplified “use cases”, which you’ll
see expressed in much more detail in ISYS 355
A system may have dozens or 100’s of stories
Week #3
31
XP vs. RUP

XP has many similarities to the Rational
Unified Process (RUP), which is covered
in ISYS 420



ISYS 200
Both develop the system architecture and
implement high risk features first, then mass
produce the low risk features
Both are iterative and use short release cycles
Both try to speed development compare to a
traditional life cycle (SDLC)
Week #3
32
XP Tools

XP was originally developed in a Smalltalk
tool called SUnit


Now a Java equivalent exists, JUnit, and other
variants like DUnit (for Borland’s Delphi)
XP was designed to be independent of its
development environment, since tools
change quickly

ISYS 200
See sourceforge.net for open source
development tools
Week #3
33