Information System Development
Information System Development
Information System Development
Approaches to System
Development -SDLC
1
Information System Development
• Concepts: Structured system analysis and design
• Approaches to IS Development
• System Development Life Cycle (SDLC)
• Prototyping/ RAD
• Phases in SDLC, Requirement Analysis, Design,
Implementation and Maintenance
• Make or Buy Decision for IS Development
• Tools of IS Design, DFD’s Structured English, Flow
charts, System flowcharts, decision tables and
decision trees. Introduction to CASE.
2
Methodology
•A system development methodology –provides guidelines to follow for
completing every activity in the systems development life cycle.
3
What Are Models?
• Representation of an important aspect of real world, but not the
same as real thing.
• A model could be diagrams and charts which help in project planning
and budgeting .
4
DFD / Class Diagram
5
Case Diagram
6
Some Models Used in System Development
7
Tools
• A tool is software support that helps create
models or other components required in the
project.
– Smart editors, Debugging tools
– CASE (Computer-Aided System Engineering) Tools
Help the analyst create the important system
models.
– Drawing Tools – MS Visio
Some Tools Used in System Development
http://www.sparxsystems.com/products/ea/index.html 9
What Are Techniques?
• Collection of guidelines that help analysts
complete a system development activity or
task
10
Some Techniques Used in System Development
11
Techniques
• A technique is a collection of guidelines that help an
analyst complete a system development activity.
Some Techniques -
OO analysis
Data Modeling
Relational database design
Structured analysis and design
Software-testing
13
Two Approaches to System Development
• Traditional approach
– Also called structured system development
– Structured analysis and design technique (SADT)
– Refinement to structured development - information
engineering (IE)
• Object-oriented approach
– Also called OOA, OOD, and OOP
– Views information system as collection of interacting
objects that work together to accomplish tasks
14
Structured System Development
• Structured Programming
– Top-down Programming
• Structured Design
• Structured Analysis
15
Framework of Structured Development
16
Structured Programming
• Improves computer program quality
• Allows other programmers to easily read and
modify code
• Each program module has one beginning and
one ending
• Three programming constructs (sequence,
decision, repetition)
17
Top-Down Programming
• Divides complex programs into hierarchy of modules
• The module at top controls execution by “calling”
lower level modules
• Modular programming
– Similar to top-down programming
18
Structured Design
• What the set of programs should be
• What each program should accomplish
• How the programs should be organized into a
hierarchy
19
Main Principles of Structured Design
• Loosely coupled – module is independent of
other modules
20
Structured Analysis
21
Information Engineering (IE)
• Refinement to structured development
• Methodology with strategic planning, data modeling,
automated tools focus
• More rigorous and complete than structured analysis
and design technique(SADT)
• Industry merged key concepts from structured
development and information engineering
approaches into traditional approach
22
Object-Oriented Approach
• Completely different approach to information
systems
• Views information system as collection of interacting
objects that work together to accomplish tasks
– Objects – things in computer system that can respond to
messages
– Conceptually, no processes, programs, data entities, or
files are defined – just objects
• OO languages: Java, C++, C# .NET, VB .NET
23
Terminologies of O-O Approach
• Object-oriented analysis (OOA)
– Defines types of objects users deal with
– Shows use cases are required to complete tasks
• Object-oriented design (OOD)
– Defines object types needed to communicate with
people and devices in system
– Shows how objects interact to complete tasks
– Refines each type of object for implementation with
specific language of environment
• Object-oriented programming (OOP)
– Writing statements in programming language to
define what each type of object does
24
SDLC
25
The Systems Development
Lifecycle
• SDLC provides overall framework for managing
systems development process.
• Two main approaches to SDLC
– Predictive approach – assumes project can be planned out
in advance
– Adaptive approach – more flexible, assumes project
cannot be planned out in advance
• All projects use some variation of SDLC
27
Predictive vs. Adaptive Approach to the SDLC
28
Traditional Predictive Approach to the
SDLC
• Project planning – initiate, ensure feasibility, scope,
plan schedule, obtain approval for project
• Analysis – understand business needs and processing
requirements
• Design – define solution system based on
requirements and analysis decisions
• Implementation – construct, test, train users, and
install new system
• Support – keep system running and improve
29
Predictive Approach Adaptive approaches
1.Waterfall 5.The Unified Process (UP)
2.Modified Waterfall 6.Extreme Programming (XP)
3.Prototyping 7.Agile
4.RAD 8.Scrum
30
1. Waterfall Model
• Waterfall model is an SDLC approach that
assumes the various phases of a project can
be completed sequentially – one phase leads
into the next phase.
31
“Waterfall” Approach to the SDLC
32
2. Modified Waterfall Approach
Overlapping Phases
33
SYSTEMS DEVELOPMENT LIFE CYCLE METHODOLOGY
Managing an SDLC Project
Costs of Error Correction by SDLC Step
SYSTEMS DEVELOPMENT LIFE CYCLE METHODOLOGY
40
Prototyping Advantages and Disadvantages
Advantages:
Only basic requirements needed at front end
Used to develop systems that radically change how work is
done, so users can evaluate
Allows firms to explore use of new technology
Working system available for testing more quickly
Less strong top-down commitment needed at front end
Costs and benefits can be derived after experience with initial
prototype
Initial user acceptance likely higher
PROTOTYPING METHODOLOGY
Disadvantages:
End prototype often lacks security and control features
May not undergo as rigorous testing
Final documentation may be less complete
More difficult to manage user expectations
4. Rapid Application Development (RAD)
46
47
UP Reinforces Six Best Practices
• Develop iteratively
• Define and manage system requirements
• Use component architectures: Seamless with legacy,
and heterogeneous platforms.
• Create visual models: Tools at every stage.
• Verify quality
• Control changes
48
6. Extreme Programming (XP)
• Recent, lightweight, development approach to keep process
simple and efficient
49
50
7. Agile Software Development
Alternative methodology for smaller projects
Based on four key values:
Simplicity
Communication
Feedback
Courage
One type: Extreme Programming (XP)
Programmers write code in pairs
Use simple design and frequent testing
52
8. Scrum
• For highly adaptive project needs
• Respond to situation as rapidly as possible
• Scrum refers to rugby’s game
– Both are quick, agile, and self-organizing
• Team retains control over project
• Values individuals over processes
53
54
9. Outsourcing
Offshore alternative good option when:
System requirements well-defined and remain stable
Time is of essence and 7x24 hour availability of
resources a good idea
Cost of project important
OUTSOURCING
Advantages:
Helps keep software development costs down
Uses technical expertise not available in-house
Can often complete projects more quickly
Off-site outsourcing:
Onshore – within same country or region
Offshore – not within same country or region
MANAGING SOFTWARE PROJECTS USING
OUTSOURCED STAFF
Guidelines for managing offsite outsourcer:
Manage expectations, not staff
Take explicit actions to integrate the offsite workers
Communicate frequently
Abandoning informal ways may result in increased rigor