Maintenance & Re-Engineering of Software
-
Upload
adeel-riaz -
Category
Software
-
view
70 -
download
0
Transcript of Maintenance & Re-Engineering of Software
• Click to edit Master text styles
– Second level
• Third level
– Fourth level
» Fifth level
Software Maintenance & Re-engineering
Adeel Riaz
Mirza Danish Baig
Advisor: Sir Ayub Latif
PAF KIET Fall 11
• Click to edit Master text styles
– Second level
• Third level
– Fourth level
» Fifth level
PAF-KIET CoCIS Dept.
Development
Modification
Use
Once a Software is developed, its enters a cycle of being used and modified that continues for the
rest of the Software’s life.
Software Life
Software doesn't wear out.
• Click to edit Master text styles
– Second level
• Third level
– Fourth level
» Fifth level
Software Life Cycle
PAF-KIET CoCIS Dept.
Maintenance cost twice as much as
development.
• Click to edit Master text styles
– Second level
• Third level
– Fourth level
» Fifth level
Once we deploy our product, our job is still not finished.
We and/or our customers are probably going to want to
make some changes and improvements to the product.
This is what we refer to as software maintenance.
If we plan for maintainability all the way through the
development cycle, we can make our job much easier
when we are in the maintenance phase.
PAF-KIET CoCIS Dept.
What is Software Maintenance?
• Click to edit Master text styles
– Second level
• Third level
– Fourth level
» Fifth level
Maintenance is a good thing.”
S. J. Schappelle
• You won’t have to do maintenance if no one uses your
product.
• If your product is used, users will ask for improvements.
• The more successful products have high maintenance
budgets.
PAF-KIET CoCIS Dept.
The Challenge of Maintenance
• Click to edit Master text styles
– Second level
• Third level
– Fourth level
» Fifth level
• Perfective maintenance
– Adding or modifying the system’s functionality to
meet new requirements.
• Adaptive maintenance
– Changing a system to adapt it to new hardware or
operating system, such as database upgrades,
operating system upgrades, compiler version
changes etc.
• Corrective maintenance
– Changing a system to fix coding, design, or
requirements errors.PAF-KIET CoCIS Dept.
Types of Maintenance
• Click to edit Master text styles
– Second level
• Third level
– Fourth level
» Fifth level
PAF-KIET CoCIS Dept.
Maintenance Effort Required
• Click to edit Master text styles
– Second level
• Third level
– Fourth level
» Fifth level
Operating System Patching
– Microsoft, Apple, Linux/Unix
– OS is core to use of computer, so it must be
constantly maintained
Commercial Software in General
– customers need to be informed of updates
– updates have to be easily available - web is
good tool
PAF-KIET CoCIS Dept.
Maintenance Examples
• Click to edit Master text styles
– Second level
• Third level
– Fourth level
» Fifth level
Repair software faults– Changing a system to correct deficiencies in the way
meets its requirements.
Adapt software to a different operating environment– Changing a system so that it operates in a different
environment (computer, OS, etc.) from its initial implementation.
Add to or modify the system’s functionality– Modifying the system to satisfy new requirements.
Improve the program structure and system performance– Rewriting all or parts of the system to make it more
efficient and maintainable.
PAF-KIET CoCIS Dept.
Types of changes“M
ain
tenance”
“Reengin
eering”
• Click to edit Master text styles
– Second level
• Third level
– Fourth level
» Fifth level
• Availability of qualified staff.
• Understandable system structure.
• Use of standardized programming languages and
operating systems.
• Standardized structure of documentation.
• Availability of test cases.
• Built-in debugging facilities.
• Availability of a proper computer to conduct
maintenance.
PAF-KIET CoCIS Dept.
Maintainability Factors
• Click to edit Master text styles
– Second level
• Third level
– Fourth level
» Fifth level
• Developer not available.
• Proper documentation doesn't exist.
• Not designed for change.
• Maintenance activity not highly regarded.
PAF-KIET CoCIS Dept.
Maintenance Problems
• Click to edit Master text styles
– Second level
• Third level
– Fourth level
» Fifth level
• Re-design, re-code and re-test those portions of the
software that require modification.
• Completely re-design, re-code and re-test the entire
program (again, using good software engineering).
PAF-KIET CoCIS Dept.
Maintenance Option
• Click to edit Master text styles
– Second level
• Third level
– Fourth level
» Fifth level
PAF-KIET CoCIS Dept.
Proposed
M. R.’s
Approved
M. R.’s
Modified source
& documentation
Current source
& documentation
Change control boardMaintenance
engineer
Written
MR’sMaintenance
manager
Marketing
Rejected
MR’s
Customer
Help desk
nominal path
A Typical Maintenance Flow
• Click to edit Master text styles
– Second level
• Third level
– Fourth level
» Fifth level
There are some sizing approaches for estimating the
software maintenance efforts such as source lines of
code (SLOC), function points (FPs), and object points.
We review the annual change traffic (ACT) model,
the FP model and Construction Cost Model
(COCOMO) 2.0 reuse model. The ACT model
estimates the maintenance size depending on the
actual data of annual change traffic and the FP model
counts the number of FPs. The COCOMO 2.0 reuse
model reflects the estimated efforts for modifying
reusable software.
PAF-KIET CoCIS Dept.
Estimation Model for Software Maintenance Efforts
• Click to edit Master text styles
– Second level
• Third level
– Fourth level
» Fifth level
• Annual Change Traffic(ACT) is defined as ‘the fraction of the
software product’s source instructions which undergo change during
a typical year, either addition or modification’. Boehm established
Equation (1) for estimating maintenance costs using the data
gathered from 63 projects
AME = ACT × SDT
• where AME and SDT are the annual maintenance effort and the
software development time, respectively. The dimension of AME
may be expressed in man-months (MM). Similarly, Schaefer’s study
suggests the following Equation(2):
E = ACT × 2.4KLOC^1.05
• where E is the effort (MM) required to maintain the software
annually. ACT is defined as the ratio of the system undergoing
maintenance and the number of source code instructions that are
modified or added during one year of maintenance.
PAF-KIET CoCIS Dept.
The ACT model
• Click to edit Master text styles
– Second level
• Third level
– Fourth level
» Fifth level
Process Model
PAF-KIET CoCIS Dept.
Reengineering needs time (maybe years) and money pragmatic strategy
•mostly linear
•cyclical model
• Click to edit Master text styles
– Second level
• Third level
– Fourth level
» Fifth level
Stages of Reengineering
PAF-KIET CoCIS Dept.
•Inventory Analysis
inventory: attributes of application (size, age,
business criticality, etc.) changes revisit inventory regularly!
•Document Restructuring
no re- documentation (relatively static, not much
longer used, no changes expected)
update documentation when changes were made
complete re- documentation, but kept at a minimum
(business critical systems)
• Click to edit Master text styles
– Second level
• Third level
– Fourth level
» Fifth level
Stages of Reengineering
PAF-KIET CoCIS Dept.
•Reverse Engineering
analyze program code to create a representation of the program at a higher level of abstraction (e.g. UML diagrams)
design and specification recovery
•Code Restructuring
most common type
analyze source code (restructuring tool), possible automatically restructuring
review and test the result, update code documentation!
• Click to edit Master text styles
– Second level
• Third level
– Fourth level
» Fifth level
Stages of Reengineering
• Data Restructuring
restructuring begins mostly with reverse engineering (define/review data
models and structures)
restructure weak data architectures
data restructuring requires changes in architectural or source- code
changes
• Forward Engineering
recover design information from existing software AND alter/restore
system improve overall quality
re- implement old function, add new ones, improve overall performance
and quality
PAF-KIET CoCIS Dept.