You are on page 1of 50

SYSTEMS ANALYSIS

AND DESIGN
SYSTEMS DEVELOPMENT
METHODOLOGIES
Learning Objectives
At the end of this lesson, students are expected to:
◦ Know the different system development methodologies
◦ Know the advantages and disadvantages of each of the methodologies
◦ Know the most suitable scenario to apply each of the methodologies.
Introduction
The SDLC – Systems Development Life Cycle that we discussed in the
previous class provides the foundation for the processes used to develop an
information system
A methodology on the other hand is a formalized approach to
implementing the SDLC
◦ It specifies how each phase of the SDLC should be performed
◦ Providing a list of steps and deliverables
There are different systems development methodologies
◦ However, they vary in terms of the progression that is followed through
the phases
Systems Development Methodology
It can be defined as
◦ A standard process followed in an organization to conduct all the
steps necessary to analyze, design, implement, and maintain
information systems.
It is also
◦ A framework that is used to structure, plan, and control the
process of developing an information system. -CMS, USA
Systems Development Methodology -
Examples
Some examples include:
◦ Waterfall ◦ Scrum
◦ Prototype model ◦ Cleanroom
◦ Incremental ◦ RAD
◦ Iterative ◦ XP
◦ V-Model ◦ Agile
◦ Spiral ◦ Etc.
The Waterfall Model
Here the development proceeds sequentially from one phase to another in a
manner similar to the natural waterfall.

The key deliverables for each phase are usually presented to the approval
committee and project sponsor for approval before the project moves to the
next phase.
Waterfall Model (Cont’d)
After the deliverable has been approved, that phase ends and the
next one begins
◦ It is very difficult to go backward in this phase

Strict monitoring is ensured over the life of the project through the
use of extensive written documentation, as well as through formal
reviews and approval/signoff by the user and information technology
management at the end of each phase.
Waterfall Model (Cont’d)

The Waterfall
Model
Advantages of Waterfall Model
1. Requirements are identified long before programming begins,
◦ limiting changes to the requirements as the project proceeds.

2. Provides structure to inexperienced staff.


3. The sequential approach and strict controls help to ensure
adequate documentation and design reviews which result into
quality, reliability, and maintainability of the developed software.
4. Progress of system development is measurable.
Disadvantages of Waterfall Model
1. Inflexible, slow, costly and cumbersome due to significant structure and
tight controls. E.g. the design must be completely specified before
programming begins.
2. Difficult to respond to changes, if an important requirement is missed,
expensive post-implementation programming will be needed
3. There is a long time lag between the system proposal and the delivery of
the system
4. Little opportunity for customer to preview the system (until it may be too
late).
5. Testing is treated almost like an afterthought in the implementation phase
6. Produces excessive documentation and keeping it updated as the project
progresses is time-consuming
When to Use Waterfall
Project is for development of a transaction-oriented batch system.
Project is large, expensive, and complicated.
Project has clear objectives and solution.
No pressure for immediate implementation.
Project requirements are clear and comprehensive.
Project requirements are stable during the system development life
cycle.
When project team are not so experienced or may change during
implementation.

Do not use when project is large and the requirements are not well
understood or may change
Variants of the Waterfall Model
There are two major variants of the waterfall model
◦ Parallel development methodologies
◦ V-Model
Parallel Development
◦ A general design for the system is developed, then the project is divided
into series of subprojects that can be designed and implemented in
parallel.
◦ As such the design and implementation phases don’t run in a
sequence
◦ After implementing the subprojects, they are then integrated
◦ It helps to reduce the lengthy time frame of the waterfall model
Parallel Development
V-Shaped Model
Another variant of the waterfall that emphasizes the verification and
validation of the product.
The development process proceeds down the left side of the slope, then the
code is written; on the other side of the slope, testing of component are
performed
It pays more explicit attention to testing
Testing of the product is planned in parallel with a corresponding phase of
development
◦ As requirements are specified, and components designed, testing for the
elements are defined
◦ Each level of testing is linked to a part of the analysis or design phase
V-Shaped Model (Cont’d)
Advantages of V-Shaped Model
1. Emphasize planning for verification and validation of the product
in early stages of product development
2. Each deliverable must be testable
3. Project management can track progress by milestones
4. It is simple and straight forward
5. It improves the overall quality of the system through the
emphasis on early development of test plans
Disadvantaged of V-Shaped Model
1. It is also affected by the rigidity off the waterfall model
2. Does not easily handle concurrent events
3. Does not handle iterations or phases
4. Does not easily handle dynamic changes in requirements
5. Does not suit the dynamic nature of the business environment
6. Does not contain risk analysis activities
When to use V-Shaped Model
1. Excellent choice for systems requiring high reliability –hospital
patient control applications.
2. All requirements are known up-front.
3. When it can be modified to handle changing requirements
beyond analysis phase.
4. Solution and technology to be used are known.
Prototyping
Prototyping is “a type of development in which emphasis is placed
on developing prototypes early in the development process to
permit early feedback and analysis in support of the development
process.” - IEEE

