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
  T.A.N.S.T.A.A.F.L.
Project Triangle



    Time              Cost


            QUALITY




            Scope
Project Management
Activities
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
 team
Negotiating for resources on behalf of the
 project
Development Models
Systems Development Life Cycle
Rapid Applications Development (RAD)
Prototyping
Joint Applications Development (JAD) (like
 RAD with users)
Agile Programming (Dynamic System
 Development Method; Extreme
 Programming; Scrum Crystal)
Object-Oriented
Systems Development
Life Cycle (SDLC)

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

Failure to meet:
  Budgets
  Schedules
  Expectations


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

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

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

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
System

+ Understand activities involved
+ Identify decision points
+ Identify problems &
 efficiencies
+ Be aware of history
- Bias thinking
III. Functional Design
Focus on business needs
 usability, reliability
Logical design
 Outputs
 Inputs
 Presentation
 Processes
 Databases
 Personnel
IV. Technical Design
and Construction
Finalize architecture and acquire
 hardware
Complete technical definition of
 data access and other system
 components
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

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

          Version
            “1”
                        Version
                          “2”

                                  Version
           Software                “N”
          Development
            Process
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
    environments

   Demonstrating a new product to upper
    management

   Implementing a new system in the user
    environment quickly
  Prototyping
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
                           difficult
 Observed Effects of
 Prototyping
   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
 development
+ Uses tools to speed up development
  GUI
  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
 units
- Expensive
- Low use of technology
Project Dimensions
Affecting Risk
Project Size (relative to others)


  The pregnant lady
Complexity
  Extent of difficulty
  Interdependence of components
  Relative
Clarity
  High vs. Low
Tools for Project
Management
Risk a function of size,
 complexity and clarity
Tools
  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,” http://www.gnu.org/philosophy/free-sw.html, Downloaded 4/3/02.
Open Sourcing Issues
Protection of Intellectual Property
Updating and maintaining open
 source code
Competitive advantage
Tech support
Standards

								
To top