Etusivu

Lataa PDF-versio

Sisällys:

  1. Johdanto
  2. Sulautettujen järjestelmien ketterät kehitysmenetelmät
  3. Tekniikkakatalogi
  4. Yritysesimerkit
  5. Lisätiedot

Keskustele ja kommentoi:

Tekniikkakatalogi: Sulautetun kehittämisen omat käytännöt

Kaksikohdesuunnittelu

19989.png

Ongelma: Sulautetun järjestelmän ohjelmistokehitys joutuu odottamaan laitteistokehityksen etenemistä ennen kuin ohjelmistokehityksessä päästään etenemään.

Ratkaisu: Kaksikohdesuunnittelussa sulautetun järjestelmän ohjelmistosta kehitetään toiminnallisesti yhteneviä versioita yhtäaikaisesti sekä lopulliselle laitteelle että jollekin yleiskäyttöiselle alustalle.

Tavoite: Mahdollistetaan täysipainoinen ohjelmistokehitys ja testaus ennen kuin lopullinen laitteisto on valmis.

Sulautettujen järjestelmien kehitys on monen osa-alueen tiivistä yhteistyötä. Järjestelmän ohjelmisto-, laitteisto- ja mekaniikkaosat suunnitellaan tyypillisesti rinnakkaisissa prosesseissa yhtä aikaa toistensa kanssa. Nämä osa-alueet eivät kuitenkaan ole toisistaan riippumattomia, vaan yhdellä osa-alueella tehdyt ratkaisut vaikuttavat myös muihin alueisiin. Osa-alueiden väliset riippuvuussuhteet saattavat myös aiheuttaa tilanteita joissa jokin osa-alue ei pääse etenemään, koska se tarvitsee toisen osa-alueen tuloksia esimerkiksi testaustarkoituksiin.

Sulautetut järjestelmät muodostuvat tyypillisesti juuri kyseistä järjestelmää varten suunnitelluista ohjelmistosta, laitteistosta ja mahdollisesti mekaniikasta. Ohjelmiston testaamiseen tarvitaan laitteistoa ja laitteiston testaamiseen ohjelmistoa. Elektroniikan ja mekaniikan välillä vallitsee vastaava riippuvuussuhde. Ohjelmiston ja laitteiston välisestä suhteesta muodostuu pullonkaulaongelma, jossa kumpaakaan osa-aluetta ei päästä täysipainoisesti kehittämään ja ennen kaikkea testaamaan ennen kuin toinen osa-alueista on saavuttanut riittävän tason.

Kaksikohdesuunnittelu on yksi ratkaisu ohjelmiston ja laitteiston väliseen pullonkaulaongelmaan. Kaksikohdesuunnittelussa järjestelmän ohjelmistoa kehitetään yhtäaikaisesti sekä lopulliselle laitteistolle että yleiskäyttöiselle PC-tietokonealustalle. Käytännössä tähän tarvitaan kaksi kääntäjäohjelmistoa, toinen PC-tietokoneelle ja toinen kehitettävälle sulautetulle laitteelle. Yleiskäyttöisellä tietokoneella voidaan käyttää erinäisiä simulaatioympäristöjä lopullisen laitteen mallintamiseen. Tällainen simulaatioympäristö muodostaa varsinaisen laitteen ohella toisen kaksikohdesuunnittelun kohteista. Laitteiston ominaisuuksia voidaan myös emuloida hyvinkin yksinkertaisilla ohjelmallisilla toteutuksilla, jotka esimerkiksi syöttävät ohjelmistolle laitteen sensorien keräämää tietoa.

Ohjelmiston suunnittelu sekä järjestelmän omalle laitteistolle että yleiskäyttöiselle PC-tietokoneelle helpottaa laitteistoriippuvuuksien ymmärrystä ja tekee usein ohjelmistosta yleiskäyttöisempää. Kahdelle eri alustalle suunniteltaessa työmäärä saattaa projektin alkuvaiheessa hieman kasvaa. Useimmiten parantuneen yleiskäyttöisyyden myötä vastaavasti ohjelmiston elinkaari pitenee ja kokonaistyömäärä vähenee ohjelmiston ollessa helpommin käytettävissä myös tulevissa laitteissa.

Kaksikohdesuunnittelu helpottaa laitteen ohjelmiston toimintojen monipuolista testaamista heti suunnitteluprosessin alusta alkaen. Sulautetulle järjestelmälle ja PC-tietokoneelle kehitettävät versiot pidetään toiminnallisesti yhtenevinä. Näin ominaisuuksia voidaan testata PC-tietokoneella ennen kun järjestelmälle kehitettävä laitteisto on tähän riittävällä tasolla.

Laitteistosuunnittelulle kaksikohdesuunnittelun hyödyt tulevat esiin laitteiston testaamisessa. Kaksikohdesuunnittelun myötä molemmat osa-alueet pääsevät etenemään suunnitteluprosessissa todellisesti rinnakkain, jolloin laitteistosuunnittelun edetessä laitteiston testaamiseen on käytettävissä mahdollisimman pitkälle kehitettyjä ohjelmistoversioita.

Merkittävä osa sulautettujen järjestelmien ohjelmistoista liittyy laitteen käyttöliittymään. Nämä ominaisuudet tyypillisesti eivät ole tiukasti alustaan sidottuja, mikä edesauttaa kaksikohdesuunnittelun soveltamista erityisesti käyttöliittymäsuunnitteluvaiheessa.

Resepti

1. Suunnittele ja kehitä sulautetun järjestelmän ohjelmistot yhtä aikaisesti sekä sulautetulle järjestelmälle että PC-tietokoneelle.

2. Kiinnitä huomiota ohjelmiston yleiskäyttöisyyteen ja pitkään elinkaareen.

3. Täydennä ohjelmiston aukkoja sitä mukaa kun sulautetun järjestelmän laitteiston suunnittelu etenee.

Lisää aiheesta

Samek M.: Dual Targeting and Agile Prototyping of Embedded Software on Windows. https://bit.ly/1tJu6Zn

Grenning J.: Test Driven Development for Embedded C. Pragmatic Bookshelf.

Kirjallisuusluettelo


Päivitetty: 22.01.15 13:33

Jaa: