Järjestelmäarkkitehtuuri on järjestelmän perusorganisaatio , joka sisältyy sen elementteihin , niiden suhteisiin toisiinsa ja ympäristöön sekä sen suunnittelua ja kehitystä ohjaaviin periaatteisiin [1] :3 .
Arkkitehtuurin käsite on pitkälti subjektiivinen ja sillä on monia ristiriitaisia tulkintoja; parhaimmillaan se heijastaa kehitystiimin kokonaisnäkemystä järjestelmäsuunnittelun tuloksista. [2] :27 Arkkitehtuurilla on monia määritelmiä. Kokoelma määritelmiä, jotka liittyvät pääasiassa ohjelmistoarkkitehtuuriin , on koottu Carnegie Mellon Universityn Software Engineering Instituten verkkosivuille [3] .
Tällä hetkellä on voimakas taipumus pitää arkkitehtoninen ja ei-arkkitehtoninen suunnittelu eri toimintoina; niitä yritetään määritellä erillisiksi käytännöiksi, mutta tämäntyyppiset suunnittelut ovat suurelta osin "kietoutuneet". Arkkitehtoniset päätökset nähdään abstraktimpina, käsitteellisempinä ja globaaleina kuin perinteiset suunnittelupäätökset; ne tähtäävät koko tehtävän onnistumiseen ja järjestelmän korkeimman tason rakenteisiin [4] :272 .
Muut järjestelmäarkkitehtuurin määritelmätRatkaistavien tehtävien monimutkaisuuden lisääntyessä syntyi tarve järjestelmien jäsentämiselle. Ammatinharjoittajat ovat kuitenkin havainneet, että termi "rakenne" ei riitä kuvaamaan kaikkia järjestelmän puolia [4] :272 .
Termin "arkkitehtuuri" järjestelmäsuunnittelussa esitteli Etelä-Kalifornian yliopiston professori Eberhardt Rechtin 1990 - luvun alussa . Hän uskoi, että kun järjestelmät muuttuivat monimutkaisemmiksi, niiden "korkean tason suunnittelu" (tai "konseptuaalinen suunnittelu"), kuten noina vuosina ymmärrettiin, ei riittänyt johtamaan insinöörejä ja suunnittelijoita luomaan tarkkoja ja tehokkaita suunnitelmia. Hän opiskeli rakentamisen arkkitehtonisia periaatteita ymmärtääkseen kuinka monimutkaisia järjestelmiä (esim. rakennukset) luodaan ja suunnitellaan [6] :223 .
Rekhtin selittää termin järjestelmäarkkitehtuuri seuraavasti:
Arkkitehtuurin ydin on strukturointi. Strukturointi voi tarkoittaa muodon muuttamista toiminnaksi , järjestyksen poistamista kaaoksesta tai asiakkaan osittain muodostuneiden ideoiden muuntamista toimivaksi käsitteelliseksi malliksi [6] :223-224 .
Termit "arkkitehtuuri" ja "arkkitehtuurisuunnittelu" ovat olleet käytössä noin 30 vuotta, erityisesti ohjelmistosuunnittelussa ja ongelma-alueilla, kuten raketti ja avaruus [4] :272 .
Arkkitehtuuriperiaatteiden yksityiskohtaisempaa kuvausta varten ISO/IEC/IEEE 42010-2011 -standardi ottaa käyttöön seuraavat käsitteet [7] :2 .
Systems Engineering Body of Knowledge (SEBOK) jakaa arkkitehtuurin loogiseen ja fyysiseen [4] :269 .
Looginen arkkitehtuuri tukee järjestelmän toimintaa koko sen elinkaaren ajan loogisella tasolla. Se koostuu joukosta toisiinsa liittyviä teknisiä käsitteitä ja periaatteita. Looginen arkkitehtuuri on esitetty temaattisia kuvausryhmiä vastaavilla menetelmillä, ja se sisältää vähintään toiminnallisen arkkitehtuurin, käyttäytymisarkkitehtuurin ja ajallisen arkkitehtuurin.
Toimiva arkkitehtuuri . Toiminnallinen arkkitehtuuri on joukko toimintoja ja niiden alitoimintoja, jotka määrittävät muunnokset, jotka järjestelmä suorittaa, kun se täyttää tarkoituksensa.
Käyttäytymisarkkitehtuuri . Käyttäytymisarkkitehtuuri on sopimus toiminnoista ja niiden alitoiminnoista sekä liitännöistä (sisääntuloista ja lähdöistä), jotka määrittävät suoritusjärjestyksen, ohjauksen tai tietovirran ehdot sekä järjestelmävaatimusten täyttämiseen tarvittavan suoritustason. Käyttäytymisarkkitehtuuria voidaan kuvata kokoelmana toisiinsa liittyviä skenaarioita, toimintoja ja/tai toimintatapoja.
Väliaikainen arkkitehtuuri . Temporaalinen arkkitehtuuri on järjestelmän toimintojen luokitus, joka saadaan sen suoritustiheyden mukaan. Temporaalinen arkkitehtuuri sisältää funktioiden synkronisten ja asynkronisten aspektien määrittelyn. Järjestelmän sisällä tapahtuva päätösten seuranta noudattaa samaa ajallista luokittelua [4] :287 .
Fyysisen arkkitehtuurin suunnittelun tavoitteena on luoda fyysinen, konkreettinen ratkaisu, joka on yhdenmukainen loogisen arkkitehtuurin kanssa ja täyttää määritellyt järjestelmävaatimukset.
Kun looginen arkkitehtuuri on määritelty, on tunnistettava ne tietyt fyysiset elementit, jotka tukevat toiminnallisia, käyttäytymis- ja ajallisia ominaisuuksia, sekä järjestelmän odotettavissa olevat ominaisuudet, jotka on johdettu ei-toiminnallisista järjestelmävaatimuksista.
Fyysinen arkkitehtuuri on fyysisten elementtien (järjestelmäelementtien ja fyysisten rajapintojen) systematisointi, joka toteuttaa tuotteelle, palvelulle tai yritykselle suunniteltuja ratkaisuja. Se on suunniteltu täyttämään järjestelmälle ja loogisen arkkitehtuurin elementeille asetetut vaatimukset ja se toteutetaan järjestelmän teknisten elementtien kautta. Järjestelmävaatimukset on hajautettu sekä loogiseen että fyysiseen arkkitehtuuriin. Järjestelmän globaali arkkitehtuuri arvioidaan järjestelmäanalyysin avulla, ja kun kaikki vaatimukset on täytetty, siitä tulee perusta järjestelmän käyttöönotolle [4] :296 .
Arkkitehtuuri voidaan kaapata käyttämällä täydellistä arkkitehtuurikuvausta (AO) (katso kuva). ISO/IEC/IEEE 42010-2011 -standardi määrittelee eron järjestelmän käsitteellisen arkkitehtuurin ja yhden arkkitehtuurin kuvauksen välillä , joka on tietty tuote tai artefakti.
Monimutkaisissa järjestelmissä AO:ta voidaan kehittää paitsi koko järjestelmälle, myös järjestelmän komponenteille. Kaksi erilaista käsitteellistä AO:ta voivat sisältää kuvausryhmiä, jotka vastaavat samaa kuvausmenetelmää. Vaikka näiden kahden kuvausryhmän kuvaamat järjestelmät liittyvät toisiinsa kokonaisuutena ja osittain, tämä ei ole esimerkki useista kuvausryhmistä, jotka vastaavat yhtä menetelmää. Näitä AO:ita pidetään erillisinä, vaikka ne on linkitetty niiden kuvaamien järjestelmien kautta [7] :3 .
Käsitteellinen lähestymistapa määrittelee AO:n sisältöön ja soveltamiseen liittyviä termejä ja käsitteitä. Kuvassa näkyvät pääkäsitteet ja niiden suhteet. Kaikki käsitteet määritellään tietyn järjestelmäarkkitehtuurin ja siihen liittyvän arkkitehtuurin kuvauksen yhteydessä. Ei pidä olettaa, että järjestelmälle on vain yksi arkkitehtuuri tai että tätä arkkitehtuuria edustaa vain yksi arkkitehtuurikuvaus.
Kuvassa laatikot edustavat entiteettiluokkia.
Suorakulmioita yhdistävät viivat edustavat entiteettien välisiä suhteita. Viestintä sisältää kaksi roolia (yksi kumpaankin suuntaan). Jokainen rooli voidaan valinnaisesti nimetä tunnisteella. A:sta B:hen suunnattu rooli [merkittiin] lähemmäksi B:tä ja päinvastoin. Esimerkiksi roolit "järjestelmä" ja "ympäristö" voivat tarkoittaa "järjestelmä" asuu "ympäristössä" ja "ympäristö" vaikuttaa "järjestelmään". Kuvassa roolien ariteetti on 1:1, ellei toisin mainita. Roolilla voi olla useita ariteettia, esimerkiksi roolia "1..*" käytetään merkitsemään monia, kuten yksi-moneen- tai monta yhteen -suhteissa. Rombi (viestintälinjan lopussa) tarkoittaa kokonaisuuden osan suhdetta. Esimerkiksi "kuvausryhmät" ovat osa "arkkitehtonista kuvausta". Tämä merkintä on lainattu UML:stä.
Tarkastellaan yksityiskohtaisemmin jokaista käsitteellisen järjestelmän komponenttia. Tarkastelun kaavion yhteydessä järjestelmä ulottuu yksittäisiin ohjelmistosovelluksiin, järjestelmiin perinteisessä mielessä, osajärjestelmiin, järjestelmäjärjestelmiin, tuotteisiin, tuoteperheisiin, organisaatioihin kokonaisuutena ja muihin kiinnostaviin ryhmiin.
Järjestelmä elää jossain ympäristössä. Tietyn järjestelmän ympäristö voi vaikuttaa tähän järjestelmään. Sen ympäristö eli konteksti määrittelee ympäristön ja olosuhteet kehitykselle, toiminnalle, poliittisille ja muille vaikutuksille tiettyyn järjestelmään. Tällainen ympäristö voi sisältää muita järjestelmiä, jotka ovat vuorovaikutuksessa kohdejärjestelmän kanssa joko suoraan rajapintojen kautta tai epäsuorasti muilla tavoilla. Tällainen ympäristö määrittelee rajat, jotka määrittelevät kohdejärjestelmän aiheen suhteessa muihin järjestelmiin.
Jokaisessa järjestelmässä on yksi tai useampi sidosryhmä . Jokainen sidosryhmä yleensä osallistuu järjestelmään tai on kiinnostunut järjestelmästä. Mielenkiintoihin kuuluu sellaisten järjestelmän näkökohtien huomioon ottaminen, kuten suorituskyky, luotettavuus, turvallisuus, jakelu ja kehityskyky.
Mikä tahansa järjestelmä on olemassa yhden tai useamman tehtävän toteuttamiseksi ympäristössään.
Käsitteellisessä lähestymistavassa arkkitehtoninen kuvaus on organisoitu yhdeksi tai useammaksi arkkitehtuurin kuvausryhmäksi.
Arkkitehtonisessa kuvauksessa valitaan yksi tai useampi sopiva kuvausmenetelmä käytettäväksi. Kuvausmenetelmien valinta perustuu yleensä niiden osapuolten näkökohtiin ja etuihin, joille AO on osoitettu. Kuvausmenetelmän määrittely voi tapahtua yhdessä AO:n kanssa tai se voidaan määritellä erikseen. AO:sta erikseen määriteltyä kuvausmenetelmää kutsutaan kirjaston kuvausmenetelmäksi.
Kuvausryhmä voi koostua yhdestä tai useammasta arkkitehtonisesta kuvauksesta. Jokainen tällainen arkkitehtoninen kuvaus kehitetään käyttämällä sille sopivia vakiintuneita arkkitehtonisia kuvausmenetelmiä. Arkkitehtoninen kuvaus voidaan sisällyttää useampaan kuin yhteen kuvausryhmään [7] :4-6 .
Kuvausryhmiä on kolmenlaisia: toiminnallinen, looginen ja fyysinen. Jokaisen ryhmän on tarkoitus kuvata omia näkökulmiaan ja vastaavaa monimutkaisuustasoaan [6] :224 .
Kuvaus toiminnallinen ryhmäTämä ryhmä tarjoaa käyttäjä- tai operaattorinäkymän, joka sisältää käyttöjärjestelmän vaiheisiin, skenaarioihin ja tehtävävirtoihin liittyviä tuotteita. Tiedonkulkua voidaan tarkastella käyttäjän näkökulmasta, ja myös käyttöliittymät kuvataan. Esimerkkituotteita, jotka voidaan sisällyttää tähän kuvaukseen, ovat toiminnallinen data tai grafiikka, skenaarioiden kuvaukset (mukaan lukien tapaustutkimusten käyttö), tehtävävuokaaviot, organisaatiokaaviot ja tiedon vuokaaviot [6] :224 .
Looginen ryhmä kuvauksiaTämä ryhmä tarjoaa näkemyksen esimiehen tai asiakkaan näkökulmasta. Looginen näkymä sisältää tuotteet, jotka määrittelevät järjestelmän rajat ympäristön kanssa ja toiminnalliset rajapinnat ulkoisiin järjestelmiin sekä järjestelmän päätoiminnot ja käyttäytyminen, tietovirrat, sisäiset ja ulkoiset tietojoukot, sisäiset ja ulkoiset käyttäjät sekä sisäiset toiminnalliset rajapinnat. . Esimerkkejä tuotteista ovat toiminnalliset vuokaaviot (FFBD), kontekstikaaviot , N²- kaaviot , IDEF0- kaaviot, vuokaaviotiedot ja eri sidosryhmille ominaiset tuotteet (mukaan lukien yrityskohtaiset tuotteet) [6] :224 .
Fyysisten ryhmien kuvauksetTämä ryhmä tarjoaa näkemyksen suunnittelijoiden näkökulmasta. Sisältää:
Tuote voi sisältää fyysisiä lohkokaavioita melko yksityiskohtaisesti, tietokantatopologioita , asiakirjanhallintaliittymiä ja standardeja. Kaikkien kolmen ryhmätyypin on oltava läsnä jokaisessa arkkitehtuurin kuvauksessa [6] :224 .
Kaikki sidosryhmät voivat soveltaa elinkaaren aikaisia arkkitehtonisia kuvauksia eri tavalla. Tällaisia sovelluksia ovat muun muassa seuraavat: