CHAPTER 2: APPROACHES TO SYSTEM DEVELOPMENT
Overview - Define business problem and scope
- Produce detailed project schedule
System development project - Confirm project feasibility
o Economic, organizational, technical,
Planned undertaking with fixed beginning and end
resource, and schedule
Produces desired result or product - Staff the project (resource management)
Can be a large job with thousands of hours of effort or
- Launch project ➩ official announcement
a small one-month project
Successful development project
Activities of Analysis Phase in SDLC
Provides a detailed plan to follow
Organized, methodical sequence of tasks and - Gather information to learn problem domain
activities - Define system requirements
Produces reliable, robust, and efficient system - Build prototypes for discovery of requirements
- Prioritize requirements
- Generate and evaluate alternatives
The Systems Development Lifecycle (SDLC) - Review recommendations with management
- Provides overall framework for managing
systems development process
Activities of Design Phase of SDLC
Two main approaches to SDLC
- Design and integrate the network
1. Predictive approach – assumes project can be - Design the application architecture
planned out in advance; requirements well understood - Design the user interfaces
and well defined, low technical risk - Design the system interfaces
2. Adaptive approach – more flexible, assumes project - Design and integrate the database
cannot be planned out in advance; requirements and - Prototype for design details
needs uncertain, high technical risk - Design and integrate system controls
Traditional Predictive Approach to the SDLC
1. Project planning – initiate, ensure feasibility, plan Activities of Implementation Phase of SDLC
schedule, obtain approval for project
2. Analysis – understand business needs and - Construct software components
processing requirements - Verify and test
3. Design – define solution system based on - Convert data
requirements and analysis decisions - Train users and document the system
4. Implementation – construct, test, train users, and - Install the system
install new system
5. Support – keep system running and improve
Information System Development Phases Activities of Support Phase of SDLC
1. Project planning phase Maintain system Small
2. Analysis phase o patches, repairs, and updates
3. Design phase Enhance system
4. Implementation phase o Small upgrades or enhancements to expand
5. Support phase
system capabilities
SDLC Models o Larger enhancements may require separate
development project
1. Waterfall model - is a cascade SDLC model, in which Support users
development process looks like the flow, moving step o Help desk and/or support team
by step through the phases of analysis, projecting,
realization, testing, implementation, and support.
2. Iterative model - does not need the full list of
requirements before the project starts. Methodologies and Models
3. Spiral model - combines architecture and prototyping
by stages. It is a combination of the Iterative and Methodologies
Waterfall SDLC models with the significant accent on
- Comprehensive guidelines to follow for
the risk analysis.
completing every SDLC activity
4. V-shaped model - an expansion of classic waterfall
- Collection of models, tools, and techniques
model and it’s based on associated test stage for
every development stage.
Models
5. Agile model – in this model, the customer is able to
see the result and understand if he is satisfied with it - Representation of an important aspect of real
or he is not. world, but not same as real thing
- Abstraction used to separate out aspect
- Diagrams and charts
Activities of Planning Phase in SDLC - Project planning and budgeting aids
Tools and Techniques Define what system needs to do (processing
requirements)
Tools Define data system needs to store and use (data
requirements)
- Software support that helps create models or Define inputs and outputs
other required project components
Define how functions work together to accomplish
- Range from simple drawing programs to tasks
complex CASE tools to project management
Data flow diagrams (DFD) and entity relationship
software
diagrams (ERD) show results of structured analysis
Techniques
Information Engineering (IE)
- Collection of guidelines that help analysts
Refinement to structured development
complete a system development activity or task
Methodology with strategic planning, data modeling,
- Can be step-by-step instructions or just general
automated tools focus
advice
More rigorous and complete than SADT
Industry merged key concepts from structured
development and information engineering approaches
Two Approaches to System Development into traditional approach
1. Traditional approach
- Also called structured system development Object-Oriented Approach
- Structured analysis and design technique
(SADT) Completely different approach to information systems
- Includes information engineering (IE) Views information system as collection of interacting
2. Object-oriented approach objects that work together to accomplish tasks
- Also called OOA, OOD, and OOP o Objects – things in computer system that
- Views information system as collection of can respond to messages
interacting objects that work together to o Conceptually, no processes, programs,
accomplish tasks data entities, or files are defined – just
objects
Traditional Approach OO languages: Java, C++, C# .NET, VB .NET
Object-oriented analysis (OOA)
Structured programming o Defines types of objects users deal with
o Shows use cases are required to complete
- Improves computer program quality tasks
- Allows other programmers to easily read and Object-oriented design (OOD)
modify code o Defines object types needed to
- Each program module has one beginning and communicate with people and devices in
one ending system
- Three programming constructs (sequence, o Shows how objects interact to complete
decision, repetition) tasks
o Refines each type of object for
Top-Down Programming
implementation with specific language of
- Divides complex programs into hierarchy of environment
modules Object-oriented programming (OOP)
- The module at top controls execution by “calling” o Writing statements in programming
lower level modules language to define what each type of object
- Modular programming does
o Similar to top-down programming
Current trends in Development (Adaptive Approaches)
- One program calls other programs to work
together as single system 1. The Unified Process (UP)
Object-oriented development approach
Offered by IBM / Rational
Structured Design o Booch, Rumbaugh, Jacobson
Unified Modeling Language (UML) used primarily for
- Technique developed to provide design modeling
guidelines UML can be used with any OO methodology
o What set of programs should be UP defines four life cycle phases
o What program should accomplish o Inception, elaboration, construction,
o How programs should be organized into a transition
hierarchy Reinforces six best practices
- Modules are shown with structure chart o Develop iteratively
- Main principle of program modules o Define and manage system requirements
o Loosely coupled – module is independent o Use component architectures
of other modules o Create visual models
o Highly cohesive – module has one clear o Verify quality
task o Control changes
2. Extreme Programming (XP)
Recent, lightweight, development approach to keep
process simple and efficient
Structured Analysis
Describes system support needed and required 5. Models, techniques, and tools make up a system
system functionality through informal user stories development methodology
Has users describe acceptance tests to demonstrate 6. System development methodology provides guidelines
defined outcomes to complete every activity in the SDLC
Relies on continuous testing and integration, heavy 7. System development methodologies are based on
user involvement, programming done by small teams traditional approach or object-oriented approach
8. Current trends include: Extreme Programming (XP),
Unified Process (UP), Agile Modeling, and Scrum
9. CASE tools are designed to help analysts complete
system development tasks
3. Agile Modeling
Hybrid of XP and UP (Scott Ambler); has more models
than XP, fewer documents than UP
Interactive and Incremental Modeling
o Apply right models
o Create several models in parallel
o Model in small increments
Teamwork
o Get active stakeholder participation
o Encourage collective ownership
o Model with others and display models
publicly
Simplicity
o Use simple content
o Depict models simply
o Use simplest modeling tools
Validation
o Consider testability
o Prove model is right with code
4. Scrum
For highly adaptive project needs
Respond to situation as rapidly as possible
Scrum refers to rugby game
o Both are quick, agile, and self-organizing
Team retains control over project
Values individuals over processes
Tools to Support System Development
Computer-aided system engineering (CASE)
o Automated tools to improve the speed and
quality of system development work
o 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
Chapter Highlights
1. System development projects are organized around
the systems development life cycle (SDLC)
2. Some projects use a predictive approach to the SDLC,
and others use a more adaptive approach to the
SDLC
3. SDLC phases include project planning, analysis,
design, implementation, and support
4. In practice, phases overlap, and projects contain many
iterations of analysis, design, and implementation