582101 - Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista 1
Ohjelmistotuotannon työkaluuista Projektinhallintatyökalut (ei käsitellä tällä kurssilla) CASE- ja mallinnustyökalut (esim. Poseidon) Nykyaikainen IDE (esim. Eclipse) ohjelmointi ja erilaiset näkymät koodiin suoritus ja virheenjäljitys (debugging) testaus (esim. JUnit) Järjestelmänrakennus (esim. Ant) Ylläpito & ryhmätyön tuki 2
Yleistä työkaluista Työkalut voidaan jakaa kahteen pääryhmään henkilökohtaista työskentelyä tukevat työkalut ryhmätyötä (computer-supported collaborative work, CSCW) tukevat työkalut Työkalun ja sen käyttöorganisaation oltava riittävän kypsiä tietotaito, ohjeistus, johtaminen & hallinto muuten työkalusta enemmän haittaa kuin hyötyä 3
CASE- ja mallinnustyökalut Ominaista visuaalisia, esittävät mallin useilla eri abstraktiotasoilla tukevat ryhmätyötä Jaottelu vaatimusten hallinta visuaalinen UML-mallinnus raporttien generointi tietokannan mallinnus [ei käsitellä] 4
Vaatimusten hallinta: vaatimusdokumentti Vaatimukset (requirements) esitetään yleensä tekstinä vaatimusdokumentissa jaoteltu tyypillisesti käyttötapauksittain voidaan käyttää useita abstraktiotasoja, jolloin muodostuu vaatimushierarkia 5
Vaatimusten hallinta: työkalutuki Erityisesti ryhmätyö edellyttää työkalutukea Tyypillistä työkalutukea vaatimusten kirjoittaminen oikeassa muodossa vaatimusten kategorisointi ja vaatimushierarkian hallinta vaatimusten muutosten hallinta vaatimusten esittäminen eri sidosryhmille (esim. kehittäjille ja asiakkaille) vaatimusten jäljitettävyys 6
Esimerkki vaatimustyökalusta: IBM Rational Requisite Pro 7
IBM Rational Requisite Pro 8
Visuaalinen UML-mallinnus UML-työkalut yksinkertaisimmillaan pelkkiä kaavionpiirtovälineitä Kehittyneimmät UML-työkalut tarjoavat mallien semantiikan ja keskinäisen ristiriidattomuuden tarkastamisen liitynnät muihin työkaluihin jaettuun tietovarastoon perustuvan ryhmätyötuen ja versioinnin muunneltavat graafiset esitystavat koodingeneroinnin eri ohjelmointikielille 9
Esimerkki UML-mallinnuksesta: IBM Rational Rose 10
Esimerkki UML-mallinnuksesta: Poseidon 11
Raporttien generointi Tarvitaan visuaalisten mallien ja malleihin liittyvien dokumenttien jakamiseen kehittäjien ohella myös muille projektin sidosryhmille Voidaan yleensä tuottaa erilaisten vakiomuotojen (templates) mukaisesti erilaisissa tiedostoformaateissa esim. HTML, Word, PDF, 12
Esimerkki raporttien generoinnista: MagicDraw ja IBM Rational Suite 13
Integroidut kehitysympäristöt: ohjelmoinnin rutiinitehtävien tuki Koodin kirjoittaminen syntaksin korostaminen ja tarkistaminen, navigointi, automaattinen täydentäminen ja generointi, Kääntäminen ja linkittäminen integroitu Ant, make tai vastaava (tästä lisää myöhemmin) Suorittaminen ja virheenjäljitys (eli debuggaus) pysäytyspisteet (breakpoint) ja askellus, muuttujien arvojen ja muiden lausekkeiden evaluointi, säikeiden ja kutsupinon tarkastelu, 14
IDE-esimerkki: rutiiniohjelmointia (Sun One Studio) 15
IDE-esimerkki: rutiiniohjelmointia (Sun One Studio) 16
IDE-esimerkki: suoritus ja virheenjäljitys 17
IDE-esimerkki: suoritus ja virheenjäljitys 18
Integroidut kehitysympäristöt: muita yleisiä ominaisuuksia Integrointi (UML-)mallinnustyökaluun koodingenerointi mallista, takaisinmallinnus koodista Erityyppisten sovellusalueiden tuki vrt. esim. J2SE, J2EE, J2ME Komponenttikirjastojen ja kehysten tuki graafisen käyttöliittymän piirtäminen, tietokantaintegraatio, liiketoimintakomponentit, Hajautetun ryhmätyön tuki ja versionhallinta Testaustuki 19
Integrointi mallinnukseen: Together ControlCenter 20
IDE-esimerkki: Testaus (Eclipse & JUnit) 21
Järjestelmänrakennus (system building) Järjestelmänrakennuksella tarkoitetaan prosessia, jossa tietylle kohdekonfiguraatiolle tarkoitettu ohjelma koostetaan kääntämällä ja linkittämällä yhteen sopivat ohjelmistokompo-nentit. [Sommerville] Lopullisena tarkoituksena on tuottaa ohjelmasta käyttäjille jaettavissa oleva suorituskelpoinen versio (distributable) 22
Järjestelmänrakennuksessa määriteltävät asiat Ohjelmiston osien väliset riippuvuussuhteet (build dependency) esim. käännettyjen tiedostojen (.class) riippuminen lähdekooditiedostoista (.java) Riippuvuussuhteiden mukaiset tehtävät (build task, build target) esim. kääntäminen Tehtävien suorittamisesta vastaavat työkalut esim. kääntäjä 23
Esimerkki rakennustyökaluista: Apache Ant Suosituin Java-ympäristön rakennustyökalu Tukee kattavaa valikoimaa valmiiksi määriteltyjä tehtäviä, jotka annetaan XML-muotoisissa konfiguraatio- eli build-tiedostoissa, mm. tiedostojen hallinta (copy, delete, chmod, ) kääntäminen ja tulkinta (javac, java, ) pakkaaminen ja asentaminen (jar, war, zip, gzip, ) Voidaan laajentaa vapaasti kirjoittamalla lisäykset Java-luokkina 24
Esimerkki rakennustyökalusta: Apache Ant 25