Mikä on ohjelmistoanalyysimalli?

Ohjelmistoanalyysimalli on menetelmä tietokoneohjelman suunnitteluun rinnastamalla abstraktit prosessit tai mallit kehitettävän ohjelman toimintaan. Ajatuksena on verrata jonkin tyyppistä mallia, joka toimii tehokkaasti jossain yhteydessä, yleensä todellisessa maailmassa, ja soveltaa sitten samaa logiikkaa ja joskus kuvion terminologiaa suunniteltavaan ohjelmaan. Arvioimalla ohjelman tai moduulin yleistä toimintaa tällä tavalla, tavoitteena on löytää pienempiä malleja ohjelmistoanalyysin aikana ja mahdollisesti sopivia suunnittelumalleja varsinaisten toteutustietojen selvittämisen aloittamiseksi. Toisin kuin suunnittelumalleissa, joita käytetään usein suunnittelun toteuttamisessa ja koodissa, ohjelmistoanalyysimallin tarkoituksena on tarjota puitteet projektin ajattelulle, jotta monimutkaisuudet näkyvät paremmin. Ohjelmistoanalyysimallin käytölle tai kehittämiselle ei ole muodollista määritelmää, vaikka malleista on olemassa useita esimerkkejä.

Ohjelmistokehityksen alkuvaiheessa ohjelmistoanalyysimalli on tarkoitettu auttamaan jäsentämään laajaa näkemystä ohjelmasta ja siitä, miten sen osat liittyvät toisiinsa. Malli on kuitenkin tarkoitettu abstraktiin analyysiin eikä sovelluksen pienempien yksityiskohtien, kuten yksittäisten menetelmien, muuttujien tai tiedostomuotojen, kehittämiseen. Yksi syy abstraktioon on niin, että yhden ohjelmistoanalyysimallin käsitettä voidaan muuttaa vain vähän ja sitten käyttää uudelleen muille ohjelmistoille, jotka saattavat todellisuudessa suorittaa täysin toisen tehtävän.

Ohjelmiston analyysimallia kehitettäessä käytetään useimmiten todellisia esimerkkejä. Yksi esimerkki voisi olla postin käyttäminen ohjelmistoanalyysimallina yksinkertaiselle viestipalvelimelle. Tässä esimerkissä kirjaimet edustavat viestiä ja leima voi edustaa jonkinlaista palvelimen vahvistusta. Postilaatikosta tulee viestijono, ja nouto- ja palautusajat sidotaan lähetys- ja vastaanottoprosesseihin. Tällä tavalla sovelluksen monimutkaista rakennetta voidaan abstraktoida ja ajatella konkreettisemmin niin paljon, että kuvion lähteen terminologia voi usein kääntyä itse ohjelman luokkien tai komponenttien nimiin toteutus.

Komplikaatioita voi esiintyä, kun käytetään ohjelmistoanalyysimallia, etenkin erittäin suurissa ohjelmissa. Ohjelman yksinkertaistaminen liikaa kehittämisen aikana on mahdollista, joten jotkin osajärjestelmät eivät toteutuksen aikana välttämättä kuulu tiukasti analyyttisen mallin piiriin, kun se on toteutettu. Vaihtoehtoisesti malli voi olla rakenteeltaan sellainen, että ohjelman tapahtumat mallinnetaan tavalla, joka vastaa mallia ja on selkeä, mutta ei välttämättä ole kovin tehokas.