Hei!
Esittelen tässä pitkäaikaista projektiani, joka alkoi ideasta parantaa tietojärjestelmien määrittelyjä ja on päätynyt ajatukseen kehittää tietojärjestelmien elinkaarimalli. Toivon siitä näkemyksiä, mielipiteitä sekä vinkkejä ja apua jatkokehitykseen.
Polku elinkaarimallin kehittämiseen alkoi ajatuksesta luoda tietojärjestelmien määrittelyyn sopivampi menettely ja väline. Tämä osuus on nyt prototyyppivaiheessa, toteutettuna Javalla. Periaate näyttää toimivan hyvin suppeilla aineistoilla, mutta laajemmissa aineistoissa tarvittaisi kykyä rajata tietoa eri näkökulmien ja tasojen mukaan. Olen tutkinut SQL:ää toteuttavia koodeja, mutta en ole löytänyt sopivaa, ja alusta asti itse kehittäminen on edistynyt hitaasti.
Määrittelyosion tavoitteita olivat mm.:
⦁ Määrittelyprosessiin sopiva ja helposti ymmärrettävä esitysmuoto, joka mahdollistaa myös ennalta tuntemattomien seikkojen ja niiden rakenteiden keräämisen ja tallentamisen.
⦁ Mahdollistaa määrittelyaineiston eri näkökulmien tarkastelu ja ymmärtäminen, ilman koko määrittelyaineiston läpikäymistä.
⦁ Parempi asiakkaan ymmärrys siitä, mitä on saamassa, ja toimittajan ymmärrys siitä, mitä asiakas haluaa/tarvitsee.
⦁ Määrittelyaineisto, joka soveltuu hyvin järjestelmän seuraaviin kehitysvaiheisiin.
⦁ Mahdollistaa kaikkien määrittelyssä esille tulevien, järjestelmää koskevien, seikkojen kirjaamisen ja taltioimisen. Eli ei ole "määrittelyyn kuulumattomia" seikoja.
Ratkaisun perustana on ajatus, että yksityiskohtia on helppo käsitellä, ja että kokonaisuudet rakentuvat yksityiskohdista. Vastaavasti kokonaisuudet voidaan pilkkoa yksityiskohdiksi.
Kehitin yksityiskohdalle tietorakenteen, jonka avulla voi kuvata yksittäisiä seikkoja ja rakentaa niistä suurempia kokonaisuuksia. Tietorakenne muistuttaa laitetason bittiä ja bytea, jotka ovat kaiken digitaalisen tiedon perusyksiköitä.
Käyttöliittymässä moniulotteiset seikkarakenteet esitetään kaksiulotteisesti, tarkastellen yhden seikan näkökulmasta. Käyttöliittymän pohjana olen hyödyntänyt hyperbolista puuta, jota olen muokannut verkostojen käsittelyyn.
Määrittelyosion kehittämisen aikana sain idean elinkaarimallista, jolla voidaan parantaa myös muita tietojärjestelmien elinkaaren osa-alueita, kun kaikki järjestelmään liittyvät seikat ovat helposti käytettävissä.
Esimerkiksi:
⦁ Vaatimusten linkitys toteutuskoodiin
⦁ Toteutuskoodin yhteisten osien hallinta
⦁ Modulikohtainen testausaste kertoo valmiusasteen
⦁ Työajan kohdistaminen tehtäviin
⦁ Ylläpitotoimenpiteiden kaikkien vaikutusten näkyvyys
⦁ Muutosten johtaminen osien ja kokonaisuuksien testaukseen
⦁ Muutoshistoria
⦁ Asiakirjojen ja kuvien linkitys järjestelmän sisältöihin
⦁ Valmistuotteiden räätälöintitarpeiden kohdistaminen
Kehittämäni tietorakenne näyttäisi soveltuvan myös laajemmin elinkaarimallien rakentamiseen – ei ainoastaan tietojärjestelmille, vaan mahdollisesti myös muille kokonaisuuksille. Olen tehnyt testejä joillekin yllä mainituista osa-alueista, ja tulokset ovat vahvistaneet ideani toimivuutta.
Käyttöliittymään haluaisin lisätä toiminnon, joka erottaa saman sanan eri merkitykset toisistaan. Mielestäni kielimallipohjaiset tekoälyt voisivat muokattuina auttaa tässä. Esimerkiksi pitäisi pystyä erottamaan, mitä "asiakastiedolla" kulloinkin tarkoitetaan. Tavoitteena olisi, että lauseen "Kurkun juuttuminen kurkkuun tukki kurkun" sanat osattaisiin kohdistaa oikeisiin merkityksiin.
Prototyyppini on tehty Javalla, mutta nykyään sovellukset toimivat usein selaimessa tai mobiililaitteilla. Lisäksi, esimerkiksi Rustilla kirjoitettu ohjelma olisi ymmärtääkseni Javaa suorituskykyisempi.
Kaikenlaiset kommentit, näkemykset, vinkit ja avut ovat enemmän kuin tervetulleita!
Lopuksi vielä saamani ajatus: Kehittämälläni tietorakenteella voisi ehkä rakentaa tosiasioihin pohjautuvan tekoälyn – tai jopa jäljitellä aivojen solujen ja synapsien toimintaa?!
Oletko benchmarkannut tuota prosessia esimerkiksi ITIL:in elinkaaren hallintaan ja sen vaiheisiin?
Monestihan vähän isommissa kokonaisuuksissa taustalla on joku IT-palvelutuotannon viitekehys, kuten ITIL tai FitSM jne, jonka prosessijoukossa sitten myös elinkaarenhallinta on huomioituna joko omana prosessina tai joukkona hajautettuja toisiinsa sidottuja prosesseja, aina strategiasta konfiguraationhallintaan ja muutoshallintaan.
Ajatukseni poikkeaa noista perinteisistä välineistä, joten vertailu on hankalaa. Kuten aikaisemmin kerroin elinkaarimalli-idean sain tehdessäni määrittelyosiota. Esimerkiksi, ajatus on jatkaa määrittelyaineiston tarkentamista suunnittelulla ja toteuttaa suunnitellut komponentit ja kokonaisuudet. Linkittämällä vaatimukset sunnittelmiin ja suunnitelmat toteutuksiin saadaan yhteys vaatimusten ja toteutusten välille. Jolloin voidaan todentaa, että kaikki tulee tehtyä.