Messung und Bewertung der Code Qualität in Softwareprojekten Trusted Product Maintainability

Die Seite wird erstellt Silvester Keßler
 
WEITER LESEN
Messung und Bewertung der Code Qualität in Softwareprojekten Trusted Product Maintainability
Messung und Bewertung
der Code Qualität in
Softwareprojekten

Trusted Product Maintainability
Inhalt
1     Messung und Bewertung der Code Qualität             1
1.1   Gründe für die Bewertung von Code Qualität          1
1.2   Messung der Code Qualität                           2
1.3   Evaluation durch Experten                           2
2     Qualitätssicherung von Source Code                  3
2.1   Software Risk Assessment                            3
2.2   Ablauf eines Software Risk Assessment               5
2.3   Benchmarking der Ergebnisse                         6
2.4   Voraussetzungen für ein Software Risk Assessment    6
2.5   Software Risk Monitoring                            6
2.6   Code Qualität und Wartbarkeit – TÜViT Trusted
      Product Maintainability                             7
3     Firmenprofile                                       9
3.1   Über TÜViT                                          9
3.2   Über Software Improvement Group                    12
4     Ansprechpartner                                    14
1      Messung und Bewertung der Code Qualität

1.1    Gründe für die Bewertung von Code Qualität

Wichtige Einflussfaktoren für spätere Wartungsaufwände werden bei
einem großen Softwaresystem bereits zur Entwicklungszeit festgelegt.
Neben einer wartungsfreundlichen und durchdachten Architektur
bestimmt vor allem die Qualität des Code darüber, ob ein System leicht
verständlich, einfach durchschaubar und damit ohne gr oße Aufwände
anpassbar ist. Komplizierte Prozeduren, überlange Module, fehlende
Kommentierungen oder Verstöße gegen Codingstandards erschweren
dagegen den Durchblick und damit spätere Anpassungen durch das
Wartungsteam.

Organisationen, die Software entwickeln oder Entwicklungen in Auftrag
geben und überwachen, profitieren daher von einer Erfassung der Code
Qualität in ihrem Projekt. Mit einer unabhängigen Qualitätsmessung sind
sie in der Lage, Projekte wirkungsvoll auf bessere Wartbarkeit hin zu
steuern und negative Überraschungen bei der Code Qualität zu
vermeiden.

In Auswahlentscheidungen erlaubt eine Messung der Code Qualität,
denjenigen Anbieter auszuwählen, der das hinsichtlich Wartbarkeit besser
implementierte Produkt anbietet. Kritische Module können somit leichter
identifiziert, ggf. aus dem Vertrag ausgenommen und auf diese Weise
Wartungsaufwände minimiert werden.

Softwareanbieter können schließlich mit einer von unabhängiger Seite
bestätigten Messung der Code Qualität ihren Kunden nachweisen, dass
sie hohe Qualitätsstandards nicht nur an die Funktionalität ihres Produkts
anlegen, sondern auch jene inneren Werte optimieren, die entscheidend
für die späteren Wartungskosten sind.

Trusted Product Maintainability                                  Seite 1 | 14
© TÜV Informationstechnik GmbH
1.2    Messung der Code Qualität

Für die Messung von Code Qualität stehen in der Informatik Code
Metriken zur Verfügung. Mit Software Metriken bestimmt man aus dem
Source Code aussagekräftige Maßzahlen mit Hilfe eindeutiger und
jederzeit wiederholbarer Berechnungsregeln, die anerkannte Qualitäts-
aspekte abbilden. Vorteil solcher Maßzahlen ist, dass sie sowohl das
ganze System als auch beliebige Teilsysteme bewert bar machen. Es
kann somit sichergestellt werden, dass das gesamte System in eine
Analyse einfließt und qualitativ schlechtere Teile der Betrachtung nicht
entzogen werden. Stichprobenfehler durch Konzentration auf bestimmte
Systemteile werden so vermieden.

1.3    Evaluation durch Experten

