Student_Ch_11 (1929.0K) - McGraw-Hill Higher Education

lumpysteerΛογισμικό & κατασκευή λογ/κού

2 Δεκ 2013 (πριν από 3 χρόνια και 11 μήνες)

125 εμφανίσεις

McGraw
-
Hill/Irwin

©2008 The McGraw
-
Hill Companies, All Rights Reserved

CHAPTER 11

SYSTEMS
DEVELOPMENT

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

McGraw
-
Hill/Irwin

©2008 The McGraw
-
Hill Companies, All Rights Reserved

SECTION 11.1

DEVELOPING
ENTERPRISE
APPLICATIONS

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 end
-
user 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



McGraw
-
Hill/Irwin

©2008 The McGraw
-
Hill Companies, All Rights Reserved

SECTION 11.2

THE SYSTEMS
DEVELOPMENT
LIFE CYCLE
(SDLC)

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 end
-
user 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 in
-
house 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.
Parallel implementation

2.
Plunge implementation

3.
Pilot implementation

4.
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 classroom
-
type 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