Systems development life cycle (SDLC)

CHAPTER 11
SYSTEMS
DEVELOPMENT
McGraw-Hill/Irwin
©2008 The McGraw-Hill Companies, All Rights Reserved
11-2
CHAPTER ELEVEN OVERVIEW
• SECTION 11.1 – DEVELOPING ENTERPRISE APPLICATIONS
–
–
–
–
Developing Software
The Systems Development Life Cycle
Software Development Methodologies
Developing Successful Software
• SECTION 11.2 – THE SYSTEMS DEVELOPMENT LIFE CYCLE
(SDLC)
–
–
–
–
–
–
–
–
–
Systems Development Life Cycle
Phase 1: Planning
Phase 2: Analysis
Phase 3: Design
Phase 4: Development
Phase 5: Testing
Phase 6: Implementation
Phase 7: Maintenance
Software Problems are Business Problems
SECTION 11.1
DEVELOPING
ENTERPRISE
APPLICATIONS
McGraw-Hill/Irwin
©2008 The McGraw-Hill Companies, All Rights Reserved
11-4
LEARNING OUTCOMES
1. Identify the business benefits
associated with successful software
development
2. Describe the seven phases of the
systems development life cycle
11-5
LEARNING OUTCOMES
3. Summarize the different software
development methodologies
4. Define the relationship between the systems
development life cycle and software
development
5. Compare the waterfall methodology and the
agile methodology
11-6
DEVLOPING SOFTWARE
• Software that is built correctly can transform as
the organization and its business transforms
• Software that effectively meets employee needs
will help an organization become more
productive and enhance decision making
• Software that does not meet employee needs
may have a damaging effect on productivity and
can even cause a business to fail
11-7
DEVELOPING SOFTWARE
• As organizations’ reliance on software
grows, so do the business-related
consequences of software successes and
failures including:
– Increase or decrease revenue
– Repair or damage to brand reputation
– Prevent or incur liabilities
– Increase or decrease productivity
11-8
THE SYSTEMS DEVELOPMENT
LIFE CYCLE (SDLC)
• Systems
development life
cycle (SDLC) – the
overall process for
developing
information systems
from planning and
analysis through
implementation and
maintenance
11-9
THE SYSTEMS DEVELOPMENT
LIFE CYCLE (SDLC)
1. Planning phase – involves establishing a
high-level plan of the intended project and
determining project goals
2. Analysis phase – involves analyzing enduser business requirements and refining
project goals into defined functions and
operations of the intended system
•
Business requirement – detailed set of business
requests that the system must meet in order to be
successful
11-10
THE SYSTEMS DEVELOPMENT
LIFE CYCLE (SDLC))
3. Design phase – involves describing the
desired features and operations of the system
including screen layouts, business rules,
process diagrams, pseudo code, and other
documentation
4. Development phase – involves taking all of
the detailed design documents from the
design phase and transforming them into the
actual system
11-11
THE SYSTEMS DEVELOPMENT
LIFE CYCLE (SDLC)
5. Testing phase – involves bringing all the
project pieces together into a special testing
environment to test for errors, bugs, and
interoperability and verify that the system
meets all of the business requirements
defined in the analysis phase
6. Implementation phase – involves placing the
system into production so users can begin to
perform actual business operations with the
system
11-12
THE SYSTEMS DEVELOPMENT
LIFE CYCLE (SDLC)
7. Maintenance phase – involves
performing changes, corrections,
additions, and upgrades to ensure the
system continues to meet the business
goals
11-13
SOFTWARE DEVELOPMENT
METHODOLOGIES
•
There are a number of different software
development methodologies including:
–
–
–
–
Waterfall
Rapid application development (RAD)
Extreme programming
Agile
11-14
Waterfall Methodology
•
Waterfall
methodology – a
sequential,
activity-based
process in which
each phase in the
SDLC is
performed
sequentially from
planning through
implementation
and maintenance
11-15
Rapid Application Development
Methodology (RAD)
•
Rapid application development methodology
(RAD) – emphasizes extensive user involvement
in the rapid and evolutionary construction of
working prototypes of a system to accelerate the
systems development process
•
The prototype is an essential part of the analysis
phase when using a RAD methodology
–
Prototype – a smaller-scale representation or working
model of the users’ requirements or a proposed design
for an information system
11-16
Rapid Application Development
Methodology (RAD)
11-17
Extreme Programming
Methodology
• Extreme programming (XP) methodology – breaks a
project into tiny phases, and developers cannot continue on
to the next phase until the first phase is complete
11-18
Agile Methodology
•
Agile methodology – a form of XP, aims
for customer satisfaction through early and
continuous delivery of useful software
components
– Agile is similar to XP but with less focus on
team coding and more on limiting project scope
– An agile project sets a minimum number of
requirements and turns them into a deliverable
product
11-19
DEVELOPING SUCCESSFUL
SOFTWARE
•
Primary principles for successful agile
software development include:
–
–
–
–
–
Slash the budget
If it doesn’t work, kill it
Keep requirements to a minimum
Test and deliver frequently
Assign non-IT executives to software
projects
11-20
OPENING CASE QUESTIONS
HP’s Software Problems
1. Identify the business benefits associated with successful
software development for HP
2. Which of the seven phases of the systems development life
cycle is most important to HP?
3. Which of the seven phases of the systems development life
cycle is least important to HP?
4. Which of the different software development methodologies
should HP use to implement successful systems?
5. Explain what might happen if HP used the waterfall
methodology to develop its ERP system
SECTION 11.2
THE SYSTEMS
DEVELOPMENT
LIFE CYCLE
(SDLC)
McGraw-Hill/Irwin
©2008 The McGraw-Hill Companies, All Rights Reserved
11-22
LEARNING OUTCOMES
6. Summarize the activities associated with the
planning phase in the SDLC
7. Summarize the activities associated with the
analysis phase in the SDLC
8. Summarize the activities associated with the
design phase in the SDLC
9. Summarize the activities associated with the
development phase in the SDLC
11-23
LEARNING OUTCOMES
10. Summarize the activities associated with
the testing phase in the SDLC
11. Summarize the activities associated with
the implementation phase in the SDLC
12. Summarize the activities associated with
the maintenance phase in the SDLC
11-24
SDLC
•
Large, complex IT systems take teams of
architects, analysts, developers, testers, and
users many years to create
•
The systems development life cycle is the
foundation for many systems development
methodologies such as RAD and agile
–
Systems development life cycle – the overall
process for developing information systems from
planning and analysis through implementation and
maintenance
11-25
SDLC
11-26
PHASE 1: PLANNING
•
Planning phase – involves establishing
a high-level plan of the intended project
and determining project goals
•
Primary planning activities include
1. Identify and select the system for
development
2. Assess project feasibility
3. Develop the project plan
11-27
Identify and Select the System for
Development
•
Organizations use different forms of
evaluation criteria to determine which
systems to develop
– Critical success factor (CSF) – a factor that
is critical to an organization’s success
11-28
Identify and Select the System for
Development
11-29
Assess Project Feasibility
•
Feasibility study – determines if the
proposed solution is feasible and achievable
from a financial, technical, and organizational
standpoint
•
Different types of feasibility studies
–
–
–
–
–
Economic feasibility study
Operational feasibility study
Technical feasibility study
Schedule feasibility study
Legal and contractual feasibility study
11-30
Develop the Project Plan
•
Developing the project plan is a difficult and
important activity
•
The project plan is the guiding force behind
on-time delivery of a complete and successful
system
•
Continuous updating of the project plan must
be performed during every subsequent phase
during the SDLC
11-31
PHASE 2: ANALYSIS
•
Analysis phase – involves analyzing enduser business requirements and refining
project goals into defined functions and
operations of the intended system
•
Primary analysis activities include:
1. Gather business requirements
2. Create process diagrams
3. Perform a buy vs. build analysis
11-32
Gather Business Requirements
•
Business requirements – the detailed set of
business requests that the system must meet in
order to be successful
•
Different ways to gather business requirements
–
–
–
–
–
Joint application development (JAD) session –
where employees meet to define or review the
business requirements for the system
Interviews
Questionnaires
Observations
Review business documents
11-33
Gather Business Requirements
•
The system users review the requirements
definition document and determine if they will
sign-off on the business requirements
–
–
Requirements definition document – contains
the final set of business requirements, prioritized in
order of business importance
Sign-off – the system users’ actual signatures
indicating they approve all of the business
requirements
11-34
Create Process Diagrams
•
Process modeling – graphically representing
the processes that capture, manipulate, store,
and distribute information between a system
and its environment
•
Common process modeling diagrams include
–
–
Data flow diagram (DFD) – illustrates the
movement of information between external entities
and the processes and data stores within the
system
Computer-aided software engineering (CASE)
tools –automate systems analysis, design, and
development
11-35
Create Process Diagrams
•
Sample data flow diagram
11-36
Perform a Buy vs. Build Analysis
•
An organization faces two primary choices
when deciding to develop an information
system
1. Buy the information system from a vendor
– Commercial off-the shelf (COTS) – software
package or solution that is purchased to support
one or more business functions and information
systems
– SCM, CRM, and ERP solutions are typically
COTS
2. Build the information system itself
11-37
Perform a Buy vs. Build Analysis
•
Organizations must consider the following
when making a buy vs. build decision:
– Are there any currently available products that
fit the needs?
– Are there features that are not available and
important enough to warrant the expense of inhouse development?
– Can the organization customize or modify an
existing COTS to fit its needs?
– Is there a justification to purchase or develop
based on the acquisition cost?
11-38
Perform a Buy vs. Build Analysis
•
Three key factors an organization should
also consider when contemplating the
buy vs. build decision
1. Time to market
2. Availability of corporate resources
3. Corporate core competencies
11-39
PHASE 3: DESIGN
•
Design phase – involves describing the
desired features and operations of the
system including screen layouts,
business rules, process diagrams,
pseudo code, and other documentation
•
Primary design activities include:
1. Design the IT infrastructure
2. Design system models
11-40
Design the IT Infrastructure
•
Sample IT infrastructure
11-41
Design System Models
•
Modeling – the activity of drawing a
graphical representation of a design
•
Different modeling types include:
–
–
–
–
Graphical user interface (GUI)
GUI screen design
Data model
Entity relationship diagram (ERD)
11-42
Design System Models
•
Sample entity relationship diagram (ERD)
11-43
PHASE 4: DEVELOPMENT
•
Development phase – involves taking
all of the detailed design documents
from the design phase and transforming
them into the actual system
•
Primary development activities include:
1. Develop the IT infrastructure
2. Develop the database and programs
11-44
PHASE 5: TESTING
•
Testing phase – involves bringing all the
project pieces together into a special testing
environment to test for errors, bugs, and
interoperability, in order to verify that the
system meets all the business requirements
defined in the analysis phase
•
Primary testing activities include:
1. Write the test conditions
2. Perform the system testing
11-45
Write the Test Conditions
•
Test condition – the detailed steps the system must
perform along with the expected results of each step
11-46
Perform the System Testing
•
Different types of testing
–
–
–
–
–
–
Unit testing – tests each unit of code upon
completion
Application (or system) testing – verifies that all
units of code work together
Integration testing – exposes faults in the
integration of software components or units
Backup and recovery testing – tests the ability of
an application to be restarted after failure
Documentation testing – verifies instruction
guides are helpful and accurate
User acceptance testing (UAT) – tests if a system
satisfies its acceptance criteria
11-47
PHASE 6: IMPLEMENTATION
•
Implementation phase – involves placing the
system into production so users can begin to
perform actual business operations with the
system
•
Primary implementation activities include:
1. Write detailed user documentation
2. Determine implementation method
3. Provide training for the system users
11-48
Write Detailed User Documentation
•
System users require user
documentation that highlights how to use
the system
•
User documentation – highlights how
to use the system
11-49
Determine Implementation Method
•
Four primary implementation methods
1.
2.
3.
4.
Parallel implementation
Plunge implementation
Pilot implementation
Phased implementation
11-50
Provide Training
for the System Users
•
Organizations must provide training for
system users
•
Two most popular types of training
include:
– Online training – runs over the Internet or
off a CD-ROM
– Workshop training – set in a classroomtype environment and led by an instructor
11-51
PHASE 7: MAINTENANCE
•
Maintenance phase – involves performing
changes, corrections, additions, and upgrades
to ensure the system continues to meet the
business goals
•
Primary maintenance activities include:
1. Build a help desk to support the system users
2. Perform system maintenance
3. Provide an environment to support system changes
11-52
Build a Help Desk to
Support the System Users
•
Internal system users have a phone number
for the help desk they call whenever they have
issues or questions about the system
–
•
Help desk – a group of people who respond to
internal system user questions
Providing a help desk is an excellent way to
provide comprehensive support for new
system users
11-53
Perform System Maintenance
•
Maintenance – fixing or enhancing an
information system
•
Different types of maintenance include:
–
–
–
–
Adaptive maintenance
Corrective maintenance
Perfective maintenance
Preventative maintenance
11-54
Support System Changes
•
An organization must modify its systems to
support the business environment
•
It typically accomplishes this through change
management systems and change control
boards
–
–
Change management system – a collection of
procedures to document a change request and define
the steps necessary to consider the change based on
the expected impact of the change
Change control board (CCB) – responsible for
approving or rejecting all change requests
11-55
SOFTWARE PROBLEMS ARE
BUSINESS PROBLEMS
•
Primary reasons for project failure
include
– Unclear or missing business requirements
– Skipping SDLC phases
– Failure to manage project scope
•
•
Scope creep – occurs when the scope
increases
Feature creep – occurs when extra features are
added
– Failure to manage project plan
– Changing technology
11-56
SOFTWARE PROBLEMS ARE
BUSINESS PROBLEMS
•
Find errors early: the later in the SDLC an
error is found - the more expensive it is to
fix
11-57
OPENING CASE QUESTIONS
HP’s Software Problems
6. Describe the different types of feasibility studies and
explain how HP could use a technical feasibility study to
avoid software development failure
7. Review the buy versus build decision and explain why HP
chose to buy its ERP system
8. Why is testing critical to HP’s software development
process?
9. Identify the primary reasons for software project failure
and explain which ones HP experienced on its ERP build
11-58
CLOSING CASE ONE
Denver International Airport
1.
One of the problems with DIA’s baggage system was
inadequate testing. Describe the different types of tests
DIA could have used to help ensure its baggage system’s
success
2.
Evaluate the different implementation approaches. Which
one would have most significantly increased the chances
of the project’s success?
3.
Explain the cost of finding errors. How could more time
spent in the analysis and design phase have saved
Colorado taxpayers hundreds of millions of dollars?
4.
Why could BAE not take an existing IT infrastructure and
simply increase its scale and expect it to work?
11-59
CLOSING CASE TWO
Reducing Ambiguity
1. Why are ambiguous business requirements the
leading cause of system development failures?
2. Why do the words “and” and “or” tend to lead to
ambiguous requirements?
3. Research the Web and determine other reasons
for “bad” business requirements
4. What is wrong with the following business
requirement: “The system must support
employee birthdays since every employee
always has a birthday every year”
11-60
CLOSING CASE THREE
Gearing Up at REI
1. What business benefits did REI receive by
developing its successful CRM system?
2. Identify the potential issues facing REI if it
failed to implement a successful SCM system
3. List and describe the seven phases of the
SDLC and rank them in order of importance to
REI’s system development efforts
11-61
CLOSING CASE THREE
Gearing Up at REI
4. Summarize the different software
development methodologies and recommend
one for REI to follow
5. Describe the analysis phase of systems
development along with its importance for
successful system development efforts for REI
6. Explain the importance of the testing phase
along with three different tests REI should
perform on each new system