The Systems
Development
Environment
2008 by Prentice Hall
Learning Objectives
Define information systems analysis and design.
Describe the different types of information systems.
Describe the information Systems Development Life Cycle
(SDLC).
Explain Rapid Application Development (RAD), prototyping, Joint
Application Development (JAD), and Computer Aided Software
Engineering (CASE).
Describe agile methodologies and eXtreme programming.
Explain Object Oriented Analysis and Design and the Rational
Unified Process (RUP).
The Beginning, ..
Information Systems development began as
an art.
My nephew can do it for me.
He started using a computer last year.
Computer boy genius, Computer wizard
Realization
But, we soon realized this was not a practical
long term solution
Vigorous and structured approach
Reliable, scalable system
Large scale system
Proper documentation
Proper planning
Proper project management completion, returns
Information Systems Analysis
and Design
Complex organizational process whereby computer-based
information systems are developed and maintained.
At present, it is an organizational improvement process.
In the future, ?
We know some of it
Project management
People management
Time management
Implementation programming
Maintenance
We tend to practise this as an art without a proper framework
Course Objectives
To provide a generic framework (textbook example)
which can be adapted to different situations.
Similar to those used by system analysts and IT
consultants
Success depends on the proper use of the framework
and your understanding of the organizations objectives,
structure, and processes, as well as your knowledge of
how to exploit information technology for advantage.
Note: Different vendors have different frameworks.
Framework
The Systems Development
Environment
The total information system includes
The hardware
Application software (payroll, inventory, etc)
Systems software
Documentation
Training materials
IT personnel
Users
System Analysts
Organizational role most responsible for analysis and
design of information systems
Study the problems and needs of an organization and
determine how people, methods and IT can best be
combined to bring about improvements.
A Modern Approach to
Systems Analysis and Design
1950s: focus on efficient automation of existing
processes (Mainframe)
1960s: advent of 3GL, faster and more reliable
computers (Mini)
1970s: system development becomes more like an
engineering discipline
1980s: major breakthrough with 4GL, CASE tools,
object oriented methods (Micro)
1990s: focus on system integration, GUI applications,
client/server platforms, Internet
The new century: Web application development,
wireless PDAs, component-based applications,
application service provider
Types of Information
Systems
and
Transaction
Systems
Development
Processing
Systems (TPS)
Automate handling of data about business
activities (transactions)
Process orientation
Management Information Systems (MIS)
Chapter 1
Converts raw data from transaction processing
system into meaningful form
Data orientation
2008 by Prentice Hall
11
Types of Information Systems
and Systems Development
(Cont.)
Decision Support Systems (DSS)
Chapter 1
Designed to help decision makers
Provides interactive environment for decision
making
Involves data warehouses, executive information
systems (EIS)
Database, model base, user dialogue
2008 by Prentice Hall
12
Types of Information Systems
and Systems Development (cont.)
Systems Development Life
Cycle (SDLC)
Methodology for developing, maintaining, and
replacing information systems
Phases in SDLC:
Planning
Analysis
Design
Implementation
Maintenance
Can be conducted in parallel and interactively (see
diagram).
Standard and Evolutionary
Views of SDLC
SDLC Planning Phase
Identify, analyze,
prioritize, and
arrange IS needs
SDLC Analysis Phase
Study and
structure system
requirements
SDLC Design Phase
Convert
recommended
solution to system
specifications
Logical design:
functional features
described
independently of
computer platform
Physical design:
logical
specifications
transformed to
technologyspecific details
SDLC Implementation Phase
Code, test, install,
document and support
the information
system,
user training
SDLC Maintenance Phase
Systematically
repair and
improve the
information
system
as
The Heart of the Systems
Development Process
Current practice combines analysis, design, and implementation
into a single iterative and parallel process of activities
Traditional Waterfall SDLC
One phase begins
when another
completes, little
backtracking and
looping.
The original
developer
([Link]) of the
waterfall model called
for feedback between
phases. It was
ignored.
Problems with Waterfall
Approach
System requirements locked in after being
determined (can't change)
Limited user involvement (only in
requirements phase)
Do users know their requirements?
Problems with Waterfall
Approach
Too much focus on milestone deadlines of
SDLC phases to the detriment of sound
development practices.
Example : hard and fast deadlines for nebulous and
intangible processes such as analysis and design
Remember no going back!
A two version story
Problems with Waterfall
Approach
Griss, 2003: Finding and fixing a software
problem after delivery is often 100 times more
expensive that finding and fixing it during
analysis and design
Alternatives to Traditional
Waterfall SDLC
Prototyping
CASE tools
Joint Application Design (JAD)
Rapid Application Development (RAD)
Agile Methodologies
eXtreme Programming
Prototyping
Using visual development tool
Iterative development process:
Requirements quickly converted to a working system
System is continually revised
Close collaboration between users and analysts
Computer-Aided Software
Engineering (CASE) Tools
Diagramming tools enable graphical
representation.
Computer displays and report generators
help prototype how systems look and feel.
Chapter 1
2008 by Prentice Hall
29
Computer-Aided Software
Engineering (CASE) Tools
(Cont.)
Analysis tools automatically check for
consistency in diagrams, forms, and reports.
Central repository for integrated storage of
diagrams, reports, and project management
specifications.
Chapter 1
2008 by Prentice Hall
30
Computer-Aided Software
Engineering (CASE) Tools
(Cont.)
Documentation generators standardize
technical and user documentation.
Code generators enable automatic
generation of programs and database code
directly from design documents, diagrams,
forms, and reports.
Chapter 1
2008 by Prentice Hall
31
CASE Tools (Cont.)
Figure 1-12 A class diagram from IBMs Rational Rose
Chapter 1
2008 by Prentice Hall
32
CASE Tools (Cont.)
Chapter 1
2008 by Prentice Hall
33
Joint Application Design
(JAD)
Structured process involving users, analysts,
and managers (all the people directly affected
by the new system)
Several-day intensive work group sessions
Purpose: to specify or review system
requirements
Rapid Application Development
(RAD)
Methodology to decrease design and implementation time
Involves: prototyping, JAD, CASE tools, and code generators
Examples: WebSphere Studio, WebSphere Application Server
Rapid Application Development
(RAD)
Grew out of the convergence of two trends
The increase speed of doing business
The ready availability of high-powered, computerbased tools.
RAD usually looks at the system being
developed in isolation from other systems
Agile Methodologies
Motivated by recognition of software
development as fluid, unpredictable, and
dynamic.
Information systems development is not a
predictable process like civil engineering
Three key principles
Adaptive rather than predictive
Emphasize people rather than roles
Self-adaptive processes
Agile Methodologies (Fowler,
2001)
Uses self-adaptive software development
process. As software is developed, the
process used to develop it should be refined
and improved.
Refer to the Agile Manifesto (Table 1-4), page
23
Chapter 1
2008 by Prentice Hall
39
Agile Methodologies
It is not for every project
Fowler recommends it for projects which involve
Unpredictable or dynamic requirements
Responsible and motivated developers
Customers who understand the process and will get
involved.
Example: Developing an in-house tool used by a
software house
eXtreme Programming (Becker
2000)
Short, incremental development cycles
Two-person programming teams
Solve the problem together
Have a customer on-site during the development
process
Planning, analysis, design and construction are all
fused into a single phase
Coding, testing, listening, designing
eXtreme Programming
Coding and testing operate together
Code is tested very soon after it is written
Advantages:
Can be within hours
Communication between developers
High level of productivity
High-quality code
It is not for every project.
Object-Oriented Analysis and
Design
Based on objects rather than data or processes
Object: a structure encapsulating attributes and
behaviours of a real-world entity
Object class: a logical grouping of objects sharing
the same attributes and behaviours
Inheritance: hierarchical arrangement of classes
enable subclasses to inherit properties of
superclasses
Each phase is organized into a number of
separate iterations.
Planning
Debugging
Analysis & Design
Coding
Rational Unified Process
Conclusion
Is SDLC relevant?
Slow
No falling back
Too much documentation
Impossible to convert art into science
Limited user involvement