Prototyping

www.hndit.com
IT2005
System Analysis &
Design
Week 5 & 6 -Major Components of Systems Development
1
www.hndit.com
Major components of system
development
1. Methodology
2. Modeling Methods or Techniques
3. Tools
2
www.hndit.com
Methodology
• A very formal and accurate system
development process that defines a set of
– Activities
– Methods
– Best practices
– Deliverables
– Automated tools
Methodology
Methods
Tools
Or Techniques
3
www.hndit.com
Methodology..
Provides the framework
1. Has a predefined set of steps
2. Ensures that systems are built in the most
effective way
Eg:
SSADM (structured methodologies)
STRADIS (Structured Analysis, Design and
Implementation of Information Systems)
YSM (Yourdon Systems Method)
4
www.hndit.com
Methodology
Modeling Methods
Or Techniques
Tools
Eg: Rational rose
Eg: Class diagram,
usecase diagram
5
www.hndit.com
Modeling method
• A set of techniques used to implement a Methodology.
• Data Flow Diagrams
– A process model
– Depict the flow of data through a system and the work
performed by the system
• Entity Relationship Diagrams
– A data model
– Depict data in terms of entities and relationships described
by the data
– Consists of several notations
• Structure Charts etc.
6
Tools
www.hndit.com
Tools are Software systems and they assist analysts
and designers to build information systems.
General Aim :
– Decrease the human effort required to develop
the software
– Increase the quality of software
– Tools will support methodologies but will not
replace system analysts.
e.g. Easy Case, Rational Rose
7
www.hndit.com
Underlying Principles for System
Development methodology
P1: Get the system users involved
P2: Use a problem-solving approach
P3: Establish phases and activities.
P4 : Document through out Development
P5: Establish standards
P6 :Manage the process and Projects
P7:Justify systems as Capital Investments.
P8:Don’t be afraid to cancel or revise scope.
P9:Divide and conquer
P10: Design systems for growth and change.
8
www.hndit.com
What is a Software Process?
• A set of ordered tasks involving activities ,
constraints and resources that produce a
software system.
9
www.hndit.com
Software process models
•
•
•
•
•
•
•
•
•
•
Waterfall model
Prototyping models
Evolutionary models
The spiral model
Formal development
Incremental development
Rapid Application Development
Unified Process
Agile Process
Extreme Programming (XP)
10
www.hndit.com
•
The
Waterfall
model
Separate and distinct phases of specification
and development
• A linear sequential model
requirements
analysis & spec
software
design
coding
testing
Maintenance
11
www.hndit.com
Software Life Cycle Models
• Waterfall lifecycle
12
www.hndit.com
Waterfall Strengths
 Easy to understand, easy to use
 Provides structure to inexperienced staff
 Milestones are well understood
 Sets requirements stability
 Good for management control (plan, staff,
track)
 Works well when quality is more important
than cost or schedule
13
www.hndit.com
Problems with Waterfall Development
Approach
14
www.hndit.com
Problems with Waterfall Development
Approach……
There are several problems with this approach.
1.
2.
3.
4.
It has a rigid design
Inflexible
It has a top-down procedure
One phase must be completed before the next
phase starts
5. No phase can be repeated
6. Time consuming
There are several criticisms of the Waterfall
development approach
15
www.hndit.com
Modified Waterfall Development
Approach
• Uses the same phases as the pure waterfall development approach.
• Allow some of the stages to overlap, such as the requirements stage
and the design stage.
• Another common modification is to incorporate prototyping into the
requirements phases.
• Overlapping stages make it possible to integrate feedback from the
design phase into the requirements.
• Progress is more difficult to track.
16
www.hndit.com
When to use the Waterfall Model
 The linear cycles are usually best suited to
problems which are well understood and highly
structured.
 Attractive for large problems.
 Projects which have clear and stable