Die Stärke von Code Metriken ist die eindeutige, wiederholbare
Berechnung der Code Qualität von Modulen, Teil- oder Gesamtsystemen.
Allerdings  sind  auch     objektiv gemessene     Metriken  nur  mit
Anwendungserfahrung aussagekräftig einsetzbar, wenn z.B. bekannt ist,
welche Werte für hohe Qualität stehen, wann niedrige Werte (noch)
akzeptabel sind oder was ähnliche Projekte mit vergleichbaren
Aufgabenstellungen erreicht haben.

Daher wird ein Software Risk Assessment stets von erfahrenen Beratern
ausgeführt, die zunächst den Projekthintergrund analysieren. Erst danach
werden die Maßzahlen erhoben, interpretiert, in den Projektkontext
eingeordnet, mit Branchenbenchmarks verglichen und ausführlich
erläutert. Durch die methodische Kombination von Maßzahlen der Code
Qualität mit den Ergebnissen der Exper tenevaluation ergibt sich ein
Informationsvorteil gegenüber Beratungsansätzen, die nur auf die
Expertenanalyse setzen.

Trusted Product Maintainability                                Seite 2 | 14
© TÜV Informationstechnik GmbH
2      Qualitätssicherung von Source Code

2.1    Software Risk Assessment

Zielsetzung des Software Risk Assessments ist eine standardisierte und
objektive Bewertung der Code Qualität in Softwareprojekten. Software
Risk Assessment kombiniert die Berechnung von Code Metriken aus dem
Source Code mit einer Expertenevaluation des Projektes und des
entwickelten Codes.

                    Abbildung 1: Software Risk Assessment

Software Risk Assessments werden typischerweise ausgeführt, wenn ein
Projekt eine unabhängige, objektive und nachprüfbare Einschätzung der
Qualität eines Softwaresystems benötigt. Dies ist häufig dann der Fall,
wenn Entscheidungen zum Einkauf, zur weiteren Verwendung oder zur
Ablösung eines unternehmenskritischen Systems anstehen. In solchen
Situationen muss eine belastbare Analyse der technischen Qualität des
Systems vorliegen, um fundierte Entscheidungen der Systemwahl treffen
zu können.

Software Risk Assessments liefern darüber hinaus Empf ehlungen und
Hinweise, wo und wie eine Software vordringlich verbessert werden
sollte. Damit wird eine gezielte Planung und Steuerung von Entwicklungs -
oder Restrukturierungsaufwänden möglich.

Trusted Product Maintainability                                 Seite 3 | 14
© TÜV Informationstechnik GmbH
Folgende Fragestellungen zu einem Entwicklungs-, Beschaffungs- oder
Ablösungsprojekt können Anlass für ein Software Risk Assessment sein:

   Wie ist die Code Qualität meines Altsystems?
   Wie wartbar wird das neu entwickelte System sein, wenn es in Betrieb
    ist?
   Wo können Probleme mit dem System entstehen, die sich heute sc hon
    absehen lassen?
   Kann das von einem Lieferanten fertiggestellte System abgenommen
    werden?
   Sollte ein Teilsystem wegen der darin befindlichen Risiken ggf. nicht
    eingesetzt werden?
   Soll die bestehende Software überarbeitet werden, um sie kommenden
    Anforderungen anzupassen oder soll ein neues System entwickelt
    werden?
   Was muss getan werden, um funktionale Überschneidungen zwischen
    zwei Systemen zu beseitigen?
   Wo muss angesetzt werden, um veraltete Systemteile abzulösen?

Trusted Product Maintainability                                 Seite 4 | 14
© TÜV Informationstechnik GmbH
2.2    Ablauf eines Software Risk Assessment

Ein Software Risk Assessment beginnt mit einem technischen Briefing,
bei dem Architektur, Entwicklungsstandards und die verwendete
Implementierungssprachen besprochen werden. Nach Übergabe des
Source Code an TÜViT beginnt die technische Analyse des Systems.

            Abbildung 2: Ablauf eines Software Risk Assessments

Parallel zur technischen Analyse wird ein Gespräch mit dem IT -
Management durchgeführt. Ziel dieses strategischen Briefings ist es, den
Nutzungskontext, weitere Entwicklungspläne sowie die allgemeine IT-
Strategie zu erörtern.

