aha-projekti asiakashallinnan tietojärjestelmä

29
AHA-Projekti Asiakashallinnan tietojärjestelmä

Upload: tangia

Post on 13-Jan-2016

36 views

Category:

Documents


2 download

DESCRIPTION

AHA-Projekti Asiakashallinnan tietojärjestelmä. Projektiryhmä. Vuorela Maaret, projektipäällikkö Remes Hanne, suunnittelupäällikkö Rissa Timo, ohjelmistopäällikkö Saloila Heidi, laatu- ja prosessipäällikkö Tammelin Jarno, tukipalvelupäällikkö. Sisällysluettelo. Sovelluksen esittely - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: AHA-Projekti Asiakashallinnan tietojärjestelmä

AHA-Projekti

Asiakashallinnan tietojärjestelmä

Page 2: AHA-Projekti Asiakashallinnan tietojärjestelmä

Projektiryhmä

Vuorela Maaret, projektipäällikkö Remes Hanne, suunnittelupäällikkö Rissa Timo, ohjelmistopäällikkö Saloila Heidi, laatu- ja prosessipäällikkö Tammelin Jarno, tukipalvelupäällikkö

Page 3: AHA-Projekti Asiakashallinnan tietojärjestelmä

Sisällysluettelo

Sovelluksen esittely Sovelluksen rakenne ja koodaus Asiakkaan käsittelyn testaus Toimipisteen lisäyksen suunnittelu

Käyttöliittymä, luokkakaavio, relaatiokaavio, käyttötapauskuvaus

Paketointi Toimipisteen lisäyksen testaus Projektiryhmän kokemuksia

Page 4: AHA-Projekti Asiakashallinnan tietojärjestelmä

Sovelluksen esitys

Verkkokäyttöliittymä IE & vastaavat Sovelluksen toiminnan esitys

Aloitussivun sisältö Lisäys Haku Muutos

Page 5: AHA-Projekti Asiakashallinnan tietojärjestelmä

Järjestelmän rakenne

Web -pohjainen järjestelmä Käytetään Front Controller –

suunnittelumallia (Desing Pattern) Java Servlet toimii järjestelmän ohjaavana

kontrollerina MVC Model 2 –mallin mukainen 3 –tasoarkkitehtuuri

Page 6: AHA-Projekti Asiakashallinnan tietojärjestelmä

MVC Model 2 - malli

Lähde: Käyttöliittymän totetuttaminen

Jukka Juslin / luento

Page 7: AHA-Projekti Asiakashallinnan tietojärjestelmä

Paketit

3 –tasoarkkitehtuurin mukainen pakettirakenne

Asiakas

Yhteyshenkilo

Osoite

MaksuehtoAsiakasryhma

AsiakasOhjaus

LIIKETOIMINTA

Kontrolleri

SERVLET TIETOKANTA

TietokantaOhjaus

Tietokanta

Tarkistus

VirheAsiakas

VirheOsoite

VirheYh

TARKISTUS

Maksuhairio

ToimitusehtoToimitustapa

ToimipisteVirheToimipiste

Page 8: AHA-Projekti Asiakashallinnan tietojärjestelmä

Lähdekoodin esittely

Lähdekoodi on tehty helppoa ylläpitoa silmällä pitäen

Nimeämissääntöjen mukainen Runsas kommentointi helpottamaan ylläpitoa

ja uudelleenkäytettävyyttä Runsas tulostus lokiin seurantaa varten

Page 9: AHA-Projekti Asiakashallinnan tietojärjestelmä

Esimerkkejä lähdekoodista – Nimeämissäännöt

/***Metodi, joka käsittelee kaikki GET-tyyppiset pyynnöt. * Metodi käyttää seuraavia parametrejä:* create Parametrillä tunnistetaan luodaanko uutta asiakasta.* customer Asiakasnumero.* action Käyttöliittymässä olevia toimintoja ohjaava parametri.* kirjautuminen Ohjelmiston kirjautumisen parametri. Ei käytössä tällä hetkellä.* muokkaa Toimii muokkauksen tunnistavana parametrinä, jos käyttöliittymässä valittu tietojen muokkaus.* paluu Toimii parametrinä jolla tunnistetaan palataanko käyttöliittymässä edelliseen sivuun.**@param request*@param response*@throws ServletException*@throws IOException*/ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

HttpSession session = request.getSession(); System.out.println("Kontrolleri.doGet() - toiminta aloitetaan");

Page 10: AHA-Projekti Asiakashallinnan tietojärjestelmä

Esimerkkejä lähdekoodista - kommentointi

// suoritaPaivitys-metodia varten määritetään paluuarvo int tarkistus = 1; // Default 1 = ok. Jos arvo on jotain muuta niin virheellinen tarkistus int lisatytRivit = 0; // Käsiteteltyjen rivien määrä konsoliin tulostusta varten

