1 / 39

NOTICE!

NOTICE!.

Download Presentation

NOTICE!

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. NOTICE! • These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer Science and Engineering, University of Mälardalen, Västerås, Sweden and at the Faculty of Electrical Engineering and Computing, University of Zagreb, Croatia (year 2003/2004). • For all other purposes, authors’ written permission is needed! • The purpose of these materials is to help students in better understanding of lectures in DSD and not their replacement!

  2. Selected Topics in Software Engineering-Distributed Software Development

  3. Siniša Tomić How to make:Tuna salad

  4. How to make tuna salad • Ingredients • 2 cans of tuna (185g each) • 500 g of pasta • 1 mayonnaise with olive oil • 1 mayonnaise with mustard • 0.1 l of “sour cream” • 1 celery • 2 fresh tomatoes(only meat) • Cheese • Note • Best served cold • Recipe • Cook the pasta • Cool down the pasta • Chop the rest of ingredients • Mix all the ingredients together

  5. Siniša Tomić CVSQL Final project report

  6. Current project status 100% finished 100% new OK “As seen on TV previous presentations”

  7. Past

  8. I want to see some numbers • For those of you who love numbers • Lines of code: • ~8000 lines C++ • ~5200 JAVA • Total of: ~ 13000 lines • Pages of documentation: • ~2900 pages • Number of valid test SQL queries: • 4437 SQL queries • Number of invalid test SQL queries • 30457 SQL queries • Time of automated testing (not includingdeveloper testing during the development) • ~ 30 hours

  9. Disclaimer • No animal was harmed in the making of this software • No tree was cut down during the making of the documentation

  10. Following the advices(1/3) Stig Larsson - ABB • Don’t do it if you don’t have to • Actually do it if you have enough time  • Use system boundaries to define organization boundaries • Yes • Use sub-contract management • We defined all the requirements at the start for each developer output • Watch for conflicts between project and line organization • We used mail for notifying all the members of the team about everything so if there was a conflict it would show • Define clear roles and responsibilities • Yes. • Spread the knowledge • Yes, email was the best way of communication because of the distance

  11. Following the advices(2/3) • Establish a formal reporting and meeting culture • We always tried to stay focused during the meeting and to follow the meeting plan. It was very helpful • Document properly • It could have been done better, but the parts that should connect together were always well defined before any side started to work so that there was no need for large changes • If practically possible, meet in person • It would make some things easier  • Support job rotation • Not possible, the job was divided so that everyone does the part in which is best • Call the team together for critical tasks • That was not possible for work divided Sweden – Croatian, but we’ve tried to do that for local jobs

  12. Following the advices(3/3) • Aim at continuous integration • Yes, we’ve tried to do, with only minor problems during connection of JDBC driver and CVSQL server • Provide local support for complex tools • We haven’t used any complex tools, so there was no need • For small projects; build a virtual team • Yes • Do risk management • We haven’t done that enough. • Do proper work breakdown • This could have been done better, but the job was divided so that everyone does the thing in which he or she is the best.

  13. Ideas for the next time • Email can solve you a lot of problems • Email was, at the end, the best way of communication. It has it’s problems when you need fast response, but if you include time required for other site to respond in your plans it is great • Videoconferencing • It helped us a lot to get know each other a bit better, although it cannot replace real human contact • We’ve used it to agree on all parts of the project that we share really fast • Large amount of motivation • We’ve early started to build ‘Team spirit’ and it really helped in avoiding any conflicts and in getting some new great ideas • Transparency • Every member of the team knew exactly what was expected from him or her and the way of output should be. Everything was planed as much detailed as possible and thank to the rather good design descriptionthe main job was to do things done the way it was expected

  14. Present

  15. This looks OK, but what do I get? • You get 5 different user interfaces • The are all fully supported on two different operating systems: • Windows • Linux • They can also be used on three more operating systems: • FreeBSD (Intel) • Solaris (Sun) • MacOS X (PowerPC) • You can access them from at least 3 types of programming language styles • JDBC • Command line • XML interface

  16. Wait, wait. Did you said 5? • Yes, we know that we said before that we’ll do 4 types of interfaces: • Command line GUI • Command line with arguments • XML Server • JDBC • But, it’s still Christmas time and so we said “well, they could always use one more” • Server GUI • You can telnet to your favourite CVSQL server and use it just as you would your Command line GUI – no need for local installation

  17. But that’s not much • OK we know that you still want more so we decided to also make the Windows server version • Yes, that means that you can use your favourite CVSQL server under Windows environment as well as under the Linux environment. • They both use the same code base and they are both multithreaded so that you don’t need to worry if someone else is using it.

  18. That’s nice, but I have two projects • Don’t worry, you don’t need two separateinstallations of CVSQL • you can have as many projects as you like in just one. The CVSQL will support them all • Each of the projects is represented as onevirtual database and you can connect to any of them using the SQL USE command • You only cannot use one SQL query to check two different projects (you cannot do than in SQL too ), but you can use and of provided interfaces to generate as much data as needed

  19. Sounds nice, but does it work? • Sure it does work, but we know that you don’t have too much time to type in all the test queries • So we said, “Come on, it’s Christmas time” again and so we’re adding also the automated testing capabilities • That means you don’t need to enter all queries you can just use the software to perform self test by itself • If you just want to browse through our test results you can, it’s part of Test document – only 2000 pages result • Yes, you can get it as ASCII file too if you like 

  20. Why would I want to do a self test? • One reason is that the complete CVSQL is written in standard C/C++ language and doesn’t use any proprietary functions or library calls • Therefore is quite portable to all other platforms with only minor changes • And if you do porting you will want to test it again so why create new test cases? • Of course, our JDBC driver is portable just as all other JAVA applications

  21. Is it multilingual? • Of course it is. • You can use the software in one of the following languages: • English • Swedish • Croatian • Don’t worry, you don’t need to recompile the software to add another language just translate the text file that represents the language file and set up the new value in the configuration file • There is no limit on number of translations.

  22. What are the limitations? • The main limitation is imposed by the CVS and SQL being two completely different interfaces • CVS: • works with your local file system and has knowledge about your data • cannot access the data at any order • SQL: • has no knowledge about your local data • can access all the data in the random order

  23. So what are CVSQL limitations • Of course, there are some additional limitations imposed by the project • You don’t have 100% full SELECT syntax at your disposal • Problem:, sometimes you must use more than one SQL query to get information when only one SQL query (more than 300 characters long) would do exactly the same  • Solution: You do have all main parts supported so you can still get the same data by using two separate queries. It will also make your code easier to understand  • In case you’re wandering where are yours “Alter table”, “Revoke” and “Create constraint trigger”(I know, you use them everyday, even before lunch) • They are not part of this project – remember?

  24. Any more limitations? • Most probably, but we tried to make possible all of your requests as much as we could • The greatest limitation is the limitation of SQL, often it is necessary to know SQL very well in order to get the wanted data in wanted way • Sorry, we cannot fix SQL  • The second limitation is that some information that is easy to get from standard CVS is not that easy to get from CVSQL • Again that SQL problem  • There are also some good news • You can get some data from CVSQL that is not available through the standard CVS interface without a lot of data analysis • You don’t need to know anything about CVS to get that data

  25. SQL diagrams USE diagram SELECTdiagram

  26. What can we get? (1/3) • Who worked in the last working week of last year? • SELECT author, sum(added), sum(delete), count(*) FROM changes WHERE date> '2002/12/20' AND date < '2002/12/31%'; • dido; 18; 0; 2; • Who made most changes in root CVS directory and how much lines has added since initial commit? • SELECT author, sum(added), count(*) FROM changes WHERE dir = '' order by 3, 2; • shakira; 773; 11; • britney; 3519; 22; • eve; 4879; 64; • christina; 6021; 149; • avril; 9192; 154; • dido; 6397; 214; • mariah; 11544; 622;

  27. What can we get? (2/3) • Who deleted files? • SELECT author, count(*) FROM changes WHERE state = 'dead' ORDER BY 2; • eve; 1; • dido; 11; • avril; 29; • shakira; 30; • britney; 55; • mariah; 273; • How many commits in which directories Avril had? • SELECT dir, count(*) FROM changes WHERE author ='avril'; • ; 154; • configs; 2; • img; 2;

  28. What can we get? (3/3) • How many lines was added by shakira and mariah in index.avi last year? • SELECT file, author, count(*) FROM changes WHERE file ilike 'index.AVI' and date > '2003/' and (author = 'shakira' or author = 'mariah'); • index.avi; mariah; 30; • index.avi; shakira; 3; • How many lines in total had added users with 7 leter username and what was the maximum number of lines added in one commit? • SELECT author, sum(added), max(added) FROM changes WHERE author like '???????'; • shakira; 1834; 663; • britney; 3944; 1563;

  29. Can we see that thing of yours? • Of course, here is a live presentation of the following parts: • CVSQL server + JDBC driver • CVSQL server GUI • Command line gui • Command line with parameters • The first one coveres two types of interfaces XML and JDBC (yes, this one will be a bit short since there is no much time)

  30. CVSQL server + JDBC • The presentation of CVSQL server called by the JAVA application using the CVSQL JDBC driver

  31. JDBC demo Application Java Application TCP/IP Query XML JDBC Driver CVSQL Database This computer

  32. Demo Application, 3-tiers Web Interface, browser JSP - Page JDBC Driver Web - Server J2EE Server TCP/IP Query XML CVSQL Database

  33. CVSQL server GUI • The presentation of CVSQL server GUI aggregate

  34. Command line GUI • The presentation of Command line GUI

  35. Command line with parameters • The presentation of Command line calling

  36. Future

  37. What can be done? • There are still a lot of thing that could be developed • Additional SQL query interface • Additional tables that would provide user with contents of files from CVS • Additional memory optimization • New interfaces • New operating systems • … • But, that’s another story …

  38. Thank you ! • The CVSQL project Team wishes to thank: • All of you for your attention during this and all other presentations • Our dear customer for making clear requests with no modifications during the project • Our computers for making the most painful work for us without complaining Dyakooyu Tesekkurler Köszi Takk Dękuji Köszi Köszi Dank u Blagodarya Faleminderit Salamat Asante Mauruuru Mahalo Cám ón Grazias Gestena Gracies Dękuji tack självDanko Dankie Gracias Grazia Grazia Dakujem Dakujem Merci Merci Dhannvaad Sas efharisto Blagodarya Kiitos Grŕcies Danke Merci Grazie Cám ón Dhannvaad Sas efharisto Grŕcies Dyakooyu Grazia Hvala Danko tack själv Faleminderit Merci Blagodarya Merci Komapsumnida Ngiyabonga Diolch yn fawr Tesekkurler Dękuji Merci Hvala Mauruuru Gestena Dhannvaad Gestena Thank you Cám ón Kiitos Tesekkurler Köszi Grazias Sas efharisto Thank you Asante Blagodarya Toda

More Related