requirements.
www.hndit.com
Prototyping
It is very difficult for end-users to anticipate how they will use
new software systems to support their work. If the system is
large and complex, it is probably impossible to make this
assessment before the system is built and put into use.
A prototype ( a small version of the system) can be used to clear
the vague requirements. A prototype should be evaluated with
the user participation.
There are two types of Prototyping techniques
* Throw-away Prototyping
* Evolutionary Prototyping
www.hndit.com
Throw-away and Evolutionary Prototyping
Throw-away
Executable prototype +
prototyping
System specification
Outline
Requirements
Evolutionary
prototyping
Delivered system
www.hndit.com
Throw-away Prototyping
establish
outline
specification
develop
prototype
evaluate
prototype
specify
system
components
design and
implement
system
Delivered
validate system
software
system
www.hndit.com
Throw-away Prototyping
The objective is to understand the system
requirements clearly. Starts with poorly understood
requirements. Once the requirements are cleared,
the system will be developed from the beginning.
This model is suitable if the requirements are vague
but stable.
www.hndit.com
Some problems with Throw-away Prototyping
1. Important features may have been left out of the prototype to
simplify rapid implementation. In fact, it may not be possible to
prototype some of the most important parts of the system
such as safety-critical functions.
2. An implementation has no legal standing as a contract
between customer and contractor.
3. Non-functional requirements such as those concerning
reliability, robustness and safety cannot be adequately tested
in a prototype implementation.
Evolutionary Prototyping
Develop abstract
specification
Build prototype
system
NO
YES
Deliver
system
System
Adequate?
www.hndit.com
Evaluate prototype
system
www.hndit.com
Structured Evolutionary Prototyping
Strengths
1. Customers can “see” the system requirements as they are
being gathered
2. Developers learn from customers
3. A more accurate end product
4. Unexpected requirements accommodated
5. Allows for flexible design and development
6. Interaction with the prototype stimulates awareness of
additional needed functionality
24
www.hndit.com
Prototyping Weaknesses
•
•
•
•
•
Prototyping can lead to false expectations.
Prototyping can lead to poorly designed systems.
Overall maintainability may be overlooked
The customer may want the prototype delivered.
Process may continue forever (scope creep)
• Continual change tends to corrupt the structure of
the prototype system. Maintenance is therefore
likely to be difficult and costly.
25
Evolutionary Prototyping (continued)
www.hndit.com
Disadvantages
* Prototype usually evolve so quickly that it is not cost- effective to
produce greater deal of documentation
* Continual change tends to corrupt the structure of the prototype
system. Maintenance is therefore likely to be difficult and costly.
* It is not clear how the range of skills which is normal in software
engineering teams can be used effectively for this mode of
development.
* Languages which are good for prototyping not always best for final
product.
www.hndit.com
The RAD Model
Team 2
Team 1
Team 3
Business
Business
modeling
modeling
Business
Data
modeling
Data
modeling
modeling
Data
modeling
Process
Process
Process
modeling
Application
modeling
generation
modeling
Application
Application
generation
generation
turnover
Testing &
Testing &
turnover
60 –90 days
Testing &
turnover
Processes in the RAD model
www.hndit.com
Business modelling - The information flow in a business system considering its
functionality.
Data Modelling - The information flow defined as part of the business modelling
phase is refined into a set of data objects that are needed to support the business
Process Modelling - The data objects defined in the data modelling phase are
transformed to achieve the information flow necessary to implement business
functions.
Application generation - RAD assumes the use of 4GL or visual tools to generate the
system using reusable components.
Testing and turnover
New components must be tested and all interfaces must be fully exercised
www.hndit.com
Cont. RAD lifecycle
Contract
Requirement
Definition/
Refinement
Design
Feedback
Prototype
Development
Cutomer
Prototype
Review
Deployment
29
www.hndit.com
The RAD model
• Rapid Application Development (RAD) is an
incremental software development process
model that emphasizes an extremely short
development cycle.
• If requirements are well understood and project
scope is constrained, the RAD process enables a
development team to create a ‘fully functional
system’ within very short time periods (eg. 60 to
90 days)
www.hndit.com
Some problems with the RAD model
1. RAD requires sufficient human resources to create
right number of RAD teams
2.
RAD requires developers and customers who are
committed to the rapid-fire activities necessary to get
a system completed in a much abbreviated time
frame.
3. If a system cannot be properly modularized, building
the components necessary for RAD will be
problematic.
4. RAD is not applicable when technical risks are high.
www.hndit.com
Incremental Model
conception
architecture
deliver 1st
Increment
structure
analysis
design
code
test
deliver 2nd
Increment
feedback
analysis
design
code
test
feedback
analysis
design
code
deliver 3rd
Increment
test
www.hndit.com
Incremental Development
• The Incremental development model involves
developing the system in an incremental fashion.
• The most important part of the system is fist
delivered and the other parts of the system are
then delivered according to their importance.
• Incremental development is more manageable
than evolutionary prototyping as the normal
software process standards are followed.
• Plans and documentation must be produced
www.hndit.com
Iterative Development Approach
34
www.hndit.com
Iterative Development Approach
• Iterative development approach completes the entire
IS in successive iterations.
• Each iteration does some
– analysis
– design
– construction
• Allows versions of usable information to be delivered
in regular and shorter time frames.
• The iteration process helps to develop a part of the
new system and place it into operation as quickly as
possible.
35
www.hndit.com
•
Spiral
model
The spiral model (Boehm, 1988) aims at risk reduction by
any means in any phase.
• quadrant 1
– determine objectives of that phase
– alternatives and constraints.
• quadrant 2
– analyzed form the viewpoint of risk
– solutions to minimize these risks are investigated, often using
prototyping.
• quadrant 3
– where the traditional waterfall model phases are put into
practice.
• Quadrant4
– the results of the risk-reduction strategies
36
Spiral model
www.hndit.com
37
Spiral Quadrant
www.hndit.com
Determine objectives, alternatives
and constraints
• Objectives: functionality, performance,
hardware/software interface, critical
success factors, etc.
• Alternatives: build, reuse, buy, subcontract, etc.
• Constraints: cost, schedule, interface,
etc.
38
www.hndit.com
Spiral Quadrant
Evaluate alternatives, identify and resolve risks
• Study alternatives relative to objectives and
constraints
• Identify risks (lack of experience, new
technology, tight schedules, poor process, etc.
• Resolve risks (evaluate if money could be lost
by continuing system development)
39
www.hndit.com
Spiral Quadrant
Develop next-level product
• Typical activates:
– Create a design
– Review design
– Develop code
– Inspect code
– Test product
40
www.hndit.com
Spiral Quadrant
Plan next phase
• Typical activities
– Develop project plan
– Develop configuration management plan
– Develop a test plan
– Develop an installation plan
41
www.hndit.com
Spiral Model Strengths
• Provides early indication of insurmountable
risks, without much cost
• Users see the system early because of rapid
prototyping tools
• Critical high-risk functions are developed first
• The design does not have to be perfect
• Users can be closely tied to all lifecycle steps
• Early and frequent feedback from users
42
www.hndit.com
Spiral Model Weaknesses
• Time spent for evaluating risks too large for
small or low-risk projects
• The model is complex
• Risk assessment expertise is required
• May be hard to define objective, verifiable
milestones that indicate readiness to proceed
through the next iteration
43
www.hndit.com
When to use Spiral Model
•
•
•
•
•
•
•
•
•
When creation of a prototype is appropriate
When costs and risk evaluation is important
For medium to high-risk projects
Long-term project commitment unwise because of
potential changes to economic priorities
Users are unsure of their needs
Requirements are complex
New product line
Significant changes are expected (research and exploration)
44
www.hndit.com
V-Shaped SDLC Model
Testing of the product is planned in parallel with a corresponding
phase of development
45
www.hndit.com
46
www.hndit.com
V-Shaped Strengths
• Emphasize planning for verification and
validation of the product in early stages of
product development
• Each deliverable must be testable
• Project management can track progress by
milestones
• Easy to use
47
www.hndit.com
V-Shaped Weaknesses
• Does not easily handle concurrent events
• Does not handle iterations or phases
• Does not easily handle dynamic changes in
requirements
• Does not contain risk analysis activities
48
Waterfall vs Agile
www.hndit.com
Timeboxing
49
www.hndit.com
RAD: Definition?
• Many Definitions : same philosophy
• Definition 1:
– A software development process that allows
usable systems to be built within a short period
(as little as 2-3 months), often with compromises.
– It is a generic term with the meaning “speedy
development” or “Shorter schedule”
50
www.hndit.com
RAD
• Rapid Application Development (RAD) refers
to a type of software development which uses
“optimal” planning in favor of rapid
prototyping.
• The "planning" of software developed using
RAD is interleaved with writing the software
itself.
• The lack of extensive pre-planning generally
allows software to be written much faster, and
makes it easier to change requirements.
51
www.hndit.com
RAD lifecycle
• RAD compresses the step-by-step
development process into an iterative process.
– User requirements are refined.
– A system is designed.
– A prototype is developed.
– The prototype is reviewed by end-user.
– User provide feedback.
– The process is repeated.
52
www.hndit.com
Review Questions
1.
The following are initial requirements specified by some customers. Identify the
most suitable process models for these software projects.
(a) “ I need to develop a simple library system for my school. I know the
requirements very well”
(b) “I need to develop a management information system for my organization,. I may
use it for all the branches in several location in Sri Lanka. I might use it on the
Internet”.
(c ) “ I need to develop a software system to control a space shuttle”