Nach Vorliegen der Befunde aus der automatischen Code-Analyse
werden diese zunächst zusammen mit den technischen Verant wortlichen
einer Validierung unterzogen. Erst nach einer Bestätigung der Ergebnisse
werden diese weiter verwendet. Zusammen mit der Information aus dem
Briefing zur IT-Strategie entsteht ein abgerundetes Bild vom untersuchten
Softwaresystem und seiner Code-Qualität.

Die finale Ergebnispräsentation richtet sich an das Managem ent. Hier
werden noch mal alle gefundenen Fakten zusammengefasst und so
erläutert,  dass    auch    Nicht-Experten    die   Bewertung   eines
Softwaresystems nachvollziehen können.

Alle Ergebnisse werden in einem ausführlichen Abschlussbericht
zusammengefasst. Aufgrund der automatisierten Analyse des Source
Codes und des standardisierten Beratungsansatzes kann ein Software
Risk Assessment in der Regel innerhalb eines Kalendermonats
abgeschlossen werden.

Trusted Product Maintainability                                   Seite 5 | 14
© TÜV Informationstechnik GmbH
2.3    Benchmarking der Ergebnisse

Neben der Berechnung der standardisierten Maßzahlen ergibt eine
technische Analyse auch Informationen darüber, wie gut ein
Softwaresystem im Kontext vergleichbarer Systeme abschneidet. Hierzu
wird eine Referenzdatenbank mit Daten aus etwa 500 Softwaresystemen
eingesetzt, um passende Vergleichswerte zu erhalten. Auf dieser
Grundlage können differenzierte Benchmarks angeboten werden, z. B.
Vergleiche im jeweiligen Branchenkontext oder Vergleiche mit anderen
Projekten, die dieselbe Entwicklungsmethodik einsetzen.

2.4    Voraussetzungen für ein Software Risk Assessment

Die Maßzahlen des Software Risk Assessment können für jede
Entwicklungssprache und alle Arten von Entwicklungsartefakten
berechnet werden. In der Analyse werden alle relevanten Dateien
heutiger Entwicklungsprojekte berücksichtigt. Neben de m Source Code
(d.h. Programmen, Scripts) werden Modelle (z.B. in XML -Notation),
Konfigurationsdaten (z.B. SAP Customizing-Tabellen), Datenbank-
abfragen und aktive Webinhalte einbezogen. Generierter Code, der
manuell weiter bearbeitet wurde, sollte ebenfalls in einer Analyse
berücksichtigt werden.

2.5    Software Risk Monitoring

Um länger laufende Softwareprojekte effektiv in Richtung optimaler
Wartbarkeit zu lenken, ist eine regelmäßige Beurteilung der Code Qualität
erforderlich. Nur so kann erreicht werden, dass aufwändig entwickelter
Source Code nicht nur funktionale Anforderungen erfüllt, sondern auch
vereinbarte Qualitätsmaßstäbe einhält.

Neben dem punktuellen Software Risk Assessment bietet TÜViT daher
das Software Risk Monitoring an. Beim Software Risk Monito ring wird in
vorher festgelegten Zeitabständen eine Berechnung der Code Metriken
vorgenommen. Auf dieser Grundlage werden Berichte erstellt, die den
Status des Entwicklungsprojekts, d.h. Umfang, Risiken und Qualität des
bereits entwickelten Codes wiedergeben.

Trusted Product Maintainability                                 Seite 6 | 14
© TÜV Informationstechnik GmbH
Software Risk Monitoring kann als Controllinginstrument in einem
Entwicklungsprojekt eingesetzt werden, ohne in dessen Arbeits weise und
Organisation einzugreifen. Am Beginn wird mit dem Management
festgelegt, welche Code Metriken für das jeweilig e Projekt geeignet sind.
Die Implementierung der eigentlichen Messung wird am einfachsten über
einen lesenden Zugang zum Codeverwaltungssystem realisiert.

In der Praxis haben sich in Umfang und Tiefe abgestufte monat liche,
quartalsweise und jährliche Berichte des Software Risk Monitoring
bewährt. Die Berichte werden dem Projektmanagement regelmäßig im
Rahmen von Workshops erläutert und etwaige Schlussfolgerungen für
Qualitätsverbesserungen erarbeitet.

Neben Konsequenzen für das Entwicklungsvorgehen können dabei auch
ggf. notwendige Verfeinerungen der Messungen selbst festgelegt werden.

