Projektityö 20.9.2013 Esimerkki ohjelmistokehitysprosessista (työkalujen käytön näkökulmasta) Wiki, esimerkkinä https://projectwiki.sis.uta.fi Subversion-versionhallinta Redmine-projektinhallinta Balsamiq Jenkins Muutamia projekteissa aiemmin käytettyjä työkaluja Kurssin luennoitsija: Timo Poranen (email: timo.t.poranen@uta.fi, työhuone: B1023) Kurssin kotisivut: https://projectwiki.sis.uta.fi/ 1
Kehitysprosessi (www.majava-kilpailu.fi) Päätös uudesta ominaisuudesta (Redmine: new issue, feature). Käyttötapauksen kuvaus, poikkeukset, testattavuus,... Suunnittelu ja toteutus. Tuorein versio koodista versionhallinnasta (update). (Yksikkötestien suunnittelu ja toteutus.) Toteutus ja testaus omassa kehitysympäristössä. Kehittäjän testaama uusi koodi versionhallintaan (commit). Testaus erillisellä testipalvelimella (ei julkinen). Testin läpäissyt uusi toiminnallisuus viedään lopuksi julkiselle palvelimelle (päivitetään järjestelmän koodit versionhallinnasta). 2
Wiki Voidaan käyttää projektiin liittyvässä dokumentoinnissa. Asiakas voi osallistua kirjoittamiseen. Vaatii aktiivista päivittämistä. Esim. Käyttötapaukset, vaatimustenmäärittely, testaussuunnitelma, tapaamisten muistiinpanot, projektin tapahtumista tiedottaminen,... Ei sovellu hyvin: vaatimusten priorisointiin ja luokitteluun, työtehtävien jakamiseen. Esimerkki: https://projectwiki.sis.uta.fi. Osa materiaalista salasanan taakse? Esimerkiksi projektin oma dokuwiki asennus. 3
ProjectWiki SIS-tunnuksen saaminen: https://it-tuki.sis.uta.fi/doku/user_accounts Käyttöperiaatteet, raportointi ongelmista Perustoiminnot (editointi, uuden sivun luominen, kuvien lataaminen) Move / Protect Oma sivu Watch / History / Discussion 4
Versionhallintajärjestelmä Subversion (SVN) http: //fi.wikipedia.org/wiki/ohjelmiston_versiohallinta https://projectwiki.sis.uta.fi/wiki/version_control Soveltuu lähes(?) kaikenlaisten dokumenttien käsittelyyn ja niiden muutoshistorian ylläpitoon. tekstitiedostot ohjelmakoodi kuvatiedostot *.exe tiedostot tietokantadumpit 5
Esimerkki työkopion luomisesta Asenna tortoisesvn (http://tortoisesvn.net/download). Luo sopiva hakemisto. Valitse hiiren oikealla näppäimellä avautuvasta valikosta SVN Checkout. Anna svn-palvelimen osoite ja valitse OK. Työskentely: Hae tarvittaessa päivitykset versionhallinnasta SVN Update -komennolla (aukeaa hiiren oikeasta näppäimestä). Muokkaa tiedostoa, valitse lopuksi hiiren oikealla näppäimellä avautuvasta valikosta Commit. 6
Projektinhallintaohjelmistot - Redmine Esimerkkinä Testi-projekti ja Majava-projekti My page, Overview, Activity, Roadmap Issues, New issue Documents Wiki Files Repository, Settings Working hour tracking (redmine.sis.uta.fi) 7
Balsamiq http://www.balsamiq.com https://projectwiki.sis.uta.fi/wiki/balsamiq Jenkins ja yksikkötestaus Jenkins ja yksikkötestaus käydään läpi tarkemmin 4.10. http://jenkins.sis.uta.fi https://projectwiki.sis.uta.fi/wiki/jenkins SonarQube: http://jenkins.sis.uta.fi/sonar/ 8
Muita projekteissa käytettyjä työkaluja... https://projectwiki.sis.uta.fi/wiki/list_of_other_ documents notepad++, emacs, Eclipse + erilaisia plugineja Selenium (testaukseen), JUnit, CppUnit, phpunit, firebug,... Trac, JIRA, Scrumworks Basic, Google Code, Pivotal Tracker, Trello,... Doodle (kokousajan sopiminen) Dropbox (tiedostojen jakaminen), googledrive. Flowdock (communication tool for teams). https://projectwiki.sis.uta.fi/wiki/virtual_servers MSDNAA, Dreamspark 9
Tool usage in students projects http://www.sis.uta.fi/~tp54752/pub/makiahoporanen_ ToolUsageInStudentsSoftwareProjects.pdf Software tool selection and usage play an important role in software development. Selecting, and then using, right tools makes development process faster and thus the product quality will get better. In this paper we evaluate tool selection process and tool usage in 14 students software development projects. Data was collected from final reports and from three questionnaires filled by team members during the projects. On average, the teams used fourteen different tools during their projects. Main reason to select a tool was previous experience of one or more team members. Most common reason to change a tool to another was that not all team members were committed to use the first selected tool. 10