//tehdään lisäys tietokantaan try { kanta.avaa(); kanta.aloitaTransaktio(); // Tehdään lisäykset tietokantaan. Jos kaikki lisäykset onnistuvat, tehdään commit(), muuten rollback(). if(tarkistus == 1) { // Aloitetaan tietojen lisäys // Lisätään asiakkaan käyntiosoite (pakollinen) tarkistus = kanta.suoritaPaivitys(sqlAsk); if(tarkistus == 1) { lisatytRivit++; // Lisää as.osoiteen lisäyksen System.out.println("TietokantaOhjaus.luoAsiakas() - lisätty asiakkaan käyntiosoite. Lisätyt rivit

yhteensä: " +lisatytRivit); // Lisätään asiakkaan postiosoite vain jos se on olemassa if (asPostiosoite != null) { // Postiosoite on tarkistus = kanta.suoritaPaivitys(sqlAsp); } else if (asPostiosoite == null) { // Postiosoitetta ei ole System.out.println("TietokantaOhjaus.luoAsiakas() - asiakkaan postiosoitetta ei

lisätty, " + "koska sitä ei ole syötetty. Lisätyt rivit yhteensä: "

+lisatytRivit); }

Page 11: AHA-Projekti Asiakashallinnan tietojärjestelmä

Esimerkkejä lähdekoodista - tulostus lokiin

// Kysely, joka palauttaa lisätyn asiakkaan id:n tietokannasta. sqlLisattyId = "SELECT max(asNro) as numero FROM SYSSI9.asiakas";

//tulostetaan insert-lauseet seurantaa varten System.out.println("TietokantaOhjaus.luoAsiakas() - as-kayntiosoite: " + sqlAsk); System.out.println("TietokantaOhjaus.luoAsiakas() - as-postiosoite: " + sqlAsp); System.out.println("TietokantaOhjaus.luoAsiakas() - yh-osoite-sql: " + sqlYhOsoite); System.out.println("TietokantaOhjaus.luoAsiakas() - yhteyshenkilö -insert: " + sqlYh); System.out.println("TietokantaOhjaus.luoAsiakas() - as -insert: " + sqlAs);

// suoritaPaivitys-metodia varten määritetään paluuarvo int tarkistus = 1; // Default 1 = ok. Jos arvo on jotain muuta niin virheellinen tarkistus int lisatytRivit = 0; // Käsiteteltyjen rivien määrä konsoliin tulostusta varten

Page 12: AHA-Projekti Asiakashallinnan tietojärjestelmä

Asiakkaan testaus

Asiakkaan haku, lisäys ja muokkaus testattu omina lomakkeinaan

Testitapauksia yhteensä on noin 60. Testit ajettu sitä varten luodulla

testitietokannalla Näin testit voidaan toteuttaa uudestaan

samalla tietokannalla Testausta suoritettiin useaan otteeseen

ohjelman eri kehitysvaiheissa

Page 13: AHA-Projekti Asiakashallinnan tietojärjestelmä

Asiakkaan testaus

Esimerkkejä testitapauksista:

Page 14: AHA-Projekti Asiakashallinnan tietojärjestelmä

Asiakkaan testaus

SQL-testitietokanta, skriptit tallessa jotta kanta voidaan luoda uudestaan mikäli testi halutaan toistaa:

Page 15: AHA-Projekti Asiakashallinnan tietojärjestelmä

Toimipisteen suunnittelu

Suunnittelukuvasto on jatkoa aikaisemmalle AHA-projektissa käytetylle suunnittelukuvastolle.

Toimipisteen suunnittelukuvastossa kuvataan toimipisteen lisäämisen suunnittelu.

Page 16: AHA-Projekti Asiakashallinnan tietojärjestelmä

Toimipisteen suunnittelu Suunnittelukuvaston sisällys 1 Johdanto 2 Käyttöliittymät 2.1 Etusivun näkymä

2.2 Asiakkaan ylläpidon näkymä 2.3 Toimipisteen lisäyksen näkymä

3 Luokkamalli 4 Relaatiotietokanta

4.1 Relaatiokaavat 4.2 Tietokannan luontilauseet 4.3 Pääavainten automaattinen kasvatus

5 Yhteistyökaaviot 5.1 Toimipisteen lisäyksen yhteistyökaaviot

6 Viestiyhteyskaaviot 6.1 Toimipisteen lisäyksen viestiyhteyskaaviot

7 Paketit 7.1 Servlet-paketti 7.2 Liiketoiminta-paketti 7.3 Tarkistus-paketti 7.4 Tietokanta-paketti

Page 17: AHA-Projekti Asiakashallinnan tietojärjestelmä

Toimipisteen suunnittelu