2.6    Code Qualität und Wartbarkeit – TÜViT Trusted Product
       Maintainability

Die im Software Risk Assessment erhobenen Maßzahlen zur Code
Qualität eines Softwaresystems können im Sinne der ISO/IEC 25010 als
interne Qualitätsmetriken für Wartbarkeit aufgefasst werden. So ist z. B.
plausibel zu erwarten, dass eine hohe Maßzahl zur Systemeigenschaft
Code-Komplexität ein schlecht verständliches System identifiziert, das in
der Folge schwierig zu warten ist. Umgekehrt wird wenig komplexer Code
zu einem leicht verständlichen Gesamtsystem führen, das auch einfacher
wartbar sein wird.

   Abbildung 3: Beispiel eines Zusammenhangs von Qualitätsmerkmalen
                  der ISO/IEC 25010 und Code-Eigenschaften

Trusted Product Maintainability                                  Seite 7 | 14
© TÜV Informationstechnik GmbH
Für die Verknüpfung zwischen Systemeigenschaften, wie z. B.

   Code-Komplexität,
   Code-Größe und -Duplizierung,
   Modularität und Kopplung zwischen einzelnen Modulen
   Unabhängigkeit der Module
und den Teilaspekten der Wartbarkeit gemäß ISO/IEC 25010

   Analysierbarkeit,
   Änderbarkeit,
   Testbarkeit,
   Modularität und
   Wiederverwendbarkeit
wird eine Bewertungsmatrix eingesetzt. Diese erlaubt über Gewichtungen
der einzelnen Maßzahlen aus der Code-Analyse eine Abschätzung der
internen Qualitätsgröße Wartbarkeit eines Softwaresystems.

Auf der Grundlage dieser Methodik der Messung der System eigen-
schaften bietet TÜViT eine Zertifizierung der Code Qualität in Bezug au f
Wartbarkeit von Softwaresystemen gemäß den o. g. Teilaspekten der
ISO/IEC 25010 an.

      Abbildung 4: Musterprüfzeichen Trusted Product Maintainability

Die Zertifizierungsstelle der TÜViT stellt für ein Softwaresystem das
Zertifikat TÜViT Trusted Product Maintainability aus, wenn die Code
Qualität sowohl in allen vier Wartbarkeits-Teilaspekten der ISO/IEC
25010 als auch in Summe einen Mindestwert überschreitet. Zusätzlich
muss die Architektur des Softwaresystems für die Wartbarke it geeignet
dokumentiert sein.

Trusted Product Maintainability                                  Seite 8 | 14
© TÜV Informationstechnik GmbH
3        Firmenprofile

TÜViT bietet das Software Risk Assessment als Dienstleistung für
Softwareprojekte in Zusammenarbeit mit der niederländischen Software
Improvement Group (SIG) an.

3.1      Über TÜViT
Die TÜV Informationstechnik GmbH - kurz TÜViT - mit Sitz in Essen ist
einer der führenden Prüfdienstleister für IT-Sicherheit und IT-Qualität. Wir
unterstützen Hersteller, Betreiber und Anwender von IT-Systemen, IT-
Produkten sowie IT-Infrastrukturen durch Prüfung und Zertifizierung, ihre
Unternehmenswerte zu bewahren.

Unsere Experten im Bereich der IT-Sicherheit konzentrieren sich auf
Themen wie Common Criteria Evaluationen, Cyber Security, Mobile
Security, Industrial Security, Penetrationstests, Bewertung von
Informationssicherheits-Managementsystemen nach ISO/IEC 27001 sowie
Datenschutz-Audits. Ein weiterer Aspekt ist die Prüfung und Zertifizierung
von Rechenzentren hinsichtlich ihrer physischen Sicherheit und
Hochverfügbarkeit.

Im Bereich der IT-Qualität koordiniert TÜViT anhand anerkannter
Standards das Projekt-, Qualitäts- und Risikomanagement, um unsere
Kunden beim Erreichen wichtiger Unternehmensziele zu unterstützen.

Unsere Dienstleistungen werden stets nach dem Stand der Technik
ausgeführt und erfüllen höchste Sicherheits- und Qualitätsansprüche.

