INTRODUCTION
System Analysis and Design
(SAD )
Slide 1
Information System
Information systems are software
applications which manage large
amounts of data.
Most of the software out there is
information systems software,
written in languages such as Java, C+
+, .NET and the like.
Slide 2
The Bad News
30% of large IT projects are cancelled before completion
50% of IT projects are over-budget by more than 200%
The majority of completed projects deliver 60% or less of
prescribed functionality
Many delivered information systems are under-used
because they don’t meet user needs and/or expectations
Legacy systems are a serious and growing bottleneck to
organizational evolution
Slide 3
Software Horror Stories
Bank of America spent $23,000,000 on a 5-year
project to develop a new accounting system. Spent
over $60,000,000 trying to make new system work,
finally abandoned it. Loss of business estimated in
excess of $1,000,000,000
The B1 Bomber required an additional
$1,000,000,000 to improve its air defense software,
but the software still isn’t working to specification
Ariane 5, Flight 501
The loss of a $500,000,000 spacecraft was
ultimately attributed to errors in requirements,
specifications and inadequate software reuse
practices.
Why is this Course Important?
Most errors (54%) are detected after coding and
testing.
Almost half of all errors in software (45%) are in
requirements and design.
Most errors made during requirements analysis are
non-clerical (77%)
Requirements errors can cost up to 100 times more
to fix than implementation errors
if they are not caught early on.
Need to do requirements and design right!
Slide 5
Slide 6
Key Ideas
Many failed systems were
abandoned because analysts
tried to build wonderful systems
without understanding the
organization.
The primary goal is to create
value for the organization.
Slide 7
Key Ideas
Systems analyst is a key
person
analyzing the business
identifying opportunities for
improvement
designing information systems
to implement these ideas.
Slide 8
What is Systems
Analysis?
The collection of notations, methodologies and
tools used to gather details and analyze a problem
situation prior to information system design and
implementation
Systems analysis (or, requirements analysis)
must ensure that the proposed information system
meets user needs, can be delivered on time, and
can be updated inexpensively.
Problems in "getting the systems analysis right",
such as ill-defined situations, ambiguities,
inconsistencies, mixing requirements with design
Slide 9
Need for Systems
Analysis?
Remember, finding and fixing
a fault after software delivery
is 100x more expensive than finding
and fixing it during systems analysis
or early design phases
Slide 10
THE SYSTEMS
DEVELOPMENT LIFE
CYCLE
Slide 11
Major Attributes of the
Lifecycle
The project
Moves systematically through phases
where each phase has a standard set
of outputs
Produces project deliverables
Uses deliverables in implementation
Results in actual information system
Uses gradual refinement
Slide 12
Project Phases
Planning
Why build the system?
Analysis
Who, what, when, where will the system be?
Design
How will the system work?
Implementation
System delivery
Slide 13
Planning
Identifying business value
Analyze feasibility
Develop work plan
Staff the project
Control and direct project
Slide 14
Analysis
Analysis strategy
Analysis of current system
Ways to design new system
Requirements gathering
Interviews, questionnaires
Process modeling
Data modeling
Slide 15
Design
Architectural design
Hardware
Software
Network infrastructure
Interface design
Database and file design
Program design
Slide 16
Implementation
Construction
Writing programs
Testing
Installation
Replace old with new system
Training users
Support Plan
Slide 17
Processes and
Deliverables
Process Product
Project Plan
Planning
System Proposal
Analysis
System
Design
Specification
New System and
Implementation
Maintenance
Plan
Slide 18
SYSTEM DEVELOPMENT
Methodologies
Slide 19
What Is a Methodology?
A formalized approach or series
of steps to implement SDLC
Methodology categories:
Process-centered
Data-centered
Object-oriented
Slide 20
Need for methodology
Writing code without a well-thought-
out system request may work for
small programs, but rarely works for
large ones.
Need to have a good design from
the requirements before moving on
to implementation.
Slide 21
Systems development
methodologies
Structured Design
Waterfall Development
Parallel Development
Rapid Application Development
(RAD)
Phased Development
Prototyping
Agile Development
Extreme Programming
Slide 22
Structured Design
Projects move methodically
from one to the next step
Generally, a step is finished
before the next one begins
Slide 23
Waterfall Development
Method
Slide 24
Pros and Cons of the
Waterfall Method
Pros Cons
Identifies systems Design must be
requirements long specified on paper
before programming before programming
begins begins
Long time between
system proposal and
delivery of new
system
Slide 25
Parallel Development
Slide 26
Pros and Cons of the
Parallel Method
Pros Cons
Reduce schedule time Subprojects may not
to deliver the system be completely
independent –
integration may be
complicated
Paper document
outputs still cause
problems
Slide 27
Rapid Application
Development
Critical elements
CASE tools (Computer-Aided
Software Engineering (CASE))
JAD sessions (Joint Application
Design)
Fourth generation/visualization
programming languages
Code generators
Slide 28
Rapid Application
Development Categories
Phased development
A series of versions
Prototyping
System prototyping
Throw-away prototyping
Design prototyping
Agile Development
Extreme Development
Slide 29
Phased development
Slide 30
Pros and Cons of Phased
development
Pros:
1.Users gain early process and software knowledge now that they can use
in the subsequent phases.
2.Issues with one phase only affect a small area of the business
3.Core project team can learn from the initial phases and use their new
found knowledge for subsequent phases.
Cons:
1.Project duration for full implementation is long
2.If you are on a tight/limited budget this can prove costly.
3.Need to supply critical modules which will be integrated at the end.
Slide 31
How Prototyping Works
Slide 32
Pros and Cons of
Prototyping
Pros:
1.Users are actively involved in the development
2.Since in this methodology a working model of the system is provided,
the users get a better understanding of the system being developed.
3.Errors can be detected much earlier.
4.Quicker user feedback is available leading to better solutions.
5.Missing functionality can be identified easily
Cons:
1.Practically, this methodology may increase the complexity of the system
as scope of the system may expand beyond original plans.
2.Incomplete application may cause application not to be used as the full
system was designed
Slide 33
Throwaway Prototyping
Slide 34
Pros and Cons of Throwaway
Prototyping
Pros:
1.it is very cost-effective.
2.Throwaway Prototyping model uses a series of prototypes to detect and
forecast possible problems, it can prevent these from taking place as soon
as the product or service is introduced to the market.
3.Project completion is quick. Since it allows early detection of issues, the
transition from one step to the next will be smoother and faster.
Cons:
1.Since the process involved in prototyping is done in rapid speed, it is
possible that a lot of aspects can be overlooked.
2.Confusion on the part of users and developers can also occur because it
is likely to get so used to the prototype that differentiating it from the real
one can become a challenge.
Slide 35
Selecting the Appropriate
Methodology
Clarity of User Requirements
Familiarity with Technology
System Complexity
System Reliability
Short Time Schedules
Schedule Visibility
Slide 36
Criteria for Selecting a
Methodology
Slide 37
Extreme Programming
Perhaps the best-known and most widely used
agile method.
Extreme Programming (XP) takes an ‘extreme’
approach to iterative development.
New versions may be built several times per
day;
Increments are delivered to customers every 2
weeks;
All tests must be run for every build and the
build is only accepted if tests run successfully.
Extreme Programming
Slide 39
Project Team Roles and
Skills
Slide 40
Information Systems
Roles
Business analyst
System analyst
Infrastructure analyst
Change management analyst
Project manager
Slide 41
Project Team Roles
Slide 42
Summary -- Part 1
The Systems Development Life Cycle
consists of four stages: Planning,
Analysis, Design, and Implementation
The major development methodologies:
Structured design
the waterfall method
Parallel development
RAD development
Prototyping (regular and throwaway)
Agile development
XP streamline SDLC
Slide 43
Summary -- Part 2
There are five major team roles: business
analyst, systems analyst, infrastructure
analyst, change management analyst
and project manager.
Slide 44