Systems Analysis and Design in a Changing World, Fifth Edition
Learning Objectives
Explain the purpose and various phases of the systems development life cycle (SDLC) Explain when to use an adaptive approach to the SDLC in place of a more predictive traditional SDLC Explain the differences between a model, a tool, a technique, and a methodology Describe the two overall approaches used to develop information systems: the traditional method and the object-oriented method
2
The Systems Development Lifecycle (SDLC)
Systems development life cycle (SDLC) Provides overall framework for managing systems development process Two main approaches to SDLC Predictive approach assumes project can be planned out in advance Adaptive approach more flexible, assumes project cannot be planned out in advance All projects use some variation of SDLC
Traditional Predictive Approach to the SDLC
Project planning initiate, ensure feasibility, plan schedule, obtain approval for project Analysis understand business needs and processing requirements Design define solution system based on requirements and analysis decisions Implementation construct, test, train users, and install new system Support keep system running and improve
Waterfall Approach to the SDLC
Modified Waterfall Approach with Overlapping Phases (Figure 2-5)
Newer Adaptive Approaches to the SDLC
Based on spiral model Project cycles through development activities over and over until project is complete Prototype created by end of each cycle Focuses on mitigating risk Iteration Work activities are repeated Each iteration refines previous result Approach assumes no one gets it right the first time There are a series of mini projects for each iteration
7
Activities of Planning Phase of SDLC
Define
business problem and scope detailed project schedule project feasibility
Produce Confirm
Economic, organizational, technical, resource, and schedule
Staff
the project (resource management)
Launch
project official announcement
8
Activities of Analysis Phase of SDLC
Gather Define Build
information to learn problem domain system requirements
prototypes for discovery of requirements requirements and evaluate alternatives
Prioritize
Generate
Review
recommendations with management
9
Activities of Design Phase of SDLC
Design Design Design Design Design
and integrate the network the application architecture the user interfaces the system interfaces and integrate the database for design details
Prototype Design
and integrate system controls
10
Activities of Implementation Phase of SDLC
Construct Verify
software components
and test data users and document the system
Convert Train
Install
the system
11
Activities of Support Phase of SDLC
Maintain
system
Small patches, repairs, and updates
Enhance
system
Small upgrades or enhancements to expand system capabilities Larger enhancements may require separate development project
Support
users
Help desk and/or support team
12
Methodologies and Models
Methodologies
Comprehensive guidelines to follow for completing every SDLC activity Collection of models, tools, and techniques
Models
Representation of an important aspect of real world, but not same as real thing
Abstraction used to separate out aspect
Diagrams and charts
Project planning and budgeting aids
13
Tools and Techniques
Tools
Software support that helps create models or other required project components Range from simple drawing programs to complex CASE tools to project management software
Techniques
Collection of guidelines that help analysts complete a system development activity or task
Can be step-by-step instructions or just general advice
14
Two Approaches to System Development
Traditional
approach
Also called structured system development Structured analysis and design technique (SADT) Includes information engineering (IE)
Object-oriented
approach
Also called OOA, OOD, and OOP Views information system as collection of interacting objects that work together to accomplish tasks
15
Object-Oriented Approach
Completely
different approach to information
systems
Views
information system as collection of interacting objects that work together to accomplish tasks
Objects things in computer system that can respond to messages Conceptually, no processes, programs, data entities, or files are defined just objects
OO
languages: Java, C++, C# .NET, VB .NET
16
Object-Oriented Approach
Object-oriented analysis (OOA)
Defines types of objects users deal with
Shows use cases are required to complete tasks
Defines object types needed to communicate with people and devices in system
Object-oriented design (OOD)
Shows how objects interact to complete tasks
Refines each type of object for implementation with specific language of environment Writing statements in programming language to define what each type of object does
17
Object-oriented programming (OOP)
SDLC Variations
Many
variations of SDLC in practice
Based on variation of names for phases
No matter which one, activities/tasks are similar
Some
increase emphasis on people
User-centered design, participatory design Sociotechnical systems
Some
increase speed of development
Rapid application development (RAD)
Prototyping
18
Life Cycles with Different Names for Phases (Figure 2-20)
19
Current Trends in Development
The
Unified Process (UP): Reinforces six best practices(develop iteratively, define and manage system requirements, use component architectures, create visual models, verify quality, control changes) Programming (XP): Recent development approach to keep process simple and efficient Modeling: Hybrid of XP and UP Respond to situation as rapidly as possible
20
Extreme Agile
Scrum:
Tools to Support System Development
Computer-aided system engineering (CASE)
Automated tools to improve the speed and quality of system development work Contains database of information about system called repository
Upper CASE support for analysis and design Lower CASE support for implementation ICASE integrated CASE tools
Now called visual modeling tools, integrated application development tools, and round-trip engineering tools
21
Summary
System development projects are organized around the systems development life cycle (SDLC) Some projects use a predictive approach to the SDLC, and others use a more adaptive approach to the SDLC SDLC phases include project planning, analysis, design, implementation, and support In practice, phases overlap, and projects contain many iterations of analysis, design, and implementation Models, techniques, and tools make up a system development methodology System development methodology provides guidelines to complete every activity in the SDLC System development methodologies are based on traditional approach or object-oriented approach Current trends include: Extreme Programming (XP), Unified Process (UP), Agile Modeling, and Scrum CASE tools are designed to help analysts complete system 22 development tasks