Käyttöliittymät Toimipisteen lisäys suoritetaan asiakkaan ylläpito-

näkymän kautta. Toimipisteen lisäykseen pääsee kahdella eri tavalla:

1. suoritetaan asiakkaan haku ja valitaan haluttu asiakas, jolloin järjestelmä avaa haetun asiakkaan tiedot näytölle

2. lisätään uusi asiakas ja tallennetaan asiakkaan tiedot, jolloin järjestelmä avaa lisätyn asiakkaan tiedot näytölle.

Avautuvassa lomakkeessa on valittavissa painike ”Lisää toimipiste”, josta päästään toimipisteen lisäys –näyttöön.

Page 18: AHA-Projekti Asiakashallinnan tietojärjestelmä

navi.jsp toimipiste.jsp

Rakenne

Page 19: AHA-Projekti Asiakashallinnan tietojärjestelmä

-arKoodi : int-arNimi : String

Asiakasryhma-meKoodi : int-meTeksti : String-mePaivat : int

Maksuehto

-yhEtuNimi : String-yhSukunimi : String-yhNimike : String-yhPuhelin : String-yhEmail : String

Yhteyshenkilo -asNro : int-asNimi : String-asAlennusprosentti : double-asAakostusperuste : String-asLuottoraja : int-asLisatiedoty : String-asPoistettava : String-asPuhelin : String-asFaxi : String

Asiakas

-osOsoite : String-osPostinumero : String-osPostitoimipaikka : String-osMaa : String

Osoite

1

0..*

1

0..*

11

1

0..1

1

1..2

Kontrolleri

-asNimi : Boolean-asAlennusprosentti : Boolean-asAakkostusperuste : Boolean-asLuottoraja : Boolean-asLisatiedot : Boolean-asOk : Boolean-asPuhelin : Boolean

VirheAsiakas

-osOsoite : Boolean-osPostinumero : Boolean-osPostitoimipaikka : Boolean-osmaa : Boolean-osOk : Boolean

VirheOsoite

-yhEtunimi : Boolean-yhSukunimi : Boolean-yhPuhelin : Boolean-yhEmail : Boolean-yhNimike : Boolean-yhOk : Boolean

VirheYh

AsiakasOhjaus TietokantaOhjaus

Tietokanta

Tarkistus

-tpNimi : Boolean-tpYtunnus : Boolean-tpAakkostusperuste : Boolean-tpPuhelin : Boolean-tpLisatiedot : Boolean-tpOk : Boolean

VirheToimipiste

-tpNro : int-tpNimi : String-tpYtunnus : String-tpAlvTunnus : String-tpAakkostusperuste : String-tpPuhelin : String-tpFaxi : String-tpLisatiedot : String-tpViimeinenosto : Date-tpViimOstoSumma : Double-tpMyynti : int-tpPoistettava : String

Toimipiste

-teKoodi : int-teTeksti : String

Toimitusehto

-ttKoodi : int-ttTeksti : String

Toimitustapa

-mhKoodi : int-mhTeksti : String-mhLuottokelpoituus : int

Maksuhairio

1

1

0..*1

0..*

1

0..*

1

1

1..2

Luokkakaavio

Page 20: AHA-Projekti Asiakashallinnan tietojärjestelmä

RelaatiokaavioAsiakasryhma

arKoodi (PK)arNimi

Maksuehto

meKoodi (PK)meTekstimePaivat

Yhteyshenkilo

yhId (PK)yhEtunimiyhSukunimiYhPuhelinyhEmailyhNimikeyhOsoite (FK)

Asiakas

asNro (PK)asNimiasAakkostusperusteasAlennusprosenttiasLisatiedotasLuottorajaasPoistettavaasPuhelinasFaxiasAsiakasryhma(FK)asMaksuehto (FK)asYhteyshenkilo (FK)asKayntiosoite (FK)asPostiosoite (FK)

Osoite

osoiteId (PK)osOsoiteosPostinumeroosPostitoimipaikkaosMaa

1 *

1 *

1

1

1 0..1

1

1..2

Toimipiste

tpNro (PK)tpNimitpYtunnustpAlvTunnustpAakkostusperustetpPuhelintpFaxitpLisatiedottpViimeinenOstotpViimOstoSummatpMyyntitpPoistettavatpAsiakas(FK)tpYhteyshenkilo(FK)tpToimitusosoite(FK)tpLaskutusosoite(FK)

Toimitustapa

ttKoodi (PK)ttTekstiToimitusehto

teKoodi (PK)teTeksti

Maksuhairio

mhKoodi (PK)mhTekstimhLuottokelpoisuus

1*

1*

1 *

1

11

1..2

1

*

Page 21: AHA-Projekti Asiakashallinnan tietojärjestelmä

Toimipisteen lisäys

Esiehdot: Halutaan lisätä uusi toimipiste.

