System Analysis and Design
Unit 1: Foundations for Systems Development
1.2 Other Approach
Instructor
chaturbhuj Bhatt
chaturbhujbhatt55@gmail.com
1.2 Other Approaches: Syllabus
2
Introduction
Prototyping
Spiral
Rapid Application Development (RAD)
Introduction to Agile Development
Introduction
3
The traditional waterfall approach focuses on
compartmentalizing project into several phases.
Alternatives to Traditional Waterfall SDLC are:
Prototyping
Spiral
Rapid Application Development (RAD)
Agile Methodologies
Prototyping: Introduction
4
Iterative development process:
Requirements quickly converted to a working
system
System is continually revised
Close collaboration between users and analysts
(trial-and-error method)
Prototyping: Types
5
Rapid Throwaway Prototyping:
Developers can explore the ideas as well as get proper
customer feedback.
Prototype need not be a final one, and so it can be further
iterated to develop new versions of the final product.
Evolutionary Prototyping:
Developed prototype will primarily be incremented for
refining on the foundation of customer opinion until the
final one gets accepted.
It provides an improved way which can save time and
effort.
Prototyping: Model
6
Start Stop
Requirement Engineer
Gathering Product
Refining
Quick Design
Prototype
Building
Prototype User Evaluation
Prototyping Model
Prototyping: Phases
7
Requirements Gathering:
Requirements of the system are defined in detail.
The user is interviewed in order to know the requirements of
the system.
Quick Design:
When requirements are known, a preliminary design or quick
design for the system is created.
It is not a detailed design and includes only the important
aspects of the system, which gives an idea of the system to the
user.
A quick design helps in developing the prototype.
Prototyping: Phases
8
Build Prototype:
Information gathered from quick design is modified to form
the first prototype, which represents the working model of the
required system.
User Evaluation:
Proposed system is presented to the user for thorough
evaluation of the prototype to recognize its strengths and
weaknesses.
Comments and suggestions are collected from the users and
provided to the developer.
Prototyping: Phases
9
Refining Prototype:
User evaluates the prototype and if he is not satisfied, the
current prototype is refined according to the requirements.
A new prototype is developed with the additional information
provided by the user.
The new prototype is evaluated just like the previous prototype.
This process continues until all the requirements specified by
the user are met.
Once the user is satisfied with the developed prototype, a final
system is developed on the basis of the final prototype.
Prototyping: Phases
10
Engineer Product:
The user accepts the final prototype.
The final system is evaluated thoroughly followed by the
routine maintenance on regular basis for preventing large-scale
failures and minimizing downtime.
Prototyping: Advantages
11
The customers get to see the partial product early in the life
cycle. This ensures a greater level of customer satisfaction and
comfort.
New requirements can be easily accommodated as there is
scope for refinement.
Missing functionalities can be easily figured out.
Errors can be detected much earlier thereby saving a lot of
effort and cost, besides enhancing the quality of the software.
The developed prototype can be reused by the developer for
more complicated projects in the future.
Flexibility in design.
Prototyping: Disadvantages
12
There are no parallel deliverables.
It is a time consuming if customer asks for changes in
prototype.
This methodology may increase the system complexity as
scope of the system may expand beyond original plans.
The invested effort in the preparation of prototypes may be
too much if not properly monitored.
Customer may get confused in the prototypes and real
systems.
Spiral
13
A risk-driven process model generator that is used to
guide multi-stakeholder concurrent engineering of
software intensive systems.
The Radius of the spiral at any point represents the
expenses (cost) of the project so far, and the angular
dimension represents the progress made so far in the
current phase.
Spiral: Phases
14
1. Objectives 2. Identify and
determination and resolve risks
identify alternative
solutions
4. Review and 3. Develop next
plan for next version of the
phase product
Different Phases of Spiral Model
Spiral: Phases
15
Objectives determination and identify alternative
solutions:
Requirements are gathered from the customers and the objectives
are identified, elaborated and analyzed at the start of every phase.
Then alternative solutions possible for the phase are proposed in
this quadrant.
Identify and resolve Risks:
During the second quadrant all the possible solutions are
evaluated to select the best possible solution.
Then the risks associated with that solution is identified and the
risks are resolved using the best possible strategy.
At the end of this quadrant, Prototype is built for the best
possible solution.
Spiral: Phases
16
Develop next version of the Product:
During the third quadrant, the identified features are
developed and verified through testing. At the end of the
third quadrant, the next version of the software is available.
Review and plan for the next Phase:
In the fourth quadrant, the Customers evaluate the so far
developed version of the software.
In the end, planning for the next phase is started.
Spiral: Advantages
17
High amount of risk analysis hence, avoidance of
Risk is enhanced.
Good for large and mission-critical projects.
Strong approval and documentation control.
Additional Functionality can be added at a later date.
Software is produced early in the software life cycle.
Spiral: Disadvantages
18
Can be a costly model to use.
Risk analysis requires highly specific expertise.
Project’s success is highly dependent on the risk
analysis phase.
Doesn’t work well for smaller projects.
Rapid Application Development (RAD)
19
RAD is an object-oriented approach to systems development
that includes a method of development as well as software
tools.
The RAD design workshop is the heart of the interactive development process
RAD: Phases
20
There are three broad phases to RAD that engage
both users and analysts in assessment, design, and
implementation and they are:
Requirements Planning
RAD Design Workshop
Implementation
RAD: Requirements Planning Phases
21
In this phase, users and analysts meet
to identify objectives of the application or system and
to identify information requirements arising from those objectives.
This phase requires intense involvement from both groups;
It is not just signing off on a proposal or document.
It may involve users from different levels of the organization.
The orientation in this phase is toward solving business
problems.
The focus will always remain on reaching business goals.
RAD: RAD Design Workshop Phases
22
This phase is a design-and-refine phase that can best be
characterized as a workshop.
Usually participants are seated at round tables or in a U-
shaped configuration of chairs with attached desks
where each person can see the other and
where there is space to work on a notebook computer.
During this phase, users respond to actual working prototypes
and analysts refine designed modules based on user responses.
The workshop format is very exciting and stimulating
If experienced users and analysts are present, there is no
question that this creative endeavor can propel development
forward at an accelerated rate.
RAD: Implementation Phases
23
Analysts work with users intensely during the workshop to
design the business or nontechnical aspects of the system.
As soon as these aspects are agreed on and the systems are built
and refined, the new systems or part of systems are tested and
then introduced to the organization.
RAD can be used to create new ecommerce applications
RAD design workshop will have generated excitement, user
ownership, and acceptance of the new application.
Typically, change brought about in this manner is far less
wrenching than when a system is delivered with little or no user
participation.
RAD: Advantages
24
Changing requirements can be accommodated.
Progress can be measured.
Iteration time can be sort with use of powerful RAD
tools.
Productivity with fewer people in short time.
Reduce development time.
Increases reusability of components.
RAD: Disadvantages
25
Dependency on technically strong team members for
identifying business requirements.
Only system that can be modularized can be built
using RAD.
Requires highly skilled developers/designers.
High dependency on modeling skills.
Inapplicable to cheaper projects as cost.
Introduction to Agile Development
26
The Agile software development model was mainly
intended for helping developers build a project which
can adapt to transforming requests quickly.
The most important endeavor for developing the Agile
model is to make easy and rapid project achievement.
For attaining this task, developers need to preserve the
agility during development.
Agility can be achieved by correcting the progression
to the project by eliminating activities which may not
be crucial for that specific project.
Development Process of Agile Project
27
Two words that
characterize a project
done with an agile
approach are interactive
and incremental.
Five distinct stages:
Exploration,
Planning,
Iterations to the first release
Productionizing
Maintenance
The five stages of the agile modeling development process
show that frequent iterations are essential to successful
system development
Development Process of Agile Project:
Phases
28
Exploration
During exploration, analyst will explore your environment,
asserting conviction that the problem can and should be
approached with agile development, assemble the team,
and assess team member skills.
This stage will take anywhere from a few weeks to a few
months.
Analyst will be actively examining potential technologies
needed to build the new system.
During this stage analyst should practice estimating the
time needed for a variety of tasks.
Development Process of Agile Project:
Phases
29
Customers are experimenting with writing user stories.
The point is to get the customer to refine a story enough so
that analyst can efficiently estimate the amount of time it
will take to build the solution into the system as planning.
This stage is all about adopting a playful and curious
attitude toward the work environment, its problems,
technologies, and people.
Development Process of Agile Project:
Phases
30
Planning
In contrast to the first stage, planning may only take a few
days to accomplish.
In this stage analyst and the customers agree on a date
anywhere from two months to half a year from the current
date to deliver solutions to their most pressing business
problems.
If analyst’s exploration activities were sufficient, this stage
should be very short.
Development Process of Agile Project:
Phases
31
The planning game spells out rules that can help formulate
the agile development team’s relationship with their
business customers.
They are a basis for building and maintaining a
relationship.
The goal of the game is to maximize the value of the
system produced by the agile team.
The strategy pursued by the agile development team is
always one of limiting uncertainty (downplaying risk).
To do that they design the simplest solution possible, put
the system into production as soon as possible, get
feedback from the business customer about what’s working,
and adapt their design from there.
Development Process of Agile Project:
Phases
32
Iterations to the First Release
This stage is composed of iterations to the first release.
Typically these are iterations (cycles of testing, feedback,
and change) of about three weeks in duration.
Analyst will be pushing to sketch out the entire architecture
of the system, even though it is just in outline or skeletal
form.
One goal is to run customer-written functional tests at the
end of each iteration.
Development Process of Agile Project:
Phases
33
During the iterations stage analyst should also question
whether the schedule needs to be altered or whether analyst
is tackling too many stories.
Make small rituals out of each successful iteration,
involving customers as well as developers.
Always celebrate the progress, even if it is small, because
this is part of the culture of motivating everyone to work
extremely hard on the project.
Development Process of Agile Project:
Phases
34
Productionizing
The feedback cycle speeds up so that rather than receiving
feedback for an iteration every three weeks, software
revisions are being turned around in one week.
Analyst may institute daily briefings so, everyone knows
what everyone else is doing.
The product is released in this phase, but may be improved
by adding other features.
Development Process of Agile Project:
Phases
35
Getting a system into production is an exciting event.
Make time to celebrate with your teammates and mark the
occasion.
One of the watchwords of the agile approach, with which
we heartily agree, is that it is supposed to be fun to develop
systems
Development Process of Agile Project:
Phases
36
Maintenance
Once the system has been released, it needs to be kept
running smoothly.
New features may be added, riskier customer suggestions
may be considered, and team members may be rotated on
or off the team.
The attitude you take at this point in the developmental
process is more conservative than at any other time.
Introduction to Agile Development:
Advantages
37
Working through Pair programming produce well written
compact programs which has fewer errors as compared to
programmers working alone.
It reduces total development time of the whole project.
Customer representative get the idea of updated software
products after each iteration. So, it is easy for him to change
any requirement if needed.
Introduction to Agile Development:
Disadvantages
38
Due to lack of formal documents, it creates confusion and
important decisions taken during different phases can be
misinterpreted at any time by different team members.
Due to absence of proper documentation, when the project
completes and the developers are assigned to another project,
maintenance of the developed project can become a problem.
39
Thank You