Reengineering and Reverse Engineering

  • Ervin Varga


Reverse engineering is about uncovering the secrets behind the product so that you may change it according to your needs. Reengineering is the process of amending the product to some new form. This chapter unifies reengineering and reverse engineering maintenance techniques into a case study and presents a flow that can be applied in practice. The aim is to illuminate how to properly proceed in extensive restructuring work.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


Further Reading

  1. 1.
    Eilam E (2005) Reversing: secrets of reverse engineering. Wiley, Hoboken, NJ. This book is the primer for various reverse engineering techniques, covering a broad range of domains and platforms. It has a separate section about security related reverse engineering. It also covers the topic of cracking different protection mechanismsGoogle Scholar
  2. 2.
    Fowler M, Beck K, Brant J, Opdyke W, Roberts D (1999) Refactoring: improving the design of existing code. Addison-Wesley, Upper Saddle River, NJ. This is a reference book about refactoring. Most modern IDEs already implement many techniques from this book. Refactoring is an important technique to learn, as it helps you make controllable incremental improvements to the code base to boost its maintainabilityGoogle Scholar
  3. 3.
    Kerievsky J (2005) Refactoring to patterns, 1st edn. Addison-Wesley, Boston, MA. This is another excellent book about refactoring. It shows you real code samples and a series of refactoring steps to make them adhere to known design patterns. In this manner, a code becomes intuitive, readable and more structuredGoogle Scholar

Regular Bibliographic References

  1. 4.
    Đuković M, Varga E (2015) Load profile-based efficiency metrics for code obfuscators. Acta Polytech Hung 12(5):191–212. Issn:1785-8860Google Scholar
  2. 5.
    Penzenstadler B, Raturi A, Richardson D, Tomlinson B (2014) Safety, security, now sustainability: the nonfunctional requirement for the 21st century. IEEE Softw 31:40–47CrossRefGoogle Scholar
  3. 6.
    Liu H, Liu Y, Xue G, Gao Y (2013) Case study on software refactoring tactics. IET Softw 8:1–11CrossRefGoogle Scholar
  4. 7.
    Pérez-Castillo R, Piattini M (2014) Analyzing the harmful effect of god class refactoring on power consumption. IEEE Softw 31:48–54Google Scholar
  5. 8.
    JXUnit Home Page. Accessed 17 Sept 2017
  6. 9.
    Sarcar V (2016) Java design patterns: a tour of 23 gang of four design patterns in Java. Apress, New York, NYCrossRefGoogle Scholar
  7. 10.
    Varga E (1990) Zbirka Rešenih Zadataka iz Programiranja u Programskom Jeziku TURBO PASCAL 5.5. Savremena Administracija, BelgradeGoogle Scholar
  8. 11.
    Andrews RG (2000) Foundations of multithreaded, parallel, and distributed programming. Addison-Wesley, Reading, MAGoogle Scholar
  9. 12.
    Ponge J (2011) Fork and join: Java can excel at painless parallel programming too! Accessed 20 Sept 2017
  10. 13.
    Tempero E, Gorschek T, Angelis L (2017) Barriers to refactoring. Commun ACM 60(10):54–61CrossRefGoogle Scholar

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  • Ervin Varga
    • 1
  1. 1.Expro I.T. ConsultingKikindaSerbia

Personalised recommendations