Exploring ¡the ¡Limits ¡of ¡ ¡ Domain ¡Model ¡Recovery ¡ ¡ Paul ¡Klint, ¡ Davy ¡Landman , ¡Jurgen ¡Vinju ¡ ¡ 1 ¡
Re-‑engineering ¡ • Re-‑design ¡of ¡an ¡exis9ng ¡system ¡ • Designers ¡need ¡to ¡understand ¡the ¡Domain ¡ • We ¡want ¡to ¡support ¡them! ¡ 2 ¡
Understanding ¡the ¡Domain ¡ • Domain ¡Model: ¡ ¡ – En99es ¡ – Rela9ons ¡ ¡ • Recovering ¡domain ¡models ¡from ¡the ¡source ¡ code ¡of ¡soHware ¡systems ¡in ¡the ¡domain ¡ 3 ¡
Motivation ¡ • Skep9cal ¡about ¡this ¡recovery ¡ • Difficult ¡for ¡legacy ¡systems ¡ • Possible ¡for ¡new ¡systems ¡wriNen ¡in ¡new ¡languages? ¡ 4 ¡
Research ¡question ¡ How ¡much ¡of ¡the ¡domain ¡model ¡is ¡ recoverable ¡from ¡the ¡source ¡code? ¡ 5 ¡
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 ¡
Why ¡manual? ¡ • Interested ¡in ¡the ¡maximum ¡possible ¡ • 100% ¡accuracy ¡=> ¡NO ¡tools ¡ • Fact ¡finding ¡mission ¡ 7 ¡
User ¡ Coverage ¡of ¡the ¡ Informa9on ¡from ¡ domain ¡ source ¡code ¡ Model ¡ Q1 ¡ Q2 ¡ Reference ¡ Source ¡ Model ¡ Model ¡ 8 ¡
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 ¡
Traceability ¡ • Full ¡accountability ¡ ¡ • All ¡steps ¡are ¡fully ¡traced ¡ • Internal ¡consistency ¡checks ¡/ ¡metrics ¡ 10 ¡
Project ¡Planning ¡ • Project ¡Management ¡Ins9tute ¡ • Project ¡Management ¡Body ¡of ¡ Knowledge ¡(476 ¡pages) ¡ • Project ¡planning ¡is ¡a ¡subset! ¡ 11 ¡
Reference ¡Model ¡ p ¡136 ¡ 12 ¡
Reference ¡Model ¡ 13 ¡
Reference ¡Model ¡ 14 ¡
Applications ¡ • 2 ¡open ¡source ¡applica9ons ¡(out ¡of ¡10) ¡ • “Op9mal” ¡condi9ons ¡ System ¡ Language ¡ SLOC ¡ Endeavour ¡ Java ¡ 18.358 ¡ OpenPM ¡ Java ¡ 17.756 ¡ 15 ¡
User ¡Model ¡ 16 ¡
Source ¡Model ¡ model/org/endeavour/mgmt/model/Project.java ¡ ¡ private ¡List<Iteration> ¡iterations ¡= ¡ null ; ¡ 43: 17 ¡
Models, ¡Models, ¡Models! ¡ 18 ¡
Models, ¡Models, ¡Models! ¡ Model ¡ Effort ¡ Reference ¡Model ¡ 80 ¡Days ¡ 2 ¡User ¡Models ¡ 4 ¡Days ¡ 2 ¡Source ¡Models ¡ 30 ¡Days ¡ 19 ¡
User ¡ Model ¡ End ¡User ¡ Vocabulary ¡ Reference ¡ Source ¡ Model ¡ Model ¡ Programmer ¡ PMI ¡Vocabulary ¡ Vocabulary ¡ 20 ¡
User ¡ Model ¡ Mapping ¡ Mapping ¡ End ¡User ¡ Vocabulary ¡ Reference ¡ Source ¡ Model ¡ Model ¡ Programmer ¡ PMI ¡Vocabulary ¡ Vocabulary ¡ 21 ¡
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 ¡
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 ¡
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 ¡
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 ¡
Conclusion ¡ • Modern ¡soHware ¡systems ¡contain ¡ recoverable ¡ domain ¡knowledge ¡ • Good ¡news ¡for ¡Automated ¡Reverse ¡Engineering ¡ 26 ¡
Recommend
More recommend