1 Työkalut ohjelmistokehityksen tukena
Johdanto 2 Työkaluja eli ohjelmistotyötä tukevia ohjelmistoja käytetään ohjelmistoalan yrityksissä nykypäivänä paljon. Työkalut auttavat ohjelmistoalan ihmisiä suunnittelemaan ja toteuttamaan ohjelmistotuotteita nopeammin, helpommin ja laadukkaammin. Toisaalta työkalun käyttöönotto ja koulutus vie aikaa ja resursseja. Työkaluja, ilmaisia tai maksullisia, on tarjolla nykypäivänä lukematon määrä, joten oikeiden työkalujen valitseminen on haastavaa. Usein valintaan vaikuttaa käytetty ohjelmointikieli. Java vs. C++ Koska työkaluja käytetään teollisuudessa paljon, on niihin tutustuminen hyödyllistä jo koulutuksen aikana. Diplomityön ideana on kehittää TTY:n ohjelmistotekniikan laitoksen koulutusta vastaamaan teollisuuden tarpeisiin työkalujen osalta.
Erään suomalaisen ohjelmistoyrityksen tuotantoprosessi 3 Kehitysympäristö Jatkuva integraatio & automaattinen testaus Build 1 Testausympäristö Tuotantoympäristö Build 2 Build 5 Build 3 Versionhallinta (Subversion) Integraatiopalvelin (Continuum/Hudson, Maven, JUnit) Build 4 Build 5 Virheilmoitukset Asennuspäätös Toiminnallinen testaus, Järjestelmätestaus (JMeter, Selenium) Asennuspäätös Tehtävät Työn ohjaus, seuranta Projektipäällikkö Asiakas Ratkaisumallit, keskustelu Tehtävienseuranta (Jira) Virheet, ongelmat Jatkokehitysideat Dokumentointi (Confluence)
Versionhallinta 4 Tarkoituksena ohjelmistoprojektin tuotosten hallinta ja seuranta koko tuotteen elinkaaren ajan. Tiedostot lisätään versionhallintajärjestelmään, joka tallentaa niistä kaikki versiot. Mahdollisuus palata aiempaan versioon, jos tehdyt muutokset olivatkin eitoivottuja. Useampi ohjelmistokehittäjä voi kehittää rinnakkain samaa ohjelmistokomponenttia ja muutokset voi lopulta yhdistää samaan tiedostoon. Mahdollistaa kehityksen etenemisen eri suuntiin, joka on usein välttämätöntä räätälöitäessä ohjelmistosta eri versiota eri alustoille ja asiakkaille. Versionhallintatyökaluja: Subversion, CVS, Rational ClearCase, Git
Subversion http, https, svn+ssh Palvelin (projektin tietovarasto) svn checkout svn commit svn update svn checkout svn commit svn update
Automaattinen testaus 6 Jos testaus tehdään käsityönä : virheitä saattaa jäädä huomaamatta aikaa menee hukkaan ja työ on tylsää, jolloin se saattaa jäädä tekemättä kokonaan. Automaattinen testaus huolehtii siitä, että usein toistuvat testaukseen liittyvät tehtävät tulevat suoritetuiksi asianmukaisesti aina. testitapausten ajaminen testien tulosten vertailu oletettuihin tuloksiin Raportointi Testaustyökaluja: xunit, JMeter, Selenium, Rational Performance Tester
Jatkuva integrointi 7 Ohjelmakoodi käännetään, integroidaan ja testataan automaattisesti erillisellä palvelimella, kun havaitaan muutos projektin versionhallinnassa. Käytännössä siis useita kertoja päivässä. Verrattuna perinteiseen projektin loppupäässä tapahtuvaan integrointiurakkaan, saadaan seuraavia hyötyjä: Ohjelmiston vaatimustenmukaisuus tarkastetaan päivittäin. Ohjelmistorajapinnan muutoksista johtuvat virheet havaitaan nopeasti. Parantaa tuottavuutta ja helpottaa seurantaa, kun mahdolliset virheet havaitaan nopeasti ja niihin voidaan reagoida heti. Integrointivaiheen ongelmat eivät kasaudu projektin loppupäähän, kun kiire on muutenkin. Työkaluja: Continuum, Hudson, CruiseControl, Bamboo
Työkaluesimerkki: JIRA Useat työkalut kattavat ison osan ohjelmiston elinkaaresta. JIRA on kattava työkalu, jonka avulla voi pitää kirjaa kaikista projektiin liittyvistä asioista, kuten ongelmista, bugeista ja tehtävistä. JIRAa käytetään yrityksissä vaatimustenhallintaan, projektinhallintaan ja muutostenhallintaan. JIRA:n esittelyvideo
Suosittuja työkaluja yritysvierailujen perusteella 9 KATEGORIA Vaatimustenhallinta Dokumentointi Projektinhallinta Mallintaminen Versionhallinta Ohjelmointi Kääntäminen Tarkastaminen Testaus Integrointi Muutostenhallinta Takaisinmallinnus TYÖKALUJA Excel, Word, PowerPoint, JIRA, Rational RequisitePro Excel, Word, PowerPoint, Confluence, Doxygen Excel, Word, Project, JIRA, ScrumWorks Visio, MagicDraw, Rational Rose & Software Architect Subversion, CVS, Rational ClearCase, Git Eclipse, Visual Studio, Emacs, Vi, UltraEdit Make, CruiseControl, ANT, Maven, Javac Findbugs, Metrics (Eclipse-plugin), Cobertura, PMD xunit-työkalut, Selenium, Rational Performance Tester CruiseControl, Hudson, Bamboo, ANT, Continuum Excel, JIRA, Bugzilla, TRAC Javadoc, Doxygen, Rational Software Architect