exploring the limits of domain model recovery
play

Exploring the Limits of Domain Model Recovery Paul - PowerPoint PPT Presentation

Exploring the Limits of Domain Model Recovery Paul Klint, Davy Landman , Jurgen Vinju 1 Re-engineering Re-design of an exis9ng system


  1. Exploring ¡the ¡Limits ¡of ¡ ¡ Domain ¡Model ¡Recovery ¡ ¡ Paul ¡Klint, ¡ Davy ¡Landman , ¡Jurgen ¡Vinju ¡ ¡ 1 ¡

  2. Re-­‑engineering ¡ • Re-­‑design ¡of ¡an ¡exis9ng ¡system ¡ • Designers ¡need ¡to ¡understand ¡the ¡Domain ¡ • We ¡want ¡to ¡support ¡them! ¡ 2 ¡

  3. Understanding ¡the ¡Domain ¡ • Domain ¡Model: ¡ ¡ – En99es ¡ – Rela9ons ¡ ¡ • Recovering ¡domain ¡models ¡from ¡the ¡source ¡ code ¡of ¡soHware ¡systems ¡in ¡the ¡domain ¡ 3 ¡

  4. Motivation ¡ • Skep9cal ¡about ¡this ¡recovery ¡ • Difficult ¡for ¡legacy ¡systems ¡ • Possible ¡for ¡new ¡systems ¡wriNen ¡in ¡new ¡languages? ¡ 4 ¡

  5. Research ¡question ¡ How ¡much ¡of ¡the ¡domain ¡model ¡is ¡ recoverable ¡from ¡the ¡source ¡code? ¡ 5 ¡

  6. Research ¡question ¡ How ¡much ¡of ¡the ¡domain ¡model ¡is ¡ recoverable ¡from ¡the ¡source ¡code? ¡ 1. Which ¡parts ¡of ¡the ¡domain ¡are ¡ Q ¡ implemented ¡by ¡the ¡applica9on? ¡ ¡ 2. Can ¡we ¡ manually ¡recover ¡a ¡domain ¡model ¡ Q ¡ from ¡source ¡code? ¡ 6 ¡

  7. Why ¡manual? ¡ • Interested ¡in ¡the ¡maximum ¡possible ¡ • 100% ¡accuracy ¡=> ¡NO ¡tools ¡ • Fact ¡finding ¡mission ¡ 7 ¡

  8. User ¡ Coverage ¡of ¡the ¡ Informa9on ¡from ¡ domain ¡ source ¡code ¡ Model ¡ Q1 ¡ Q2 ¡ Reference ¡ Source ¡ Model ¡ Model ¡ 8 ¡

  9. Research ¡method ¡ • Pick ¡a ¡domain: ¡ project ¡planning ¡ • Obtain ¡a ¡reference ¡model: ¡ Extract ¡from ¡PMBOK ¡ • Manually ¡extract ¡models: ¡ from ¡2 ¡applica:ons ¡ • Map ¡& ¡Compare: ¡ recall ¡& ¡precision ¡ 9 ¡

  10. Traceability ¡ • Full ¡accountability ¡ ¡ • All ¡steps ¡are ¡fully ¡traced ¡ • Internal ¡consistency ¡checks ¡/ ¡metrics ¡ 10 ¡

  11. Project ¡Planning ¡ • Project ¡Management ¡Ins9tute ¡ • Project ¡Management ¡Body ¡of ¡ Knowledge ¡(476 ¡pages) ¡ • Project ¡planning ¡is ¡a ¡subset! ¡ 11 ¡

  12. Reference ¡Model ¡ p ¡136 ¡ 12 ¡

  13. Reference ¡Model ¡ 13 ¡

  14. Reference ¡Model ¡ 14 ¡

  15. Applications ¡ • 2 ¡open ¡source ¡applica9ons ¡(out ¡of ¡10) ¡ • “Op9mal” ¡condi9ons ¡ System ¡ Language ¡ SLOC ¡ Endeavour ¡ Java ¡ 18.358 ¡ OpenPM ¡ Java ¡ 17.756 ¡ 15 ¡

  16. User ¡Model ¡ 16 ¡

  17. Source ¡Model ¡ model/org/endeavour/mgmt/model/Project.java ¡ ¡ private ¡List<Iteration> ¡iterations ¡= ¡ null ; ¡ 43: 17 ¡

  18. Models, ¡Models, ¡Models! ¡ 18 ¡

  19. Models, ¡Models, ¡Models! ¡ Model ¡ Effort ¡ Reference ¡Model ¡ 80 ¡Days ¡ 2 ¡User ¡Models ¡ 4 ¡Days ¡ 2 ¡Source ¡Models ¡ 30 ¡Days ¡ 19 ¡

  20. User ¡ Model ¡ End ¡User ¡ Vocabulary ¡ Reference ¡ Source ¡ Model ¡ Model ¡ Programmer ¡ PMI ¡Vocabulary ¡ Vocabulary ¡ 20 ¡

  21. User ¡ Model ¡ Mapping ¡ Mapping ¡ End ¡User ¡ Vocabulary ¡ Reference ¡ Source ¡ Model ¡ Model ¡ Programmer ¡ PMI ¡Vocabulary ¡ Vocabulary ¡ 21 ¡

  22. Mapping ¡ User ¡Model ¡onto ¡Reference ¡Model ¡ From : ¡Itera9on ¡ To : ¡Milestone ¡ Kind : ¡Specializa9on ¡ Reason : ¡Itera9ons ¡split ¡the ¡project ¡into ¡ chunks ¡of ¡work, ¡Milestones ¡do ¡the ¡same ¡ but ¡are ¡not ¡necessarily ¡itera9ve. ¡ ¡ 22 ¡

  23. Reference ¡ User ¡ Model ¡ Model ¡ Q1: ¡Which ¡parts ¡of ¡the ¡domain ¡are ¡ implemented ¡by ¡the ¡applica9on? ¡ Endeavour ¡ OpenPM ¡ Combined ¡ Recall ¡ 19% ¡ 7% ¡ 22% ¡ Precision ¡ 91% ¡ 36% ¡ 40% ¡ Answer: ¡ Only ¡a ¡small ¡part ¡ (precision ¡varies) ¡ 23 ¡

  24. User ¡ Source ¡ Model ¡ Model ¡ Q2: ¡Can ¡we ¡ manually ¡recover ¡a ¡domain ¡ model ¡from ¡source ¡code? ¡ Endeavour ¡ OpenPM ¡ Recall ¡ 100% ¡ 100% ¡ Precision ¡ 92% ¡ 79% ¡ Answer: ¡ Yes, ¡100% ¡ ¡ (with ¡high ¡precision) ¡ 24 ¡

  25. Summary ¡ • Project ¡Planning ¡Reference ¡Model 1 ¡ • Created ¡10 ¡models ¡ • Small ¡coverage ¡of ¡the ¡Domain ¡ • However, ¡not ¡a ¡lot ¡of ¡“junk” ¡in ¡source ¡code ¡ • Everything ¡available ¡online 1 ¡ 1 ¡ http://homepage.cwi.nl/~landman/icsm2013/ ¡ 25 ¡

  26. Conclusion ¡ • Modern ¡soHware ¡systems ¡contain ¡ recoverable ¡ domain ¡knowledge ¡ • Good ¡news ¡for ¡Automated ¡Reverse ¡Engineering ¡ 26 ¡

Recommend


More recommend