SDLC
SDLC
System
System Operation Analysis
& Maintenance
System System
Implementation
n Design
System
Development
Phase 1:
Preliminary Investigation
Determine if a new system is needed
User Training
Ease into system, make them comfortable,
and gain their support
Most commonly overlooked
Can be commenced before equipment
delivery
Outside trainers sometimes used
Phase 6: Operations &
Maintenance
Types of changes:
Physical repair of the system
Correction of new bugs found (corrective)
System adjustments to environmental changes
Adjustments for users’ changing needs
(adaptive)
Changes to user better techniques when they
become available (perfective)
Phase 6: Operations &
Maintenance
Evaluation Methods
System
Design Design Specifications
19
Roles of people in software
people involved in software production
customer / client: wants software built
often doesn't know what he/she wants
managers / designers: plan software
difficult to foresee all problems and issues in advance
developers: write code to implement software
it is hard to write complex code for large systems
testers: perform quality assurance (QA)
it is impossible to test every combination of actions
users: purchase and use software product
users can be fickle and can misunderstand the product
20
Ad-hoc software
development
ad-hoc development: creating software
without any formal guidelines or process
task
does not scale well to multiple people
21
not easy to review or evaluate one's work
The software lifecycle
software lifecycle: series of steps / phases,
through which software is produced
can take months or years to complete
22
Lifecycle phases
standard phases
1. Requirements Analysis & Specification
2. Design
3. Implementation, Integration
4. Testing, Profiling, Quality Assurance
5. Operation and Maintenance
Implemented
Expressed in By
Structured Realized By
Terms Of By Verified
By
class...
class...
class... ?
class.... ?
Use Case Applicatio Solution
n Subsystems Source Test
Model Domain
Domain Code Cases
Objects
Objects
24
Some software models
Several models for developing software
(besides ad-hoc) have been attempted:
code-and-fix: write some code, debug it, repeat
until finished
evolutionary: build initial requirement spec,
write it, then "evolve" the spec and code as
needed
waterfall: perform the standard phases
(requirements, design, code, test) in sequence
rapid prototyping: write an initial "throwaway"
version of the product, then design, code, test
spiral: assess risks at each step, and do the
most critical action immediately
25
code-and-fix model
Code First
Version
Modify until
Client is satisfied
Operations Mode
Retirement
26
Problems with code-and-fix
What are some reasons not to use the
code-and-fix model?
Verify
Arch. Design
Verify
For each build:
Perform detailed
design, implement.
Test. Deliver.
Operations
Retirement
28
Problems with evolutionary
The evolutionary model is similar to
code-and-fix, but it assumes the
repetitions are "evolutions" of the code,
not necessarily bug fixes. Problems with
difficult to distinguish from code-and-fix
this?
assumes user's initial spec will be flexible; fails
for:
separate pieces that must then be integrated
"information sclerosis": temporary fixes become
permanent constraits
bridging; new software trying to gradually replace
29 old
Waterfall model (Royce,
1970)
Req. Change
Requirements
Verify
Design
Verify
Implementation
Test
Operations
Retirement
30
Rapid prototyping model
Req. Change
Rapid Prototype
Verify
Redesign
Verify
Re-implementation
Test
Operations
Retirement
31
Waterfall / Prototyping issues
The waterfall models (with or without
prototyping) are perhaps the most common
model for software development
we will use waterfall in this course!
What are some positives and negatives
about this method?
Progress
through
Determine steps Evaluate alternatives,
objectives, identify, resolve risks
alternatives,
constraints
(OAC) Risk
Assessment
Concrete
Specification
OAC Risk
Assessment
Abstract
Specifcation
OAC Risk Risk
Requirements Assessment Control
Risk
OAC Control
Risk
Commit Control
Review
partition Requirements
Concept of
Plan
Operation
Requirements
Abstract Specification Abstract
Plan Specification Concrete
Requirements Specification
Validation
Concrete Specification
Plan
Abstract Specification
Validation
Software Concrete
Plan next phases Development Plan Specification Validation Develop, verify
and Verification next-level product
33
Another view of spiral model
Risk Assessment
Req. Change
Requirements
Risk Assessment
Verify
Design
Risk Assessment
Verify
Implementation
Test
Adds a Risk Analysis
step to each phase
Operations
36