Chapter 6 Systems Development: Phases, Tools, and Techniques McGraw-Hill/Irwin

Transcription

Chapter 6 Systems Development: Phases, Tools, and Techniques McGraw-Hill/Irwin
Chapter 6
Systems Development: Phases, Tools,
and Techniques
McGraw-Hill/Irwin
Copyright © 2010 by the McGraw-Hill Companies, Inc. All rights reserved.
STUDENT LEARNING OUTCOMES
1.
2.
3.
Define the traditional systems development
life cycle (SDLC) and describe the 7 major
phases within it.
Compare and contrast the various
component-based development
methodologies.
Describe the selfsourcing process as an
alternative to the traditional SDLC.
6-2
STUDENT LEARNING OUTCOMES
4.
5.
Discuss the importance of prototyping and
prototyping within any systems development
methodology
Describe the outsourcing environment and
how outsourcing works.
6-3
SAVING LIVES THROUGH SYSTEMS
DEVELOPMENT
 Centers
for Disease Control (CDC) tracks a
wealth of information
 Antimicrobial-resistant
infections in hospitals
 Influenza
outbreaks
 Terrorist biochemical attacks
 Bacteria counts in rivers and stagnant ponds, etc
 Unfortunately,
most of that information is
stored in separate IT systems that do not
communicate with each other
6-4
SAVING LIVES THROUGH SYSTEMS
DEVELOPMENT
 The
CDC is using a service-oriented
architecture (SoA) to integrate all those
systems and information
 An SoA treats every component of an IT
system – a database file, a server, a CRM
software solution, etc – as a building block
 Within an SoA, those building blocks can be
“plugged and played” so that everything
works together in an integrated fashion
6-5
SAVING LIVES THROUGH SYSTEMS
DEVELOPMENT
1.
2.
3.
All computers use a common binary base
language. That being true, why is it so
difficult to get computer systems to easily
communicate with each other?
In systems development, prototyping is used
to build a model of a proposed system. How
have you used prototyping in your life?
Outsourcing – going to another company for
systems development – is big business.
Why would the CDC not want to pursue
outsourcing?
6-6
INTRODUCTION
 Information
systems are the support structure
for meeting the company’s strategies and
goals
 New systems are created because
employees request them
 New systems are created to obtain a
competitive advantage
6-7
INTRODUCTION
 When
developing a new system, you have 3
“who” choices…
1.
2.
3.
Insourcing – IT specialists inside your
organization
Selfsourcing – do-it-yourself approach many
end users take with little or no help from IT
specialists
Outsourcing – a third-party organization (i.e., let
someone do the work and pay them for it)
6-8
CHAPTER ORGANIZATION
1.
Insourcing and the SDLC

2.
Component-Based Development

3.
Learning outcome #3
Prototyping

5.
Learning outcome #2
Selfsourcing

4.
Learning outcome #1
Learning outcome #4
Outsourcing

Learning outcome #5
6-9
INSOURCING AND THE SDLC
 Systems
development life cycle (SDLC) - a
structured step-by-step approach for
developing information systems
 7 distinct phases, each with well-defined
activities
 Also called a waterfall methodology, an
approach in which each phase of the SDLC is
followed by another, from planning through
implementation
6-10
SDLC Phases & Major Activities
6-11
SDLC as a Waterfall Methodology
6-12
Phase 1: Planning


Planning phase - create a solid plan for
developing your information system
Three primary planning activities:
1.
Define the system to be developed


You can’t build every system, so you make choices
based on your organization’s priorities, which may be
expressed as critical success factors
Critical success factor (CSF) - a factor simply critical to
your organization’s success
6-13
Phase 1: Planning
2.
Set the project scope




Project scope - clearly defines the high-level system
requirements
Scope creep - occurs when the scope of the project
increases
Feature creep - occurs when developers add extra
features that were not part of the initial requirements
Project scope document - a written definition of the
project scope and is usually no longer than a paragraph
6-14
Phase 1: Planning
3.
Develop the project plan including tasks,
resources, and timeframes



Project plan - defines the what, when, and who
questions of system development
Project manager - an individual who is an expert in
project planning and management, defines and develops
the project plan and tracks the plan to ensure all key
project milestones are completed on time
Project milestones - represent key dates for which you
need a certain group of activities performed
6-15
Phase 1: Planning
Sample Project
Plan
6-16
Phase 2: Analysis
 Analysis
phase - involves end users and IT
specialists working together to gather,
understand, and document the business
requirements for the proposed system
6-17
Phase 2: Analysis

Two primary analysis activities:
1.
Gather the business requirements



