Software Re-Engineering Process Models and Lifecycles
Lecture 5 of SE602 Software Re-Engineering details formal process models and engineering lifecycles that govern system modernization. The lesson centers on the celebrated Chikofsky and Cross horseshoe model, which conceptualizes re-engineering across three major phases: reverse engineering (moving from concrete implementation to higher levels of architectural abstraction), design transformation (restructuring architectural models, databases, and control logic), and forward engineering (generating new, modernized source code and deploying modern infrastructure). Students study the six sequential activities of standard re-engineering pipelines: inventory analysis, document restructuring, reverse engineering, code restructuring, data restructuring, and forward engineering. The lecture analyzes waterfall versus evolutionary agile re-engineering methodologies, emphasizing incremental deliverable verification to mitigate operational deployment risks across enterprise software environments. Test harness construction including characterization testing and regression suites are contrasted with traditional unit testing strategies. Students evaluate the trade-offs between big-bang system rewrites and progressive evolutionary refactoring in mission-critical environments. The lesson explores cognitive program comprehension models, top-down hypothesis validation, and mental mappings of complex legacy architectures. Practical code illustrations demonstrate safe code transformations, automated refactoring preconditions, and behavioral equivalence preservation. Scholars analyze Chidamber-Kemerer object-oriented metrics including WMC, CBO, and RFC to quantify the architectural impact of refactoring. Cloud migration pathways including rehosting, replatforming, and cloud-native refactoring are examined as extensions of legacy modernization. The relationship between technical debt accumulation, architectural degradation, and long-term enterprise software viability is reinforced. In this lecture, students examine formal methodologies, structural transformations, and analytical metrics of software re-engineering systems. Through detailed theoretical breakdowns, the lesson explores software evolution dynamics, legacy system preservation, and maintainability enhancement. 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.
No questions available yet.
There are currently no examination questions published for Software Re-Engineering Process Models and Lifecycles. Explore other curriculum units or build a custom quiz with the practice builder.