Presentation is loading. Please wait.

Presentation is loading. Please wait.

Selected Topics in Software Computing Distributed Software Development CVSQL Final Project Presentation.

Similar presentations


Presentation on theme: "Selected Topics in Software Computing Distributed Software Development CVSQL Final Project Presentation."— Presentation transcript:

1 Selected Topics in Software Computing Distributed Software Development CVSQL Final Project Presentation

2 Questions Are you a part of software development team? A distributed team, perhaps? Do you use CVS? Are you annoyed with its reporting capabilities? –Actually, with the lack of them... Do you like SQL databases? We have the solution...

3 CVSQL An SQL server for CVS logs Bridges the gap between CVS and SQL Allows easy extraction of CVS log data using SQL SELECT statements One year after the initial release, the 2 nd CVSQL development team is proud to present: CVSQL version 2.0 With exciting new features!

4 Features Multiple data sources: –CVS logs Contain the information about the files in the CVS repository, commited changes and the people working on the CVS repository –ODBC databases Access to any data stored in ODBC-compliant databases Interaction with 3 rd party systems such as Palantir –And more... Modular design provides extensibility Write your own data provider in a few lines of code

5 Features (II) Multiple interfaces: –JDBC driver Any Java application can use CVSQL with no modifications –XML-RPC server Publish the data as web service Easy-to-use in many development platforms (C#, C/C++, Perl, Python, PHP,...) –XML-Bridge (legacy) server Simplified version of XML-RPC Support for legacy (CVSQL 1.0) applications

6 Features (III) Supported SQL subset: –Only the SELECT command It's read-only SQL server, after all –Select from multiple tables INNER and LEFT OUTER JOIN support –Support for aggregate operators AVG, MAX, MIN, SUM, COUNT –Supported SQL data types String, Integer, Decimal, DateTime –Support for WHERE, GROUP BY and ORDER BY That's obligatory, isn't it? ;-)

7 Features (IV) Standards-compliant: –Implements JDBC and XML-RPC standards –Uses ODBC for back-end data access Other: –Multiple databases can be served by one CVSQL server –Optional integration with system authentication mechanisms –Portability Clean C++ source code, portable to any Unix system Easy to port to Microsoft Windows platform –Multithreaded

8 CVSQL Server Overview The central component of the CVSQL system Collects data from various sources Serves it to CVSQL clients

9 Deployment Typical setup: –CVS server with one or more repositories –Optional database server (such as MySQL) –Client(s) that can use data from the CVSQL server

10 Data Mining How many lines did each developer commit? SELECT author, sum(lines_added) FROM changes GROUP BY author Who made the most changes? SELECT author, count(lines_added), sum(lines_added) AS sum FROM changes GROUP BY author ORDER BY sum Who deleted files? SELECT author FROM changes WHERE state = 'dead' Who worked on 'Makefile'? SELECT author FROM changes WHERE file = 'Makefile' GROUP BY author

11 Product Info Development time: 9 weeks Development team size: 7 developers Programming languages: –C++ – 8611 lines of code (188 KB) –Java – 6558 lines of code (171 KB) Code reused from previous version: –C++ – None (we used the ideas, though) –Java – Much (most of it reworked) Product completion status –Almost complete (no LIKE / MATCHES operator) –Not extensively tested :(

12 The Future More extensive testing to improve robustness Performance optimizations More data providers Better SQL SELECT support (subselects,...)...

13 The Authors Tomislav Capan – XML-RPC client and server, documentation Matija Čižmek – SQL Engine, testing Abdul Ahad Khan – JDBC driver, documentation Senko Rašić – SQL Parser, CVSQL core, legacy server, integration, testing Matija Slivonja – CVS log provider Ian Wharton – JDBC driver, testing David Zidar – ODBC provider

14 Lessons Learned Distributed development really is hard! Good task assignment and job separation is crucial for the development process Nothing is “obvious” – discuss everything E-mail is your friend ;-) No matter how good your design is, things are going to change Surprises can't be predicted Balance the formality of the communication and the development process

15 That's all, folks! This is where our journey ends. –It's been hard –It's been fun –It's been worth the effort We would like to thank: –All of you for your attention during the project presentations –The customer for not making unrealistic requests ;-) –The CVSQL1 project team for making the initial version of the project (and documenting it) Thank you CVSQL 2 Team


Download ppt "Selected Topics in Software Computing Distributed Software Development CVSQL Final Project Presentation."

Similar presentations


Ads by Google