Business requirements - the detailed set of knowledge
worker requests that the system must meet in order to
be successful
Business requirements address the “why” and “what” of
your development activities
Joint application development (JAD) - knowledge
workers and IT specialists meet, sometimes for several
days, to define or review the business requirements for
the system
6-18
Phase 2: Analysis
2.
Prioritize the requirements



Requirements definition document – prioritizes the
business requirements and places them in a formal
comprehensive document
Again, you probably can’t do everything, so prioritizing is
important
Users sign off on this document which clearly sets the
scope for the project
6-19
Phase 2: Analysis
Take time during analysis to get the business requirements correct. If you find
errors, fix them immediately. The cost to fix an error in the early stages of the
SDLC is relatively small. In later stages, the cost is huge.
6-20
Phase 3: Design


Design phase - build a technical blueprint of
how the proposed system will work
Two primary design activities:
1.
Design the technical architecture

Technical architecture - defines the hardware,
software, and telecommunications equipment required to
run the system
6-21
Phase 3: Design
2.
Design system models


This includes GUI screens that users will interface with,
database designs (see XLM/C), report formats, software
steps, etc
Starting with design, you take on less of an
active participation role and act more as a
“quality control” function, ensuring that the IT
people are designing a system to meet your
needs
6-22
Phase 4: Development


Development phase - take all of your
detailed design documents from the design
phase and transform them into an actual
system
Two primary development activities:
1.
2.
Build the technical architecture
Build the database and programs

Both of these activities are mostly performed by IT
specialists
6-23
Phase 5: Testing


Testing phase - verifies that the system
works and meets all of the business
requirements defined in the analysis phase
Two primary testing activities:
1.
Write the test conditions

Test conditions - the detailed steps the system must
perform along with the expected results of each step
6-24
Phase 5: Testing
2.
Perform the testing of the system




Unit testing – tests individual units of code
System testing – verifies that the units of code function
correctly when integrated
Integration testing – verifies that separate systems
work together
User acceptance testing (UAT) – determines if the
system satisfies the business requirements
6-25
Phase 6: Implementation


Implementation phase - distribute the
system to all of the knowledge workers and
they begin using the system to perform their
everyday jobs
Two primary implementation activities
1.
Write detailed user documentation

User documentation - highlights how to use the system
6-26
Phase 6: Implementation
2.
Provide training for the system users


Online training - runs over the Internet or off a CDROM
Workshop training - is held in a classroom environment
and lead by an instructor
6-27
Phase 6: Implementation
 Choose
the right implementation method
implementation – use both the old and
new system simultaneously
 Plunge implementation – discard the old system
completely and use the new
 Pilot implementation – start with small groups of
people on the new system and gradually add more
users
 Phased implementation – implement the new
system in phases
 Parallel
6-28
Phase 7: Maintenance


Maintenance phase - monitor and support
the new system to ensure it continues to
meet the business goals
Two primary maintenance activities:
1.
Build a help desk to support the system users

2.
Help desk - a group of people who responds to
knowledge workers’ questions
Provide an environment to support system
changes
6-29
COMPONENT-BASED DEVELOPMENT
 The
SDLC focuses only on the project at
hand
 Component-based development (CBD) –
focuses on building small self-contained
blocks of code (components) that can be
reused across a variety of applications
 CBD focuses on
1.
2.
Using already-developed components to build
systems quickly
Building new components as needed that can be
used in all future systems
6-30
Component-Based Development
Methodologies
 Rapid
application development (RAD)
 Extreme programming (XP)
 Agile methodology
6-31
Rapid Application Development
(RAD)
 Rapid
application development (RAD) (also
called rapid prototyping) - emphasizes
extensive user involvement in the rapid and
evolutionary construction of working
prototypes of a system to accelerate the
systems development process
 Prototypes are models of the software
components
 The development team continually designs,
develops, and tests the component
prototypes until they are finished
6-32
Rapid Application Development
(RAD)
Build new
software
components
Use alreadyexisting
software
components
6-33
Extreme Programming (XP)
 Extreme
programming (XP) - breaks a project
into tiny phases and developers cannot
continue on to the next phase until the first
phase is complete
6-34
Agile Methodology
 Agile
methodology - a form of XP, aims for
customer satisfaction through early and
continuous delivery of useful software
components
6-35
SoA – An Architecture Perspective
architecture (SoA) –
perspective that focuses on the development,
use, and reuse of small self-contained blocks
of code (called services) to meet all
application software needs
 All CBD methodologies adhere to an SoA
 Services are the same as components, which
are the same as small self-contained blocks
of code
 More in Chapter 7
 Service-oriented
6-36
SELFSOURCING



Selfsourcing (end-user development) –
the development and support of IT systems
by end users with little or no help from IT
specialists
Do-it-yourself systems development
approach
Can relieve IT specialists of the burden of
developing many smaller systems
6-37
Selfsourcing Approach
 Is