1. Järjestelmä avaa toimipisteen lisäys-näytön.

2. Toimija syöttää toimipisteen tiedot järjestelmään.

3. Toimija varmistaa, että tiedot ovat oikein ja tallentaa ne.

4. Järjestelmä tarkistaa ja tallentaa tiedot.

Page 22: AHA-Projekti Asiakashallinnan tietojärjestelmä

Toimipisteen lisäys

2) haeTpAsiakas(int asiakasnumero) 3) haeTpAsiakas(int asiakasnumero)

4) haeToimitusehdot() 5) haeToimitusehdot()

7) haeToimitustavat()

;AsiakasOhjaus :TietokantaOhjaus:Kontrolleri

asiakas.jsp

2) Asiakas asiakas 3) Asiakas asiakas

5) ArrayList <Toimitusehto>

7) ArrayList <Toimitustapa>

4) ArrayList <Toimitusehto>

6) ArrayList <Toimitustapa>

1) doGet(int asiakasnumero)

toimipiste.jsp

6) haeToimitustavat()

Asiakas asiakasArrayList <Toimitusehto>ArrayList <Toimitustapa>Maksuhairio maksuhairio

Toimija painaa "Lisää toimipiste"-painiketta asiakas.jsp:ssä

8) haeMaksuhairio() 9) haeMaksuhairio()

9) Maksuhairio maksuhairio8) Maksuhairio maksuhairio

Page 23: AHA-Projekti Asiakashallinnan tietojärjestelmä

Toimipisteen lisäys

haeTpAsiakas(int asiakasnumero)

return Asiakas asiakas

Tietokanta

tietokantaOhjaus.haeTpAsiakas(int asiakasnumero)

return Asiakas asiakas

KontrolleriAsiakasohjausasiakas.jsp toimipiste.jsp

doGet...

aktivoi

haeToimitusehdot()

tietokantaOhjaus.haeToimitusehdot

return ArrayList <Toimitusehto>

haeToimitustavat()

return ArrayList <Toimitusehto>

tietokantaOhjaus.haeToimitustavat()

return Arraylist <Toimitustapa>

return Arraylist <Toimitustapa>

haeMaksuhairio()

tietokantaOhjaus.haeMaksuhairio()

return Maksuhairio maksuhairio

return Maksuhairio maksuhairio

Kontrolleri aktivoi toimipiste.jspsivun ja välittää sille asiakas- ja maksuhairio-oliot sekäkaksi ArrayList-oliota, jotka sisältävätToimitusehto- ja Toimitustapa-olioita.

haeSuurinToimipistenumero()

return int tpNro

haeSuurinToimipistenumero()

return int tpNro

Page 24: AHA-Projekti Asiakashallinnan tietojärjestelmä

Toimipisteen lisäys

Toimipiste.jsp

1) doPost(...)

2) luoToimipiste(Toimipiste toimipiste)

3) luoToimipiste(Toimipiste toimipiste)

:Kontrolleri ;AsiakasOhjaus :TietokantaOhjausToimipiste toimipisteToimipiste toimipiste

Toimipiste toimipiste

Page 25: AHA-Projekti Asiakashallinnan tietojärjestelmä

Toimipisteen testaus

Toimipisteen käsittelylle on luotu vastaavia testitapauksia kuin asiakkaan tapauksille

Testejä ei kuitenkaan ole ajettu koska toimipisteen käsittelyä ei ole toteuttu toimivaksi ollenkaan.

Page 26: AHA-Projekti Asiakashallinnan tietojärjestelmä

Toimipisteen testaus

Toimipisteen testauksen testitapaus:

Page 27: AHA-Projekti Asiakashallinnan tietojärjestelmä

Toimipisteen testaus

Toimipisteen testaukselle on myös tehty testitietokanta.

Page 28: AHA-Projekti Asiakashallinnan tietojärjestelmä

Kokemukset ja ongelmat

Suurimman ongelman muodosti ohjelmointiympäristöt Eclipse, Lomboz ja Apache

Ympäristöjä ei oltu asennettu valmiiksi Työaikaa kului käyttöönottoon ja opetteluun

Tästä kuitenkin selviydyttiin kun ohjelmat lopulta saatiin asennettua usean yrityksen jälkeen.

Käytetyn JSP-tekniikan riittämätön tuntemus aiheutti ongelmia.

Projektiryhmä on saanut yhdessä tuntea onnistumisen tunteen ja kokee valmiiden tulosten katselun varsin palkitsevana.

Projektiryhmällä on saanut tilaisuuden toimia projektiorganisaatiossa ja kokea, miten yhteistyö organisaatioissa toimii.

Page 29: AHA-Projekti Asiakashallinnan tietojärjestelmä

LSD kiittää ja toivottaa hyvää kesää