Zahlreiche Akkreditierungen und Zertifizierungen durch nationale und
internationale Organisationen und Behörden weisen unsere Kompetenzen
auf dem Gebiet der IT-Sicherheit und IT-Qualität nach.

Bundesamt für Sicherheit in der Informationstechnik
     Anerkennung nach DIN EN ISO/IEC 17025:2005 für Prüfungen nach
      ITSEC/ITSEM/CC/CEM sowie BSI-TR 03121-1, BSI-TR 03121-3,
      BSI-TR 03132, BSI TR-03104 und BSI TR-03105 Teil 3 und Teil 5
     IT-Sicherheitsdienstleister für den festgelegten Anwendungs bereich
      IS-Revision und IS-Beratung und Penetrationstests

Trusted Product Maintainability                                    Seite 9 | 14
© TÜV Informationstechnik GmbH
   Lizenzierte Auditoren für IT-Grundschutz und ISO/IEC 27001
   Lizenzierte Auditoren für De-Mail
Deutsche Akkreditierungsstelle
   Prüflabor für IT-Qualität: Kompetenz für Prüfungen in den Bereichen
    IT-Ergonomie und IT-Sicherheit, akkreditiert nach DIN EN ISO/IEC
    17025:2005
       Prüfstelle IT-Sicherheit: Akkreditierung für Prüfungen nach
        ITSEC/ITSEM/CC/ISO 15408/CEM
       Prüfstelle IT-Ergonomie: Akkreditierung für Evaluationen nach
        DIN EN ISO 9241-110, DIN EN ISO 9241-11, DIN ISO/IEC 25051,
        DIN EN ISO 13407 und ISO 9241-210
   Zertifizierungsstelle: Kompetenz für Zertifizierungen von Produkten in
    dem Bereich IT-Sicherheit, akkreditiert nach DIN EN 45011
Bundesnetzagentur
   Bestätigungsstelle nach SigG/SigV für die Bestätigung von Pr odukten
    für qualifizierte elektronische Signaturen
   Bestätigungsstelle nach SigG/SigV für die Bestätigung der Umsetzung
    von Sicherheitskonzepten für Zertifizierungsdiensteanbieter
Die Deutsche Kreditwirtschaft
   Gelistete Prüfstelle für elektronischen Zahlungsverkehr
Unabhängiges Landeszentrum für Datenschutz Schleswig -Holstein
   Sachverständige Prüfstelle für IT-Produkte (rechtlich/technisch)
   EuroPriSe Gutachter (rechtlich/technisch)
Information-technology Promotion Agency, Japan
   Prüfstelle IT-Sicherheit: Akkreditierung für Prüfungen nach CC/CEM
National Institute of Technology and Evaluation, Japan
   Prüfstelle IT-Sicherheit: Akkreditierung nach DIN EN ISO/IEC 17025 in
    dem Bereich der IT / Common Criteria Evaluationen (Lab Code:
    ASNITE0019T)

Trusted Product Maintainability                                   Seite 10 | 14
© TÜV Informationstechnik GmbH
National Institute of Standards and Technology
National Voluntary Laboratory Accreditation Program, USA
   Prüfstelle IT-Sicherheit (NVLAP Lab Code: 200636-0) für
    Cryptographic Module Testing (Scopes 17BCS, 17CAV/01,
    17CMH1/01, 17CMH1/02, 17CMH2/01, 17CMH2/02, 17CMS1/01,
    17CMS1/02, 17CMS2/01, 17CMS2/02) und Biometrics Testing
Europay, MasterCard and Visa, USA/Großbritannien/Japan
   Full Service Laboratory für Prüfungen von ICs und Chipkarten nach
    EMVCo Sicherheitsrichtlinien
   Modular Label Auditor
Visa, USA
   Test House zur Durchführung von Visa Chip Product
    Sicherheitsevaluationen
MasterCard, Großbritannien
   Akkreditiert zur Durchführung von CAST (Compliance Assessment and
    Security Testing) Evaluationen
Betaalvereniging Nederland, Niederlande
   Evaluation Laboratory
In nationalen und internationalen Forschungsprojekten und Gremien
gestaltet TÜViT den Stand der Technik aktiv mit.

