Seidl / Baumgartner / Sneed | Software-Metriken | E-Book | sack.de
E-Book

E-Book, Deutsch, 356 Seiten

Seidl / Baumgartner / Sneed Software-Metriken

Die Vermessung von Applikationen
2. überarbeitete Auflage 2024
ISBN: 978-3-446-47853-4
Verlag: Hanser, Carl
Format: PDF
Kopierschutz: 1 - PDF Watermark

Die Vermessung von Applikationen

E-Book, Deutsch, 356 Seiten

ISBN: 978-3-446-47853-4
Verlag: Hanser, Carl
Format: PDF
Kopierschutz: 1 - PDF Watermark



GUT GEMESSEN, SCHON GEWONNEN

- Erfahren Sie, wie Software in den drei Dimensionen Quantität, Komplexität und Qualität gemessen werden kann.

- Lernen Sie Methoden zur besseren Planung, Schätzung und Steuerung von Softwareprojekten kennen.

- Profitieren Sie von vielfach in der Praxis bewährten Software- und Projekt-Metriken.

- Die zahlreichen Beispiele, Tipps und Best Practices aus der Erfahrung der Autoren helfen Ihnen, diese auf ihre Projekte anzuwenden.

- Neu in der 2. Auflage: Berücksichtigung aktueller Entwicklungen im Bereich der Metriken und deren Bedeutung in DevOps und Agilität.

- Ihr exklusiver Vorteil: E-Book inside beim Kauf des gedruckten Buches

Metriken und Messgrößen werden in der Regel verwendet, um einen Zustand, Mengen und Volumina, physikalische und zeitliche Größen, Relationen, Abweichungen und Veränderungen zu ermitteln. Aus den Ergebnissen kann man den Ist-Zustand und die Vergangenheit bewerten und Ableitungen für die Zukunft ziehen. Die Software- und Projekt-Metriken in diesem Buch helfen in vielen Situationen, ein tieferes Verständnis der Ausganglage und fundierte Informationen für die Planung und Steuerung von traditionellen und agilen Softwareprojekten zu gewinnen. Für die Wartung oder Weiterentwicklung eines Softwaresystems oder dessen Neuentwicklung ist eine gute Bestandsaufnahme und Bewertung der Software eine wichtige Entscheidungsgrundlage. Das Wissen um die eigene Produktivität und Effizienz auf der Basis verlässlicher Informationen ist essenziell für die Optimierung der gewählten Vorgehensweise.

In diesem Praxisbuch finden Sie Methoden und Metriken, um Softwareartefakte von den Anforderungen über das Softwaredesign und den Code bis hin zu den Testmitteln in den drei Dimensionen Quantität, Komplexität und Qualität zu messen und zu bewerten. Sie helfen Ihnen, Projekte besser zu gestalten, einen Überblick über Produkte und Legacy-Systeme zu erhalten und den Projektfortschritt besser zu verwalten.

AUS DEM INHALT //

- Softwaremessung

- Softwarequantität

- Softwarekomplexität

- Die Messung der Softwarequalität

- Anforderungsmessung

- Entwurfsmessung

- Codemetrik

- Testmetrik

- Produktivitätsmessung in der Softwareentwicklung

- Die Messung der Wartungsproduktivität

- Softwaremessung in der Praxis

Seidl / Baumgartner / Sneed Software-Metriken jetzt bestellen!

Weitere Infos & Material


