Академический Документы
Профессиональный Документы
Культура Документы
Andy Carpenter
School of Computer Science
(Andy.Carpenter@manchester.ac.uk)
G&T: 3.3 .
Bug Fix
Corrective change
Enhancement request
Perfective change
Environmental change
Adaptive change
Refactoring
Preventive change
Repay software debt
Which are justifiable?
COMP33812: Software Evolution Review 2
G&T: 3.3 .
Types of Maintenance
• Corrective change 17%
– requirements unchanged, code changes
• Adaptive change
18%
– business or technical environment changes
• Perfective change
65%
– new stories (enhancement)
• Preventive change 0%
– refactoring, code cleanup
• Which is the most common?
– Study by Lientz and Swanson (1980)
• Agile equivalents?
On
OnMonday,
Monday,Mr. Mr. But on Tuesday,
White’s
White’sreports
reports every *!*?!
all
allrun
run report exits with
satisfactorily
satisfactorily an error message!
Existing Acquired
Knowledge Knowledge
Application Application
domain domain
Mental Mental
model of model of
s/w
Code Reading s/w
General General
?
Programming Programming
Sources of Information?
• Documentation; design (intension), maintenance
• Source code, build process; must reverse engineer
• Test cases and results (expected operation)
• logs (access & error); info about dynamics of system
• Developers; can give intension of system
• Users; see what does; speak in domain terms
• Testers; see system like users, speak your lang
• Technical support
• Stakeholders; context of use, goals
• Business experts; business rules implemented
• Which sources are the most reliable?
COMP33812: Software Evolution Part I: System Comprehension - Introduction 6
.
Refactoring
Preventive
maintenance
Who done?
How often
done?
In eXtreme
Programming Removing
bad practice Backdoor
refactoring
Feasible with
IDE support
extensive tests
COMP33812: Software Evolution Evolutionary Design: Introduction 12
.
Costs?
Benefits?
Batch
Customer Customer List
Customer
Mgt Mgt Mgt
Entry
File handling
RDBMS
routines
Data as an Asset
• Data as long-term organisational memory
– customer understanding/management
– scenario modelling, data mining
• Data is “declarative”
– can support new applications, including applications
not envisaged when the data was first captured
• Schema often models core domain concepts
• Raw data may be even more revealing than the DB
structure
Migration/Replication Plan
Extract how?
Transformations?
Transform where?
Freshness?
Extract when?
Legacy Target
DB DB
Extraction Window
2.00am to 5.00am Mondays Average of 1,000,000 records
to transfer @ 0.02sec/record
= 5 hrs 34 mns
Strategy?
Zero downtime?
COMP33812: Software Evolution Evolutionary Design: Data Evolution 17
.
Transform where?
Push
Legacy Target
DB ETL DB
Pull
Legacy Target
DB ETL DB
Remote
Legacy Target
DB ETL DB
COMP33812: Software Evolution Evolutionary Design: Data Evolution 18
.