TÜViT betreibt selbst ein wirksames Qualitätsmanagementsystem und
Umweltmanagement,       welche     nach       ISO     9001:2008   bzw.
ISO 14001:2004 zertifiziert sind und erfüllt somit die hohen Ansprüche
und Erwartungen ihrer Kunden.

TÜViT gehört zur TÜV NORD GROUP mit Hauptsitz in Hannover. TÜV
NORD beschäftigt über 10.000 Mitarbeiter weltweit und ist neben dem
nationalen Markt in 70 Staaten Europas, Asiens und Amerikas vertreten.
Während der 140-jährigen TÜV-Tradition hat TÜV NORD technische
Tests und Prüfungen in zahlreichen Bereichen durchgeführt und
entwickelt. Die TÜV NORD GROUP ist nach ihren Grundsätzen
verpflichtet, ihre Dienstleistungen unabhängig sowie neutral anzubieten
und durchzuführen.

Trusted Product Maintainability                                Seite 11 | 14
© TÜV Informationstechnik GmbH
3.2      Über Software Improvement Group

Die Software Improvement Group (SIG) versteht sich als Centre of
Excellence für Software Engineering. Zielsetzung der SIG ist es, in
Softwareprojekten Qualitätsverbesserung, Komplexitätsreduzierung und
Reengineering zu erreichen, indem dem Management von IT-Projekten
Einsicht in die Qualität seines Softwareprodukts vermittelt und Kontrolle
über den Projektverlauf ermöglicht wird. SIG beschäftigt derzeit etwa 90
hoch qualifizierte Mitarbeiter an den Standorten Amsterdam,
Copenhagen, Frankfurt, Athene und Bern.

SIG ist ein Spin-Off der Abteilung für Software Engineering des
Niederländischen Instituts für Mathematik und Informatik (CWI). Das CWI
hat über 50 Jahre Erfahrung in der Entwick lung innovativer Hard- und
Software. Während der letzten 15 Jahre wurde gezielt mit Partnern aus
Wissenschaft und Industrie zusammengearbeitet, um große und
heterogene Softwaresysteme handhabbarer und durchschaubarer zu
machen.

Das Ergebnis dieser Arbeit ist die Generic Language Technology, eine
Suite  leistungsfähiger  Analysetools    kombiniert  mit     passenden
Beratungsansätzen zur Unterstützung großer Softwareprojekte.

SIG legt Wert auf Unabhängigkeit und übernimmt daher keine Aufträge,
die sich direkt mit der Entwicklung, Wartung, Aktualisierung oder
Verbesserung von Systemen beschäftigen. SIG führt keine formellen
Partnerschaften    mit  Softwarehäusern     oder   Anbietern     von
Softwarepaketen.

Ausgewählte Referenzen der SIG:

Banken und Versicherungen

     ING
     Rabobank International
     Allianz AG
     Achmea
     Interamerican Greece
     Nykredit

Trusted Product Maintainability                                Seite 12 | 14
© TÜV Informationstechnik GmbH
Behörden

   Niederländische und Dänisch Polizei
   Niederländische und Dänisch Steuerbehörde
   Innenministerium der Niederlande
   Finanzministerium der Niederlande
   Justizministerium der Niederlande
   Region Hovedstaden (Dänemark)
   Justiz NRW
   Dutch Ministry of Infrastructure and the Environment

Logistik

   KLM
   DHL
   PostNL
   Port of Rotterdam
   Alphabet International (A BMW Group Division)
   ProRail; Der Niederländische Anbieter von Eisenbahninfrastruktur

Dienstprogramme

   RIPE NCC
   Alcatel Lucent
   GasTerra
   KPN
   Electrabel

Trusted Product Maintainability                                Seite 13 | 14
© TÜV Informationstechnik GmbH
4      Ansprechpartner
Dipl.-Psych. Robert Baggen
IT Quality
Senior Consultant

TÜV Informationstechnik GmbH
TÜV NORD GROUP
Langemarckstraße 20
45141 Essen

Tel.: +49 201 8999-435
Fax: +49 201 8999-544
r.baggen@tuvit.de
www.tuvit.de

Version: 1.9

Trusted Product Maintainability   Seite 14 | 14
© TÜV Informationstechnik GmbH
Sie können auch lesen