Komponenttimalli on järjestelmän arkkitehtuurin suunnittelun menetelmä. Kohdejärjestelmän toimintaa ja rakennetta tarkastellaan eri abstraktiotasoilla (1-3). Kyseessä on järjestelmän pilkkominen rakenteellinen osiin, komponentteihin, eli dekomponointi (structural decomposition) kehittämisen tueksi. Tässä yhteydessä järjestelmästä ja sen rakenneosista käytetään nimitystä komponentti. Järjestelmä koostuu komponenteista, ja itse järjestelmä on organisaation kokonaisarkkitehtuurin komponentti.
Komponenttimalli kuvaa kohdejärjestelmän loogisen rakenteen eri tarkkuustasoilla (1-3) tarpeen mukaan. Eri tasoilla esitetyt mallit kuvaavat, miten kohdejärjestelmä liittyy ulkoiseen ympäristöönsä, ja mistä toiminnallisista sekä rakenteellisista osista kohdejärjestelmä sisäisesti koostuu.
KM-1. Komponenttimallin avulla kohdejärjestelmän tarkastelu alkaa ylätasolta. Tällöin kuvataan järjestelmän konteksti, eli järjestelmän tehtävä, rooli ja merkitys organisaation liiketoiminnassa.
KM-2. Tarkastelua syvennetään järjestelmän sisäiseen rakenteeseen, jolloin tunnistetaan järjestelmän pääkomponentit eli osajärjestelmät (moduulit).
KM-3. Tarkastelua voidaan tarvittaessa jatkaa järjestelmän pääkomponenttien sisäiseen rakenteeseen, kunkin komponentin osalta erikseen tarpeen mukaan. Kuvaamista voidaan tarkentaa tarkemmillekin tasoille KM-4 jne. samoja kuvauselementtejä käyttäen, mutta käytännössä tasot 1-3 riittävät useimmiten.
Komponenttimallin kuvaustasot: KM-1, KM-2 ja KM-3
Komponettimalli kuvataan käyttäen seuraavia mallinnuselementtejä:
- Järjestelmä – kohdejärjestelmä ja sen osajärjestelmät (oletusvärillä) sekä ulkoiset liittymäjärjestelmät (harmaalla)
- Järjestelmän palvelu – järjestelmien tarjoamat toiminnallisuudet (soikion/ovaalin muotoinen, kulmistaan pyöristetty)
- Toimija – organisaatio, yksikkö, osasto, ryhmä, tiimi tai yksilö (käyttäjä), roolina esim. asiakas (keltainen, tikku-ukko symboli)
- Järjestelmän rajapinta – järjestelmän tarjoama käyttöliittymä (GUI) tai sovellustason app2app rajapinta (API)
Komponenttimallin eri tasot esitetty kuvassa alla.
Komponenttimalli 1-taso (KM-1)
KM-1 kuvaa:
- Kohdejärjestelmän mustana laatikkona (black-box) suhteessa ympäristöönsä.
- Ketkä/mitkä käyttävät järjestelmää, käyttäjäryhmät ja ulkoiset järjestelmät
- Miten järjestelmä kommunikoi muiden järjestelmien kanssa, vuorovaikutukset (tietovirrat), sekä palvelurajapinnat eri järjestelmien välillä, riippuvuudet.
- Ulkoiset liittymäjärjestelmät palveluineen ja rajapintoineen kuvataan harmaalla värillä.
Kyseessä on ns. kokonaisarkkitehtuurin taso, jolloin kiinnostavaa on, mikä on järjestelmän tehtävä, rooli ja merkitys organisaation järjestelmäkokonaisuudessa. Kuvassa alla esitetty komponenttimalli tasolla -1 (KM-1) havainnollistaa seuraavaa: kohdejärjestelmä A tarjoaa käyttöliittymän (A-1) ja sovellusrajapinnan (A-2), ja käyttää ulkoisen järjestelmän palvelua (C-1).
Huom! Järjestelmäpalvelu = järjestelmän ulospäin tarjoama toiminnallisuus (Application Service). Järjestelmäpalveluilla kuvataan mitä toiminnallisuuksia järjestelmät tarjoavat toiminnan tueksi. Järjestelmää kuvaava “laatikko” on lopulta vain toiminnallisuudet toteuttava rakenneosa, jonka nimi saattaa olla niin kryptinen ettei se kerro mikä on järjestelmän käyttötarkoitus, miksi se on toteutettu tai hankittu. Sen sijaan, järjestelmäpalvelut ilmentävät mitä järjestelmillä tehdään, eli miksi ne ovat olemassa.
Komponenttimalli 2-taso (KM-2)
KM-2 kuvaa:
- Järjestelmän sisäisen rakenteen (white-box).
- Järjestelmän pääkomponentit eli moduulit, sekä niiden väliset suhteet ja vastuunjako.
- Mitkä osakomponentit / osajärjestelmät toteuttavat sovelluspalvelut tai -rajapinnat.
- ArchiMate mallinnuksessa yhteystyyppeinä voidaan käyttää paitsi rakenteellisia: palvelee (serving), toteuttaa (realization), koostumus (composition), myös dynaamisia yhteystyyppejä: laukaisu (trigger) ja tietovirta (flow).
- Mitkä osajärjestelmät kommunikoivat ulkoisten järjestelmien tarjoamien rajapintojen kanssa
Kyseessä on ns. ratkaisuarkkitehtuurin taso (solution architecture), jossa selvitetään mikä on kohdejärjestelmän sisäinen looginen rakenne.
Komponenttimalli 3-taso (KM-3)
KM-3 kuvaa:
- Järjestelmän pääkomponenttien sisäisen toiminnan ja rakenteen (alikomponentit) sekä näiden vuorovaikutukset.
Komponenttimalli ja mallinnus
Komponenttimalli on mallinnusnotaatio ja -väline riippumaton menetelmä. Komponenttimalli voidaan mallintaa esim. UML- ja/tai ArchiMate-notaatioilla. Tässä yhteydessä esitellään kuitenkin Komponenttimallin ArchiMate -mukainen mallinnustapa, sillä ArchiMate on monipuolisin ja ilmaisuvoimaisin kokonaisarkkitehtuurin mallinnusnotaatio, joka on tuettu useissa eri välineissä (kuten Sparx EA, Archi).
KM-1
Komponenttimallin ArchiMate -versiossa järjestelmiä ja osajärjestelmiä, eli rakenneosia, mallinnetaan Application Component -elementillä. Järjestelmien tarjoamia palveluita mallinnetaan Application Service -elementillä. Kohdejärjestelmä mallinetaan oletusvärillä (turkoosi), ja ulkoisia järjestelmiä ja niiden tarjoamia palveluita (ja rajapintoja) mallinnetaan harmaalla.
Kohdejärjestelmän (A) toimintaympäristö eli konteksti. Kohdejärjestelmä on ns. “musta-laatikko”, sen sisältörakenne ei ole kiinnostavaa tällä tarkastelutasolla. Kiinnostavaa on kohdejärjestelmän suhde ympäristöönsä, sen tehtävät, rooli ja merkitys.
KM-2
Kohdejärjestelmän (A, edellisessä kuvassa KM-1) sisäinen looginen rakenne. Kiinnostuksen kohteena on miten kohdejärjestelmä rakentuu sisäisesti: mistä osista se koostuu. Samalla voidaan kuvata mitkä osajärjestelmät varsinaisesti tarjoavat ja käyttävät mitäkin rajapintoja.
Rajapintoja on kahdenlaisia: 1) tarjottavia rajapintoja (provided interfaces) ja 2) tarvittavia rajapintoja (required interfaces). Edelliset ovat kohdejärjestelmän tarjoamia, jälkimmäiset ovat ulkoisten järjestelmien tarjoamia. Rajapinnat vastaavat ylätason, KM-1 -tason järjestelmäpalveluita. Järjestelmäpalvelu ja järjestelmärajapinta ovat saman kolikon eri puolia: järjeselmäpalvelu ilmentää toimintaa, jota järjestelmä tarjoaa ulospäin. Järjestelmärajapinta on konkreettinen järjestelmän rakenneosa, jonka kautta järjestelmäpalveluita käytännössä (teknisesti) tarjotaan.
KM-3
Kohdejärjestelmän jonkin pääkomponentin eli osajärjestelmän (moduulin) sisäinen looginen rakenne.