Zum Inhalt springen

Qualitätssicherung im Softwareprozess


DerLenny

519 Aufrufe

 Teilen

Ich habe gestern angefangen den Kurs "Qualitätssicherung im Softwareprozess" zu bearbeiten.

 

Einer der ersten Punkte ist die Qualitätsmanagement definieren.

 

Qualitätsmanagement

  • konstruktives Qualitätsmanagement - Definition der Qualitätseigenschaften der Produkte und Prozesse definieren (a priori)
  • analytisches Qualitätsmanagement - Maßnahmen zur Prüfung und Bewertung des aktuellen Qualitätsniveaus (ex post)
    • analysierende Verfahren: Untersuchung des Prüflings anhand statischer Kriterien
    • dynamische Verfahren: Testen des Prüflings

 

Merke:

 "Durch vorausschauendes konstruktives Qualitätsmanagement kann der Aufwand im analytischen Qualitätsmanagement reduziert werden." (S.15).

 

Ein analysierendes Verfahren wäre zum Beispiel zu prüfen wie gut das Skript durch Quellen gesichert ist.

1947424682_ref_QualittssicherungimSoftwareprozess(IQSS01).png.f2872ce649ed4705d732b6945c5a3806.png

 

Gehen wir jetzt mal zum dynamischen Verfahren, und testen mal, ob das passt was so im Skript steht.

Im Teams Kanal wird oft Seite 62 angesprochen. Hier findet sich folgendes:

877052188_ScreenShot2022-02-09at14_38_46.thumb.png.4fff21d107f0875bd331abb0ac0f5b22.png

 

Nutzt man das Skript selbst als Betrachtungsgegenstand, so fallen an diesem Beispiel zwei Dinge auf:

  • Die Metrik sollte "Halstead-Metrik" heissen, nach Maurice Howard Halstead.
  • Der Quellcode ist fehlerhaft.

 

Kurz vor dem Beispiel fände sich dann auch noch eine unötige Referenz von Sekundärliteratur (Balzert statt Halstead). Interessanter ist jedoch der Teil danach.

 

Denn hier werden die Größen für das gegebene Beispiel genannt - und genau hier haben viele Studierende dann Probleme das nachvollziehen zu können.

700982763_ScreenShot2022-02-09at15_09_31.thumb.png.4d35f16e961b8822dc8cdce0c4515bf2.png

 

Warum haben sie diese Probleme? Naja, lässt man mal ein Tool über die Datei laufen, dann bekommt man folgendes Ergebnis:

Zitat

Operators count:      26.00     
Distinct operators:   13.00     
Operands count:       13.00     
Distinct operands:    5.00      
Program length:       39.00     
Program vocabulary:   18.00     
Volume:               162.63    
Difficulty:           16.90     
Effort                2439.41

 

 

Nun kann man argumentieren, dass man ja hier "irgendwie anders" gezählt hat (was auch getan wird) - doof ist nur, dass nicht definiert ist, wie man denn zählen soll. Es ist ja auch keine Quelle angegeben. Oder das Skript an sich aussagekräftig genug.

 

Und dies im Skript "Qualitätssicherung im Softwareprozess" welches schon seit mindestens 2017 im Umlauf ist. 

 

Bearbeitet von DerLenny
Schreibfehler korrigiert

 Teilen

13 Kommentare


Empfohlene Kommentare

QS dient ja erstmal nicht der Hervorbringung von optimalen (oder sogar guten?) Ergebnissen. Der Hauptzweck eines QMS ist an erster Stelle das Delegieren der Verantwortung.

Link zu diesem Kommentar
DerLenny

Geschrieben

vor 6 Minuten schrieb WiInfo:

QS dient ja erstmal nicht der Hervorbringung von optimalen (oder sogar guten?) Ergebnissen. Der Hauptzweck eines QMS ist an erster Stelle das Delegieren der Verantwortung.

Ich zitiere hier mal das Skript:

"Unter dem Begriff Qualitätsmanagement (kurz: QM) werden alle organisierten Maßnahmen zusammengefasst, die der Verbesserung der Qualität von Produkten, Prozessen oder Leistungen jeglicher Art dienen. "
 

Link zu diesem Kommentar
vor einer Stunde schrieb DerLenny:

Ich zitiere hier mal das Skript:

"Unter dem Begriff Qualitätsmanagement (kurz: QM) werden alle organisierten Maßnahmen zusammengefasst, die der Verbesserung der Qualität von Produkten, Prozessen oder Leistungen jeglicher Art dienen. "

Ein schöner Gedanke. 😉

Wird in dem Skript auch ausgeführt, was den nun diese "Qualität" überhaupt ist? Wird gar ein Zusammenhang mit Kosten-Rechnungen hergestellt?

Link zu diesem Kommentar
DerLenny

Geschrieben

Ich habe glaube ich herausgefunden, wie man auf die Werte im Skript kommt.

Wenn man so tut, als ob der Code passen würde (also mental die beiden Kommas durch Semikolons ersetzt) und dann die Regel für Funktions Deklarationen ignoriert, dann kommt man auf die Werte im Skript.

 

Aktuell bin ich ja schon froh, wenn ich irgendwie nachvollziehen kann,w as gewünscht ist. 

Ob es stimmt oder nicht ist ja inzwischen eher so ne Nebensache

Link zu diesem Kommentar
vor 34 Minuten schrieb DerLenny:

Aktuell bin ich ja schon froh, wenn ich irgendwie nachvollziehen kann,w as gewünscht ist. 

Ob es stimmt oder nicht ist ja inzwischen eher so ne Nebensache

Genauso so könnte man "Qualität" an sich schon ziemlich gut beschreiben. 😉

Link zu diesem Kommentar
schnitzelcoder

Geschrieben (bearbeitet)

Das Code Beispiel ist der Wahnsinn...

 

Mal abgesehen von den Beistrichen anstatt der Semikolons ist auch das Inkrementieren des Schleifenzählers an der falschen Stelle.

 

Wie kann man in so einem kleinen Snippet so viele Fehler einbauen.

Bearbeitet von schnitzelcoder
Link zu diesem Kommentar
DerLenny

Geschrieben (bearbeitet)

vor 39 Minuten schrieb schnitzelcoder:

Wie kann man in so einem kleinen Snippet so viele Fehler einbauen.

Die Tutorin meint, man würde die Kommas nicht zählen, da diese nur Anweisungen von einander trennen.

Warum man dann die Semikolons zählt, konnte sie nicht beantworten.

So rein vom Look her (und wenn man die falsche for-Schleife ignoriert), könnte es C/C++ oder Java sein.
In C/C++ ist das Komma aber offiziell ein Operator (was ein Ausschließen extrem unwahrscheinlich machen würde) und in Java gehört das Komma wie das Semikolon und die Braces zu den Separators - die ja nach ihrer Aussage nicht gezählt werden.
Oder es werden nur manche gezählt? Keine Ahnung, es gibt dazu auch nichts Konkretes im Skript zu. Mein Tipp ist ja, dass es halt 2 Kommas gibt, die Angabe im Skript 2 daneben ist und es daher erstmal die einfachste Erklärung ist und niemand mehr weiss, was hier eigentlich gedacht war, aber man auch nicht die Zeit investieren möchte, das mal gerade zuziehen.

 

Laut der Primärliteratur würden Funktions Deklarationen auch nicht gezählt werden, nur der Code in Methoden Bodies und Aufrufe der Methode. Sie meinte allerdings, das wäre in der Sekundärliteratur anders geregelt.

Zum Glück ist die zitierte Sekundärliteratur etwas älter - hab mir das mal für 5 Eur gebraucht bestellt und schau mal,  was da drin steht. Zumindest in der neueren Version der Literatur ist zumindest der Name der Metrik korrekt geschrieben, mehr kann ich noch nicht sagen.

 

 

 

 

Bearbeitet von DerLenny
Link zu diesem Kommentar
vor einer Stunde schrieb DerLenny:

So rein vom Look her (und wenn man die falsche for-Schleife ignoriert), könnte es C/C++ oder Java sein.

Ich dachte das Beispiel wäre nur irgendein Pseude-Code. Worum geht es jetzt da eigentlich?

Link zu diesem Kommentar
DerLenny

Geschrieben

Statische Qualitätsmetriken. Ursprünglich für C. Würde dann die C++ und Java erweitert.

 

Der Prüfcode muss auf die Sprache angepasst sein- d.h. bei einem manuellen Prüfung muss man auch die Sprache kennen.

Link zu diesem Kommentar
DerLenny

Geschrieben

vor 11 Stunden schrieb schnitzelcoder:

Wie kann man in so einem kleinen Snippet so viele Fehler einbauen.

 

Der Code ist grandios. Die Schleife tut nicht und man hätte es als Einzeiler mit linearer Laufzeit implementieren können. Gut, es ist nur Beispiel Code um die (konstant falschgeschriebene) Metrik zu erläutern aber man hätte doch ein korrektes Beispiel nehmen können, das nicht auch noch unnötig  inperformant ist. Kein Plan, nen right padding oder so.

 

In nem Skript zur Qualitätssicherung im Softwareprozess fällt so Code halt auch noch mal derber auf.

