Object-Oriented Re-Engineering Patterns: Setting Direction
Lecture 26 of SE602 Software Re-Engineering introduces object-oriented re-engineering patterns codified by Serge Demeyer, Stéphane Ducasse, and Oscar Nierstrasz. Re-engineering patterns capture proven expert solutions to recurring challenges encountered when revitalizing legacy object-oriented software systems. The lesson focuses on the 'Setting Direction' pattern cluster, which provides governance and strategic alignment for modernization initiatives. Students study Agree on Maxims (establishing clear technical and architectural rules accepted by all stakeholders), Appoint a Navigator (designating an architectural lead to guide daily code decisions), Speak to the Round Table (fostering regular cross-functional communication between developers, managers, and end users), and Most Valuable First (prioritizing refactoring efforts on subsystems delivering immediate high business returns). Special emphasis is placed on reverse engineering workflows, abstract syntax tree construction, and program dependency representations. Mastering these foundational software re-engineering paradigms empowers software engineers to systematically revitalize enterprise legacy platforms. Analytical exercises and architectural traces help students prepare thoroughly for Virtual University midterm and final term examinations. The curriculum systematically aligns theoretical software evolution principles with practical source code modernization across industrial codebases. Reviewing the accompanying lecture handouts and metric tables reinforces understanding of coupling, cohesion, and architectural decay. Consistent evaluation of control flow graphs, call graph hierarchies, and database schemas ensures robust preparation for academic assessments. 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.
No questions available yet.
There are currently no examination questions published for Object-Oriented Re-Engineering Patterns: Setting Direction. Explore other curriculum units or build a custom quiz with the practice builder.