Week 1 and 2
Week 1 and 2
Week 1 and 2
EVOLUTION
ITC-706
PREREQUISITES
• Lectures
• Assignments
• Surprise Quiz
• Discussion
COURSE CONTENTS
• Introduction
• Identifying and removing software clones
• Predicting bugs from histories
• Object oriented reengineering
• Migration of legacy information system
• From legacy to three-tire and services
• Software testing and evolution
• Evolution issues in aspect oriented programming
• Software architecture evolution
• Empirical studies of open source evolution
REFERENCE MATERIAL
Books
Software Evolution
Tom Mens and Serge Demeyer
DEFINITION
Evolution in general parlance implies that something has changed for the
better.
A process of continuous change from a lower, simpler,
or worse to a higher, more complex, or better state
Software maintenance is the modification of a software product after
delivery to correct faults, to improve performance or other attributes.
ISO/IEC 14764:2006 Software Engineering —
Software Life Cycle Processes — Maintenance
TYPES OF SOFTWARE OR SOFTWARE
EVOLUTION
• S-Type
• P-Type
• E-Type
S-TYPE
• When:
• Reverse engineering can also be regarded as the initial phase in the process of software reengineering
RE-ENGINEERING
• Re- structuring:
• Improves the crucial aspects of the system
• Transformation from one representation form [of a software system] to
another, at the same relative abstraction level, while preserving the
subject system’s external behavior (functionality and semantics).
• Refactoring:
• It is the object-oriented specialization of restructuring.
• When applied to source code, the goal of both is to improve the internal
structure (for example, reduce complexity) of software to make it easier to
understand and modify.
HORSESHOE PROCESS MODEL FOR RE-
ENGINEERING
MODEL EVOLUTION
• Requirements evolution
• Architecture evolution
• Data evolution
• Runtime evolution(runtime evolution, runtime reconfiguration, dynamic adaptation and dynamic
upgrading)