Blogi • 19.10.2022

Miksi mallipohjainen suunnittelu? – Simulointi ja testaus osaksi vaativaa ohjelmistokehitystä

Miksi mallipohjainen suunnittelu? – Simulointi ja testaus osaksi vaativaa ohjelmistokehitystä

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. 

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. 

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. 

 

Mallipohjaisen suunnittelun lisäksi autamme mm. palveluliiketoiminnan kehityksessä, konfiguraatiohallinnassa, elinkaarenhallinnassa ja kyberturvassa. Täältä lisää:

TÄSTÄ KOHTI ÄLYKKÄÄMPIÄ KONEITA

Ville Ahola

Ville on valmistunut Tampereen yliopistosta hydrauliikan ja konstruktiotekniikan alueelta. Villellä on kattava kokemus mallinnuksesta ja ohjelmistokehityksestä vaativiin laitteisiin ja työkoneisiin.

Piditkö lukemastasi? Jaa se myös muille.