Wäre wenigstens die Metrik korrekt geschrieben (um die es ja hier wirklich geht), dann würde ich den Code ignorieren. Hier ist der Name des Themas falsch benannt, der Code falsch und die Ergebnisse in der Tabelle entweder falsch oder inkonsistent, oder wie auch immer.

 

Ich hab inzwischen die Primär- und die im Skript genutzte Sekundärquelle bestellt. Evtl. kommt dann ja etwas Licht ins Dunkel.

Link zu diesem Kommentar

Ah ok jetzt versteh ich das Thema besser. Bin da gestern gedanklich ganz woanders abgebogen.

 

vor 3 Stunden schrieb DerLenny:

Der Code ist grandios. Die Schleife tut nicht und man hätte es als Einzeiler mit linearer Laufzeit implementieren können. Gut, es ist nur Beispiel Code um die (konstant falschgeschriebene) Metrik zu erläutern aber man hätte doch ein korrektes Beispiel nehmen können, das nicht auch noch unnötig  inperformant ist. Kein Plan, nen right padding oder so.

Man hätte es ja auch rekursiv machen können. Hm, wie deren Variante dazu aussehen würde. 😉

 

vor 3 Stunden schrieb DerLenny:

In nem Skript zur Qualitätssicherung im Softwareprozess fällt so Code halt auch noch mal derber auf.

Naja, es ist sozusagen dann wirklich etwas peinlicher. Was ich zunächst überlesen habe, ist das Skript auch schon 5 Jahre alt ist. Bei der Fernuni in Hagen hatte ich auch mal so ein Skripte-Reihe voll Fehler und Ungereimtheiten. Die waren auch schon gut 3-4 Jahre im Umlauf. Wobei der Modulbetreuer die elektronische Ausgabe der Skripte meist innerhalb weniger Stunden verbessert hat, wenn jemand es gemeldet hat (über Newsgroup).

 

vor 3 Stunden schrieb DerLenny:

Wäre wenigstens die Metrik korrekt geschrieben (um die es ja hier wirklich geht), dann würde ich den Code ignorieren. Hier ist der Name des Themas falsch benannt, der Code falsch und die Ergebnisse in der Tabelle entweder falsch oder inkonsistent, oder wie auch immer.

 

Ich hab inzwischen die Primär- und die im Skript genutzte Sekundärquelle bestellt. Evtl. kommt dann ja etwas Licht ins Dunkel.

Da warte ich mal gespannt auf Deine Rückmeldung.

 

Auch bei Büchern von eigentlich renommierten Verlagen wird ja inzwischen allerlei Schund gedruckt. Von Seiten des Verlags wird kein fachliches Lektorat vorgegeben und es ist in der Verantwortung der Autoren. Auch hier immer weniger Qualitätssicherung.

 

Wobei auch die Autoren (gerade bei Sammelwerken) auch gerne konstruktive Kritik komplett ablehnen. Und das selbst während der Entstehungszeit des Buches.

 

Aber auch danach wurde mal ein Autor eines bedeutenden Standardwerks der Elektrotechnik bei der Diskussion zu Amazon-Rezensionen wirklich pampig. Eine niedrige Sterne-Bewertung eines Rezensenten wäre ja ungerechtfertigt, nur weil sie [die Autoren] bei einem neuem Kapitel nur vergessen hätten die Autokorrektur von Word zu verwenden. 🤣

Link zu diesem Kommentar
DerLenny

Geschrieben (bearbeitet)

Im Balzert werden Kommas explizit gezählt.
Der Quellcode im Balzert ist lauffähig.
Im Balzert wird Halstead korrekt geschrieben.
 
halstead.thumb.png.a9d364bd0aaf8c639a4eb5f1f64b21eb.png
 
Bin gespannt, ob die Fehler weiter verteidigt werden, oder ob es eine Änderung gibt.
Ich bin auch interessiert zu erfahren, warum es in einem Kurs mit Qualitätssicherung in Namen so schwer ist, Fehler anzunehmen und zu korrigieren.
 
Fehler sind ja kein Ding. Darauf zu beharren, dass es korrekt ist und dann mit wirklich üblen und nicht haltbaren Begründungen zu kommen, warum es doch korrekt ist - das ist wirklich sehr weit weg von ideal.
 
Oh - der Kurs ist 7 Jahre alt.
Ich habe bisher nur die erste Lektion bearbeitet und nur auf die Stelle gekuckt, weil sie ein ständiges Thema im Course Feed ist.
Bearbeitet von DerLenny
Link zu diesem Kommentar
DerLenny

Geschrieben

Evtl. wird hier etwas angepasst - zumindest soll Halstead korrekt geschrieben werden.

Ob die anderen Punkte gefixed werden ist aktuell noch nicht bekannt.

 

Link zu diesem Kommentar

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden


×
×
  • Neu erstellen...