Iteratiivinen sovelluskehitys : Kehitysympäristön toteutus ja ylläpito
Lukkarinen, Aleksi (2011)
Lukkarinen, Aleksi
Metropolia Ammattikorkeakoulu
2011
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-201105269796
https://urn.fi/URN:NBN:fi:amk-201105269796
Tiivistelmä
Ensimmäiset ohjelmistotuotantoprosessimallit perustuivat järjestyksessä alusta loppuun suoritettaviin vaiheisiin. Ne olivat raskaita sekä runsasdokumentaatioisia, ja kehitettävälle sovellukselle asetettavien vaatimusten riittämättömän määrittelyn tai muuttumisen vuoksi projektit tyypillisesti myöhästelivät tai jopa epäonnistuivat usein. Vastauksena näiden prosessimallien ongelmiin syntyi sittemmin ketterinä menetelminä tunnetuiksi tulleita sovelluskehitysmenetelmiä. Niille tyypillisiä asioita ovat menetelmäkohtaisen kehitysprosessin lyhyet toistot, kasvattavuus ja muovautuvuus, asiakkaan läsnäolo koko projektin ajan sekä kehitystä ohjaavat arvot ja periaatteet ja niiden toteutumiseksi noudatettavat käytännöt. Eräs usein sovellettu käytäntö, jatkuva integrointi ja käyttöönotto, ohjaa automatisoimaan koonti- ja käyttöönottoprosessit sekä toteuttamaan niitä jatkuvasti.
Tämä opinnäytetyö tehtiin Metropolia Ammattikorkeakoulun Tietotekniikan koulutusohjelman Bulevardin toimipisteelle. Opinnäytetyön tavoitteena oli luoda sen tilaajalle opetuskäyttöön soveltuva virtuaalikonepohjainen kehitysympäristö, jonka avulla innovaatioprojekteja toteuttavat opiskelijat voivat työskennellä jatkuvan integroinnin ja käyttöönoton periaatteiden mukaisesti. Työn tuloksena syntyi pääosin www-/projektinhallinta- ja versionhallintapalvelimista sekä ryhmäkohtaisista koonti-, sovellus- ja tietokantapalvelimista koostuva kehitysympäristö, jossa tietovarastot ovat Apache Subversion -pohjaisia, pääasialliset koontityökalut ovat Apache Maven sekä Apache Ant, ja integraatiopalvelimena käytetään Jenkins CI:tä.
Suuria työhön liittyviä ongelmia olivat koontiprosessin, mukaan lukien testauksen, automatisointiin liittyvien työkalujen ja aineiston määrä sekä kaupallisessa suurimittaisessa ohjelmistotuotannossa sovellettavan toiminnallisuustason toteuttamiseen tarvittavan ajan suuruus. Siksi työn laajuutta jouduttiin monta kertaa rajaamaan, ja monet ennestään tunnetut tai työtä toteutettaessa esille tulleet kehitystarpeet jouduttiin sivuuttamaan. Kehitysympäristön kehitys jatkuu edelleen tämän opinnäytetyön valmistuttua, ja tämä opinnäytetyö keskittyy kehitysympäristön määrittelyyn, käyttöönottoon ja ylläpitoon liittyviin asioihin antaen paljon ehdotuksia kehitysympäristön jatkokehittämiseksi tulevaisuudessa.
Tämä opinnäytetyö tehtiin Metropolia Ammattikorkeakoulun Tietotekniikan koulutusohjelman Bulevardin toimipisteelle. Opinnäytetyön tavoitteena oli luoda sen tilaajalle opetuskäyttöön soveltuva virtuaalikonepohjainen kehitysympäristö, jonka avulla innovaatioprojekteja toteuttavat opiskelijat voivat työskennellä jatkuvan integroinnin ja käyttöönoton periaatteiden mukaisesti. Työn tuloksena syntyi pääosin www-/projektinhallinta- ja versionhallintapalvelimista sekä ryhmäkohtaisista koonti-, sovellus- ja tietokantapalvelimista koostuva kehitysympäristö, jossa tietovarastot ovat Apache Subversion -pohjaisia, pääasialliset koontityökalut ovat Apache Maven sekä Apache Ant, ja integraatiopalvelimena käytetään Jenkins CI:tä.
Suuria työhön liittyviä ongelmia olivat koontiprosessin, mukaan lukien testauksen, automatisointiin liittyvien työkalujen ja aineiston määrä sekä kaupallisessa suurimittaisessa ohjelmistotuotannossa sovellettavan toiminnallisuustason toteuttamiseen tarvittavan ajan suuruus. Siksi työn laajuutta jouduttiin monta kertaa rajaamaan, ja monet ennestään tunnetut tai työtä toteutettaessa esille tulleet kehitystarpeet jouduttiin sivuuttamaan. Kehitysympäristön kehitys jatkuu edelleen tämän opinnäytetyön valmistuttua, ja tämä opinnäytetyö keskittyy kehitysympäristön määrittelyyn, käyttöönottoon ja ylläpitoon liittyviin asioihin antaen paljon ehdotuksia kehitysympäristön jatkokehittämiseksi tulevaisuudessa.