Mallipohjainen suunnittelu osana ohjelmistokehitystä haastaa vanhat prosessit. Mitä vaativammasta kehitystyöstä on kyse, sitä enemmän mallipohjaisesta suunnittelusta on hyötyä, koska se mahdollistaa erilaisten tilanteiden simuloinnin ja kehitettävän sovelluksen testaamiseen. Mallipohjaisessa suunnittelussa nostetaan ohjelmistotyön abstraktiotasoa koodintuottamisen tasolta ylöspäin.
Mitä on mallipohjainen suunnittelu?
Mallipohjaisessa suunnittelussa nostetaan ohjelmistotyön abstraktiotasoa koodintuottamisen tasolta ylöspäin. Eli:
Perinteisessä ohjelmistokehityksessä työnjako menee siten, että arkkitehti tai pääsuunnittelija vastaa kehitettävän ohjelmiston kokonaisuudesta ja yksittäiset kehittäjät työskentelevät määrättyjen toiminnallisuuksien parissa – mahdollisesti jopa tuntematta kehitettävää kokonaisuutta. Mallipohjaisessa suunnittelussa kehittäjä taas vastaa osittain myös suunnittelusta.
- Mallipohjaisessa suunnittelussa kehittäjä mallintaa toiminnallisuuksia kokonaisuuksina koodin kirjoittamisen sijaan
- Usein mallipohjaisen suunnittelun työkalut generoivat koodin automaattisesti visuaalisen mallin pohjalta
- Tämä tarkoittaa, ettei arkkitehdin tai sovellussuunnittelijan vastuulle tule niin suurta vaatimusta rakentaa toimivaa kokonaisuutta kerralla oikein
Mallipohjaisesti työskentelevä kehittäjä pystyy ottamaan suuremman vastuun kokonaisuuden toimivuudesta ja löytää suunnitteluvaiheen potentiaaliset sudenkuopat simuloinnin kautta heti ohjelmistokehityshankkeen alussa.
Mallipohjaisesti työskentelevä kehittäjä pystyy ottamaan suuremman vastuun kokonaisuuden toimivuudesta
Mallipohjaisen suunnittelun hyöty
Lopputuloksen kannalta mallipohjaisen suunnittelun suurin hyöty on laadun varmistaminen ja kehitystyön nopeuttaminen. Valmiiseen tuotteeseen päästään nopeammin, kun sovellussuunnittelu tuottaa koodia, jonka testaaminen voidaan aloittaa välittömästi.
Lisäksi mallipohjaiset työkalut mahdollistavat järjestelmän automaattisten validoinnin, vaatimusten jäljitettävyyden ja monipuolisen testauksen, joiden avulla tuotekehityksen laatu voidaan varmistaa mahdollisimman aikaisessa vaiheessa.
Hyötynäkökulmasta mallipohjaisen suunnittelun tärkein elementti on nimenomaan mahdollisuus siirtää ideat suunnittelupöydältä käytäntöön ja testaukseen heti.
Lopputuloksen kannalta mallipohjaisen suunnittelun suurin hyöty on laadun varmistaminen ja kehitystyön nopeuttaminen.
Testauksen mahdolllisuudet 1 – Mallipohjaisen suunnittelun avulla ideasta testaukseen
Mallipohjaisessa suunnittelussa järjestelmä tai sovellus voidaan usein mallintaa visuaalisten elementtien avulla, joista koodi generoituu tarvittaessa automaattisesti. Yksi merkittävä asia, jonka visuaalinen mallintaminen mahdollistaa on luova suunnittelu ja ideoiden nopea testaus erityisesti tuotekehityksen alkuvaiheessa.
Eli siinä tilanteessa, jossa tiedetään mitä pitäisi saada aikaa ja millä välineillä tuohon tulokseen pitäisi päästä, mutta puuttuu selkeä visio siitä, MITEN se saadaan aikaan.
Mallipohjainen suunnittelu antaa kehittäjälle mahdollisuuden koeponnistaa ideat, joilla haluttu asia saadaan aikaan, kunnes toimiva ratkaisu löydetään. Vaihtoehtoisesti perinteisessä ohjelmistokehityksen mallissa luotettaisiin sovellus- tai järjestelmäsuunnittelijan kyvykkyyteen löytää toimiva ratkaisu teoreettisella tasolla ja idean testaus tapahtuisi vasta paljon myöhemmin.
Testauksen mahdolllisuudet 2 – Käytännön tilanteiden simulointi ja mallipohjainen testaus
Koska mallipohjainen suunnittelu perustuu toimivan virtuaalisen ympäristön luomiseen, mahdollistaa se erilaisten skenaarioiden simuloimisen ja testaamisen aikaisemmissa ohjelmistokehityksen vaiheissa kuin perinteisessä kehitysmallissa.
Esimerkiksi liikkuvan koneen ohjausjärjestelmän testaamiseen koneessa on usein rajalliset mahdollisuudet. Testaaminen on tyypillisesti hidasta ja mikäli ohjausjärjestelmän virheet löytyvät vasta tässä vaiheessa, voi tämä aiheuttaa suuria takapakkeja aikatauluihin.
Koska mallipohjaisesti suunnitellessa virtuaalinen kone on jatkuvasti kehittäjän käytettävissä, voidaan toiminnallisuuksia testata osana suunnitteluprosessia. Tällöin on huomattavasti paremmat edellytykset löytää suunnittelun ja toteutuksen virheet ajoissa.
Testauksen mahdolllisuudet 3 – Kun käytännön testaus ei ole vaihtoehto
Aina kehitettävän järjestelmän tai ohjelmiston toimintoja ei voida testata kaikissa tilanteissa tai testaamista ei voida turvallisesti toteuttaa. Tällöin mallipohjaisen kehityksen edut ovat ilmeiset.
- Esimerkiksi tehtaiden tuotantolinjojen käyttäytymistä kaikissa tilanteissa ei voida testata käytössä olevilla tuotantolinjoilla
- Ihmishenkien turvallisuudesta vastaavien järjestelmien kaikkia toiminnallisuuksia ei voida aina testata käytännössä
Mallipohjaisessa suunnittelussa on mahdollista simuloida näitä tilanteita turvallisesti.
Hopeapilven tumma reunus
Mallipohjaiseen suunnitteluun tarvittavat työvälineet eivät ole erityisen edullisia. Tämän vuoksi varsinkin ohjelmistokehitystä tilaavat tahot suhtautuvat siitä saavutettaviin hyötyihin skeptisesti. Ja totta on, että kaikille tai kaikissa tilanteissa, mallipohjainen suunnittelu ei välttämättä ole paras mahdollinen tapa toimia. Jos järjestelmälle on tarkat vaatimukset eikä testaukseen liity erityisiä haasteita, joita voitaisiin taklata toiminnan mallintamisesta keinoin, ei mallipohjaisen suunnittelun työkaluihin sijoittamalla silloin saavuteta merkittävää hyötyä.
Hyödyt todentuvat parhaiten silloin, kun ideat pitää saada nopeasti käytäntöön tai järjestelmän simulointi ja monipuolinen testaaminen on erityisen tärkeää.
Laadukkaampaa tuotekehitystä mallipohjaisella suunnittelulla
Koska mallipohjaisessa suunnittelussa koodaus tapahtuu rinnakkain suunnittelun kanssa, voidaan suunnitelman toimivuutta varmentaa testauksen kautta alusta lähtien. Tämä mahdollistaa luovan suunnittelun tilanteissa, joissa ei vielä tiedetä, miten haluttu toiminto voidaan toteuttaa.
Ja koska erillistä suunnitteluvaihetta ei tarvita, ei tarvitse laskea sen varaan, että suunnitteluvaiheessa tehdyt olettamukset pätevät kaikissa tilanteissa. Koska ohjelmistoa pystytään testaamaan alusta saakka, voidaan suunnitteluun liittyvät ongelmat havaita nopeasti.
Kun tuotekehityksessä päästään pitemmälle, mallipohjaista simulointia voidaan hyödyntää toiminnallisuuksien testaamisessa erilaisissa virtuaalisissa skenaarioissa. Tämä auttaa pääsemään nopeammin valmiiseen tuotokseen kuin testaamalla ainoastaan lopullisessa laitteistossa.
Mallipohjainen suunnittelu on osa tuotteen tai koneen älykästä kehitystä ja elinkaarenhallintaa, joka osaltaan madaltaa tuotekehityskustannuksia.