dimensions of knowledge in
play

Dimensions of Knowledge in API Migration Thiago Bartolomei, Mahdi - PowerPoint PPT Presentation

Combining Multiple Dimensions of Knowledge in API Migration Thiago Bartolomei, Mahdi Derakhshanmanesh, Andreas Fuhr, Peter Koch, Mathias Konrath, Ralf Lmmel, Heiko Winnebeck Contribution of this presentation Present a framework combining


  1. Combining Multiple Dimensions of Knowledge in API Migration Thiago Bartolomei, Mahdi Derakhshanmanesh, Andreas Fuhr, Peter Koch, Mathias Konrath, Ralf Lämmel, Heiko Winnebeck

  2. Contribution of this presentation Present a framework combining multiple dimensions of knowledge to support API migration . 2

  3. API Migration • Special case of software migration • Adapt software system to – replace old API (source API) by – new API (target API) – of the same domain (e.g., GUI development) 3

  4. Why API Migration? • Legacy APIs may be – outdated, not supported anymore • New APIs may provide – new features – better performance, reliability, usability , … – support for new system environments 4

  5. Why API Migration: Example SwingWT • Style Swing SWT 5

  6. Why API Migration: Example SWTSwing • Compability Swing SWT 6

  7. API Migration Approaches ? 7

  8. API Migration: Reeimplentation 8

  9. API Migration: Transformation 9

  10. API Migration: Wrapping 10

  11. Roadmap • Integrated Repository – Multiple dimensions of knowledge • Wrapper Assessment – How to rate wrappers on their suitability? • Guidance for Migration – How to extend/write own wrappers/transformations? 11

  12. INTEGRATED REPOSITORY 12

  13. Metamodel • Simplified Java sources • API Usage properties of 1476 SourceForge projects • Ontology on API concepts 13

  14. Repository Technology: TGraphs 14

  15. Repository Technology: Graph Querying with GReQL from clsApi: V{Class} with clsApi.qualifiedName =~ “ javax\.swing\..*" and count (clsApi-->{CorrespondsTo}) > 0 reportSet clsApi end

  16. WRAPPER ASSESSMENT 16

  17. Wrapper Assessment: Goals • Compare different wrappers for same wrapping task • Track development of own wrappers 17

  18. Wrapper Assessment: Source API Coverage SwingWT SWTSwing 100% 100% 90% 90% 7 80% 80% 281 15 4618 70% 70% 12506 60% 60% 2331 50% 50% 40% 40% 25 30% 30% 372 16 3426 20% 20% 4533 10% 10% 533 0% 0% Packages Classes Methods Packages Classes Methods Implemented Unimplemented Implemented Unimplemented 18

  19. Wrapper Assessment: Wrapper Compliance • Simple coverage statistics do not cover more complex dependencies – Declarations in supertypes – Empty implementations • Simple covarage does not reflect usage of APIs in real projects 19

  20. Compliance: Declarations on supertypes SwingWT SWTSwing Missing methods Missing methods Class missing Class missing Class present Class present Impl. in supertype Impl. in supertype 78% 74% 22% 19% 4% 3% 20

  21. Compliance: Empty methods SwingWT SWTSwing Implemented Methods Implemented Methods Impl. methods Empty methods Impl. methods Empty methods 7% 22% 78% 93% 21

  22. Wrapper Assessment: Relevance in Terms of Usage SwingWT SWTSwing 100% 100% 2,9% 2,4% 90% 90% 80% 80% 57,4% 70% 70% 73,4% 60% 60% 50% 50% 97,7% 97,1% 40% 40% 30% 30% 42,6% 20% 20% 26,6% 10% 10% 0% 0% Absolute Usage Absolute Usage Implemented Unimplemented Implemented Unimplemented 22

  23. GUIDANCE FOR MIGRATION 23

  24. Guidance for Migration: Goals • Extend existing wrappers • Write own wrappers / reimplementations / transformations  Identify target API code suited to implement source API methods 24

  25. Guidance for Migration: Concept-based Method Candidates 25

  26. Guidance for Migration: Assessment of the Ontology SwingWT SWTSwing 100% 100% 90% 90% 80% 80% 70% 70% 71,9% 75,0% 60% 60% 89,2% 50% 50% 99,7% 40% 40% 30% 30% 20% 20% 28,1% 25,0% 10% 10% 10,8% 0% 0% 0,3% Unimpl. meth. Impl. meth. Unimpl. meth. Impl. meth. With link Without link With link Without link 26

  27. Guidance for Migration: Ontology Correctness SwingWT SWTSwing Methods with Links Methods with Links Correct link Wrong link Correct link Wrong link 37% 43% 57% 63% 27

  28. THANK YOU FOR LISTENING! QUESTIONS? Integrated Repository

Recommend


More recommend