There are different type of prototyping:


◦ Throw away prototyping
◦ Evolutionary prototyping
Types of Prototyping
Evolutionary Prototyping
◦ The development starts with those requirements which are best
understood.
◦ The objective is to deliver a working system to end-users.

Throw-Away Prototyping
◦ The prototyping process starts with those requirements which are poorly
understood
◦ The objective of is to validate or derive the system requirements.
Evolutionary Prototyping
Developers build a prototype during the
requirements phase
Prototype is evaluated by end users
Users give corrective feedback
Developers further refine the prototype
When the user is satisfied, the prototype code
is brought up to the standards needed for a
final product.
Evolutionary Prototyping (Cont’d)
A preliminary project plan is developed
A partial high-level paper model is created
The model is the source of a partial requirements specification
A prototype is built with basic and critical attributes
The designer builds
◦ the database
◦ user interface
◦ algorithmic functions
The designer demonstrates the prototype, the user evaluates for problems and
suggests improvements.
This loop continues until the user is satisfied
Advantages of Evolutionary Prototyping
Customers can “see” the system requirements as they are being gathered
Developers learn from customers
A more accurate end product is developed
Unexpected requirements can be accommodated
Allows for flexible design and development
Interaction with the prototype stimulates awareness of additional needed
functionality
Disadvantages of Evolutionary Prototyping
Tendency to abandon structured program development for “code-and-fix”
development
◦ lack of careful, methodical analysis prior to making design and
implementation decisions
Bad reputation for “quick-and-dirty” methods
Overall maintainability may be overlooked
The customer may want the prototype delivered.
Process may continue forever (scope creep)
When to use Evolutionary Prototyping
Requirements are unstable or have to be clarified
As the requirements clarification stage of a waterfall model
Develop user interfaces
Short-lived demonstrations
New, original development
With the analysis and design portions of object-oriented
development
Throw-away Prototyping
Here prototypes are developed primarily to explore design alternatives
rather than as the actual new system
There is a fairly thorough analysis phase to gather requirements
However, some requirements may not be thoroughly understood, or there
maybe technical issues to be resolved
Design prototypes are then developed to help understand the issues
under consideration
This helps to reduce risk and produce more stable and reliable systems
It helps to refine key issues before the system is built
Throw-away Prototyping (Cont’d)
Incremental Model
Combines linear and iterative system development methodologies with the aim to
reduce inherent project risk by breaking a project into smaller segments and
providing more ease-of-change during the development process.
It is in-between the waterfall and prototyping models.
Customers outline the services required of the system, these services are then
prioritized and grouped into increments, each increment provides a subset of the
system’s functionality.
The increments are prioritized, the first increment is defined in detail and
developed.
Incremental Model (Cont’d)
Further requirements analysis can still be performed for later increments
However, changes for the current increment cannot be accepted
A completed and delivered increment can be put into service
As subsequent increments are developed, they are integrated with
existing increments, as such the system functionality increases with each
increment
Advantages of Incremental Model
Develop high-risk or major functions first
Each release delivers an operational product
Customer can respond to each build
Uses “divide and conquer” breakdown of tasks
Lowers initial delivery cost
Initial product delivery is faster
Customers get important functionality early, they don’t have to wait until
the entire system is delivered before they can gain value from it
Risk of changing requirements and overall project failure is reduced
Disadvantages of Incremental Model
It might be difficult to map customer’s requirements to increments of the right size
Most systems require functionalities used by different parts of the system, since requirements
are not defined in detail until an increment is to be developed, it might be difficult to identify
common facilities needed by all requirements
Requires good planning and design
Requires early definition of a complete and fully functional system to allow for the definition
of increments
Well-defined module interfaces are required (some will be developed long before others)
Total cost of the complete system is not lower
Rapid Application Development (RAD)
RAD uses different techniques and tools to speed up the analysis, design and
implementation phases, such that the system can be quickly handed to the
user for evaluation and feedback
It is an iterative approach that aims to develop and deliver high quality
systems at a relatively low investment cost.
Reduces inherent project risk by breaking a project into smaller segments and
providing more ease-of-change during the development process
Delivers high quality systems quickly, primarily through the use of iterative
prototyping involving active user involvement, computerized development
tools.
RAD (Cont’d)
The tools include:
◦ Graphical User Interface (GUI) builders,
◦ Computer Aided Software Engineering (CASE) tools,
◦ Database Management System(DBMS),
◦ Fourth-generation programming languages, code generators, interface
generators, report generators and object-oriented techniques
Emphasizes fulfilling business needs
Active user involvement is imperative
Produces documentation necessary to facilitate future development and
maintenance
RAD Advantages
Reduced cycle time and improved productivity with fewer people means
lower costs
Time-box approach mitigates cost and schedule risk
Customer involved throughout the complete cycle minimizes risk of not
achieving customer satisfaction and business needs
Focus moves from documentation to code (WYSIWYG).
Uses modeling concepts to capture information about business, data, and
processes.
RAD Disadvantages
More speed and lower cost may lead to lower overall system quality
Risk of never achieving closure
Hard to use with legacy systems
Requires a system that can be modularized
Developers and customers must be committed to rapid-fire activities
in an abbreviated time frame
When to use RAD
Reasonably well-known requirements
User involved throughout the life cycle
Project can be time-boxed
Functionality delivered in increments
High performance not required
Low technical risks
System can be modularized
The Spiral Model
It represents the software development life cycle as a spiral rather
than a sequence of activities
Each loop in a spiral represents a phase of the software process
Each loop is split into four sectors
◦ Objective setting
◦ Risk assessment and reduction
◦ Development and validation
◦ Planning
Spiral Model
Spiral Quadrants
1. Determine objectives, alternatives and constraints
◦ Objectives: functionality, performance, hardware/software
interface, critical success factors, etc.
◦ Alternatives: build, reuse, buy, sub-contract, etc.
◦ Constraints: cost, schedule, interface, etc.
Spiral Quadrants
2. 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
Spiral Quadrants
3. Develop next-level product 4. Plan next phase
◦ Typical activities: ◦ Typical activities
◦ Create a design ◦ Develop project plan
◦ Review design ◦ Develop configuration
◦ Develop code management plan
◦ Inspect code ◦ Develop a test plan
◦ Test product ◦ Develop an installation plan
Advantages of Spiral Model
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
Early and frequent feedback from users
Cumulative costs assessed frequently
Disadvantages of Spiral
Time spent for evaluating risks too large for small or low-risk projects
Time spent planning, resetting objectives, doing risk analysis and
prototyping may be excessive
The model is complex
Risk assessment expertise is required
Spiral may continue indefinitely
Developers must be reassigned during non-development phase activities
May be hard to define objective, verifiable milestones that indicate
readiness to proceed through the next iteration
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
Users are unsure of their needs
Requirements are complex
New product line
Significant changes are expected (research and exploration)
Agile Model
• Group of software development methods based on iterative and
incremental development.
• Every iteration is a complete software project
• Modelling and documentation overhead is eliminated, while face-to-face
communication is preferred
Objectives include:
◦ Speed up or bypass one or more life cycle phases
◦ Usually less formal and reduced scope
◦ Used for time-critical applications
◦ Used in organizations that employ disciplined methods
Agile Model (Cont’d)
• Most important phrases
• self-organizing, cross-functional
teams
• adaptive planning,
• evolutionary development and
delivery,
• a time-boxed iterative approach,
• rapid and flexible response to
change.
Some Agile Methods
Adaptive Software Development (ASD)
Feature Driven Development (FDD)
Crystal Clear
Dynamic Software Development Method (DSDM)
Rapid Application Development (RAD)
Scrum
Extreme Programming (XP)
Rational Unify Process (RUP)
Q&A
References
Systems Analysis & Design, 5th Edition – Alan Dennis, Barbara Haley Wixom and Roberta M. Roth
Software Engineering, 8th Edition, Ian Sommerville
Information Systems by India Thomas Dayan and Thakur
www.umsl.edu/~sauterv/analysis/presentations/w08/Prototyping.eveningclass.ppt
Sofwtare Prototyping:
www.ccs.neu.edu/home/lieber/com3205/f02/lectures/sommerville/ch08.ppt
Centers for Medicare & Medicaid Services (2008), Selecting A Development Approach

You might also like