| Teil einer Serie über |
| Softwareentwicklung |
|---|
In der Softwareentwicklung bezeichnet eine Softwaremetrik einen Standard zur Messung des Ausmaßes, in dem ein Softwaresystem oder -prozess eine bestimmte Eigenschaft aufweist. [ 1 ] [ 2 ] Obwohl eine Metrik keine Messung im eigentlichen Sinne ist (Metriken sind Funktionen, während Messungen die durch die Anwendung von Metriken gewonnenen Zahlen sind), werden die beiden Begriffe häufig synonym verwendet. Da quantitative Messungen in allen Wissenschaften unerlässlich sind, bemühen sich Informatiker und -theoretiker kontinuierlich darum, ähnliche Ansätze in die Softwareentwicklung zu übertragen. Ziel ist es, objektive, reproduzierbare und quantifizierbare Messungen zu erhalten, die zahlreiche wertvolle Anwendungen in der Termin- und Budgetplanung, Kostenschätzung, Qualitätssicherung, im Testen, im Debuggen von Software , in der Optimierung der Softwareleistung und in der optimalen Aufgabenverteilung für Mitarbeiter ermöglichen.
Gängige Software-Messungen
Gängige Software-Messgrößen sind:
- ABC-Software-Metrik
- Balanced Scorecard
- Fehler pro Codezeile
- Codeabdeckung
- Zusammenhalt
- Kommentardichte [ 3 ]
- Connascent-Softwarekomponenten
- Konstruktives Kostenmodell
- Kupplung
- Zyklomatische Komplexität (McCabe-Komplexität)
- Zyklomatische Komplexitätsdichte [ 4 ] [ 5 ]
- Fehlerdichte – gefundene Fehler im Verhältnis zur Größe einer Komponente, oft ausgedrückt als Fehler pro tausend Codezeilen (KLOC) [ 6 ].
- Fehlerpotenzial – erwartete Anzahl von Fehlern in einem bestimmten Bauteil
- Fehlerbeseitigungsrate
- DSQI (Design Structure Quality Index)
- Funktionspunkte und automatisierte Funktionspunkte, ein Standard der Object Management Group [ 7 ]
- Halstead-Komplexität
- Befehlspfadlänge
- Wartbarkeitsindex
- Quellcodezeilen - Anzahl der Codezeilen
- Programmausführungszeit
- Programmladezeit
- Programmgröße (binär)
- WEAVE-Wertung
- Gewichtete Mikro-Funktionspunkte
- Zykluszeit (Software)
- Ausbeute im ersten Durchgang
- Korrektur-Commit-Wahrscheinlichkeit [ 8 ]
Einschränkungen
Da die Softwareentwicklung ein komplexer Prozess mit stark variierenden Methoden und Zielen ist, ist es schwierig, Softwarequalitäten und -quantitäten zu definieren und zu messen sowie eine valide und gleichzeitig anwendbare Messmetrik zu bestimmen, insbesondere bei Prognosen vor der Detailplanung. Eine weitere Schwierigkeit und Diskussionsgrundlage besteht in der Frage, welche Metriken relevant sind und was sie bedeuten. [ 9 ] [ 10 ] Forscher argumentieren, dass gängige Softwaremetriken, die häufig in der akademischen Forschung propagiert werden, für die Entscheidungsfindung von Softwareentwicklern in der Praxis wenig hilfreich sind. [ 11 ] Der praktische Nutzen von Softwaremessungen beschränkt sich daher auf folgende Bereiche:
- Terminplanung
- Software-Dimensionierung
- Programmierkomplexität
- Aufwandsschätzung für die Softwareentwicklung
- Softwarequalität
Eine spezifische Messung kann auf einen oder mehrere der oben genannten Aspekte oder auf das Gleichgewicht zwischen ihnen abzielen, zum Beispiel als Indikator für die Teammotivation oder die Projektleistung.
Darüber hinaus unterscheiden sich die Metriken zwischen statischem und dynamischem Programmcode sowie für objektorientierte Software (Systeme). [ 12 ] [ 13 ]
Akzeptanz und öffentliche Meinung
Einige Softwareentwickler weisen darauf hin, dass vereinfachte Messmethoden mehr schaden als nutzen können. [ 14 ] Andere wiederum betonen, dass Metriken zu einem integralen Bestandteil des Softwareentwicklungsprozesses geworden sind. [ 9 ] Die Auswirkungen von Messungen auf die Psychologie von Programmierern haben Bedenken hinsichtlich negativer Folgen für die Leistung aufgrund von Stress, Leistungsangst und Manipulationsversuchen geweckt. Andere wiederum sehen positive Auswirkungen auf die Wertschätzung der Entwickler für ihre eigene Arbeit und sehen Schutz vor Unterbewertung. Manche argumentieren, dass die Definition vieler Messmethoden unpräzise sei und daher oft unklar bleibe, wie die Berechnungswerkzeuge zu einem bestimmten Ergebnis gelangen. [ 15 ] Andere wiederum halten eine unvollkommene Quantifizierung für besser als gar keine („Was man nicht messen kann, kann man nicht kontrollieren.“). [ 16 ] Studien belegen die breite Anwendung von Softwaremetriken durch Regierungsbehörden, das US-Militär, die NASA [ 17 ] , IT-Berater, akademische Einrichtungen [ 18 ] sowie kommerzielle und akademische Software zur Aufwandsschätzung .
Weiterführende Literatur
- J. Smith, Einführung in die lineare Programmierung , Acme Press, 2010. Ein einführendes Lehrbuch.
- Reijo M. Savola, Qualität von Sicherheitsmetriken und -messungen, Computers & Security, Band 37, September 2013, Seiten 78-90. [ 19 ]
Siehe auch
- Zielfrage-Metrik
- Liste der Werkzeuge zur statischen Codeanalyse
- Orthogonale Defektklassifizierung
- Softwareentwicklung
- Softwarepaket-Metriken
Referenzen
- ^ Fenton, Norman E. (2014). Softwaremetriken: Ein rigoroser und praktischer Ansatz . James Bieman (3. Aufl.). Boca Raton, FL. ISBN 978-1-4398-3823-5OCLC 834978252 .
{{cite book}}CS1 Wartung: Standort des fehlenden Herausgebers ( Link ) - ^ Timóteo, Aline Lopes; Álvaro, Re; Almeida, Eduardo Santana De; De, Silvio Romero; Meira, Lemos. Softwaremetriken: Eine Umfrage . CiteSeerX 10.1.1.544.2164 .
- ^ „Schwellenwerte für deskriptive Informationen (DI)-Metriken“ . Land Software Engineering Centre . Abgerufen am 19. Oktober 2010 .
{{cite web}}CS1-Wartung: Veralteter Archivierungsdienst ( Link ) - ^ Gill, GK; Kemerer, CF (Dezember 1991). „Zyklomatische Komplexitätsdichte und Produktivität der Softwarewartung“. IEEE Transactions on Software Engineering . 17 (12): 1284–1288 . doi : 10.1109/32.106988 . ISSN 1939-3520 .
- ^ „Wartbarkeit – Ist es sinnvoll, das Verhältnis von zyklomatischer Komplexität zu Codezeilen zu berechnen?“ . Software Engineering Stack Exchange . Abgerufen am 1. März 2021 .
- ^ „Was ist Defektdichte?“ . Testing Radar . 2. Juni 2026 . Abgerufen am 5. Juni 2026 .
- ^ „OMG führt automatisierte Funktionspunktspezifikation ein“ . Omg.org. 17.01.2013 . Abgerufen am 19.05.2013 .
- ^ Amit, Idan; Feitelson, Dror G. (2020-07-21). „The Corrective Commit Probability Code Quality Metric“. arXiv : 2007.10912 [ cs.SE ].
- ^ a b Binstock, Andrew (März 2010). „Integration Watch: Using metrics effective“ . SD Times . BZ Media . Abgerufen am 19. Oktober 2010 .
- ^ Kolawa, Adam (7. August 2008). „Wann, warum und wie: Codeanalyse“ . The Code Project . Abgerufen am 14. Februar 2021 .
- ^ Tempero, Ewan; Ralph, Paul (16.03.2026). „Making Software Metrics Useful“ . arXiv.org . Abgerufen am 20.03.2026 .
- ^ Gosain, Anjana; Sharma, Ganga (2015). „Dynamische Softwaremetriken für objektorientierte Software: Ein Überblick“ . In: Mandal, JK; Satapathy, Suresh Chandra; Kumar Sanyal, Manas; Sarkar, Partha Pratim; Mukhopadhyay, Anirban (Hrsg.). Information Systems Design and Intelligent Applications . Advances in Intelligent Systems and Computing. Band 340. New Delhi: Springer India. S. 579–589 . doi : 10.1007/978-81-322-2247-7_59 . ISBN 978-81-322-2247-7Die
- ^ S, Parvinder Singh; Singh, Gurdev. Dynamische Metriken für Polymorphismus in objektorientierten Systemen . CiteSeerX 10.1.1.193.4307 .
- ^ Kaner, Dr. Cem (2004), Software Engineer Metrics: What do they measure and how do we know? , CiteSeerX 10.1.1.1.2542
- ^ Lincke, Rüdiger; Lundberg, Jonas; Löwe, Welf (2008), „Comparing software metrics tools“ (PDF) , International Symposium on Software Testing and Analysis 2008 , S. 131–142
- ^ DeMarco, Tom (1982). Controlling Software Projects: Management, Measurement and Estimation . Yourdon Press. ISBN 0-13-171711-1Die
- ^ „NASA Metrics Planning and Reporting Working Group (MPARWG)“ . Earthdata.nasa.gov. Archiviert vom Original am 22.10.2011 . Abgerufen am 19.05.2013 .
- ^ „USC Center for Systems and Software Engineering“ . Sunset.usc.edu . Abgerufen am 19.05.2013 .
- ^ Savola, Reijo M. (2013-09-01). „Qualität von Sicherheitsmetriken und -messungen“ . Computers & Security . 37 : 78–90 . doi : 10.1016/j.cose.2013.05.002 . ISSN 0167-4048 .
Externe Links
- Softwaremetriken (SQA.net)
- Kennzahlen für die Softwareentwicklung: Was messen sie und wie erkennen wir, was sie bedeuten?
- NASA-Standard NASA-STD-8739.8 (Standard für Software-Sicherheit und -Qualitätssicherung)
- HIS-Quellcode-Metriken ( veraltet, aber als Referenz ; siehe auch AUTOSAR )
- HIS Source Code Metrics Version 1.3.1 01.04.2008 ( veraltet, aber als Referenz ; siehe auch AUTOSAR )
- Ein Rahmenwerk für Quellcode-Metriken
- NASA.gov
- SonarQube-Metrikdefinitionen
- Metriken objektorientierter Software (2010)