-
Die Erfindung betrifft ein computerimplementiertes Verfahren gemäß dem Oberbegriff des Anspruchs 1.
-
Konventionelle Methoden zur Prognose der Zuverlässigkeit von Software gehen von einer stetigen Verbesserung der Zuverlässigkeit (Zuverlässigkeitswachstum) aus. In der Veröffentlichung „Analysis of error processes in computer Software“ von Schneidewind, Norman F.; Technical report; 1974 wird vorgeschlagen, das Fehleraufkommen durch einen nicht-homogenen Poisson-Prozess zu modellieren. Der Input dieses und anderer Modelle nach dem Stand der Technik ist lediglich die Historie der bisher gefundenen Fehler, die insbesondere Anzahl und Zeitpunkte der bisher gefundenen Fehler umfasst.
-
Ein weiteres aus dem Stand der Technik bekanntes Modell ist das Jelinski-Moranda-Geometric-Modell. Im Gegensatz zum Schneidewindmodell nutzt das Jelinski-Moranda-Geometric-Modell die Zeiten zwischen aufeinanderfolgenden Ausfällen als Inputgröße. Ebenso wie das Schneidewindmodell beinhaltet dieses Modell jedoch auch die Annahme, dass die Ausfallrate stetig abnimmt.
-
Aus der Druckschrift
DE 10 2014 008 551 A1 ist ein Softwareevaluierungsverfahren bekannt, das mittels einer Softwareevaluierungsvorrichtung ausführbar ist und mit welchem die Qualität oder die Funktionsweise einer Software in einer frühen Entwicklungsstufe dieser Software evaluiert werden kann. Die Softwareevaluierungsvorrichtung ist mit einer Entwicklungsinformationsdatenbank verbunden, in der eine Metrik registriert ist, die einer gerade entwickelten Fassung und einer in der Vergangenheit entwickelten Fassung entspricht. Die Softwareevaluierungsvorrichtung ist mit einer I/O - Einheit verbunden. Die Softwareevaluierungsvorrichtung umfasst einen Schwankungsmusterberechnungsabschnitt zum Berechnen eines Schwankungsbetrags der Metrik der Fassungen anhand der vorhergehenden Fassung als Schwankungsmuster, einen Ähnlichkeitsberechnungsabschnitt zum Berechnen der Ähnlichkeit des Schwankungsmusters zwischen der früher entwickelten Fassung und der gerade entwickelten Fassung, einen Evaluierungsvorhersageabschnitt zum Auswählen der Fassung mit einer hohen Ähnlichkeit mit der früher entwickelten Fassung und zum Erzeugen eines Evaluierungsvorhersagemodells unter Verwendung einer Metrik der ausgewählten Fassung zum Berechnen eines Evaluierungsvorhersagewerts der Software anhand des erzeugten Evaluierungsvorhersagemodells und der Metrik der gerade entwickelten Fassung und einen Ergebnisausgabeabschnitt zum Anzeigen des berechneten Evaluierungsvorhersagewerts auf der I/O-Einheit.
-
Der Erfindung liegt die Aufgabe zu Grunde, ein verbessertes Verfahren zur Prognose der Zuverlässigkeit eines Softwareprodukts anzugeben. Zudem liegt der Erfindung die Aufgabe zu Grunde, eine Vorrichtung zur Durchführung eines solchen Verfahrens anzugeben.
-
Hinsichtlich des Verfahrens wird die Aufgabe erfindungsgemäß gelöst durch ein Verfahren mit den Merkmalen des Anspruchs 1. Hinsichtlich der Vorrichtung wird die Aufgabe erfindungsgemäß gelöst durch eine Vorrichtung mit den Merkmalen des Anspruchs 10.
-
Vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand der Unteransprüche.
-
Bei einem Zuverlässigkeitsprognoseverfahren für die Bewertung der Zuverlässigkeit eines Softwareprodukts werden Softwarefehler in mindestens einer gegenwärtigen oder zurückliegenden Fassung des Softwareprodukts mindestens der Anzahl nach erfasst. Daraus wird die Abnahme der Anzahl von Softwarefehlern in einer künftigen Fassung des Softwareprodukts resultierend aus einem Softwareverbesserungsprozess ermittelt.
-
Erfindungsgemäß wird zudem ein Fehlerhub als eine Zunahme der Anzahl von Softwarefehlern resultierend aus dem Featurehub zwischen zwei Fassungen des Softwareprodukts ermittelt. Unter einem Featurehub ist hierbei die Summe der funktionellen und strukturellen Änderungen zwischen den beiden Fassungen des Softwareprodukts zu verstehen.
-
Aus der Überlagerung der ermittelten Abnahme der Anzahl von Softwarefehlern und dem mindestens einen Fehlerhub wird die Anzahl von Softwarefehlern in mindestens einer künftigen Fassung des Softwareprodukts bestimmt.
-
Gegenüber den aus dem Stand der Technik bekannten Verfahren ist dadurch eine dynamische Prognose der Zuverlässigkeit des Softwareprodukts, die an das Fortschreiten einer Entwicklung dieses Softwareprodukts angepasst ist, möglich. So ist es möglich, die Zuverlässigkeit nicht erst in einer sehr späten Phase des Softwareentwicklungs-Lebenszyklus, beispielsweise erst nach einem funktionskompletten (feature-complete) Abschluss der Entwicklungsaktivität, abzuschätzen, sondern bereits vorher. Insbesondere ist die Genauigkeit einer solchen Zuverlässigkeitsprognose für inkrementelle, iterative und/oder agile Vorgehensmodelle für die Entwicklung eines Softwareprodukts verbessert.
-
In einer Ausführungsform des Verfahrens wird der Fehleranstieg durch den Featurehub bestimmt. Dieser Featurehub muss hierbei durch eine Komplexitätsabschätzung quantifiziert sein. Der Fehlerhub lässt sich dann über eine Multiplikation mit einer vorbestimmten Konstante, den Fehlerzuwachsfaktor Θ, prognostizieren. Dieser Fehlerzuwachsfaktor Θ kann dabei z.B. über das Wissen über die Fehlerhubhöhe aus Vorangegangenen Featurehuben bestimmt werden.
-
In einer Ausführungsform des Verfahrens wird die Metrik der Komplexität durch eine Expertenschätzung, durch eine Codzeilenmetrik, durch Entwicklungskosten, durch die für eine Entwicklung aufgewendeten Mann-Monate, durch die Anzahl von Konstruktionselementen des Softwareprodukts wie beispielsweise Modulen, Klassen, Funktionen, Unterfunktionen, Diensten oder Interfaces bestimmt. Auch weitere aus dem Stand der Technik bekannte Metriken sind hierfür einsetzbar, beispielsweise die zyklometrische Komplexität.
-
In einer Ausführungsform des Verfahrens wird der Fehlerzuwachsfaktor Θ abhängig von der Art oder Kategorie eines Merkmals bestimmt und anschließend für die Prognose eines Fehlerhubs verwendet, der mit der Herstellung von Merkmalen dieser Art oder Kategorie in einem Softwareprodukt verbunden ist. Solche Kategorien können beispielsweise bei der Entwicklung von Softwareprodukten für Fahrzeuge durch die funktionelle Zuordnung gegeben sein, beispielsweise als „Tuner“, „HMI“, „Navigation“, „Audio“ und ähnliches.
-
In einer Ausführungsform des Verfahrens wird der Abfall der Anzahl von Fehlern in einem Softwareprodukt ausgehend von einem Funktionsumfang, der bis dahin aufgelaufenen Featurehube berücksichtigt, durch ein Schneidewind-Modell beschrieben, dem ein nichthomogener Poisson-Prozess zugrunde liegt, dessen Fehlerrate λ abhängig von der Zeit t, die seit der Fertigstellung des Funktionsumfangs vergangen ist, nach dem Zusammenhang einer Schneidewind - Funktion
modelliert ist. Der Faktor α und der Abbaugradient γ können vorbestimmt sein. Beispielsweise können diese Parameter aus einem bereits fertiggestellten Projekt zur Entwicklung eines anderen Softwareprodukts und/oder aus zurückliegenden Werten des aktuellen Projekts zur Entwicklung dieses Softwareprodukts bestimmt sein.
-
In einer Ausführungsform des Verfahrens werden die Parameter α und y dadurch bestimmt, dass der zeitliche Verlauf der Anzahl von Fehlern in einer zurückliegenden Softwareentwicklung durch einen nicht-homogenen Poisson-Prozess modelliert wird, dem eine Schneidewind - Funktion λ(t) zugrunde liegt, deren Parameter so gewählt sind, dass die Summe der quadratischen Abweichungen der tatsächlich erfassten Fehleranzahl von der nach dem Poisson-Prozess modellierten Fehleranzahl minimiert wird. Alternativ können die Parameter gemäß einem Maximum - Likelihood - Verfahren so gewählt sein, dass die mit diesen Parametern modellierten Fehleranzahlen mit der größtmöglichen Wahrscheinlichkeit mit den tatsächlich beobachteten Fehleranzahlen übereinstimmen. Auch andere Verfahren der Regressionsrechnung sind zur Bestimmung der Parameter α, γ einsetzbar.
-
In einer Ausführungsform des Verfahrens wird die Abnahme der Anzahl von Softwarefehlern als eine Überlagerung von Schneidewind - Funktionen γ
i,f(t) modelliert, die jeweils auf eine zum Zeitpunkt T
i veröffentlichte Fassung i = 1,2,...N für einen gewissen, mit f indizierten Funktionsumfang bezogen sind. Somit ergibt sich für diese Ausführungsform eine kumulative Schneidewind - Funktion zu
-
In vorteilhafter Weise ist es damit möglich, Zuverlässigkeitsprognosen für eine iterative (mehrere, zu Zeitpunkten Ti veröffentlichte Releases umfassende) und inkrementelle (mit aufwachsenden Feature Sets versehene) Softwareentwicklungsaktivität zu bestimmen.
-
In einer Ausführungsform unterscheiden sich die Faktoren αi,f , die Schneidewind - Funktionen mit verschiedenen Releasezeitpunkten Ti und/oder verschiedenen Feature Sets zugeordnet sind, voneinander, wobei der Abbaugradient γ für alle Schneidewind - Funktionen gleich gewählt ist.
-
In einer Ausführungsform des Verfahrens wird das Fehlerniveau in einzelnen, diskreten Zeitschritten n = 1, 2,... berechnet. Für eine zeitdiskrete Schneidewind - Funktion wird das Fehlerniveau Λ[n] zum n-ten Zeitpunkt unter Berücksichtigung des Fehlerabbaus mit dem Abbaugradienten y und des Fehlerhubs, der durch einen Komplexitätszuwachs K[n] in diesem n-ten Zeitpunkt ausgelöst wird, wie folgt rekursiv berechnet:
-
Für die Überlagerung verschiedener, unabhängiger, zeitdiskreter Schneidewind - Funktionen, die jeweils einem Releasezeitpunkt T
i sowie einem Feature Set f zugeordnet sind, ergibt sich daraus analog zum zeitkontinuierlichen Fall die Berechnungsvorschrift
wobei K
i,f[n] den Komplexitätszuwachs notiert, der zum n-ten Zeitpunkt entsteht, wenn ein i-tes Release an einem mit f indizierten Feature Set veröffentlicht wird.
-
In einer Ausführungsform des Verfahrens wird ein Fehlerzuwachsfaktor abhängig von einer Fehlerkategorie und/oder von einer Fehlerpriorität bestimmt. Eine Fehlerkategorie kann beispielsweise die Relevanz eines Softwarefehlers für die Nutzbarkeit eines Releases beschreiben. Beispielsweise können die Fehlerkategorien „durch den Kunden wahrnehmbar“, „durch den Kunden nicht wahrnehmbar“, „sicherheitsrelevant“ unterschieden werden. Eine Fehlerpriorität kann die zeitliche Dringlichkeit einer Behebung eines Softwarefehlers beschreiben.
-
Ausführungsbeispiele der Erfindung werden im Folgenden anhand von Zeichnungen näher erläutert.
-
Dabei zeigen:
- 1 schematisch den Verlauf der erfassten und der prognostizierten Anzahl von Softwarefehlern in einem Softwareprodukt,
- 2 schematisch den Verlauf der erfassten und der prognostizierten Anzahl von Softwarefehlern in einem Softwareprodukt für diskrete Zeitabschnitte sowie
- 3 schematisch den Aufbau einer Vorrichtung zur Prognostizierung der Anzahl von Softwarefehlern in einem Softwareprodukt.
-
Einander entsprechende Teile sind in allen Figuren mit den gleichen Bezugszeichen versehen.
-
1 zeigt schematisch den Verlauf von prognostizierten Fehleranzahlen
e1 bis e8 bei der Entwicklung eines Softwareprodukts, die aufsteigenden Zeitpunkten
t1 bis t8 zugeordnet sind. Eine erste zeitkontinuierliche Schneidewind-Funktion
λ0 klingt ausgehend von einem nicht näher bezeichneten Ursprungsfehlerniveau eines Ursprungsrelease auf eine Fehleranzahl
e1 ab, welche zum Zeitpunkt
t1 erreicht wird. Zu den Zeitpunkten
t2 ,
t4 ,
t7 werden, jeweils mit einem Abstand
T1 ,
T2 ,
T3 gegenüber dem Ursprungsrelease, Änderungen in dem Softwareprodukt eingeführt, die jeweils einen Fehlerhub
H1 ,
H2 ,
H3 bewirken. Diese Fehlerhube
H1 ,
H2 ,
H3 klingen mit unabhängigen weiteren zeitkontinuierlichen Schneidewind - Funktionen λ
i,i = 1,2,3 ab. Die prognostizierte kumulative zeitkontinuierliche Schneidewind - Funktion
wird aus der additiven Überlagerung aller einzelnen Schneidewind - Funktionen λ
i,i = 0, ..., 3 ermittelt. Die prognostizierten Fehleranzahlen
e1 bis e8 ergeben sich als Funktionswerte der kumulativen zeitkontinuierlichen Schneidewind - Funktion
λges zu den jeweils zugeordneten Zeitpunkten
t1 bis t8 .
-
2 zeigt schematisch den Verlauf prognostizierter Fehleranzahlen e[n],n = 1,2,...10 für diskrete Zeitpunkte, wobei aufeinanderfolgende diskrete Zeitpunkte n,n + 1 jeweils um eine Woche versetzt sind. Selbstverständlich kann der Abstand zwischen aufeinanderfolgenden Zeitpunkten n,n + 1 auch anders gewählt sein, beispielsweise als Monatsabstand.
-
Zu den mit n
1 = 3, n
2 = 5, n
3 = 8 markierten Zeitpunkten im Abstand von
T1 ,
T2 beziehungsweise
T3 zu einem nicht näher dargestellten Ursprungsrelease werden Änderungen in dem Softwareprodukt eingeführt, die jeweils einen Fehlerhub
H1 ,
H2 ,
H3 bewirken. Diese Fehlerhube
H1 ,
H2 ,
H3 klingen mit unabhängigen weiteren zeitdiskreten Schneidewind - Funktionen Λ
i, i = 1,2,3 ab. Die prognostizierte kumulative zeitdiskrete Schneidewind - Funktion
wird aus der additiven Überlagerung aller einzelnen Schneidewind - Funktionen Λ
i,i = 0, ..., 3 ermittelt. Die prognostizierten Fehleranzahlen e[n],n = 1,2, ... 10 ergeben sich als Funktionswerte der kumulativen zeitdiskreten Schneidewind - Funktion
Λges zu den jeweils zugeordneten Zeitpunkten n = 1 ... 10.
-
3 zeigt schematisch den Aufbau einer Fehlerprognostiziervorrichtung 1 zur Prognostizierung der Anzahl von Softwarefehlern in einem Softwareprodukt. Die Vorrichtung 1 umfasst eine Verarbeitungseinheit 2, eine Speichereinheit 3 und eine Ein/Ausgabeeinheit 4, die über einen Bus 5 miteinander verbunden sind.
-
Bezugszeichenliste
-
- 1
- Fehlerprognostiziervorrichtung
- 2
- Verarbeitungseinheit
- 3
- Speichereinheit
- 4
- Ein/Ausgabeeinheit
- 5
- Bus
- λ0, λ1, λ2, λ3
- zeitkontinuierliche Schneidewind - Funktion
- Λ0, Λ1 Λ2, Λ3
- zeitdiskrete Schneidewind - Funktion
- λges
- zeitkontinuierliche kumulative Schneidewind - Funktion
- Λges
- zeitdiskrete kumulative Schneidewind - Funktion
- e1 bis e8
- Fehleranzahl
- H1, H2, H3
- Fehlerhub
- n
- Zeitpunkt
- t1 bis t8
- Zeitpunkt
- T1, T2, T3
- Abstand
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- DE 102014008551 A1 [0004]