Systems Development Life Cycle (SDLC) by mercy2beans122

VIEWS: 440 PAGES: 35

									  Project Management
 Define project, project management, RAD, JAD
 Describe the project triangle and its tradeoffs
 Describe project management activities
 Discuss the advantages and disadvantages of functional,
  project (purpose) and matrix structures
 Describe the advantages, disadvantages and characteristics of
  SDLC (System Development Life Cycle) and prototyping
 Describe the phases of SDLC
 Describe project dimensions affecting risk
 Discuss integration in dealing with risk
 Discuss issues in managing behavioral factors
 Discuss open sourcing as a development approach
Project Management
Project - temporary endeavor undertaken
 to create a unique product or service
  may be divided into subprojects
Project management - application of
 knowledge, skills, tools and techniques to
 project activities to meet or exceed
 stakeholder needs and expectations from
 a project
Project Triangle

    Time              Cost


Project Management
Ensuring progress of project using metrics
Identifying risks and assessing the probability of
 them occurring
Ensuring progress toward deliverables within
 constraints of time and resources
Running coordination meetings of the project
Negotiating for resources on behalf of the
Development Models
Systems Development Life Cycle
Rapid Applications Development (RAD)
Joint Applications Development (JAD) (like
 RAD with users)
Agile Programming (Dynamic System
 Development Method; Extreme
 Programming; Scrum Crystal)
Systems Development
Life Cycle (SDLC)

Software Acquisition Choices
SDLC Overview
Alternative Approaches
SDLC - Prior Problems

Failure to meet:

SDLC - Characteristics
“Problem” or “Opportunity”
Many names; Widely applicable
“Analysis” vs. “Synthesis”
Variance across stages
SDLC - Characteristics

Disciplined approach
Systems approach
Iterative (not sequential)
SDLC - Advantages
Focus on tradeoffs
Focus on goals
Controls: milestones, checklist,
Tools, models, CASE
Hierarchical decomposition
Designed for user & manager
SDLC - Reasons for
Scope too broad or too narrow
Lack of needed skills
Incomplete specifications
No control/no framework
Lack of management/user
Too time-consuming
SDLC Phases
Initiation and Feasibility
Requirements Definition
Functional Design
Technical Design and Construction
Maintenance & Review
I. Initiation &
Project objectives & Scope
Preliminary survey & feasibility
Project proposal and schedule
Identify assumptions &
II. Requirements

Problem/Opportunity definition
Analyze current system
Focus on decisions and related
 information needs
Define business functionality
Plan for training, user acceptance

Symptoms vs. real problems
Question decision maker’s
 statement of problem
Bound problem realistically
Try to ascertain actual cause
Sometimes figuring out the
 problem is half the solution
Analyze Current

+ Understand activities involved
+ Identify decision points
+ Identify problems &
+ Be aware of history
- Bias thinking
III. Functional Design
Focus on business needs
 usability, reliability
Logical design
IV. Technical Design
and Construction
Finalize architecture and acquire
Complete technical definition of
 data access and other system
Make (program) vs. buy
Develop test plans
Revise schedule, plan and costs
V. Verification
Program Testing
  Structured walkthrough
  Code inspection
  Unit test
  Pairs testing
Verification, stress, user and
 security testing
VI. Implementation

 Parallel conversion
 Direct cut-over
 Pilot conversion
 Phased conversion
User training
VII. Maintenance and
Post-implementation audit
 Ends - information requirements
  (information, performance)
 Means - process
Maintenance (correcting bugs &
 scheduled maintenance)
Enhancement (adding
Iterative Development


           Software                “N”
Uses of Prototyping
   Verifying user needs

   Verifying that design = specifications

   Selecting the “best” design

   Developing a conceptual understanding of
    novel situations
Uses of Prototyping

   Testing a design under varying

   Demonstrating a new product to upper

   Implementing a new system in the user
    environment quickly
Proposed Advantages    Disadvantages in practice
   Improved user         Prototypes are used
    communication          “as is”
   Users like it           Integration often
   Low risk                  difficult
   Avoids over-            Design flaws
    design                  Poor performance
   Experimentation       Difficult to manage
    and innovation         process
   Spreads labor to      Creates unrealistic
    user department        expectations
                          Documentation is
 Observed Effects of
   Software Product         Software Process
 ease of use (+)           effort decreased (+)
 user needs (+)
                            difficult cost-
 unrealistic user           estimation (-)
  expectations (-)
                            end-user participation
 added features (?)
                             increased (+)
 poorer performance(-)
                            more expertise
 mixed design quality
                             needed (-)
 mixed maintainability
                            difficult planning &
   less need
                             control (-)
   more difficult to do
Rapid Applications
Development (RAD)
+ Like prototyping, uses iterative
+ Uses tools to speed up development
  reusable code
  code generation
  programming, language testing and debugging
- Requirements may be frozen too early
- Basic standards often overlooked
Joint Applications
Development (JAD)
+ Saves interviewing and data
 collection time
+ Structured process
+ Highly collaborative with business
- Expensive
- Low use of technology
Project Dimensions
Affecting Risk
Project Size (relative to others)

  The pregnant lady
  Extent of difficulty
  Interdependence of components
  High vs. Low
Tools for Project
Risk a function of size,
 complexity and clarity
  External integration tools (beyond
   project team) --- clarity
  Internal integration tools ( within
   project team) --- complexity
Integration Tools
EXTERNAL                  INTERNAL
User project manager      IT professional team
User specification         leader
 approval process          Frequent team
User-managed control       meetings
 process                   Regular technical
Users as team              status reviews
 members                   Outside technical
User responsibility for    assistance
 education&installation    Goal setting by team
Management Issues

Pulling the plug
Measuring success
 Resource constraints
 Impact on customers
 Business success
 Prepare the future
Open Sourcing
The process of building and
 improving “free” software by an
 Internet community
  Release early and often
  Delegate as much as possible
  Archive and manage the versions
  Be as open as possible
Free Software
The freedom to run the program for any purpose.
The freedom to study how the program works,
  and adapt it to your needs. Access to the source
  code is a precondition for this.
The freedom to distribute copies so that you can
  help your neighbor.
The freedom to improve and release your
  improvements to the public, so that the whole
  community benefits. Access to source code is a
  precondition for this GNU Project- Free Software Foundation, “The Free
   Software Definition,”, Downloaded 4/3/02.
Open Sourcing Issues
Protection of Intellectual Property
Updating and maintaining open
 source code
Competitive advantage
Tech support

To top