similar to traditional SDLC
 Big exception is that design, development,
testing, and implementation are replaced by
the process of prototyping
 Prototyping is the process of building models,
and – in this case – continually refining those
models until they become the final system
6-38
Selfsourcing Approach
6-39
Selfsourcing Advantages
 Improves
requirements determination
 Increases end user participation and sense of
ownership
 Increases speed of systems development
 Reduces invisible backlog
backlog – list of all systems that an
organization needs to develop but – because of
the prioritization of systems development needs –
never get funded because of the lack of
organizational resources
 Invisible
6-40
Selfsourcing Disadvantages
 Inadequate
end user expertise leads to
inadequately developed systems
 Lack of organizational focus creates
“privatized” IT systems
 Insufficient analysis of design alternatives
leads to subpar IT systems
 Lack of documentation and external support
leads to short-lived systems
6-41
The Right Tool for the Job
 End
users must have development tools that:
 Are
easy to use
 Support multiple platforms
 Offer low cost of ownership
 Support a wide range of data types
6-42
PROTOTYPING
– a model of a proposed product,
service, or system
 Prototyping - the process of building a model
that demonstrates the features of a proposed
product, service, or system
 Prototype
 Proof-of-concept
prototype - used to prove the
technical feasibility of a proposed system
 Selling prototype - used to convince people of
the worth of a proposed system
6-43
The Prototyping Process

The prototyping process involves four steps:
1.
2.
3.
4.
Identify basic requirements
Develop initial prototype
User review
Revise and enhance the prototype
6-44
The Prototyping Process
6-45
Advantages of Prototyping
 Encourages
active user participation
 Helps resolve discrepancies among users
 Gives users a feel for the final system
 Helps determine technical feasibility
 Helps sell the idea of a proposed system
6-46
Disadvantages of Prototyping
 Leads
people to believe the final system will
follow
 Gives no indication of performance under
operational conditions
 Leads the project team to forgo proper testing
and documentation
6-47
OUTSOURCING


Outsourcing – the delegation of specified
work to a third party for a specified length of
time, at a specified cost, and at a specified
level of service
The third “who” option of systems
development, after insourcing and
selfsourcing
6-48
OUTSOURCING
 The
main reasons behind the rapid growth of
the outsourcing industry include the following:
 Globalization
 The
Internet
 Growing economy and low unemployment rate
 Technology
 Deregulation
6-49
Outsourcing Options

IT outsourcing for software development can
take one of four forms:
1.
2.
3.
4.
Purchase existing software
Purchase existing software and pay the publisher
to make certain modifications
Purchase existing software and pay the publisher
for the right to make modifications yourself
Outsource the development of an entirely new
and unique system for which no software exists
6-50
Outsourcing Options
6-51
Outsourcing Process
 Like
selfsourcing, the selfsourcing process
looks similar to the traditional SDLC
 Big exception here is that you “outsource”
most of the work to another company
6-52
Outsourcing Process
When outsourcing, you’ll develop two vitally
important documents – a request for proposal and a
service level agreement
6-53
Outsourcing – RFP
for proposal (RFP) – formal
document that describes in excruciating detail
your logical requirements for a proposed
system and invites outsourcing organizations
(vendors) to submit bids for its development
 In outsourcing, you must tell another
organization what you want developed; you do
that with an RFP
 Therefore, the RFP must be very detailed
 Some RFPs can take years to develop
 Request
6-54
Outsourcing – SLA
 Service
level agreement (SLA) - formal
contractually obligated agreement between
two parties
 In outsourcing, it is the legal agreement
between you and the vendor and specifically
identifies what the vendor is going to do (and
by when) and how much you’re going to pay
 Supporting SLA documents – service level
specifications and service level objectives –
contain very detailed numbers and metrics
6-55
Outsourcing Options

There are three different forms of
outsourcing:
1.
2.
3.
Onshore outsourcing - the process of engaging
another company within the same country for
services
Nearshore outsourcing - contracting an
outsourcing arrangement with a company in a
nearby country
Offshore outsourcing - contracting with a
company that is geographically far away
6-56
Offshore Outsourcing
 Primary
outsourcing countries are:
 India
 China
 Eastern
Europe (including Russia)
 Ireland
 Israel
 Philippines
6-57
The Advantages and
Disadvantages of Outsourcing
 Advantages:
 Focus
on unique core competencies
 Exploit the intellect of another organization
 Better predict future costs
 Acquire leading-edge technology
 Reduce costs
 Improve performance accountability
6-58
The Advantages and
Disadvantages of Outsourcing
 Disadvantages:
 Reduces
technical know-how for future innovation
 Reduces degree of control
 Increases vulnerability of your strategic
information
 Increases dependency on other organizations
6-59