Organisoi ja käytä uudelleen arvokkaita tekniikoita, työkaluja ja esimerkkejä
Julkaistu 17.4.2007
Jossain, jossain vaiheessa joskus, joku on kohdannut samankaltaisen ongelman kuin sinun ongelmasi, ja ratkaissut ratkaisun. Mitä jos voisit kaapata tuon henkilön kovalla työllä hankkiman tiedon ja laittaa ratkaisun uudelleenkäytettävään muotoon? Juuri tätä suunnittelu- ja analyysimallit ovat tarjonneet ohjelmistosuunnittelijoille viime vuosikymmenen ajan. Näissä malleissa käsitellään kuitenkin yleensä tiettyä ratkaisua; ne eivät tarjoa juurikaan opastusta siihen, miten oppia tunnistamaan oikea malli ja soveltamaan sitä ylipäätään.
Onneksi voit kääntyä analyyttisten kehysten puoleen, joissa yhdistyvät uudelleenkäytettävät ratkaisut analyysimalleihin, tutkimukseen, hyödyllisiin organisointitekniikoihin ja konkreettisiin esimerkkeihin onnistuneista lähestymistavoista. Analyyttinen viitekehys on vähän kuin oma henkilökohtainen kirjastosi, joka on räätälöity nimenomaan oman kokemuksesi ja taustasi mukaan.
Analyyttisiä malleja on käytetty ohjelmistokehityksessä jo vuosien ajan ratkaisujen tarjoamiseen tiedonsaantiin, transaktioiden valvontaan ja hallintaan, tietoturvaan, viestinvälitykseen, käyttöliittymiin ja muihin sovellusten tarpeisiin. Niitä ei ole tarkoitettu toteutettavaksi koodiin, vaan pikemminkin antamaan analyytikoille mahdollisuus ymmärtää monimutkaisia ongelma-alueita.
Analyyttiset viitekehykset sisältävät tällaisia malleja ja tarjoavat myös tarkistuslistan taidoista, työkaluista ja tekniikoista, joita tarvitaan tietyn alueen, kuten liikeanalyysin tai järjestelmäarkkitehtuurin, tutkimiseen. Tämä voi olla suuri siunaus yrityksille, jotka etsivät tiettyjä taitoja ajankohtaiseen tarpeeseen. Jos hakija pystyy osoittamaan luetellun kokemuksen ja kyvyt, on todennäköistä, että hakija menestyy tehtävässä.
Analyyttisen viitekehyksen rakenteen ymmärtäminen
Ajatellaanpa hetki, miten joku puuntyöstöön koulutettu henkilö ryhtyy luomaan huonekaluja. Työntekijä, joka rajoittuu muutamiin yksinkertaisiin työkaluihin ja omiin henkilökohtaisiin tietoihinsa, saattaa kokea uusien kappaleiden luomisen vaikeaksi ja aikaa vieväksi. Toisaalta, jos sama henkilö saa käyttöönsä täysin varustetun työpajan, tehokkaat työkalut ja täyden kirjaston suunnitelmia ja esimerkkikappaleita, hänen on paljon helpompi luoda monimutkaisia ja mielenkiintoisia huonekaluja. Samalla tavalla analyytikon suorituskykyä voidaan parantaa, jos hänellä on käytössään joukko hyväksi havaittuja analyysimalleja, tehokkaita analyysityökaluja ja -tekniikoita sekä useita esimerkkejä tehokkaista mallinnusmenetelmistä monimutkaisen tiedon tallentamiseksi ja esittämiseksi.
Analyyttinen kehys koostuu viidestä pääkomponentista: valikoimasta työkaluja, joukosta hyödyllisiä ratkaisumalleja, yhdestä tai useammasta mallilomakkeesta, useista tutkimustekniikoista ja -taidoista sekä menetelmistä monimutkaisen tiedon ryhmittelyyn. Taulukossa 1 esitetään liiketoiminta-analyysikehyksen tarvitsemat elementit.
Taulukko 1. Liiketoiminta-analyysikehys. Liiketoiminta-analyysin viitekehys
Elementti | Kuvaus |
---|---|
Työkalut | Tekstinkäsittely, mallinnusohjelmistot, asiakirjojen versionhallinta |
Kuvioinnit | Toimialakohtaiset kuvioinnit, liiketoimintajärjestelmämallit, liiketoiminnan organisaatiorakenteet |
Mallinnusmuodot | Organisaatiokaavio, yhtenäistetyn mallinnuskielen (Unified Modeling Language, UML) liiketoiminta-asiakirja, UML-aktiviteetti, Zachmanin viitekehys |
Tekniikat | Havainnointi, haastatteleminen, asiakirjojen tutkiminen |
Taidot | Muistiinpanojen tekeminen, aktiivinen kuuntelu, kokousten fasilitointi, ryhmän johtaminen, kriittinen ajattelu, analoginen päättely |
Kategorisointi | Liiketoimintaprosessien viitekehys, osastohierarkia, liiketoiminnan käyttötapaukset, liiketoiminta-toiminnallinen riippuvuuskaavio |
Tässä liiketoiminta-analyysin kehyksessä, tehokkaita työkaluja liiketoimintaprosessien löytämiseen ja tallentamiseen ovat mallinnusohjelmistot (erityisesti UML-mallinnus, jos liiketoimintavaatimukset tallennetaan käyttötapauksina), tekstinkäsittelyn apuvälineet ja jonkinlainen mallien ja asiakirjojen versionhallinta. Työkalut voidaan räätälöidä erityistarpeita varten tai ne voivat olla yleisempiä työkaluja, kuten yksinkertainen visuaalinen piirtoapuväline.
Toistuvat analyysimallit voivat olla tehokkaita, kun niitä sovelletaan tiettyyn analyysialueeseen. Liiketoiminta-analyysin viitekehyksessä näihin malleihin kuuluvat liiketoimintajärjestelmämallit (kuten tilausten kirjaaminen, varastonhallinta ja kauppojen ratkaiseminen), toimialakohtaiset mallit (kuten puhelinreititys, pakettien lähettäminen ja aikataulutus sekä lääkkeiden valmistuksen valvonta) ja liiketoimintarakenteet (kuten matriisit, hierarkiat ja hajautetut organisaatiot). Mallit ovat teemoja, joiden on havaittu esiintyvän toistuvasti tietyillä liiketoiminta-alueilla. Lisätietoja tavoista, joilla toistuvia liiketoiminta-aiheita voidaan taltioida, on kirjassa ”Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML” (Yritysmallit ja MDA: Parempien ohjelmistojen rakentaminen arkkityypin malleilla ja UML:llä). (Katso lisätietoja osiosta Liittyvät aiheet.)
Voit käyttää valittuja mallilomakkeita monimutkaisen tiedon tallentamiseen. Monimutkaiseen analyyttiseen analyysiin on olemassa useita hyödyllisiä mallilomakkeita, kuten Unified Modeling Language (UML) ohjelmistointensiivisille järjestelmille, Systems Modeling Language (SysML) järjestelmäsuunnittelulle ja Zachman Framework (Zachman Framework) organisaation monialaisille huolenaiheille. Taulukossa 1 esitetyssä liiketoiminta-analyysin viitekehysesimerkissä hyödyllisiä liiketoimintaprosessien tutkimiseen soveltuvia mallimuotoja ovat UML (prosessien ja käyttötapausten mallintamiseen), hierarkkiset organisaatiokaaviot ja mahdollisesti muunnettu Zachmanin mallin muoto.
Tekniikat ja taidot ovat olennainen osa mitä tahansa analyysimenetelmää. On tärkeää pystyä antamaan arvio yksilön tai ryhmän tällä hetkellä käytettävissä olevista taidoista. Esimerkiksi haastattelutekniikka edellyttää muistiinpanojen tekemisen ja aktiivisen kuuntelun taitoja. Ryhmätyöpajan vetäminen edellyttää fasilitoinnin ja ryhmän johtamisen taitoja. Systeemianalyysi perustuu taitoihin ajatella kriittisesti ongelmaa (tunnistaen, miten ongelma voidaan jakaa pienempiin, yksinkertaisempiin osa-alueisiin) ja soveltaa muilta aloilta löytyviä samankaltaisia ratkaisuja.
Analyysin tavoitteena on esitellä tulokset yleisölle. Maailman paraskaan analyytikko ei menesty, jos hän ei pysty järjestämään tietoja mielekkäästi ja esitettävällä tavalla. Automatisoidut työkalut tarjoavat vain osan ratkaisusta tähän ongelmaan; tietojen yleinen järjestäminen määrittää sen, miten aiottu yleisö hyödyntää tietoja. Liiketoiminta-analyysin viitekehyksessä näitä luokitteluperiaatteita edustavat liiketoimintaprosessit (joissa liiketoiminta on jaettu osa-alueisiin), liiketoiminnan käyttötapausten väliset riippuvuuskaaviot ja yleinen organisaatiorakenne (tyypillisesti hierarkkinen).
Analyyttisen viitekehyksen soveltaminen
Nyt kun tiedät, mistä analyyttinen viitekehys muodostuu, sinun on opittava käyttämään sitä. On ainakin kolme tilannetta, joissa analyyttinen viitekehys voi olla hyödyllinen. Ensimmäinen on silloin, kun yksilön on vaihdettava roolia. Esimerkiksi liiketoiminta-analyytikko voi siirtyä järjestelmäanalyytikon tai testianalyytikon rooliin. Kummallakin roolilla on erilaiset vastuualueet ja ne tuottavat täysin erilaisia dokumentteja ja työtuotteita. Jos henkilö voi käyttää jo olemassa olevaa analyyttistä viitekehystä (ja sopivia esimerkkejä), hänen on paljon helpompi valmistautua uuteen rooliin ja siirtyä siihen. Henkilön on opittava, mitkä työkalut, tekniikat, mallit, mallit ja organisatoriset lähestymistavat toimivat parhaiten kussakin tilanteessa. Pääsy analyyttiseen malliin kutakin näistä osa-alueista varten voi vähentää huomattavasti ratkaisujen etsimiseen käytettyä aikaa.
Toinen osa-alue, jolla analyyttiset viitekehykset voivat osoittautua hyödyllisiksi, on ulkoistamisryhmän taitojen ja valmistautumisen arviointi. Useimmat organisaatiot, jotka hyödyntävät near-shore- tai offshore-ulkoistamista, luottavat ryhmien aiempaan kokemukseen arvioidessaan niiden kykyä toimittaa sovitut artefaktit. Jos ulkoistamisryhmälle asetetaan tietty vaatimustaso, joka määritellään tietyn tehokkaaksi osoittautuneen analyyttisen mallin avulla, on suurempi luottamus siihen, että ryhmällä on oikea kokoelma materiaaleja ja kykyjä. Samaa voidaan sanoa sisäisistä tiimeistä, vaikka tyypillisesti nämä tiimit ovat jo todistaneet tietyn lähestymistavan, joka tarjoaa lähteen analyyttiselle viitekehykselle.
Kolmas alue, jolla analyyttiset viitekehykset ovat hyödyllisiä, on koulutus. Jos tutkitaan taulukossa 1 esitettyjä kehyksiä, pitäisi olla ilmeistä, että ne voivat muodostaa perustan tiimin parantamista koskevalle koulutussuunnitelmalle. Voit suorittaa arvioinnin sen selvittämiseksi, onko sopiva kokoelma kehyksen elementtejä, työkaluja, malleja ja taitoja jo käytettävissä tiimin jäsenillä vai onko niitä lisättävä joko työkalun hankkimisen tai henkilöstön kouluttamisen kautta.
Kehysten luominen ja mukauttaminen
Analyyttinen kehys on hyödyllinen vain, jos työkalut ovat mallintajalle tuttuja. Muistuttaen lahjakkaasta puusepästä, hienoimmat työkalut ovat hyödyttömiä ilman koulutetun ja lahjakkaan käsityöläisen luovaa soveltamista. Vastaavasti esteettisesti miellyttävien mallien rakentaminen edellyttää yhden tai useamman analyyttisen viitekehyksen sovittamista ongelma-alueelle. Sinun on osattava valita tarkoituksenmukaisin viitekehys, perehdyttävä viitekehyksen elementteihin ja sovitettava viitekehyksen elementit käsillä olevaan ongelmaan.
Monilla ongelmilla on toistuvia näkökohtia, joten voit usein sovittaa läheisesti toisiinsa liittyvän viitekehyksen. Esimerkiksi lähes kaikki vanhat tietokonejärjestelmät tarvitsevat jonkinlaista suunnittelututkimusta, jos ei muusta syystä kuin siksi, että voidaan kouluttaa uusia kehittäjiä järjestelmän ylläpitoon ja laajentamiseen. Siksi järjestelmäsuunnittelun viitekehys olisi sovellettavampi kuin liiketoimintaprosessien viitekehys.
Uuden viitekehyksen luominen voi olla yhtä yksinkertaista kuin olemassa olevan viitekehyksen kloonaaminen ja uusien mallien ja esimerkkien lisääminen. Toisaalta monimutkaisemmilla viitekehyksillä, kuten sulautettujen järjestelmien projektien analysointiin ja hallintaan kehitettävällä viitekehyksellä, voi olla vain vähän yhteistä muiden olemassa olevien viitekehysten kanssa, joten ne on ehkä luotava tyhjästä. Kannattaa aloittaa pohtimalla, mitä työkaluja ja tekniikoita voi soveltaa kyseiseen alaan. Voit esimerkiksi joutua muokkaamaan olemassa olevia tekniikoita, kuten haastatteluja tai ryhmäfasilitaatiota, tukeaksesi uutta alaa. Voit ehkä tarjota mallintajalle muita työkaluja tiettyjä tehtäviä varten, kuten tietokoneavusteista ohjelmistosuunnittelua (CASE) sisällön organisoimiseksi WWW-sivustojen yhteenliittymää varten. Ajan kuluessa voit laajentaa kehystä sisällyttämällä siihen useita esimerkkejä. Lopuksi, projektin päätteeksi, voit virallisesti tallentaa hyödyllisimmiksi osoittautuneet tekniikat ja mallit analyysimalleiksi käytettäväksi seuraavassa sovellettavassa ongelmassa.
Voi olla tarpeen mukauttaa analyysikehystä, ennen kuin se on käyttökelpoinen tietyssä kontekstissa. Viitekehyksen mukauttamiseen kuuluu uusien mallien tai organisaatiokaavioiden sisällyttäminen, jotta ne vastaisivat paremmin aiheen tarpeita. Näin voit laajentaa ja kehittää näitä kehyksiä uusia ongelma-alueita varten. Kun uusia työkaluja ja tekniikoita tulee saataville ja kun uusia analyysimalleja löydetään ja kodifioidaan, voit lisätä ne työkalupakkiisi ja järjestää ne muokatuksi kehykseksi. Jos muokkauksen taso on merkittävä, se voi viitata siihen, että sinun pitäisi rakentaa kokonaan uusi viitekehys.
Analyyttisen viitekehyksen käyttäminen
Kuvittele, että olet vanhempi kehittäjä, joka on juuri saanut uuden tehtävän vanhan järjestelmän arkkitehtina. Et osallistunut alkuperäiseen kehitystyöhön, mutta sinun on opeteltava järjestelmä nopeasti ja saatettava tiimin uusista jäsenistä koostuva henkilökunta vauhtiin, mikä edellyttää, että sinä ensin pääset vauhtiin. Onneksi sinulla on muutama asia eduksesi. Ensinnäkin sinulla on hyvä joukko esimerkkiarkkitehtuuria yrityksen muista vastaavista järjestelmistä. Toiseksi sinulla on käytössäsi ohjelmistoarkkitehtuurin analyyttinen malli (ks. taulukko 2).
Taulukko 2. Ohjelmistoarkkitehtuurin analyyttinen viitekehys
Elementti | Kuvaus |
---|---|
Työkalut | Koodiprofiilintekijä, tietokantaraportointityökalu, ohjelmistoarkkitehtuuridokumenttimalli, mallinnusohjelma, koodianalyysi |
Mallit | Ohjelmiston käyttöönottomallit, arkkitehtuurimallit, järjestelmäsuunnittelumallit, datan tallennusmallit |
Mallinnusmuodot | Dynaamiset mallit (kuten UML-sekvenssi-, algoritmi-, UML-tila- ja UML-aktiviteettikaaviot), tietokannan entiteettisuhdekuviot, rakenteelliset mallit (kuten UML-luokka- ja funktiokutsukartta), tietovirtakaaviot, yritysjärjestelmämallit |
Tekniikat | Abstrakti ajattelu, organisointi ja kategorisointi, kriittinen analyysi, muistiinpanojen tekeminen |
Taidot | Koodinrakenne, virran analysointi, laitteiston profilointi, järjestelmän käyttäytyminen |
Kategorisointi | Toiminnallinen käyttäytyminen, osajärjestelmäriippuvuus, komponenttiriippuvuus, käyttöönoton paketointi |
Ohjelmistoarkkitehtuurin viitekehyksen avulla ensimmäinen vaiheesi on kaikkien suositeltujen työvälineiden kokoaminen. Mallinnustyökalu tarjoaa mahdollisuuden visualisoida olemassa oleva koodi UML-malliin, jolloin voit tutkia koodin olemassa olevaa rakennetta. Suoritusaikaprofiilintarkkailija on arvokas tallennettaessa kutsupinoja, kun sovelluksen toiminnallisuutta suoritetaan.
Seuraavaksi voit tutkia sovelluksessa esiintyviä yleisiä arkkitehtuurimalleja. Voit tunnistaa nämä mallit, jos niitä on, käyttämällä viitekehykseen merkittyjä yleisiä mallien kuvauksia, erityisesti analyysin ja suunnittelun malleja. Tällaisia malleja julkaistaan paljon; yleisimpien tunteminen riittää usein arkkitehtuurianalyysissä.
Tuntemus erilaisista mallinnusmuodoista, kuten olio- ja suhdekaavioista (ERD), UML:stä ja muista systeemilähtöisistä mallinnuslähestymistavoista, antaa sinulle laajan valikoiman mallinnusvaihtoehtoja. Luokittelemalla nämä mallit toiminnallisen käyttäytymisen, loogisen ja fyysisen rakenteen sekä sisäisten käyttäytymistilojen mukaan saadaan hyödyllinen kuva järjestelmän kokonaisarkkitehtuurista. Lopuksi on tärkeää tuntea omat rajoituksensa. Itsearviointi on vaikea tehtävä, mutta välttämätön sen varmistamiseksi ja vakuuttamiseksi, että kaikki todella tarvittavat taidot ovat tiimin käytettävissä. Ohjelmistoarkkitehtuurin analyysikehyksessä lueteltujen odotettavissa olevien taitojen käyttäminen tarjoaa hyvän lähtökohdan määriteltäessä, millaisia taitoja arkkitehtuurianalyysitehtävässä tarvitaan. Analyyttinen viitekehys tarjoaa sinulle tarkistuslistan vähimmäismäärästä elementtejä, joita tarvitset menestyäksesi. Erikoisarkkitehtuureissa, kuten liikenneverkoissa, saatetaan tarvita lisätaitoja.
Yhteenveto
Kompleksisten ohjelmistojärjestelmien tutkiminen ja ymmärtäminen voi olla haastava tehtävä. Onnistuaksesi siinä sinun on käytettävä erilaisia työkaluja ja tekniikoita järjestelmäkuvausten keräämiseen, järjestämiseen ja esittämiseen. Luomalla ja mukauttamalla analyysikehyksiä voit valmistautua hyvissä ajoin ja kerätä hyödyllisiä työkaluja ja esimerkkejä, joita voit käyttää nykyisessä tilanteessasi. Nyt kun tiedät, mistä elementeistä onnistunut analyyttinen viitekehys koostuu, miten viitekehyksiä voi käyttää uudelleen ja miten uusia viitekehyksiä voi luoda, olet hyvin valmistautunut selviytymään monista tavallisista tilanteista, joita nykypäivän monimutkaisissa ongelmissa kohdataan.
Latattavat resurssit
- PDF-tiedosto tästä sisällöstä
- Lisätietoa liiketoiminta-arkkityypeistä saat lukemalla Jim Arlow’n ja Ila Neustadtin toimittaman teoksen ”Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML” (Yritysmallit ja MDA: Parempien ohjelmistojen rakentaminen arkkityyppimallien ja UML:n avulla” (Addison-Wesley Professional, 2003).
- Lue Ben Liebermanin kolmiosainen sarja (PDF) aiheesta Mallintamisen taito, jossa opit analyyttisen viitekehyksen rakentamisesta, mallin organisoinnista ja rakentamisesta sekä visuaalisesta sommittelusta (developerWorks, elokuu 2003).
- Opi mallintamaan rakennemuotojen, organisoivien teemojen ja kaavion kääntökohtien avulla Ben Liebermanin artikkelissa ”Rakenna tehokkaat systeemimallit” (developerWorks, maaliskuu 2007).