1 Softwaremessung 1.1 Das Wesen von Software Software ist Sprache. Sie dient der Kommunikation zwischen den Menschen und Rechnern ebenso wie zwischen Rechnern und Rechnern und zwischen Menschen und Menschen (siehe Bild 1.1). Programmcode ist jene Sprache, in der der Mensch der Maschine Anweisungen erteilt. Der Mensch schreibt den Code, der Rechner liest ihn. Er muss sowohl von den Menschen als auch vom Rechner, in diesem Fall dem Compiler, verstanden werden [DeLi99]. Bild 1.1 Software als Kommunikation zwischen Mensch und Maschine Anforderungsspezifikationen und Entwurfsdiagramme sind ebenfalls Software, also auch Sprachen. Sie dienen der Kommunikation zwischen Menschen. Der eine Mensch schreibt sie, z. B. der Analytiker, der andere Mensch – der Programmierer – liest sie. Wenn sie nicht für beide Seiten verständlich sind, haben sie ihren Zweck verfehlt. Eine Spezifikation, die von einem Rechner interpretiert werden kann, z. B. eine domänenspezifische Sprache, ist zugleich eine Kommunikation zwischen Mensch und Rechner, ähnlich dem Programmcode. Kommunikationsprotokolle wie XML-Dateien und Web-Service SOAP-Nachrichten sind desgleichen Software. Sie dienen der Kommunikation zwischen Rechnern. Der eine Rechner schreibt sie, der andere liest sie. Sie muss daher von beiden Rechnern verstanden werden. Ein Protokoll ist eine Vereinbarung zwischen zwei Rechnerarten, wie sie sich verständigen wollen, ebenso wie eine Sprache eine Vereinbarung zwischen Menschen ist, die sich verständigen wollen. Natursprachen sind aus dem Zusammenleben der Menschen heraus erwachsen. Programmier-, Spezifikations- und Testsprachen sind wiederum aus dem Zusammenleben der Menschen mit Computern hervorgegangen [Rose67]. Wenn es nun um die Messung und Erforschung von Software geht, geht es also um die Analyse und Bewertung von Sprachen und den in diesen Sprachen geschriebenen Werken. Eine Rechnersprache besteht genauso wie eine Sprache der Menschen aus Begriffen und Regeln für die Zusammensetzung jener Begriffe. Der Umfang einer Sprache wird an der Anzahl ihrer Begriffe bzw. Wörter gemessen. Oft legen Schüler Wörterbücher zweier unterschiedlicher Sprachen nebeneinander, um zu sehen, welches dicker ist. Dies ist in der Tat eine sehr grobe Messung des Sprachumfangs und setzt voraus, dass die Seitenaufteilung und die Schriftgröße gleich sind, aber sie ist nichtsdestotrotz eine Messung. Genauer wäre es, die Worteinträge zu zählen und zu vergleichen, aber auch hier ist die Messung ungenau, denn wer weiß, ob in den Wörterbüchern alle möglichen Wörter in beiden Sprachen berücksichtigt sind? Die Zählung der Wörter ist auf jeden Fall genauer als der Vergleich der beiden Wörterbücher. Das Gleiche gilt für Softwaresprachen. Ihr Umfang in vereinbarten Begriffen bzw. Symbolen lässt sich grob und fein vergleichen [LiGu88]. Aber nicht nur die Sprachen selbst können gemessen und miteinander verglichen werden. Auch die Ergebnisse von Sprache wie zum Beispiel Theaterstücke, Bücher, Essays etc. können nach unterschiedlichen Kriterien und zu unterschiedlichen Zwecken gemessen werden. Ist die Schularbeit lang genug? Durch Zählung der Wörter erhält man die Antwort. Warum ist das Buch „Die Buddenbrooks“ von Thomas Mann schwerer zu lesen als Astrid Lindgrens „Pippi Langstrumpf“ und kann man den Unterschied messen? Der Umfang alleine scheint dafür nicht der Grund zu sein und die Zählung der Seiten oder Worte wohl eine zu einfache Erklärung. Sind die Sätze durchschnittlich länger? Haben die beiden Werke einen unterschiedlichen Wortschatz? Wenn jedes Wort, welches mehrfach vorkommt, nur einmal gezählt wird, hätten wir das Vokabular des Schriftstücks. Ähnlich verfuhr M. Halstead, als er begann, Programmcode zu messen [Hals77]. Er zählte alle Wörter, also Operatoren und Operanden, um die Programmlänge zu ermitteln, und zählte jedes verwendete Wort, um das Programmvokabular zu bestimmen. Daraus berechnete er einen Wert für die Schwierigkeit, ein Programm zu verstehen. Wäre eine Sprache nur eine beliebige Aneinanderreihung von Begriffen, könnte man sich mit der Messung der Größe zufriedengeben. Aber eine Sprache hat auch eine Grammatik. Darin befinden sich die Regeln für die Zusammensetzung der Wörter. Den Wörtern werden Rollen zugewiesen. Es gibt Hauptwörter, Eigenschaftswörter, Zeitwörter usw. Ähnliche Regeln gibt es auch in der Software. Für jede Sprache – Spezifikationssprache, Entwurfssprache, Programmiersprache und Testsprache – gibt es Regeln, wie die Wörter und Symbole verwendet werden können. Man spricht hier von der Syntax der Sprache. Mit der Syntax kommt die Komplexität. Je nachdem, wie umfangreich die Regeln sind, ergeben sich mehr oder weniger mögliche Wortkonstrukte. Je mehr Wortkonstrukte möglich sind, desto komplexer ist die Sprache. Durch den Vergleich der Grammatik bzw. der Sprachregel ist es möglich, die Komplexität der Sprachen zu vergleichen. Dies trifft für Deutsch, Englisch und Latein ebenso zu wie für COBOL, Java, UML und VDM. Erschwert wird dies allerdings durch die informale Definition der Regeln und den vielen erlaubten Ausnahmen für die Sprache. In der Softwarewelt wird der Vergleich durch die vielen herstellerspezifischen Abweichungen erschwert. Es gibt kaum eine bekannte Softwaresprache, von der es nicht eine Reihe von Derivaten, sprich Dialekte gibt, die sich mehr oder weniger stark unterscheiden [Jone01]. In natürlichen Sprachen gibt es das Kunstwerk Satz: Das ist eine Zusammensetzung von Wörtern nach einem geregelten Muster. Ein Satz hat ein Subjekt, ein Objekt und ein Prädikat. Subjekt und Objekt sind Operanden bzw. Hauptwörter. Sie können durch Eigenschaftswörter ergänzt werden. Die Prädikate, sprich Zeitwörter, können gleichfalls Eigenschaftswörter haben, welche die Handlung ergänzen. Diese Wortarten müssen in einem gewissen Satzmuster vorkommen, um einen sinnvollen Satz zu bilden. Je mehr Muster zugelassen sind, desto komplexer die Satzbildung. In Softwaresprachen entspricht der Satz einer Anweisung. Auch hier gibt es Syntaxregeln für die Satzbildung. Es gibt Operanden (= Objekte) und Operatoren (= Prädikate). Das Subjekt fehlt. Es wird impliziert als die ausführende Maschine. Der Rechner oder das System liest eine Datei, errechnet Datenwerte, vergleicht zwei Werte oder sendet Nachrichten. Je nachdem, wie viele Anweisungsarten eine Sprache hat, ist sie mehr oder weniger komplex. Die Zahl der einzelnen Anweisungen ist wie die Zahl der Sätze im Prosatext ein Größenmaß. Die Zahl der verschiedenen Anweisungsarten ist wiederum ein Komplexitätsmaß. Sie deutet auf die Komplexität der Sprache bzw. der jeweiligen Sprachanwendung hin. Sprachen lassen sich in Form von Syntaxbäumen oder Netzdiagrammen darstellen. Peter Chen hat bewiesen, dass sich jeder Sprachtext, auch in einer natürlichen Sprache, mit einem „Entity/Relationship-Diagramm“ abbilden lässt [Chen76]. Die Begriffe sind die Entitäten, die Zusammensetzung der Begriffe ergeben die Beziehungen. Ursprünglich war das E/R Model für die Datenmodellierung gedacht, wobei die Entitäten die Datenobjekte sind. Es lässt sich jedoch genauso gut für die Funktionsmodellierung verwenden, wobei hier die Entitäten die Funktionen sind. Die Zahl der Entitäten bestimmt die Größe einer Beschreibung. Die Zahl der Beziehungen bestimmt deren Komplexität. Je mehr Beziehungen es zwischen Entitäten relativ zur Anzahl der Entitäten gibt, desto komplexer ist die Beschreibung. Sprachen sind Beschreibungsmittel. Ihr Umfang hängt von der Zahl ihrer Begriffe, sprich den Entitäten ab. Ihre Komplexität hängt wiederum von der Zahl ihrer erlaubten Konstrukte bzw. möglichen Beziehungen zwischen ihren Begriffen ab. Eine Sprachanwendung ist eine ganz bestimmte Beschreibung. Softwaresysteme sind letztendlich nur Beschreibungen. Die Anforderungsspezifikation ist die Beschreibung einer fachlichen Lösung zu einem Zielproblem. Der Systementwurf, z. B. ein UML-Modell, ist die Beschreibung einer rechnerischen Lösung zum Zielproblem, die an die fachliche Beschreibung angelehnt werden sollte [ErPe00]. Der Programmcode ist ebenfalls nur eine Beschreibung, allerdings eine sehr detaillierte Beschreibung der technischen Lösung eines fachlichen Problems, das mehr oder weniger der Entwurfsbeschreibung und der Anforderungsbeschreibung entspricht. Schließlich ist die Testspezifikation nochmals eine Beschreibung dessen, wie sich die Software verhalten sollte. Alle diese Beschreibungen ähneln den Schatten in Platons Höhlengleichnis [Plat06]. Sie sind nur abstrakte Darstellungen eines Objekts, das wir in Wahrheit gar nicht wahrnehmen können. Zum einen handelt es sich um abstrakte Darstellungen konkreter Vorstellungen und Anforderungen seitens eines Kunden an ein Softwaresystem, zum anderen um Beschreibungen von...


Seidl, Richard
Richard Seidl ist seit über 20 Jahren als Softwaretest-Experte und Agile Quality Coach in Deutschland und Österreich tätig.

Sneed, Harry M.
Harry M. Sneed ist ein Pionier des Softwaretestens im deutschsprachigen Raum, wofür er auch mit dem Deutschen Preis für Softwarequalität ausgezeichnet wurde.

Baumgartner, Manfred
Manfred Baumgartner ist seit Beginn seiner beruflichen Laufbahn im Bereich der Software-Qualitätssicherung tätig und arbeitet als Berater bei der Nagarro GmbH in Wien.

Richard Seidl ist seit über 20 Jahren als Softwaretest-Experte und Agile Quality Coach in Deutschland und Österreich tätig.
Manfred Baumgartner ist seit Beginn seiner beruflichen Laufbahn im Bereich der Software-Qualitätssicherung tätig und arbeitet als Berater bei der Nagarro GmbH in Wien.
Harry M. Sneed ist ein Pionier des Softwaretestens im deutschsprachigen Raum, wofür er auch mit dem Deutschen Preis für Softwarequalität ausgezeichnet wurde.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.