Slicing Techniques Program Slicing and Impact Analysis
Lecture 40 of SE602 Software Re-Engineering explores program slicing, a formal program analysis technique introduced by Mark Weiser used to extract all statements within a program that directly or indirectly influence the value of a specific variable at a designated point of interest. Students study the Slicing Criterion <s, v>, where s is the statement number and v is the target variable. The lecture differentiates backward slicing (identifying all preceding statements affecting v) from forward slicing (identifying all subsequent statements affected by modifications to v). Program Dependence Graphs (PDGs)—combining data dependence and control dependence edges—are analyzed as the algorithmic foundation for automated slicing. Students discover how program slicing dramatically reduces the cognitive burden of impact analysis during software maintenance and regression debugging. Students investigate the trade-offs between system replacement, wrapping legacy components, and iterative code refactoring transformations. The discussion highlights how Lehman laws of evolution, system complexity growth, and declining quality necessitate continuous code restructuring. Key concepts including static program analysis, dynamic execution tracing, and characterization test safety nets are thoroughly demystified. The lecture details classical object-oriented re-engineering patterns demonstrated across standard enterprise software architectures. Structured refactoring methodologies are demonstrated using Martin Fowler catalogs, method extraction, and polymorphism replacement. Software quality attributes, maintainability index equations, and technical debt principal valuations are evaluated alongside empirical benchmarks. Architectural recovery processes are explored through module dependency analysis, component clustering, and high-level design reconstruction. Database schema normalization, legacy record migration, and automated ETL extraction pipelines are systematically analyzed. Monolithic application decomposition strategies including service-oriented architecture (SOA) and the Strangler Fig pattern are examined in depth. Scholars examine program slicing algorithms, forward and backward dependency slices, and impact assessment for proposed modifications. Automated tool support, bytecode instrumentation, and static code analyzers are evaluated to detect architectural violations across repositories. Risk management frameworks, business case evaluations, and cost estimation models such as COCOMO II are analyzed for migration projects. Legal and ethical constraints surrounding reverse engineering, clean-room design implementations, and software intellectual property rights are reviewed.
No questions available yet.
There are currently no examination questions published for Slicing Techniques Program Slicing and Impact Analysis. Explore other curriculum units or build a custom quiz with the practice builder.