Anonim

Tällainen riippuvuus johtaa usein pidentyneisiin kehityssykleihin ja kasvaneisiin kehityskustannuksiin laadun kustannuksella. Se jakaa ohjelmistokehityksen myös kahteen erilliseen vaiheeseen.

Ensinnäkin on olemassa laitteistoa edeltävä saatavuusvaihe, jossa ohjelmistokehittäjät luottavat paperispesifikaatioon tai ad-hoc-suoritusympäristöön, joita kumpikaan ei ole synkronoitu laitteiston kehityksen kanssa.

Toiseksi on laitteiston jälkeinen saatavuusvaihe, jossa testaamaton laitteisto ja ohjelmistot integroidaan. Järjestelmä testataan tämän vaiheen aikana, mikä tarkoittaa, että jos suunnittelussa esiintyy ongelmia, ne voidaan löytää myöhään.

n

Tämä toinen vaihe on yhä haastavampi, koska moniytimisistä laitteistoalustoista on tulossa normi markkinoilla, kuten digitaaliset kuluttajatuotteet ja langattomat tuotteet.

Haaste kehittäjille
Joten mitä haasteita digitaalisten kuluttaja- ja langattomien ohjelmistojen kehittäjät kohtaavat?

Ennen laitteiston saatavuutta luotavan spesifikaation ja käytettävän fyysisen järjestelmän saatavuuden välillä on pitkä aikaero. Tämä aukko vaikuttaa suoraan synkronoitaviin ohjelmistoihin ja laitteistoihin. Kun laitteisto on lopullisesti valmis, ohjelmistoa on jo kehitetty huomattavasti, ja suuri osa siitä on nyt korjattava laitteiston sopiviksi.

Kun järjestelmän integrointi on valmis, testaus voi alkaa. Järjestelmätestaus vaatii monimutkaisempaa laitteistoasetusta.

Esimerkiksi langattomassa tilassa järjestelmän testaaminen vaatii langattoman laitteen integroinnin testaamista tukiasemalle. Tämä tehdään useimmiten käyttämällä monimutkaisia ​​ja kalliita laitteistotukiasimulaattoreita, joihin pääsee vain rajoitetusti.

Tässä vaiheessa ohjelmistokehittäjät kohtaavat valtavan paineen aikaisemmista viivästyksistä. Tässä vaiheessa havaituilla toiminnallisuus- ja suoritusongelmilla on merkittävä vaikutus.

Analyytikotutkimuksen mukaan 24 prosenttia hankkeista peruutetaan aikataulun palauttamatta jättämisen vuoksi; 54 prosenttia ohjelmistojen suunnittelusta valmistuu aikataulun jälkeen; 33 prosenttia valmistetuista laitteista ei täytä toiminnallisuus- tai suorituskykyvaatimuksia; ja 80 prosenttia kehitystyöstä käytetään sellaisten virheiden korjaamiseen, joita ei havaittu projektin varhaisessa vaiheessa.

Tätä tarkasteltaessa tulee mieleen useita seikkoja.

Jos ohjelmistokehitys voitaisiin tehdä nopeammin, todennäköisyys projektin loppumiseen aikataulusta tai, mikä pahempaa, peruutetaan, olisi pienempi.

Vastaavasti, jos suorituskyky ja toiminnallisuus voitaisiin testata aikaisemmin, laitteistot ja ohjelmistot voitaisiin paremmin kohdistaa.

Viimeinkin, jos koodia ei tarvinnut kirjoittaa ennen varsinaisen laitteiston tuntemusta, niin paljon aikaa voidaan säästää, kun ei tarvitse kirjoittaa ohjelmistoja uudelleen laitteiston mukaisiksi.

Tämä korostaa tarvetta aikaisemmalle laitteiston saatavuudelle ja ohjelmistokehittäjien tarvitsemille työkaluille sykliajan ja edit-compile-debug-syklien vähentämiseksi.

Virtuaali kehitysympäristö
Muilla aloilla validoitu lähestymistapa on virtuaalisen kehitysympäristön perustaminen perustuen suoritettavaan määritelmään - joka tunnetaan myös nimellä virtuaalinen laitteistoalusta ohjelmistojen kehittämiseen.

Ohjelmistokehityksen virtuaaliset laitteistoalustat ovat nopeaa ja skaalautuvaa mallia järjestelmälaitteistosta, joka sisältää laitteen laitteiston ja ympäristön, jossa se kehittyy. Toisin kuin perinteiset ohjelmistomenetelmät, virtuaaliympäristöissä yhdistyvät suoritusnopeus, varhainen saatavuus, hallittavuus, havaittavuus ja determinismi ennalta ja piin jälkeinen käytettävyys.

