Download presentation
Presentation is loading. Please wait.
Published byChloe Gaskell Modified over 9 years ago
1
Object-oriented Software Change Dynamic Impact Analysis Lulu Huang and Yeong-Tae Song Dept. of Computer and Information Sciences Towson University Towson, MD 21014, USA {lhuang2|ysong}@towson.edu
2
Software evolves and changes Software evolution is the on-going enhancement of existing software systems, involving both development and maintenance. Software change management is one of the most essential tasks in software maintenance. Software maintenance has been recognized as the most costly and difficult phase in software life cycle.
3
Software Change Management Reasons for Change Determine feasibility and impacts of changes Change, validation and release
4
Impact analysis is a process that predicts and determines the parts of a software system that can be affected by changes to the system. Change Set: The parts of the software system that are to be changed Impact Set: Parts of the software system that are affected by the changes Impact Analysis
5
Impact Analysis is Essential Impact analysis is a systematic approach to understanding impacts of software changes and is essential to: Identify the parts that require retesting Improve estimation of time, labor and money required for maintenance Reduce potential errors due to unknown change impacts Improve overall efficiency in software maintenance
6
Static Impact Analysis Depends on analysis of source code Based on assumptions of all possible software runtime behaviors Results can include most of the software system in the impact set Changes requested Inspect source code Document possible system behaviors Impact Set Analyze program entity dependency relationships
7
Dynamic Impact Analysis Based on software runtime data and dynamic interactive behaviors of the software system Depends on a set of executions of the system Tend to produce more precise results than static approaches Changes requested Execute software system Collect system runtime data Impact Set Analyze runtime relationships of program entities
8
Impact Analysis for Object Oriented (OO) Software Increasing popularity of OO program languages demands efficient dynamic impact analysis technique for OO programs OO features such as encapsulation, inheritance and polymorphism create new relationships of program entities Technology today requires impact analysis that take into account these unique OO program features
9
Existing Dynamic Impact Analysis Techniques Existing techniques: CoverageImpact PathImpact CollectEA Pros: tend to produce more precise results than static techniques Cons: Do not consider the difference of OO programs from procedural ones We require dynamic impact analysis techniques that are designed for object oriented programs!
10
A dynamic impact analysis approach for OO software systems Consider OO program features and identify types of changes of program entities Perform runtime dependency analysis to improve precision Our Approach Tend to produce more precise impact sets, compared to existing dynamic impact analysis techniques.
11
How is ours different? Program Entities Impact analysis can be performed for changes of the following program entities: Our approach Class (enumeration) Field Method (constructor) Interface Constant Field Method Existing techniques Method
12
Types of changes of program entities: Our Approach Atomic method changes Add Delete Modify –Modify implementation –Modify interface Atomic field changes Add Delete Modify Existing Techniques Do not identify types of changes How is ours different? Types of changes
13
Dependency relationships on a changed program entity create change ripple impacts. Module dependency relationships identified: Existing Techniques Method coverage Execute after relationship Our Approach Method coverage Execute after relationship Data dependency in: Method call Method return Field modification Field access Transitive dependency How is ours different? Dependency Analysis
14
main m1 m2 Change Set: { main } Impact set by CollectEA: {main, m1, m2} Impact set by our approach: {main, m2} public class MethodCall { public static void m1 () {System.out.println ("Inside m1 "); } public static int m2 (int p) {return p * 2; } public static void main (String[] args) { m1 (); System.out.println ( m2 (8)); } } How is ours different? Example
15
Conclusion Impact analysis is essential in the software maintenance phase Dynamic impact analysis for OO programs is demanded by increasing popularity of OO languages. We proposed a new dynamic impact analysis approach to produce more precise impact set by considering OO unique program features and perform runtime dependency analysis Questions?
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.