Title: Lecture 2: Overview of Systems Development Systems Development Methodologies
1Lecture 2Overview of Systems DevelopmentSystems
Development Methodologies
MIS 160 Systems Development Life Cycle I
2OVERVIEW OF SYSTEMS DEVELOPMENT
3Systems Development
- What is a system?
- A collection of related components that interact
to perform a task in order to accomplish a goal - Systems development (systems analysis and
- design) is the process of creating systems,
- developing them, and maintaining or enhancing
- them.
4Characteristics of Software
- Software is developed, not manufactured
- Software does not wear out
- Software is custom-built, not assembled from
existing components
5Problems in Software Development(Software
Crisis?)
- Schedule and cost overruns
- Demand gt supply
- Poor quality
- Difficulty in maintenance
- Don't support business objectives
- Failure to satisfy user requirements
- Computers and software that no one needs
- Incompatible and inadequate technology
- Poor cost/benefit analysis
6Success/Failure of IS Projects
- Average costs of systems development projects
for - large companies 2,322,000
- medium companies 1,331,000
- small companies 434,000
- Average failure rate of projects for
- large companies 72 percent
- medium companies 84 percent
- small companies 91 percent
7Alleviating the Problems in Systems Development
- Elimination of the causes of system failure lie
in - 1. the application of methodologies
- 2. modeling tools
- 3. techniques
- 4. project management techniques
- to design and build IS that not only meet the
needs of the - users, but also are delivered on time and within
budget
8Principles of Successful Systems Development
- Get the user involved
- Use a problem-solving approach
- Establish phases and activities
- Establish standards for development and
documentation - Justify systems as capital investments
- Don't be afraid to cancel or revise scope
- Divide and conquer
- Design systems for growth and change
- Proper planning and project management
9Some Key Terms ...
- Systems development life cycle (SDLC) the life
of a project, from concept through implementation - Methodology a comprehensive and detailed
version of an entire SDLC - Technique an approach that applies specific
tools and rules to complete one or more phases of
the methodology - Modeling tools specific tools used to apply
techniques - Project management techniques tools used to
help plan, schedule, and control a project
10BEWARE
- Writing code without a well-thought-out system
request rarely works.
11SDLC
- The step by step process followed during systems
analysis and design - Steps
- Project Planning
- Requirements Analysis
- System Design
- Build the System/Resource Acquisition
- Implementation and Maintenance
12The SDLC
- 1. Planning
- a. Project identification and selection
- b. Project initiation and planning
- 2. Analysis
- a. Determine system requirements (WHAT users
need) - b. Modeling possible solutions (HOW to satisfy
user needs) - 3. Design
- a. logical design
- b. physical design
- 4. Implementation
- 5. Maintenance / support
Frontend
A
D
Backend
I
13Project Planning
- Preliminary Analysis
- Determine the organization objectives
- Internal and external documentation
- Interviews
- Determine the nature and scope of the problem
- Look at alternative solutions
- Describe Costs and Benefits
- Document!!
14Requirements Analysis
- Gather data
- documents
- interviews
- questionnaires
- Analyze the data
- CASE tools
- Document!!
15System Design
- Preliminary design
- General functional capabilities of the system
- Prototyping
- Detailed design
- How the system will deliver on the preliminary
design - Document!!
16Build the System/Resource Acquisition
- Obtain the hardware and software
- Test the system
17Implement Maintain
- Converting to new system
- Direct
- Parallel
- Phased
- Pilot
- Training the users
- Audit and Evaluate
18Processes and Deliverables
Process
Product
Project Plan System Proposal System
Specification New System and Maintenance Plan
Planning Analysis Design Implementation
19Breakdown of Effort
- Actual
- Analysis 20
- Design 20
- Implementation 60
- Coding 20
- Testing and
- Debugging 40
Should be Analysis 40 Design 40 Implementati
on 30
20SYSTEMS DEVELOPMENT METHODOLOGIES
21Some Common Development Methodologies and
Techniques
- Code fix model
- Structured development
- Spiral model
- Prototyping
- Rapid application development
- Object-oriented development
22Code and Fix It Model
- An early technique
- The developer, in the following order
- codes
- thinks about requirements
- fixes the code
- continues this process until...
23Structured Development(Waterfall Model)
Project Identification and Selection
Project Initiation and Planning
Analysis
Logical Design
Physical Design
Implementation
Maintenance
24Advantages of Structured Development
- Been used successfully for over 20 years
- Provides a clear framework that defines and
divides important activities - Can be applied to both small and large projects
- Division of labor is easier to facilitate
25Limitations of Structured Development
- Specification problems
- assumes that development is a sequential process
- Changing requirements
- requirements specified at the beginning
- assumption that requirements will not change
- Conceptualization and visualization
- document led methodology
- volume of documentation can be huge
- Inaccuracy
- there is only downward trend
26The Spiral Model
- Boehm, 1988
- Risk-driven, rather than code-driven
- Uses process modeling rather than methodology
phases
27The Spiral Model
- Development process
- product separated into critical parts/levels
- risk analysis at each level (risk reduction)
- prototyping at each level
- same steps at each level
- Enhancement process
- same as the development process
28The Spiral Model
- Requires
- competent systems management
- competent systems personnel
- involved users
29The Spiral Model
30Prototyping
- Principle a user can tell you better what they
DON'T want than what they DO want - Expendable (throw-away) prototyping
- discarded after use
- used to support the analysis and design phases
- Evolutionary prototyping
- prototype evolves into the final system
- is it a methodology?
31Advantages
- Speed
- Easier for end-users to learn
- System changes discovered earlier
- End-user involvement (ownership)
- increased user satisfaction
- increased user acceptance
- User-analyst communication
- Early problem detection
- reduced development time
- reduced maintenance
32Disadvantages
- Poor documentation
- Hard to control/manage
- (Unrealistic) User expectations
- time for final system
- final system differences
- reduced analysis
33Rapid Application Development(RAD)
- Logistical approach to systems design
- Combines
- integrated CASE tools
- information engineering methodologies
- management techniques
- Speeds up Systems Development by as much as 20
times - Critics consider it incomplete life cycle
34Object-Oriented (OO) Development
- A fundamentally new way of thinking about
developing systems - Object-oriented means that we organize software
as a collection of discrete objects that
incorporate both data and behavior - Object-oriented development an approach to
systems development that proposes the use of
objects in the building of new systems and the
rebuilding of old ones
35Advantages of OO
- Faster development
- Higher quality
- Easier maintenance
- Increased scalability
- Better information structure
- Increased adaptability
- Increased modeling power
- Supports complexity
Reuse
36Disadvantages of OO
- Maturity of technology
- Need for standards
- Lack of database technology
- Lack of reusable software
- Lack of metrics
- Speed of execution
- Availability of qualified personnel
- Cost of conversion