Voitaisiin väittää, että ohjelmistojen kehittämiseen tarkoitetut virtuaalilaitteistot eivät ole uusi käsite. Todellakin, käskyjoukkojen simulaattorit ovat tarjonneet tällaisen lähestymistavan. Kuitenkin, kun alustoista ja monisydäisistä on tullut normi digitaalisissa kuluttaja- ja langattomissa laitteissa, ytimen simulointi ei enää riitä. Koko alusta ja sen kehittämä ympäristö on simuloitava.

Ohjelmistokehitys
Yksinkertaisimmassa muodossaan jokapäiväinen ohjelmistokehitys voidaan kuvata edit-compile-debug -syklin avulla. Ohjelmistokehittäjä muokkaa koodiaan, kääntää sen kohdelaitteelleen ja virheenkorjaa koodissa käynnissä olevan koodin.

Virtuaalilaitteisto antaa ohjelmistokehittäjälle paitsi suorittaa tämän jakson aikaisemmin, myös tehdä sen paremmin.

Mahdolliset ongelmat voidaan tunnistaa aikaisemmin, koska virtuaalinen laitteistoalusta on saatavana ennen piitä, ja ongelman jäljittäminen voi olla nopeampaa, koska virtuaalinen laitteistoalusta tarjoaa järjestelmän täyden näkyvyyden.

Järjestelmän validointi voi olla myös nopeampaa, koska alusta tarjoaa täydellisen järjestelmän hallittavuuden. Löydät vastauksen palaamatta 'sokeasti' koodien muokkaamiseen. Ja koodin muokkaaminen ongelman ratkaisemiseksi voidaan tehdä tehokkaammin, koska ongelman lähde ja mahdollinen vastaus voidaan tarkistaa tarkemmin.

Kaikki tämä tarkoittaa vähemmän ja nopeampaa edit-compile-debug -jaksoa.

Uusin laitemääritys
Nämä edut ovat edelleen suuresti riippuvaisia ​​oletuksesta, että ohjelmistokehittäjät työskentelevät laitteisto-eritelmän uusimman version avulla.

Aikaisemmin päivitettiin virtuaalinen laitteistoalusta ohjelmistokehitykseen paperimäärityksen perusteella, ja laitteistojoukon päivityksiä käytettiin. Tämä lähestymistapa vaatii yrityksiä kuitenkin ylläpitämään useita malleja, joita ei voida käyttää uudelleen kaikissa toiminnoissa.

Optimaalinen lähestymistapa on pääsy mallinnustekniikoihin, joita voidaan käyttää uudelleen, kuten laitteistoarkkitehtuurin etsimiseen ja analysointiin sekä ohjelmistojen kehittämiseen.

Tällaisia ​​tekniikoita on syntynyt viimeisen vuoden aikana käyttämällä omia ja standardikieliä ja menetelmiä. SystemC ja transaktiotason mallinnus (TLM) edustavat monien yritysten selkeää valintaa siirtyä tähän suuntaan perustuen nykyiseen arkkitehtuurin etsinnän ja analysoinnin käyttöön sekä skaalautuvuuteen mallien uudelleenkäyttämisessä virtuaalilaitteistoille ohjelmistojen kehittämistä varten.

Tämän tekniikan käytön seurauksena synkronointi laitteisto- ja ohjelmistoryhmien välillä ei ole vain perustettu, vaan myös optimoitu.

Ohjelmistokeskeisten digitaalisten kuluttaja- ja langattomien laitteiden ollessa normi, näitä laitteita valmistavien yritysten on tarkasteltava samanaikaisen laitteisto- ja ohjelmistosuunnittelun kehittämistä, joka kattaa järjestelmän integroinnin ja testauksen.

Ohjelmistokehityksen virtuaalilaitteistot tarjoavat yksinkertaistetun ja tehokkaamman kehitysympäristön ohjelmistokehittäjälle. Lisäksi ne tarjoavat viestintävälineen ohjelmistojen ja laitteistojoukkojen välillä varmistaakseen, että ohjelmistokehittäjä koodaa, integroi ja testaa oikean määritelmän mukaisesti, ja laitteistokehittäjä suunnittelee laitteistoalustan, joka vastaa toiminnallisuutta ja suorituskykyominaisuuksia ohjelmiston suorittamiseen .