Sammanfattning av denna webbsida: System för feltolerans använder ofta flera programvaruversioner som utvecklats för att uppfylla samma specifikation. Om versionerna misslyckas oberoende av varandra kan de kombineras för att ge hög tillförlitlighet. Även om designmångfald är ett sätt att utveckla dessa versioner, har det ifrågasatts eftersom det ökar utvecklingskostnaderna och eftersom tillförlitlighetsvinster begränsas av gemensamma steg misslyckanden. Användningen av genetisk programmering föreslås för att generera flera programvaruversioner genom olika parametrar i den genetiska programmeringsalgoritmen. En miljö utvecklas för att generera program för en controller i ett flygplan gripande system. Åttio program har utvecklats och testats på 10 000 testfall. Experimentella data visar att felmångfald uppnås, men för de bästa som utför program är dess nivåer begränsade. En metod för programvara Feltolerans använder flera versioner av samma programvara för att dölja effekten av fel när en minoritet av versioner misslyckas [l]. Designmångfald, dvs. flera olika utvecklingsinsatser, har föreslagits som en teknik för att generera dessa överflödiga versioner. Skillnaden i programmen, som genereras av de olika designmetoderna, kallas mjukvarumångfald. Förhoppningen är att mångfalden i programmen kommer att få dem att uppvisa olika misslyckanden: de bör inte misslyckas för samma insats och, om de gör det, de bör inte misslyckas på samma sätt. Det finns två huvudsakliga nackdelar med design-mångfald strategi: det är inte uppenbart om och hur vi kan garantera att programmen misslyckas självständigt, och livscykel kostnaden för programvaran kommer förmodligen att öka. Den ursprungliga idén med N-version programmering (NVP) valde att programvaruspecifikationen skulle ges till olika utvecklingsteam [11]. Lagen bör självständigt utveckla en lösning, och detta oberoende mellan teamen bör manifestera sig i oberoende Misslyckande beteende. Programvaruutvecklingspersonal har dock liknande utbildning och använder liknande tänkande, metoder och verktyg. Detta kan leda till 0 IE. 1998 IEE-förfarandet på nätet nr. 19982444 Papper fick 21 juli 1998 Författaren IS vid Institutionen för datateknik, Chalmers tekniska högskola, Horsalsv. 11, S-412 96, Sweden common-mode misslyckanden, d.v.s. Flera versioner som inte uppfyller samma krav och begränsar mångfalden kan uppnås. Experimentell forskning har visat 1 hatt det finns system för vilka självständighetsantagandet inte är giltigt [2]. Styrkan i att använda designmångfald har därmed ifrågasatts. I [3], Termen slumpmässig mångfald föreslogs för att beteckna ovanstående scenario: generation av mångfald lämnas åt slumpen och härrör från skillnader i bakgrund och kapacitet hos personalen i utvecklingsteamen. I motsats till detta införde de begreppet påtvingad mångfald. Genom att lista kronorna möjliga källor till mångfald och variera dem mellan de olika utvecklingsteamen, kan programvaruversionerna tvingas att skilja sig åt. Under [4] visade Littlewood och Miller att sannolikheten för att två versioner utvecklades med olika metoder skulle misslyckas med samma indata bestäms av överensstämmelse mellan metoderna. Korrelationen är ett teoretiskt mått på mångfald som definieras över alla möjliga program och alla möjliga ingångar. Littlewoods och Millers beräkningar satte målet för studier för att uppnå mjukvarumångfald: hitta metoder med en liten eller negativ korrelation. .4 Problemet med att använda designmångfald är att livscykelkostnaderna kan öka. Naturligtvis kommer utvecklingskostnaderna att öka: vi måste utveckla N-versioner istället för en. Dessutom ökar underhållskostnaderna. Varje ändring eller utvidgning till specifikationerna för programvaran måste genomföras, och eventuellt även omformas, i var och en av de olika versionerna. De snabba kostnadsökningarna har uppskattats vara nära N-faldiga [5]. Detta dokument introducerar ett nytt tillvägagångssätt för att utveckla flera olika programvaruversioner till s,ime specifikationen, som tar upp både utvecklingskostnader och icke-oberoende problem designmångfald. Den föreslagna metoden använder genetisk programmering (GP), som, enligt [6], är en teknik för att söka utrymmen av datorprogram för indiviuella program som är mycket "lämpliga" för att lösa (eller appr 3ximately lösa) ett problem. G P utvecklar program från specificerade atomdelar som följer en grundläggande specificerad struktur. Genetiska algoritmer modellerar evolutionära processer i naturen och studeras under ämnet evolutionsberäkning (se t.ex. [7]). Genom att variera ett antal parametrar som påverkar utvecklingen av program, kan vi tvinga dem att skilja sig. Genetiska algoritmer efterliknar den evolutionära processen i naturen för att hitta lösningar på problem. Genetisk programmering är en särskild form av genetisk algoritm där lösningen uttrycks som en datorprogr,im. Det är IEE.
Feldt tillämpade algoritmiska tekniker till N-version programmering REF.
Generating diverse software versions with genetic programming: an experimental study
{'venue': 'IEE Proceedings - Software', 'journal': 'IEE Proceedings - Software', 'mag_field_of_study': ['Computer Science', 'Engineering']}