0% found this document useful (0 votes)
23 views12 pages

System Maintenance and Development Lifecycle

This document discusses system maintenance and the software development lifecycle. It describes different models for system development including waterfall, iterative enhancement, and prototyping. It outlines the typical phases of a software engineering lifecycle from feasibility analysis through maintenance. It then discusses specific processes, terms, and strategies related to software maintenance including modification requests, categories of maintenance, regression testing, and impact analysis.

Uploaded by

ManishaDhiman
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views12 pages

System Maintenance and Development Lifecycle

This document discusses system maintenance and the software development lifecycle. It describes different models for system development including waterfall, iterative enhancement, and prototyping. It outlines the typical phases of a software engineering lifecycle from feasibility analysis through maintenance. It then discusses specific processes, terms, and strategies related to software maintenance including modification requests, categories of maintenance, regression testing, and impact analysis.

Uploaded by

ManishaDhiman
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd

System Maintenance

Modifications or corrections made to an


information system after it has been released
to its customers
Changing an information system while it is
in operation
Evolving an information system to adapt to
changing business conditions and user needs

Systems Development Lifecycle


Models

Waterfall
Iterative Enhancement
Prototyping
Spiral model
Rapid Application Development
Inspections and Reviews

Systems Lifecycle

Project Identification & Selection


Project Initiation & Planning

Analysis
Logical Design

Software Engineering
Lifecycle
Feasibility Analysis
Requirements
Design

Coding & Integration

Physical Design

Test

Implementation

Installation

Maintenance

Maintenance

IEEE Maintenance Process


Modification request
Classification and Identification
Analysis
Design
Implementation
System Test
Acceptance Test
Delivery

E
nh

an
c

em
en
ts

Categories of Maintenance
Corrective - fixing bugs
Adaptive - no change to functionality,
but now works under new conditions
Perfective - adds something new;
makes the system better
Preventive - enhances internal
structure of system without affecting
external behavior

Maintenance Terms
Configuration Control Board (CCB) - organizational unit that makes
decisions about what proposed maintenance changes will actually be made
Regression testing - testing a modified system with some of the test cases
with which it was originally tested to make sure that only those functions
that were meant to change actually behave differently
Releases - planned collections of maintenance changes that are applied to a
system before it is delivered to customers
Patches - emergency fixes to a system that are delivered to customers
between scheduled releases
Configuration management - the process of keeping track of different
versions of a system that have been supplied to different customers and that
must be maintained separately

Maintenance Terms (cont.)


Ripple effect - the (usually unintended) effects that a change in one
part of a system has on other parts of the system
Impact analysis - analysis of a planned modification to a system in an
effort to determine all of the components of the system that will be
affected by the modification, including ripple effects
System decay - a degradation of system structure and quality over
time due to poorly planned and executed changes
Program comprehension - the human process of understanding a
piece of software code
Porting - a type of adaptive maintenance in which a system is
translated from one operating system, language, or platform to another

Impact analysis
During planning - determine modules that will need
to be modified, to estimate time and resources needed

During analysis - understand data and control flow


in order to follow chain of ripple effects

During design & implementation - keep track of


what ripple effects have been accounted for

During test - known ripple effects guide testing;


further testing reveals unknown ripple effects

Impact Analysis Strategies


Data flow - follow changed pieces of data
(variables) from one module to another to see
what other variables are affected

Control flow - follow the call chain, i.e. what


modules are called by affected modules

Program slicing - based on data flow and/or


control flow

Course Logistics
Meet every Tuesday at 7:00pm for 2-3 hours
Group project - small-to-medium
maintenance task
Leading class - lecture, discussion, and class
exercises
Exams - non-traditional
Class participation - I take this seriously!

Student-led Class Sessions


Part I: 30-minute (~10-12 slides) lecture on
textbook chapter
Part II: Class discussion based on 3 research
papers
Part III: Class exercise from textbook
By Friday: send me an email with first and
second preferences for topic, date, and part

Information for Forming


Project Teams

Name
Department
Degree Program
Programming experience (languages, length
of experience, type of experience)
Other skills
Times you could meet regularly

You might also like