Software Maintenance Flashcards
Maintenance why need
20% dev, 80% maintain
What is Maintenance Prediction and Prediction Model
predict can maintain or not
predict costs
predict sys changes
Lehman’s Laws
continuing change
increasing complexity
declining quality
organisational stability
Key Issues in Maintenance
technical
dumb homies
no tests
ugly code
management
sad people
bad contracts
cost
What are COTS
Components?
Usually complete
application systems that
offer an API (Application
Programming Interface).
Key
Benefits of COTS
faster, cheaper
Design Decisions with COTS
which is best for me
how interface
what part of the whole COTS do we actually need
Maintenance Considerations with COTS
advertised good, but actl shit
cant interface
no control over evolution
no support (e.g. bybit)
What is System Re-Engineering?
rewrite, redocument etc
When is System Re-Engineering applicable?
- Where some (but not all) sub-systems of a
larger system require frequent maintenance.
Re-Engineering Process
(skim, ish)
► Reverse Engineering
v Analyse software to identify components and their relationships
v Create representation at higher levels of abstraction e.g. documentation,
UML diagrams, ER diagrams
► Forward Engineering
v Programme structure improvement
v Programme modularisation
v Data re-engineering
Re-Engineering Cost Factors
quality
tool support
how many pros in the building