EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
Lecture 22
Knowledge Recovery and Software Reflexion Model
Lecture 22 Knowledge Recovery and Software Reflexion Model EE 382V - - PowerPoint PPT Presentation
Lecture 22 Knowledge Recovery and Software Reflexion Model EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim Todays Agenda (1) Recap of Chianti Software Reflexion Model EE 382V Spring 2009 Software Evolution -
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
Knowledge Recovery and Software Reflexion Model
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
to development practices.
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
set of atomic changes.
change their behavior by identifying dynamic call graphs that include these changes. (Similar to RTS)
subset of deltas that are responsible for behavior differences in those tests. (Similar to Isolation of fault- inducing changes)
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
Program Differencing Tool => Identify Changes between Po and Pn
Profiling Tool => Run T on Po Affected Test Selection
Delta
(Dangerous Entities)
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
Affected Test Selection
Program Differencing Tool => Identify Changes between Po and Pn Profiling Tool => Run T’ on Pn
Delta
Isolating Failure-Inducing Change
D’ ⊂ Delta
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
Design and Implementation, TSE 2001 (Extended Journal Version)
Source and High-Level Models. FSE 1995
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
during software evolution.
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
source code. => hard to understand source code (scalability) (initial investment on creating design doc does not pay off)
cannot have confidence / limited information inaccurate
cluttered,
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
source code. => Source code or what reverse engineering tools would extract is overwhelming to programmers.
Models are not always accurate.
may be different from what programmers expect to see.
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
cut of a high-level model.
disagreement between the high-level model and the source code.
analysis (runtime execution).
monitoring, etc.)
Convergence: interactions expected by the developer Divergence: interactions that were not expected by the developer Absences: interactions that were expected but not found
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
understanding the structure and planning the reengineering effort.
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
tool (6000 lines C++ implementation)
adhere to layering principles?
programmers revisit the locations and update the code to ensure the expected structure.
program.
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
semantics)
aspects
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
refine it iteratively.
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
design conformance to a high-level mental model.
practical impact
models and implementation models
to program verification.
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
knowledge discovery => software metrics & visualization
EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim
surveys are uploaded on the blackboard.
presentation / report preparation.