Version control thesis

924 views

Published on

this is the thesis presentation of my master degree in 31-12-2009

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
924
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Version control thesis

  1. 1. Version Control By Researcher: Waleed Mohamed Mahmoud Al-Adrousy Computer Science Department, Faculty of computers and Information Systems Mansoura University Dr-Samir El-Desouky El-Mougy Dr-Ahmed Abou El-Fetouh Saleh Computer Science Department, Information System Department, Faculty of computers and Information Systems Faculty of computers and Information Systems Mansoura university Mansoura university
  2. 2. Agenda ● Version Control introduction ● Objectives ● Previous work ● Applied Algorithms and Technologies: – Suggested load balancing architecture – Suggested Differencing Algorithm ● Testing results. ● Future work 2
  3. 3. Agenda ● Version Control introduction ● Objectives ● Previous work ● Applied Algorithms and Technologies: – Suggested load balancing architecture – Suggested Differencing Algorithm ● Testing results. ● Future work 3
  4. 4. Version Control Definition ● Network based system ● Controls access to computer files ● Track modifications for current and back-up files ● Tracks History. ● Synchronizes Concurrent Access to files. 4
  5. 5. How Version Control work? 5
  6. 6. Without Version Control 6
  7. 7. With version control (Lock-Modify-Unlock) Model 7
  8. 8. With version Control (Copy-Modify-Merge) Model 8
  9. 9. (Copy-Modify-Merge) Model (Cont.) 9
  10. 10. Version Control Types 10
  11. 11. Agenda ● Version Control introduction ● Objectives ● Previous work ● Applied Algorithms and Technologies: – Suggested load balancing architecture – Suggested Differencing Algorithm ● Testing results. ● Future work 11
  12. 12. Objectives ● Part 1 – Better load balancing based on behavior analysis. – Optimization of synchronization process. – Dynamic clustering of work. – Compromise centralized and distributed models. ● Part 2 – Grammar based difference calculation. – Difference computation speed. – Adding on-line support for syntax differencing. – Application on java language. 12
  13. 13. Agenda ● Version Control introduction ● Objectives ● Previous work ● Applied Algorithms and Technologies: – Suggested load balancing architecture – Suggested Differencing Algorithm ● Testing results. ● Future work 13
  14. 14. Previous works Technologies: ● File Sharing Protocols: – FTP ● File Synchronization Protocols – WebDav – DeltaV – RSync Algorithm – IP-RSync ● Basically need Network protocol level support 14
  15. 15. Previous Work (Continue) ● Dick Grune in 1986 (CVS) ● CollabNet Inc in 2000 (subversion) ● Peer to peer (P2P) technolgies in late 1990s 15
  16. 16. Previous Work (Cont.) ● Language Modeling is : internal source code representation for processing ● Some famous language modeling techniques: Famix Model XML representation standard of java source code JavaML standard 16
  17. 17. Agenda ● Version Control introduction ● Objectives ● Previous work ● Applied Algorithms and Technologies: – Suggested load balancing architecture – Suggested Differencing Algorithm ● Testing results. ● Future work 17
  18. 18. Agenda ● Version Control introduction ● Objectives ● Previous work ● Applied Algorithms and Technologies: – Suggested load balancing architecture – Suggested Differencing Algorithm ● Testing results. ● Future work 18
  19. 19. First Part Semi Distributed Version Control Using Web Data Mining 19
  20. 20. Part 1 Objectives ● Better load balancing based on behavior analysis. ● Optimization of synchronization process. ● Dynamic clustering of work. ● Getting both advantages of centralized and distributed models. 20
  21. 21. Suggested Architecture 21
  22. 22. Case Study 22
  23. 23. Web Data Mining ● Definition... ● 3 Types of Algorithms: – Centrality and Closeness – Ranking – Clustering 23
  24. 24. Graph ● Definition: a set of vertices and a set of edges . Edges are specified as a pair, (v1, v2), where v1 and v2 are two vertices in the graph. A vertex can also have a weight, sometimes also called a cost. ● Types – Directed → like project dependencies – Undirected → like communication between developers 24
  25. 25. Simple Clustering Algorithm 25
  26. 26. Simple Clustering Algorithm(Cont.) 26
  27. 27. Structured Similarity Algorithm 27
  28. 28. Structured Similarity Algorithm (Cont.) 28
  29. 29. Semi-Distributed Architecture Algorithm 29
  30. 30. 30
  31. 31. Agenda ● Version Control introduction ● Objectives ● Previous work ● Applied Algorithms and Technologies: – Suggested load balancing architecture – Suggested Differencing Algorithm ● Testing results. ● Future work 31
  32. 32. Second Part Structured Differencing For Web Based Version Control 32
  33. 33. Existing Differencing Algorithms Comparison Line Based Structure Based Example LCS DiffX, Xdiff and Xydiff Comparison unit Line Structure Implementation Difficulty Easy Hard Dealing with logical nature of code that consists of Deals with it Ignores it (classes, methods, (helpful for developers) objects,...etc) 33
  34. 34. Part 2 Objectives ● Adding grammar based difference calculation. ● Enhancing difference computation speed. ● Adding on-line support for syntax differencing. ● Application on java language. 34
  35. 35. Abstract Syntax Tree (AST) ● Important for parsers to model source code as structure instead of plain text/lines ● Many parser generators for java , ANTLR is chosen 35
  36. 36. XML Standard ● Known Structured data representation format. ● Used widely for interoperability ● Used in many protocols in Internet and web services. 36
  37. 37. Convert AST to XML 37
  38. 38. Differencing ● Changes can be: – ADD – Delete – Modify – Move 38
  39. 39. Syntax aware Differencing Algorithm 39
  40. 40. Syntax aware Differencing Algorithm (Cont.) 40
  41. 41. Agenda ● Version Control introduction ● Objectives ● Previous work ● Applied Algorithms and Technologies: – Suggested load balancing architecture – Suggested Differencing Algorithm ● Testing results. ● Future work 41
  42. 42. Simulation Results ● Two Subsystems are simulated – Semi-structured version control JfreeChart, Jung,MyJTable, and Piccolo Tools – Syntax Aware Diff For Web Based Version Control Systems AJAX, GWT, XML, ANTLR, JDOM, XML unit and java servlets ● Note : the following results are based on custom simulation not real-life data according to limitation of human team to apply tests . 42
  43. 43. Part 1 Results 43
  44. 44. 44
  45. 45. 45
  46. 46. 46
  47. 47. 47
  48. 48. Part 2 Results 48
  49. 49. 49
  50. 50. 50
  51. 51. 51
  52. 52. 52
  53. 53. 53
  54. 54. 54
  55. 55. Agenda ● Version Control introduction ● Objectives ● Previous work ● Applied Algorithms and Technologies: – Suggested load balancing architecture – Suggested Differencing Algorithm ● Testing results. ● Future work 55
  56. 56. Future work 56
  57. 57. Part 1 Future work (for our semi-distributed proposed algorithm) ● Making a real-world case study. ● Integration with coding Environment- IDE. ● Considering some aspects like security and backup. ● Testing in many network platforms on heterogeneous devices. 57
  58. 58. Part 2 Future work (Syntax-Aware Differencing) ● Merge the semi-distributed algorithm with differencing algorithm. ● Reduce the long representation of short Java source code. ● Enhance the readability of the differencing results. ● Integrate with an existing IDE ● Enhance the Visualization of Graphical user Interface (GUI) of the web tool. ● Enhance the used model of asynchronous web page design (Rich Online IDE). ● Develop as a web service. ● Port this algorithm to other languages rather than Java by replacing the modeling part to read the other language grammar. 58
  59. 59. Word For History 59
  60. 60. Thanks 60

×