These%20materials%20are%20prepared%20only%20for%20the%20students%20enrolled%20in%20the%20course%20Distributed%20Software%20Development%20(DSD)%20at%20the%20Department%20of%20Computer%20Science%20and%20Engineering,%20%20%20University%20of%20M - PowerPoint PPT Presentation

About This Presentation
Title:

These%20materials%20are%20prepared%20only%20for%20the%20students%20enrolled%20in%20the%20course%20Distributed%20Software%20Development%20(DSD)%20at%20the%20Department%20of%20Computer%20Science%20and%20Engineering,%20%20%20University%20of%20M

Description:

shakira; 30; britney; 55; mariah; 273; How many commits in which directories Avril had? ... How many lines was added by shakira and mariah. in index.avi last year? ... – PowerPoint PPT presentation

Number of Views:235
Avg rating:3.0/5.0

less

Transcript and Presenter's Notes

Title: These%20materials%20are%20prepared%20only%20for%20the%20students%20enrolled%20in%20the%20course%20Distributed%20Software%20Development%20(DSD)%20at%20the%20Department%20of%20Computer%20Science%20and%20Engineering,%20%20%20University%20of%20M


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 Tomic
How to makeTuna 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 Tomic
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
  • Dont do it if you dont 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 weve tried to do that for local
    jobs

12
Following the advices (3/3)
  • Aim at continuous integration
  • Yes, weve tried to do, with only minor problems
    during connection of JDBC driver and CVSQL server
  • Provide local support for complex tools
  • We havent used any complex tools, so there was
    no need
  • For small projects build a virtual team
  • Yes
  • Do risk management
  • We havent 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 its 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
  • Weve used it to agree on all parts of the
    project that we share really fast
  • Large amount of motivation
  • Weve 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 well do 4
    types of interfaces
  • Command line GUI
  • Command line with arguments
  • XML Server
  • JDBC
  • But, its 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 thats 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 dont need to
    worry if someone else is using it.

18
Thats nice, but I have two projects
  • Dont worry, you dont 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 dont
    have too much time to type in all the test
    queries
  • So we said, Come on, its Christmas time again
    and so were adding also
  • the automated testing capabilities
  • That means you dont 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, its 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 doesnt 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
  • Dont worry, you dont 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 dont 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 youre 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 dont 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 dategt '2002/12/20' AND
    date lt '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 gt '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, thats 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 Dekuji Köszi
Köszi Dank u Blagodarya Faleminderit Salamat
Asante Mauruuru Mahalo Cám ón Grazias Gestena
Gracies Dekuji tack själv Danko Dankie Gracias
Grazia Grazia Dakujem Dakujem Merci Merci
Dhannvaad Sas efharisto Blagodarya Kiitos Grrcies
Danke Merci Grazie Cám ón Dhannvaad Sas efharisto
Grrcies Dyakooyu Grazia Hvala Danko tack själv
Faleminderit Merci Blagodarya Merci Komapsumnida
Ngiyabonga Diolch yn fawr Tesekkurler Dekuji
Merci Hvala Mauruuru Gestena Dhannvaad Gestena
Thank you Cám ón Kiitos Tesekkurler Köszi Grazias
Sas efharisto Thank you Asante Blagodarya Toda
39
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com