(Information) Systems Development
outline
• Systems Development Concepts
• Challenges in Systems Development
• Types of System Development Methods
• Systems Development Life Cycle (SDLC)
• Rapid Application Development (RAD)
• Object Oriented Development (OOD)
• Extreme Programming (EP)
SDLC
• Information system development is also commonly known as SLC
(Systems Life Cycle) or SLDC (Software Development Life Cycle).
• SDLC is a process of making and changing the system and the
model and methodology used.
• In other words, an SDLC is the preparation of a new system to
replace the old system, both in whole and only partially.
Why system development
• Problems that cannot be accommodated by the old system
•,
•.
Systems Development Concepts
• A process for creating and maintaining information
systems not only computer program
• Computer program: three components (hardware,
software, and data)
• Information systems
• Five components (hardware, software, data, procedures,
and people)
• Never off-the-shelf
• Fit the business objective and user’s requirements
• Maintenance information systems: fix the problem
and adopt change
System development team
project coordinator
system analyst and design
network designer
Programmer
technician (hardware)
administrator
software tester,
graphic designer,
and documentary.
Scales of Information Systems
System Type Description
Personal Supports one person with limited set of
requirements
Workgroup Supports a group of people normally with a
single application
Enterprise Supports many workgroups with many
different applications
Interenterprise Supports many different organizations with
many different cultures, different countries
and heritages
Systems Development Challenges
• Determining requirements
• Estimating schedule and budget
• Changing technology
• Diseconomics of scale
• As the development teams become larger, the average contribution per
worker decreases
• Brooks’s Law: adding more people to a late project makes the project
later
• Training and coordination
Types of System Development Methods
• Four major methods
• Systems Development Life Cycle (SDLC)
• Rapid Application Development (RAD)
• Object Oriented Development (OOD)
• Extreme Programming (EP)
• No single method works for all information systems
Systems Development Life Cycle
• Classical approach
• Five phases
• System definition
• Requirements analysis
• Component design
• Implementation
• Maintenance
• Problems
Five Phases in the SDLC
System Definition Phase
• Define project
• Goals and objectives
• Scope–statement of work
• Assess feasibility
• Cost (budget)
• Organizational (operational)
• Schedule
• Technical
• Form a project team
• Project manager
• In-house IT staff
• Outside consultants and staff (as needed)
• User representatives (management and staff)
System Definition Phase
Requirement Analysis Phase
• The most important phase
• Conduct user interviews
• Evaluate existing systems
• Determine new forms/reports/queries
• Identify new application features and functions
• Consider security
• Create data model
• Develop requirements for the five components
• Obtain user approval
Requirements Analysis Phase
Component Design Phase
• Design five components
• Hardware specifications (processing computer and network)
• Software specifications (source and code)
• Create data model and database
• Normal, backup, recovery for both user and operator
• Job description of duty and responsibility for both user and operator
• Determine alternatives
• Evaluate each alternative against requirements
• Select the best alternative that meets the requirements
Security Consideration
• Users authentication
• User groups
• Primary system features and functions
• System restrictions (minimum rights)
• Permissions to user groups for specific features and functions
Component Design Phase
Implementation Phase - I
• Build, test, and convert to the new system
• User training document review and test procedures
• System testing
• Test plan
• IT professional, user
• Product quality assurance (PQA)
• Normal and incorrect action
• Beta testing
Implementation Phase - II
• System conversion
• Pilot: control negative impact
• Phase
• Parallel: save but expensive
• Plunge (direct): new system only
Implementation Phase
Maintenance Phase
• Fixing the system to work correctly or adapting the system to changes
in requirements
• Tracking failure or enhancement requests for all five components
• Prioritize requests
• Fixing failures
• Patch: high priority failures
• Service pack: low priority failures
• New release: major enhancements
System Maintenance Phase
SDLC Problems
• A need to crawl back up the waterfall
• Unusable documenting requirements
• Scheduling and budgeting difficulty
Rapid Application Development (RAD)
• Proposed by James Martin
• Characteristics
• Break up the design and implementation phases of the SDLC into smaller
pieces
• Continuous user involvement
• Prototype
• Joint application design: user, developer and PQA personnel
• Use CASE and visual development tools with repository and code generator
(computer assisted software engineering or computer assisted systems
engineering)
Martin’s RAD Process
Object Oriented Development
• From discipline of object-oriented programming for designing and writing
programs
• Unified Modeling Language (UML): a series of diagramming techniques to
facilitate OOP development
• Unified Process (UP): for developing computer program not information systems
with five phases
• Inception phase: new system definition
• Elaboration phase: construct and test the framework and architecture of most risk and
uncertainty use case (requirement) for the new system (a description of an application of
new system)
• Construction phase: low risk features and functions use case (requirement)
• Transition phase: conversion
• Maintenance phase
Stages in the Unified Process
Unified Process Principles
Extreme Programming
• An emerging technique for developing computer programs
• Not useful for large scale development systems that require business
processes and procedures
• Characteristics
• Customer centric (customer working full time in the development project
• Just-in-time-design for programming
• Paired programming to reduce error and maintaining effort
Comparison of Development
Techniques