download

Matakuliah : M0304/Corporate Information System Management
Tahun
: 2008
Pertemuan – 17-18
METODOLOGI PENGEMBANGAN SOFTWARE MANDIRI
Fakultas Ilmu Komputer
Modul-17-2
SYSTEMS DEVELOPMENT LIFE CYCLE METHODOLOGY
Systems development life cycle (SDLC) – a highly
structured approach for development of new customized
software applications
Fakultas Ilmu Komputer
Modul-17-3
SYSTEMS DEVELOPMENT LIFE CYCLE METHODOLOGY
The SDLC Steps
Key characteristic is
extensive formal reviews
required at end of each
major step
Fakultas Ilmu Komputer
Figure 17.1 The Systems Development
Life Cycle
Modul-17-4
SYSTEMS DEVELOPMENT LIFE CYCLE METHODOLOGY
The SDLC Steps
Hallmark of SDLC
approach: extensive upfront time spent
determining requirements to
avoid expensive changes
later
Fakultas Ilmu Komputer
Figure 17.2 Cost Breakdown for $1 Million
SDLC Project
Modul-17-5
SYSTEMS DEVELOPMENT LIFE CYCLE METHODOLOGY
The SDLC Steps
SDLC:
–
–
–
Most often requires a lot of documentation
Outputs from one step inputs to next
Often referred to as the “waterfall” model
Fakultas Ilmu Komputer
Modul-17-6
Fakultas Ilmu Komputer
Modul-17-7
SYSTEMS DEVELOPMENT LIFE CYCLE METHODOLOGY
Definition Phase – Requirements Definition
•
Focuses on logical design: processes, data flows, and data interrelationships – not
specific physical implementation
•
Deliverable – system requirements document:
–
–
–
–
Fakultas Ilmu Komputer
Detailed descriptions of inputs and outputs, processes used to convert input data
to outputs
Formal diagrams and output layouts
Revised cost/benefit analysis
Revised plan for remainder of project
Modul-17-8
SYSTEMS DEVELOPMENT LIFE CYCLE METHODOLOGY
Construction Phase
•
•
•
System Design
System Building
System Testing
Fakultas Ilmu Komputer
Documentation is a major mechanism of
communication during development process
Figure 17.3 Characteristics
of High Quality Systems
Modul-17-9
SYSTEMS DEVELOPMENT LIFE CYCLE METHODOLOGY
Implementation Phase
•
•
•
Installation
Operations
Maintenance
Fakultas Ilmu Komputer
Modul-17-10
Implementation Phase – Installation
Parallel Strategy
Parallel Strategy
Parallel Strategy
Parallel Strategy
Fakultas Ilmu Komputer
Figure 17.4 Implementation Strategies
Modul-17-11
Implementation Phase – Maintenance
Fakultas Ilmu Komputer
Figure 17.5 Percent of Development
Resources Devoted to Maintenance
Modul-17-12
Implementation Phase – Maintenance
Fakultas Ilmu Komputer
Figure 17.6 The Widening Gap Between
Organization’s Needs and System’s Performance Modul-17-13
SYSTEMS DEVELOPMENT LIFE CYCLE METHODOLOGY
The SDLC Project Team
•
•
•
Usually temporary
Includes personnel from IS and business units
Has a project manager
–
–
–
–
Fakultas Ilmu Komputer
Traditionally from IS
Can be from business unit
May be one from each
Responsible for success of project – delivering quality system on time and within
budget
Modul-17-14
SYSTEMS DEVELOPMENT LIFE CYCLE METHODOLOGY
The SDLC Project Team
•
Includes systems analysts
–
–
–
•
Have critical roles
Work closely with business managers and end users
Have problem-solving skills, knowledge of IT capabilities, strong business
understanding
Has a business sponsor and a champion
Fakultas Ilmu Komputer
Modul-17-15
SYSTEMS DEVELOPMENT LIFE CYCLE METHODOLOGY
Managing an SDLC Project
•
Characteristics critical for success:
–
–
–
Manageable project size
Accurate requirements definition
Executive sponsorship
Fakultas Ilmu Komputer
Modul-17-16
SYSTEMS DEVELOPMENT LIFE CYCLE METHODOLOGY
Managing an SDLC Project
(Adapted from Boehm, 1976)
Fakultas Ilmu Komputer
Figure 17.7 Costs of Error Correction
by SDLC Step
Modul-17-17
SYSTEMS DEVELOPMENT LIFE CYCLE METHODOLOGY
SDLC Advantages and Disadvantages
Fakultas Ilmu Komputer
Figure 17.8 Advantages and Disadvantages
of Traditional SDLC Approach
Modul-17-18
PROTOTYPING METHODOLOGY
•
Prototyping approach:
–
Takes advantage of availability of fourth generation procedural languages and
relational database management systems
–
Enables creation of system (or part of system) more quickly, then revise after
users have tried it
–
Is a type of evolutionary development process
Fakultas Ilmu Komputer
Modul-17-19
PROTOTYPING METHODOLOGY
•
Prototyping examples:
–
Input and output screens developed for users to test as part of requirements
definition
–
“First-of-a-series” – a completely operational prototype used as a pilot
–
“Selected features” – only some essential features included in prototype, more
added later
–
Prototyping used as a complete alternative to traditional SDLC methodology
Fakultas Ilmu Komputer
Modul-17-20
PROTOTYPING METHODOLOGY
Prototyping used as a complete alternative to traditional SDLC methodology:
•
–
Good when requirements hard to define
–
Good when system needed quickly
–
Impractical for large, complex applications
Fakultas Ilmu Komputer
Modul-17-21
The Prototyping Steps
Fakultas Ilmu Komputer
Figure 17.9 The Prototyping Life Cycle
Modul-17-22
PROTOTYPING METHODOLOGY
The Prototyping Project Team
•
•
•
Representatives from IS and user management necessary
Need team members who can quickly build systems using advanced tools
Requires dedicated business user roles
Fakultas Ilmu Komputer
Modul-17-23
PROTOTYPING METHODOLOGY
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
Fakultas Ilmu Komputer
Modul-17-24
PROTOTYPING METHODOLOGY
Prototyping Advantages and Disadvantages
•
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
Fakultas Ilmu Komputer
Modul-17-25
PROTOTYPING METHODOLOGY
Prototyping within an SDLC Process
Fakultas Ilmu Komputer
Figure 17.10 SDLC with Prototyping
to Define Requirements
Modul-17-26
PROTOTYPING METHODOLOGY
Prototyping within an SDLC Process
Fakultas Ilmu Komputer
Figure 17.11 Prototyping/Piloting Replaces
SDLC Definition Phase
Modul-17-27
NEWER APPROACHES
Rapid Application Development
(RAD)
•
•
Hybrid methodology – aspects of
SDLC and prototyping
Goal is to produce a system in
less than a year
Fakultas Ilmu Komputer
Figure 17.12 Four-Step RAD Cycle
Modul-17-28
NEWER APPROACHES
Rapid Application Development (RAD)
Joint application design (JAD) – a technique in which a
team of users and IS specialists engage in an intense and
structured process in order to minimize the total time
required for gathering information from multiple
participants
Fakultas Ilmu Komputer
Modul-17-29
NEWER APPROACHES
Rapid Application Development (RAD)
Joint application design (JAD) – a technique in which a
team of users and IS specialists engage in an intense and
structured process in order to minimize the total time
required for gathering information from multiple
participants
Computer-aided software engineering (CASE) – any
software tool used to automate one or more steps of a
software development methodology
Fakultas Ilmu Komputer
Modul-17-30
NEWER APPROACHES
Rapid Application Development (RAD)
(Adapted from Valacich, George, and Hoffer, 2001)
Fakultas Ilmu Komputer
Figure 17.13 Types of CASE Tools
Modul-17-31
NEWER APPROACHES
Rapid Application Development (RAD)
Fakultas Ilmu Komputer
Figure 17.14 RAD Advantages
and Disadvantages
Modul-17-32
NEWER APPROACHES
Agile Software Development Discipline
•
•
Alternative methodology for smaller projects
Based on four key values:
–
–
–
–
•
Simplicity
Communication
Feedback
Courage
One type: Extreme Programming (XP)
–
–
Fakultas Ilmu Komputer
Programmers write code in pairs
Use simple design and frequent testing
Modul-17-33
MANAGING SOFTWARE PROJECTS USING OUTSOURCED
STAFF
•
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
Fakultas Ilmu Komputer
Modul-17-34
MANAGING SOFTWARE PROJECTS USING OUTSOURCED
STAFF
•
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
Fakultas Ilmu Komputer
Modul-17-35
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
Fakultas Ilmu Komputer
Modul-17-36
Prosedure Outsource
• Reff-Haag
Fakultas Ilmu Komputer
Modul-17-37
OUTSOURCING
• Developing strategic partnerships
• Outsourcing - the delegation of specific work to a third party for a
specified length of time, at a specified cost, and at a specified level
of service
Modul-17-38
Developing Strategic Partnerships
Modul-17-39
Developing Strategic Partnerships
•
IT outsourcing takes on 1 of 4 forms:
1.
2.
3.
4.
Purchasing existing software
Purchasing existing software and pay the publisher to make certain
modifications
Purchasing existing software and pay the publisher for the right to make
modifications yourself
Outsourcing the development of an entirely new and unique system for
which no software exists
Modul-17-40
The Outsourcing Process
Modul-17-41
The Outsourcing Process
•
Steps of the outsourcing process
1.
2.
3.
4.
Planning
Define project scope
Select a target system
Establish logical requirements
Modul-17-42
The Outsourcing Process
5.
Develop a request for proposal
•
6.
7.
8.
Request for proposal (RFP) - a formal document that describes in detail your
logical requirements for a proposed system and invites outsourcing
organizations to submit bids for its development
Evaluate request for proposal returns and choose a vendor
Test and accept solution
Monitor and reevaluate
Modul-17-43
The Outsourcing Process – an RFP
Modul-17-44
Offshore Outsourcing
 Offshore outsourcing - using organizations from other countries to
write code and develop systems
Modul-17-45
The Advantages of Outsourcing
•
•
•
•
•
•
Focus on unique core competencies
Exploit the intellect of another organization
Better predict future costs
Acquire leading-edge technology
Reduce costs
Improve performance accountability
Modul-17-46
The Disadvantages of Outsourcing
•
•
•
•
Reduces technical know-how for future innovation
Reduces degree of control
Increases vulnerability of strategic information
Increases dependency on other organizations
Modul-17-47