Komponentteja oliopohjaisesti Heini Holopainen TietoEnator Oyj Public & Healthcare/ dgov
Agenda TE Objectin historiaa ja käyttölaajuus Miksi oma ohjelmistotuotantoprosessi TE Objectin fyysinen rakenne Ohjelmistotuotantoprosessi Ratkaisumallit Uudelleenkäyttö
UML (notation) Historiaa Object-TT (Finance, Forest) Mid./97 Beg./98 End./98 End./99 End./00 End./01 Processes from other divisions Tieto Object v 1.0 Tieto Object v 2.0 Tieto Object v 2.1 Tieto Object v 2.2 TE Object... v 3.0 Experience from OO projects OHTU Core process Component repository Reusable components Web-server for docs etc. (Avancer) Project mgmt Further development Architecture Usability Project management roles estimation Experiences English version Components Quality Assurance RAD Light updates to all books UPM Requirements Analysis Component Paradigm Example Project mgmt Updates to all books
Käyttö Kaikissa uusissa projekteissa soveltaen TE Objectin RAD-soveltamisohje Perinteinen TE Object määrittelykuvaukset TEO:n mukaisesti menetelmän vaihto määrittelyn jälkeen
Mikä TE Object on TE Object on oliokeskeinen ohjelmistotuotantoprosessi Kehitetty/ kehitetään eri liiketoimintaryhmien asiantuntijoiden yhteistyönä Tukee komponenttipohjaista ohjelmistotuotantoa Perustuu UML-notaatioon (Unified Modeling Language) Tieto Repository Tieto Frame
Kehittämisen tavoitteet Yhtenäinen ohjelmistotuotantomalli erityyppisiin sovelluksiin Nykyaikaistetaan sovelluskehitystä Parannetaan projektien ennustettavuutta ja ohjattavuutta Lisätä ohjelmistokehityksen tuottavuutta
Ulkoiset vaatimukset kehittämiselle Teknologia kehittyy hurjaa vauhtia Ohjelmointikielten kehitys Uudelleenkäyttö kustannusten alentaja Ohjelmistot yhä laajempia, monimutkaisempia ja vaativampia
Miksi oliokeskeisyys Jäsennellympi tapa tehdä töitä Käyttäjälähtöisyys Reaalimaailman vastaavuus Jäljitettävyys - ohjelmisto samanrakenteinen reaalimaailman kanssa Olio- ja komponenttiteknologia on yleinen suuntaus (tosiasia) Tekniikan/ välineistön vaatimukset -> uusi teknologia edellyttää
Miksi oliokeskeisyys Komponenttiajattelun edut palvelurajapinnat (riippuvuus vain rajapinnoista) alustoista riippumattomia ratkaisuja yleisosat -> ylläpitokustannusten alentuminen Samankaltaisten osien löytäminen -> uudelleenkäyttö ->tehokkuus, laadukkuus
Menestyksen kolmio Notaatio UML Voit oppia notaation, mutta jos et tiedä miten sitä pitäisi käyttää (prosessi)- luultavasti epäonnistut Prosessi TE Object Työkalu Rose Select Word ABC FC Sinulla voi olla hyvä prosessi, mutta, jos et voi kommunikoida (notaatio) sen avulla - luultavasti epäonnistut Jos et dokumentoi työsi tuloksia (työkalut) - luultavasti epäonnistut Tarvitset kaikki! (Terry Quatrani
Project mgmt Quality Reuse BOOK IV Materiaalit Painettu, HTML, PDF Valmiita lomakkeita, mallipohjia ja joukko erilaisia soveltamisohjeita Deployment Example Testing How (=working instructions) What (=process) BPR Analysis Design Implemen. process modelling object modeling usability user interface database desing Vocabulary Templates BOOK I B BOOK II BOOK III BOOK I A
Ohjelmistotuotantoprosessi Määrittely Liiketoiminnan kehittäminen Uudelleenkäyttö Suunnittelu Sovellus Toteutus Projektinhallinta Laadunvarmistus
Työvaiheet Liiketoiminnan kehittäminen kuvataan tulevan toiminnan kokonaisratkaisu, tavoitetila, tuleva arkkitehtuuri Määrittely kuvataan sovellus käyttäjän näkökulmasta, reaalimaailman käsitteillä ts. määritellään MITÄ järjestelmän pitäisi tehdä ja missä ympäristössä.
Työvaiheet Suunnittelu tuotetaan lopputuloksena riittävä dokumentaatio toteutuksen lähtökohdaksi ts. suunnitellaan MITEN määritykset toteutetaan. Toteutus toteutetaan ja testataan sovellus suunnitteludokumentaation pohjalta.
Paikallinen Alueellinen Keskitetty <<Tietokanta>> Desk Help Lisenssi t <<Tietokanta>> <<GSM>> Kännykkä <<GSM>> Kännykkä Konttorityöasema <<WindowsNT>> HelpDesk <<RS-232>> <<Kannettava>> Tukihenkilön työasema <<TCP/IP 64 Kb>> <<sms>> <<TCP/IP 64 Kb>> <<GSM-data>> HelpDesk SNA Jkylän <<Keskuslaite>> palvelukeskuksen MF Käytäjätiedot Käytöomaisusrekisteri Käyttäjätiedo <<Tietokanta t : Hakija : Tili : Osoite LaskeSaldo LaskeHenkilonSaldo HaeUlkomaanOsite Ohjelmistotuotantoprosessi Business development Analysis Design Construction Implementation Preliminary study Focusing business goals Present state analysis Requirement analysis Description of target state Analysis of system functionality Analysis of user activities Käyttäjä Myynti Use case model Tarjouksen teko uses Varaston tarkistus extends extends Tarjouksen hyväksyntä Alennusten laskenta extends Kuukusilaskutus Laskutus Architecture design Application architecture Development environment description Adjusted deployment diagrams Replication plan IAsiakastiedot Asiakastiedot Designing application functionality ITilaukset Tilaukset Constructing the technical environment Business processes Preliminary architectures <<Unix-palvelin>> Sovelluspalvelin HelpDesk Lisensienhalinta Preliminary use cases and business components Analysis of user interfaces Preliminary screen diagrams Reports Prototype Analysis of business concepts Class model Component model State diagrams Voimassaolo (from HT-bisnes) Henkilo 1 Edunvalvoja (from HT-bisnes) 0..* Osoite 0..1 0..2 (from HT-bisnes) (from HT-bisnes) 0..1 0..2 User interface specification Component and Class specifications Division into components Relations, attributes and states Technical classes derived from the architecture Component interfaces Esitilaus VoimassaOloPäivä Asiakas Tilaus {abstract} AsiakasNumero Hyväksyjä HyväksymisPvm TilausNumero TilausPvm Tuotetilaus MuutosPvm Screen content description Prototype Layouts of reports and printouts 1+ Tilausrivi TilattuMäärä TilausNumero Tilausrivinro ToimitettuMäärä ToimitusPvm Tuote 1+ Tuote TuoteKoodi TuoteKuvaus Constructing the application Implementing user interfaces Implementing Components and classes Development planning Enterprise development plan Impact analysis Cost estimates Benefit analysis Risk analysis OsoiteKotimaassa (from HT-bisnes) Architecture specification <<Käyttöliittymä>> Tilaajan toiminnot <<Palvelin>> Tilaajan palvelut <<Liittymä>> Käyttöomaisuusrekisteri <<Käyttöliittymä>> Help Desk toiminnot <<Palvelin>> Help Desk palvelut <<Liittymä>> Valvontajärjestelmä OsoiteUlkomailla (from HT-bisnes) Interfaces Subsystems Subsystem relations Technical architecture Deployment descriptions Description of object interaction Database design Storage structure of permanent classes Database structure Creation of development database Varasto VarastoKoodi VarastoNimi Constructing the database
Projektihallinta Työnjako ja organisointi perustana perinteinen projektihallinta projektipäällikön tunnettava oliolähestymistapa uusia rooleja Työtavat BPD Testing kasvattava (inkrementaalinen) vähitellen täsmentävä (iteroiva) aikaviipaletekniikkaa soveltava (time boxing) protoileva Analyzing Desingn Implementation
Projektihallinta Sovelluskirja Sovelluskirja on järjestelmästä syntyvä dokumentaatio Sisältöluettelo TE Objectissa Kaikkien dokumenttien tuottamista ei käsitellä TE Objectissa Projektin loppuraportti System functionality Business development Analysis Construction: Design Implementation Construction: Design Implementation Testing Construction: Design Implementation Testing Testing
Paikallinen Alueellinen Keskitetty <<Tietokanta>> Desk Help <<Tietokanta>> Lisenssi t <<GSM>> Kännykkä <<GSM>> Kännykkä <<Unix-palvelin>> Sovelluspalvelin HelpDesk Lisensienhalinta <<WindowsNT>> Konttorityöasema HelpDesk <<RS-232>> <<Kannettava>> Tukihenkilön työasema <<TCP/IP 64 Kb>> <<TCP/IP 64 Kb>> <<sms>> <<GSM-data>> HelpDesk SNA Jkylän <<Keskuslaite>> MF palvelukeskuksen Käytäjätiedot Käytöomaisusrekisteri Käyttäjätiedo <<Tietokanta t : Hakija : Tili : Osoite LaskeSaldo LaskeHenkilonSaldo HaeUlkomaanOsite Prosessi ja laadunvarmistus Business development Analysis Design Construction Implementation 1 Preliminary study Focusing business goals Present state analysis Requirement analysis Description of target state Analysis of system functionality Analysis of user activities Käyttäjä Myynti Use case model Tarjouksen teko uses Varaston tarkistus extends extends Tarjouksen hyväksyntä Alennusten laskenta extends Kuukusilaskutus Laskutus Architecture design Application architecture Development environment description Adjusted deployment diagrams Replication plan IAsiakastiedot Asiakastiedot Designing application functionality 6 ITilaukset Tilaukset Constructing the technical environment Business processes Preliminary architectures Preliminary use cases and business components Analysis of user interfaces Preliminary screen diagrams Reports Prototype Analysis of business concepts Class model Component model State diagrams Voimassaolo (from HT-bisnes) Henkilo (from HT-bisnes) 0..1 0..2 1 Edunvalvoja (from HT-bisnes) 0..* Osoite 0..1 0..2 (from HT-bisnes) 3 4 User interface specification Component and Class specifications Division into components Relations, attributes and states Technical classes derived from the architecture Component interfaces Esitilaus VoimassaOloPäivä Asiakas Tilaus {abstract} AsiakasNumero Hyväksyjä HyväksymisPvm TilausNumero TilausPvm Tuotetilaus MuutosPvm Screen content description Prototype Layouts of reports and printouts 1+ Tilausrivi TilattuMäärä TilausNumero Tilausrivinro ToimitettuMäärä ToimitusPvm Tuote 1+ Tuote TuoteKoodi TuoteKuvaus Constructing the application Implementing user interfaces Implementing Components and classes 9 Development planning Enterprise development plan Impact analysis Cost estimates Benefit analysis Risk analysis 2 OsoiteKotimaassa (from HT-bisnes) Architecture specification <<Käyttöliittymä>> Tilaajan toiminnot <<Palvelin>> Tilaajan palvelut <<Liittymä>> Käyttöomaisuusrekisteri <<Käyttöliittymä>> Help Desk toiminnot <<Palvelin>> Help Desk palvelut <<Liittymä>> Valvontajärjestelmä OsoiteUlkomailla (from HT-bisnes) Interfaces Subsystems Subsystem relations Technical architecture Deployment descriptions Description of object interaction Database design Storage structure of permanent classes Database structure Creation of development database 7 5 8 Varasto VarastoKoodi VarastoNimi Constructing the database 10 11 n Point where quality assurance-related actions take place
Laadunvarmistus Tavoitteena varmistaa tulosten oikeellisuus ja oikea-aikaisuus Seuranta auttaa laatupoikkeamien havaitsemiseen ajoissa -> korjaavat toimenpiteet ajoissa Katselmoinnit jokaisen osaprosessin lopussa tarvittaessa osaprosessin aikana Projektitoiminnan tueksi erillinen toimintaohjeisto -> projektikatselmukset
Paikallinen Alueellinen Keskitetty <<Tietokanta>> Desk Help <<Tietokanta>> Lisenssi t <<GSM>> Kännykkä <<GSM>> Kännykkä <<Unix-palvelin>> Sovelluspalvelin HelpDesk Lisensienhalinta Konttorityöasema <<WindowsNT>> HelpDesk <<RS-232>> <<Kannettava>> Tukihenkilön työasema <<TCP/IP 64 Kb>> <<sms>> <<TCP/IP 64 Kb>> <<GSM-data>> HelpDesk SNA <<Keskuslaite>> JkylänMF palvelukeskuksen Käytäjätiedot Käytöomaisusrekisteri Käyttäjätiedo <<Tietokanta t : Hakija : Tili : Osoite LaskeSaldo LaskeHenkilonSaldo HaeUlkomaanOsite Prosessi ja testaus Business development Preliminary study Focusing business goals Present state analysis Requirement analysis Description of target state Business processes Preliminary architectures Preliminary use cases and business components Development planning Enterprise development plan Impact analysis Cost estimates Benefit analysis Risk analysis n 1 Analysis Analysis of system functionality Analysis of user activities Käyttäjä Myynti Use case model Tarjouksen teko uses Varaston tarkistus extends extends Tarjouksen hyväksyntä Alennusten laskenta extends Kuukusilaskutus Analysis of user interfaces Preliminary screen diagrams Reports Prototype Analysis of business concepts Class model Component model State diagrams Voimassaolo (from HT-bisnes) Henkilo 1 (from HT-bisnes) (from HT-bisnes) 0..1 0..2 OsoiteKotimaassa (from HT-bisnes) Architecture specification <<Käyttöliittymä>> Tilaajan toiminnot <<Palvelin>> Tilaajan palvelut <<Liittymä>> Käyttöomaisuusrekisteri <<Käyttöliittymä>> Help Desk toiminnot <<Palvelin>> Help Desk palvelut <<Liittymä>> Valvontajärjestelmä Point where quality assurance-related actions take place Edunvalvoja (from HT-bisnes) 0..* Osoite 0..1 0..2 Laskutus 2 OsoiteUlkomailla (from HT-bisnes) Interfaces Subsystems Subsystem relations Technical architecture Deployment descriptions 3 Architecture design Application architecture Development environment description Adjusted deployment diagrams Replication plan Database design Storage structure of permanent classes Database structure Creation of development database IAsiakastiedot Asiakastiedot Designing application functionality User interface specification Component and Class specifications Division into components Relations, attributes and states Technical classes derived from the architecture Component interfaces Esitilaus VoimassaOloPäivä Asiakas Tilaus {abstract} AsiakasNumero Hyväksyjä HyväksymisPvm TilausNumero TilausPvm Description of object interaction Tuotetilaus MuutosPvm 1+ Design Screen content description Prototype Layouts of reports and printouts Tilausrivi TilattuMäärä TilausNumero Tilausrivinro ToimitettuMäärä ToimitusPvm Tuote 1+ Tuote TuoteKoodi TuoteKuvaus Varasto VarastoKoodi VarastoNimi Construction 5 ITilaukset Tilaukset 4 6 11 Implementation Constructing the technical environment 7 Constructing the application Implementing user interfaces Implementing Components and classes 8 Constructing the database 9 10 Acceptance testing
The domain of TE-Object Business development Vaatimusten hallinta Describing business goals Analysis of the current state Describing target state model of operation Business development actions Continuous improvement Business requirements Change management Requirement management Requirements identification & capturing Requirements follow-up System requirements Change management Development of the information system Analysis Design Implementation Deployment Application management Supporting information systems
Liiketoiminnan kehittäminen A s I a k a s Tilaus Sopimus Strategiat Visiot Tavoitteiden tarkentaminen Nykytoiminnan ja arkkitehtuurin kuvaaminen Tavoitteiden asettaminen Tavoitetoiminnan ja arkitehtuurin kuvaaminen Kehityssuunnitelman laatiminen Kehittämistarpeet Nykytoimintamalli Tavitetoiminnan prosessit ja arkkitehtuuri Kehityssuunnitelma Määrittely Toteutus Suunnittelu Varmistaa kehittämisen tarkoituksenmukaisuus Tukee päätöksentekoa Usein varsinaisia tietojärjestelmäprojekteja edeltävä oma projektinsa
Määrittely Käyttötapaukset kuvaavat käyttäjän ja järjestelmän vuorovaikutusta Liiketoiminnan luokkamalli attribuutit, vastuut Käyttötapauksia ja luokkamallia tehdään rinnakkain ITuotehallinta (from Liittymat) Myyjä TeeSopimus <<extend>> VahvistaSopimus MuutaSopim uksen tietoja
Määrittely Karkeantason näyttökuvat ja näyttökaavio Kohdealueen arkkitehtuurivaatimukset, arkkitehtuurinmäärittely Alustavat liiketoimintakomponentit ja rajapinnat Kuulumisaika Ajoneuvo Alkupvm Loppupvm Eraisyys KausiveronVaihtopvm +RekisteritunnuksenAjoneuvot MuuMaa Valmistenumero 1..* 1..* VerollisuudenAlkupvm +AjoneuvonRekisteritunnus VerollisuudenLoppupvm Rekisteritunnus Rekisterilaji Rekisteritunnus Laskutus Asiakaspalvelu Tilaukset Ostoreskontra KuormaAuto 0..* Vetolaitteet Alkupvm Kaytto Lisalaite Loppupvm
Suunnittelu Keskitytään kokonaisuuteen Luokkamalli täsmennetään metodit, tekniset luokat Käyttöliittymä suunnitellaan valmiiksi Tekninen ja sovellusarkkitehtuuri Fyysiset komponentit SessionBean (from ejb) SessionBeanBaseAC SessionBeanBaseAC() handleexception() SopimusBusinessIF lis aa() hyvaksy() hae() paivita() : ISopimusPaivity EJBObject (from ejb) : clssopsopimus PaivitaSopimus(udtSOPSopimusP, udtsopliitesopimusp) Hyvaksy( ) : ITuotehallinta HaeTuotteenTuoteEhtosisallot( ) OnHanke( ) OnOsapuoliYhteys( ) AsetaTila(Variant) Sopimus Ses sionbean Remote SopimusSession
Arkkitehtuuri yleisesti Mistä osista jokin tietojärjestelmä tai järjestelmäkokonaisuus on muodostettu Miten se on rakennettu Mitä tekniikoita tai teknologioita käytetään Eri osien väliset yhteydet ja suhteet Mikä on laitteistokokoonpano ja hajautusratkaisu
Arkkitehtuurin lähtökohdat Tietohallinnon strategiat Liiketoimintamallit Teknologian tarjoamat mahdollisuudet ja realiteetit Käytettävissä olevat resurssit
Arkkitehtuurin lähtökohdat Liiketoiminnan ja sen prosessien kehittämistarpeet Järjestelmälle asetetut vaatimukset Arkkitehtuurin nykytila Liiketoiminta Hyödyntä minen Varusohjelmistot Tietoyhteydet Uudelleen käyttö Tietovarastot Laitteistot Tekninen arkkitehtuuri Nykyiset järjestelmät Hajautus Strategiat Tietojärjestelmäarkkitehtuuri Vaatimukset Nykytila Teknologiat Tavoitetil a Ohjelmisto kehitys
Arkkitehtuurin johtaminen Tietohal. strategia Looginen arkkitehtuuri Tietojärjestelmäarkkitehtuuri Tekninen arkkitehtuuri Tietoliikennearkkitehtuuri Liiketoiminnan asettamat tarpeet Teknologian mahdollisuudet Hajautus Varusohjelmistot Laitteistoarkkitehtuuri Tietovarannot Tuotantokäyttöympäristö Sovellusarkkitehtuuri Uudelleenkäyttö Vuorovaikutus Ohjelmistokehitysympäristö Liiketoimintaprosessien uudelleensuunnittelu
Arkkitehtuuri määrittelyssä Liittymien kuvaukset Alijärjestelmät <<Interface>> IReskomtra IR e s ko m tra HaeTuotteenSaldo() HaeTuotteenSaldo() Alijärjestelmien/liittymien vuorovaikutus Tekninen arkkitehtuuri Alijärjestelmien hajautus Asiakaspalvelu Laskutus Ostoreskontra Tilaukset
Arkkitehtuuri määrittelyssä Uudelleenkäyttö Pilotointi Ohjeet ja standardit <<Käyttöliittymä>> Tilaajan toiminnot <<Käyttöliittymä>> Help Desk toiminnot <<Palvelin>> Tilaajan palvelut <<Palvelin>> Help Desk palvelut <<Liittymä>> Käyttöomaisuusrekisteri <<Liittymä>> Valvontajärjestelm ä
Arkkitehtuuri suunnittelussa Sovellusarkkitehtuurin kuvaus Fyysinen komponentti-/ alijärjestelmäjako Kehitysaikaisen ympäristön kuvaus Ajonaikaisen ympäristön kuvaus Replikoinnin suunnittelu Suunnittelumallit Sovelluskehykset <<Linux>> Käyttäjätie to järjestemä <<U n i x> > L i se n ssi ti e to järjestelmä <<IE/NS 3.0-taso>> Asiakkaan työasema <<HT TP>> <<Windows NT 4.0-server>> <<T uxedo>> He l p Desk-p <<T uxedo>> <<Windows NT He l p Desk-t yö a se m a <<RM I>> <<T uxedo>> <<Unix>> Heniklöstotie to järjestelmä <<OS/390>> Toiminnanohjaus järjestelmä <<SM TP>> <<SMS>> Sä hköpo sti <<DB>> Hel pdesk <<GSM>> Puhelin
Ratkaisumallit TE Objectissa selitetty ainoastaan rakenne ja tarkoitus Arkkitehtuurin puolella käytetään laajasti MVC, Facade, Command Liiketoiminnan puolella alkuaskeleet Sopimuksen käsittely Työlista.. jne Tulossa erillinen ohje Tapahtuma suorita() Jos ei haluta suodatella mitenkään, niin liitetään tämä oletussuodatin. 1..n Suodatin suorita() Out 0..1 0..n In Sääntö Ja (and) {Liitetyllä Suodattimella ei saa olla In- tai Out-sääntöjä eikä AND-suhteita} 0..1 voidaan liittää muita suodattimia jotka halutaan liittää AND-operaattorilla. suorita()
Uudelleenkäyttö Projektien sisäinen uudelleenkäyttö uudelleenkäyttöä tukeva ohjelmistotuotantoprosessi uudelleenkäyttöä tukeva projektihallinta ja organisaatio Domain component Reuse Pattern Reuse Artefact Reuse Framework Reuse Component Reuse Template Reuse Inheritance Reuse Code Reuse Scott Ambler, 1998
Uudelleenkäyttö Organisaatiotasoinen uudelleenkäyttö uudelleenkäyttöprosessi ja organisaatio hierarkinen kohdealueanalyysi repository-prosessi ja repository ohjelmistotuotantoprosessin pitää olla kunnossa
More time for Users Heini Holopainen Public & Healthcare dgov heini.holopainen@tietoenator.com