Tool Support for Re-Engineering: Moosette Moose and SourcererCC
Lecture 42 of SE602 Software Re-Engineering surveys state-of-the-art tools and platforms that automate software analysis, reverse engineering, and quality monitoring across industrial codebases. Students examine the Moose software analysis platform, built on the language-independent FAMIX meta-model which represents object-oriented and procedural program entities, methods, and relationships. The lecture covers SourcererCC, an ultra-large-scale code clone detection engine capable of identifying Type-1, Type-2, and Type-3 clones across hundreds of millions of lines of code. Students study continuous code quality platforms like SonarQube, exploring how automated quality gates enforce clean architecture, block technical debt injection, and track refactoring progress across modern commercial development teams. 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. By engaging with solved past papers by Moaaz and Waqar Siddhu, learners gain actionable insights into recurrent university exam questions. Interactive quiz assessments on VU SIGMA facilitate rapid knowledge verification and retention of critical software re-engineering concepts. Comprehensive coverage of standard academic benchmarks ensures learners communicate with technical precision across software engineering disciplines. Detailed analysis of code smell topologies highlights the imperative of eradicating duplicate logic, long methods, and bloated god classes. 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.
No questions available yet.
There are currently no examination questions published for Tool Support for Re-Engineering: Moosette Moose and SourcererCC. Explore other curriculum units or build a custom quiz with the practice builder.