plat forms org
play

www.plat-forms.org Web programming competition report from the - PowerPoint PPT Presentation

1 www.plat-forms.org Web programming competition report from the Geneva team Laurent Dami, Etat de Genve (Etat de Genve) Cdric Bouvier (Optaros) Jean-Christophe Durand (Optaros) together since oct. 2006 to build the new business


  1. 1 www.plat-forms.org Web programming competition report from the Geneva team Laurent Dami, Etat de Genève (Etat de Genève) Cédric Bouvier (Optaros) Jean-Christophe Durand (Optaros) together since oct. 2006 to build the new business application for Geneva Justice

  2. How? • 9 Teams of 3 meet in one place • January 25-26 2007, Congress Center Nürnberg • Each builds the same system within 30 hours 2 / 18 LD, PJ-GE, juin 07Lutz Prechelt, prechelt@inf.fu-berlin.de

  3. Who: Teams • • Team 3 Java : Team 1 Perl : abaXX Technology (abaxx.de) Etat de Genève/ Optaros (ge.ch, optaros.com). • Team 4 Java : • Accenture Technology Team 2 Perl : Solutions (accenture.de) plusW (plusw.de) • • Team 9 Java : Team 5 Perl : I nnoopract I nform ations- Revolution System s system e (innoopract.de) (revsys.com) • Team 6 PHP : OXI D eSales (oxid-esales.com) • Team 7 PHP : Globalpark (globalpark.de) • Team 8 PHP : Zend Technologies ( zend.com) 3 / 18 LD, PJ-GE, juin 07Lutz Prechelt, prechelt@inf.fu-berlin.de

  4. LD, PJ-GE, juin 07 4 Why did we go ? � Help the Perl community � Perl losing visibility � yet the technology is excellent and competitive � � needs marketing � Opportunity � teams of 3 : not frequent for Perl � Geneva not too far from Nuremberg � modest investment � Expected benefits for our internal project � credibility of the team � credibility of the technology � risky challenge !

  5. 5 Task : People By Temperament PDF intro PDF requirements

  6. What: "People by Temperament" Registration for community portal 6 / 18 LD, PJ-GE, juin 07Lutz Prechelt, prechelt@inf.fu-berlin.de

  7. What (2): Trivial Temperament Test (TTT) • After registration, members can take the TTT personality test • to determine their MBTI personality type 7 / 18 LD, PJ-GE, juin 07Lutz Prechelt, prechelt@inf.fu-berlin.de

  8. What (3): Search for members • Search for members by complex criteria 8 / 18 LD, PJ-GE, juin 07Lutz Prechelt, prechelt@inf.fu-berlin.de

  9. What (4): Member list (e.g. for search results) 9 / 18 LD, PJ-GE, juin 07Lutz Prechelt, prechelt@inf.fu-berlin.de

  10. What (6): Further requirements • The above screenshots showed a solution for the 108 Web GUI requirements • the one delivered by team3 Java (abaXX Technology) in addition, there were • 19 requirements regarding a SOAP webservice interface • 19 non-functional requirements • browser compatibility, performance, etc. • 5 rules describing the form of solution delivery • Each requirement was marked with priority MUST, SHOULD, or MAY 10 / 18 LD, PJ-GE, juin 07Lutz Prechelt, prechelt@inf.fu-berlin.de

  11. LD, PJ-GE, juin 07 11 PbT Architecture PbT application Javascript, PbT DataModel PbT Controllers HTML templates CSS, etc. External components Catalyst DBIx::DataModel Template toolkit prototype.js mod_perl2 Perl DBI Apache2 DBD::MySQL MySQL Graph::Plot

  12. LD, PJ-GE, juin 07 12 Our experience � started very fast → public releases at 18:30 and 22:30 � late evening : got stuck → no Perl support for WSDL requirements → lost time to choose/install plotting package → complexity of search request � early morning : panic mode → lack of concertation for architectural changes → regression bugs � afternoon : final release OK but buggy ht t p: / / www. pl at - f or m s. or g/ 2007/ bl og

  13. 13 The report 118 pages ! published on www.plat-forms.org also source code

  14. Results 1: Completeness of solutions GUI requirements Note: - Team Java 4 was hampered by a huge VMware setup problem for almost a full day - Team Java 9 used a framework still in alpha development (RAP) 14 / 18 LD, PJ-GE, juin 07Lutz Prechelt, prechelt@inf.fu-berlin.de

  15. 15 / 18 LD, PJ-GE, juin 07Lutz Prechelt, prechelt@inf.fu-berlin.de

  16. Results 2: Size of solution source lines-of-code Note: Further manually written source code resides in modified reused files. 16 / 18 LD, PJ-GE, juin 07Lutz Prechelt, prechelt@inf.fu-berlin.de

  17. Results: Other • Many other aspects were compared • Ease-of-use • Correctness/ reliability • Modifiability, solution structure • Team behavior during the development process • Teams' self-reported subjective experience • Some of them exhibit further platform differences • in particular often smaller variance among the PHP teams 17 / 18 LD, PJ-GE, juin 07Lutz Prechelt, prechelt@inf.fu-berlin.de

  18. Estimations post-hoc 18 / 18 LD, PJ-GE, juin 07Lutz Prechelt, prechelt@inf.fu-berlin.de

  19. Winning teams • We do not have an overall winner • because people would readily infer a "best platform" from it But we do have a winner per platform: • Java: abaXX Technology (team3) • in particular for highest completeness • Perl: Etat de Genève/ Optaros (team1) • for best balance of characteristics • PHP: OXI D eSales (team6) • in particular for highest robustness 19 / 18 LD, PJ-GE, juin 07Lutz Prechelt, prechelt@inf.fu-berlin.de

  20. LD, PJ-GE, juin 07 20 Thoughts about the report � results reflect teams more than platforms � no distinction DHTML / platform language � maintainability � no measure of "understandability" � "modifiability" : simplistic scenario � robustness → programming best practice / platform � some aspects not taken into account → script for populating the database

  21. LD, PJ-GE, juin 07 21 Lessons � Happy about → team (common culture, complementary skills) → technology (Apache, Perl, Catalyst, TT2, DBIx::DataModel) → tools (XEmacs, vim, subversion) � To improve → planning, priorization, estimates → preparation

  22. LD, PJ-GE, juin 07 22 PbT Data Model TTT tests acti ve_test 0..1 * 1 1 1 1 * * * Login Member Member_interest Interest like/dislike 1 1 member contact * * Contact_status

  23. package Pl at For m s: : M odel : : PbT; use DBI x: : Dat aM odel ; LD, PJ-GE, juin 07 23 DBI x: : Dat aM odel - > - >Schem a( ' PbT' ' PbT' ) ; ) ; Exemple de contrôleur Catalyst PbT- > - >Tabl e( qw/ PbT: : M qw/ PbT: : M em em ber ber m m em em ber ber m m em em ber _i d/ ber _i d/ ) ; ) ; PbT- > - >Tabl e( qw/ PbT: : TTT qw/ PbT: : TTT t t t t t t t t t _i d/ t t t _i d/ ) ; ) ; PbT- > - >Tabl e( qw/ PbT: : Logi n qw/ PbT: : Logi n l ogi n l ogi n l ogi n_i d/ l ogi n_i d/ ) ; ) ; PbT- > - >Tabl e( qw/ PbT: : I nt er est qw/ PbT: : I nt er est i nt er est i nt er est i nt er est _i d/ i nt er est _i d/ ) ; ) ; PbT- > - >Tabl e( qw/ PbT: : Cont act _st qw/ PbT: : Cont act _st at us cont act _st at us at us cont act _st at us m m em em ber _i d cont act _i d/ ber _i d cont act _i d/ ) ; ) ; PbT- > - >Tabl e( qw/ PbT: : M qw/ PbT: : M em em ber _i nt er ber _i nt er est m est m em em ber _i nt er est ber _i nt er est m m em em ber _i nt er est _i d/ ber _i nt er est _i d/ ) ; ) ; PbT- > - >Com posi t i on( [ ( [ qw/ PbT: : M qw/ PbT: : M em em ber ber m m em em ber ber 1/ 1/ ] , ] , [ qw/ PbT: : TTT qw/ PbT: : TTT t est s t est s * / * / ] ) ; ] ) ; PbT- > - >Com posi t i on( [ ( [ qw/ PbT: : M qw/ PbT: : M em em ber ber m m em em ber ber 1/ 1/ ] , ] , [ qw/ PbT: : M qw/ PbT: : M em em ber _i ber _i nt er est m nt er est m em em ber _i nt er est s * / ber _i nt er est s * / ] ) ; ] ) ; PbT- > - >Associ at i on( [ ( [ qw/ PbT: : I nt er est qw/ PbT: : I nt er est i nt er est i nt er est 1/ 1/ ] , ] , [ qw/ PbT: : M qw/ PbT: : M em em ber _i ber _i nt er est m nt er est m em em ber _i nt er est s * / ber _i nt er est s * / ] ) ; ] ) ;

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend