Helia Ohjelmointitaito 14.3.2005 Tuomas Kaipainen Mermit Business Applications Oy
Esityksen sisältö Mermit yrityksenä Perustiedot Toimintamalli Mermit työpaikkana ohjelmistoinsinöörille Esimerkkiprojekti Kysymyksiä 2
Mermit Business Applications Oy Espoossa toimiva ohjelmistoinsinööritoimisto Perustettu 1999 Noin 20 työntekijää 75% Ohjelmistonsuunnittelijoita Myynti, markkinointi, taloushallinto Keski-ikä alle 30v, useimmat aloittaneet opiskeluaikana 3
Mermitin toiminta-alueet Asiantuntijapalvelut ja konsultointi Ulkoistettu tuotekehitys Yritysten mobiilit ratkaisut ja viestien välitys Mermit MISP tuoteperhe 4
Mermit Asiantuntijapalvelut Asiantuntijapalveluiden osa-alueet Spesifikaatiot ja vaatimustenhallinta (UML) Ohjelmistojen kehittäminen (Java, C++, C#) Yritysjärjestelmien integrointi Ohjelmistoprosessit, työkalut ja toimintatavat 5
Ohjelmistosuunnittelija Mermitillä Vahva pohja oliomallinnuksessa ja olioohjelmoinnissa Moduulien toteutus ja testaus Moduulien suunnittelu Arkkitehtuuri, integraatio Vaatimustenhallinta Ohjelmistoprosessien kehitys 6
Ohjelmistosuunnittelija Mermitillä Mahdollisuus sijoittua tuotekehitykseen tai asiakasprojekteihin Tyypillinen asiakasprojekti: 5-10 henkeä, 3-6kk Java2 Enterprise Edition (J2EE), relaatiokanta Sisältää integraatiota muihin järjestelmiin 7
Tyypillinen J2EE-järjestelmä Esityslogiikka Liiketoimintalogiikka Tietokanta Selain J2EE-sovelluspalvelin Tietokantapalvelin 8
Esimerkkiprojekti Tarjouspyyntö Kaupan alan asiakas haluaa siirtää olemassaolevaa liiketoimintaansa Internetiin perustamalla verkkokaupan Tarjous Yritys vastaa tarjouspyyntöön tarjouksellaan, jossa se esittelee ratkaisumallin ja kustannusarvion Tarjouskilpailu voitetaan ja projekti pääsee alkuun 9
Vaatimustenhallinta Vaatimusmäärittely Yhdessä asiakkaan kanssa käydään läpi järjestelmään kohdistuvat vaatimukset: Mitä järjestelmän tulee tehdä ja mitkä ovat sen laatuvaatimukset? Järjestelmän toiminnallisuus kirjataan tyypillisesti Käyttötapauksiksi, jotka kuvaavat järjestelmän toimintoja käyttäjän näkökulmasta Esimerkkivaatimus: Asiakkaan tulee verkkokaupassa asioidessaan voida kerätä haluamiaan tuotteita ostoskoriin. 10
Vaatimustenhallinta 11
Verkkokauppa - Arkkitehtuuri Servlet-palvelin (Web) Verkkokauppa web-liittymä EJB-palvelin Verkkokauppa sovelluslogiikka DB Kantaasiakashallinta EIS 12
Verkkokauppa - Ostoskori Ostoskori Asiakas + haeostoskori ( ) : Ostoskori + listaatuotteet ( ) : Iterator 1... + lisäätuote ( [in] t : Tuote ) + poistatuote ( [in] t : Tuote ) + tyhjennä ( ) * «external» TilausJärjestelmä + tilaatuotteet ( [in] tuotteet : Iterator ) Tuote + nimi : String + kuvaus : String + tuotekoodi : String 13
Verkkokauppa Ostoskori Käyttäjä : Actor1 Object1 : Asiakas Object2 : Ostoskori Object3 : «external» Tilaus Järjestelmä 1 : haeostoskori ( ) 2 : listaatuotteet ( ) 3 : tilaatuotteet ( tuotteet ) 14
Ostoskorin testaus Automaattinen yksikkötestaus JUnit public void testostoskori() { try { Ostoskori o = asiakas.haeostoskori(); } catch (Exception e) { fail(e.getmessage()); } } Integraatiotestaus Järjestelmätestaus 15
Integrointi muihin järjestelmiin JDBC Data Source Varastojärjestelmä EJB-palvelin Verkkokauppa, sovelluslogiikka Kanta-asiakasjärjestemä Varastojärjestelmäfacade JDBC Data Source JCA-sovitin Verkkokaupan tietokanta JMS-jono Kantaasiakasfacade 16
Yhteenveto Koodaaja paitsi koodaa myös suunnittelee, testaa ja dokumentoi osaalueensa Satojen luokkien järjestelmässä selkeä arkkitehtuuri, dokumentaatio ja kommunikointi korostuvat Suuri osa työstä on sosiaalista kommunikaatiota, kaikki kuitenkin pohjaa vahvaan tekniseen osaamiseen Olio-ohjelmointikurssi ehkä tärkein töihin valmentava peruskurssi 17
Kysymyksiä? Kiitos!