Qualitätssicherung von Software (SWQS)

Slides:



Advertisements
Ähnliche Präsentationen
Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt.
Advertisements

Qualitätssicherung von Software (SWQS)
Qualitätssicherung von Software (SWQS)
Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,
Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS : Software Model Checking.
Qualitätssicherung von Software
Qualitätssicherung von Software
Qualitätssicherung von Software
FH-Hof Einbindung von JavaScript Anweisungen
Java: Grundlagen der Sprache
Software-Engineering
DVG Klassen und Objekte
Mehr Qualität und schnellere Marktreife durch effiziente Softwaretests
Conjunctions Subordinate or coordinate?. Connect the two sentences. Then translate.
You need to use your mouse to see this presentation © Heidi Behrens.
You need to use your mouse to see this presentation © Heidi Behrens.
You need to use your mouse to see this presentation © Heidi Behrens.
Bildungssystem Indiens
You need to use your mouse to see this presentation © Heidi Behrens.
Style Guidelines für Java und .NET
Seminar Programmierstil, WS2002/03 Clemens Holzmann
CALPER Publications From Handouts to Pedagogical Materials.
Clean Code Software-Entwicklung als Handwerkskunst Thomas Nagel, November 2011.
Objectives Verstehen was unterDelegate verstanden wird
EPROG Tutorium #4 Philipp Effenberger
MODULA-2.
Greetings and goodbyes Deutschland v. USA
Universität StuttgartInstitut für Wasserbau, Lehrstuhl für Hydrologie und Geohydrologie Copulas (1) András Bárdossy IWS Universität Stuttgart.
Qualitätssicherung von Software Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FIRST.
Kapitel 4 Alles für die Schule Lernziel: Talking about class schedules Translation Exercise Antworten.
Heute lernen wir: Unser Tagesablauf.
Dr.-Ing. René Marklein - EFT I - WS 06/07 - Lecture 7 / Vorlesung 7 1 Elektromagnetische Feldtheorie I (EFT I) / Electromagnetic Field Theory I (EFT I)
Einfaches Erstellen von Präsentationen aus Einzelfolien heraus.
As of 1st July 2011 there will be no more "Wehrdienst" in Germany. It still has its place in the German constitution (Grundgesetz) but young men are no.
Institut für Angewandte Mikroelektronik und Datentechnik Phase 5 Architectural impact on ASIC and FPGA Nils Büscher Selected Topics in VLSI Design (Module.
Kapitel 4 Alles für die Schule Lernziel: Formation of Plural.
Die Fragen Wörter Wer? Was? Wann?.
Nominative & Accusative Basic Rules for Relative Pronouns in German:
1 Bauhaus-Universität Weimar ArchitekturProgrammierung Generative Entwurfsmethoden Processing Grundlagen Professur Informatik in der Architektur.
Stephanie Müller, Rechtswissenschaftliches Institut, Universität Zürich, Rämistrasse 74/17, 8001 Zürich, Criminal liability.
Extended Pascal ( Erweitreung von Pascal) Name: Mehmet CELIK Matr :
The Programming Language Pascal
What is a “CASE”? in English: pronouns, certain interrogatives
GERMAN 1013 Kapitel 5 Review. terminology Word types: –nouns, pronouns, verbs, adjectives, prepositions … Functions: –subject, predicate, object … Form.
GERMAN WORD ORDER ORDER s. Sentences are made up by placing a variety of words in a specific order. If the order is wrong, the sentence is difficult to.
© Crown copyright 2011, Department for Education These materials have been designed to be reproduced for internal circulation, research and teaching or.
Imperfekt (Simple Past) Irregular or strong verbs
Kapitel 2 Grammar INDEX 1.Subjects & Verbs 2.Conjugation of Verbs 3.Subject Verb Agreement 4.Person and Number 5.Present Tense 6.Word Order: Position of.
On the case of German has 4 cases NOMINATIVE ACCUSATIVE GENITIVE DATIVE.
Technische Universität München Institute of Aeronautical Engineering Prof. Dr.-Ing. Horst Baier Presentation of the Institute (December 2009)
(Name of presenter) (Short title of presentation).
© Boardworks Ltd of 8 © Boardworks Ltd of 8 This icon indicates that the slide contains activities created in Flash. These activities are not.
1 Presenter Screen for OOo Design Studies ● Matthias Müller-Prove – User Experience Engineer ● Sun Microsystems 1.
Interrogatives and Verbs
Freizeit Thema 5 Kapitel 1 (1)
Du bist am dicksten und am dümmsten.
Sentence Structure Connectives
Quality assured by the ALL Connect project (2015)
The dynamic ultrasound
IETF 80 Prague DISPATCH WG
Das Wetter.
Students have revised SEIN and HABEN for homework
Talking about prices Pointing things out
Freizeit Aktivitäten.
Wie viel Uhr ist es? Telling Time.
The Conversational Past
The Conversational Past
- moodle – a internet based learning platform
You need to use your mouse to see this presentation
The Programming Language Pascal
 Präsentation transkript:

Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS 13.6.2013: Codechecks

Fragen zur Wiederholung Wozu sind Metriken gut? Welche Arten gibt es? Welche Maße sind möglich?

Prozedurale Komplexitätsmaße Umfangsmetriken Dateigröße, LOC, NCSC usw. Halstead-Metrik Function Points Kontrollflussmetriken Schachtelungstiefe McCabe Datenstrukturmetriken Variablenzahl, Records, Gültigkeitsdauern Stilmetriken Namenskonventionen, Formatierung, Kommentierung Bindungsmetriken Anzahl und Struktur der Bindungsbeziehungen

Halstead-Metriken Basisgrößen abgeleitete Größen 1: Anzahl unterschiedlicher Operatoren (+,*, if,…) 2: Anzahl unterschiedlicher Operanden (Var, Const) N1: Gesamtzahl verwendeter Operatoren N2: Gesamtzahl verwendeter Operanden abgeleitete Größen =1+2: Größe des Vokabulars N=N1+N2: Größe des Programms V=N*log : Volumen Eigenschaften und Interpretation D=(1*N2)/2 2: Schwierigkeit zum Schreiben oder Verstehen eines Programms

Schachtelungstiefe je höher die Schachtelungstiefe, desto schwerer die Verständlichkeit Maß: durchschnittliche Schachtelungstiefe z.B. auch: boolesche Anweisungen in Bedingungen! Auslagerung (Funktionen) erzwingt Struktur mit zunehmender Anzahl von Prozeduren und Tiefe des Schachtelungsbaumes wächst die Komplexität

McCabe Metrik misst die strukturelle Komplexität von Programmen zyklomatische Zahl als Messgröße, aus dem Kontrollflussgraphen ermittelt Basisgrößen e: Anzahl der Kanten des Kontrollflussgraphen n: Anzahl der Knoten p: Anzahl der verbundenen Komponenten zyklomatische Zahl V(G)=e-n+2p „Anzahl der Entscheidungen plus eins“

Beispiele

Zyklomatische Zahl Die zyklomatische Zahl ist für strukturierte Programme um den Wert 1 größer als die Anzahl der binären Entscheidungen. Sie kann durch Abzählen der binären Entscheidungen ermittelt werden; existieren w Prädikate so gilt v(G) = w + 1 (nicht-binäre Entscheidungen mit n Ausgängen = n – 1 Binärentscheidungen) Empirische Untersuchungen: Fehlerhäufigkeit steigt überproportional falls zyklomatische Zahl > 10. Empfehlung: maximale zyklomatische Zahl eines Moduls = 10 Überschreitet die zyklomatische Zahl eines Moduls diesen Wert, sollte Modul in Teilmodule aufgespalten werden

Objektorientierte Komplexitätsmaße CBO (coupling between objects) Anzahl der Klassen, mit denen eine Klasse gekoppelt ist DIT (depth of inheritance tree) Maximaler Weg von der Wurzel bis zur betrachteten Klasse NOC (number of children) Anzahl der direkten Unterklassen; inverses Maß! RFC (response for a class) Anzahl der Methoden, die potentiell ausgeführt werden können, wenn Objekt auf eingehende Nachricht reagiert …

Werkzeugunterstützung Werkzeugbeispiel JStyle 4.6 Quelle: Holzmann www.ssw.uni-linz.ac.at/Teaching/ Lectures/Sem/2002/slides/Holzmann.ppt 5. Metriken 19.1.2004

Software-Visualisierung z.B. Sotograph (Uni Cottbus) http://www.hello2morrow.com/images/products/diffversion.jpg?1221072548

Codierstandards (coding rules) prägen entscheidend die „Unternehmenskultur“ eines SW-Hauses „Freiheitsberaubung“ oder „corporate identity“? Namenskonventionen, Formatierung, Dokumentationsrichtlinien, … zwingende Einhaltung gewisser Metriken (Modulgröße, Schachtelungstiefe, …) automatisch überprüfbar meist ziemlich leicht zu „umgehen“ verbessern im Allgemeinen die Produktqualität

Beispiel: Abraxas CodeCheck Automating Corporate Source Code Compliance Sample CodeCheck Coding Rules for C++ 2.8.1 Use typedef names rather than the basic C types (int, long, float, etc.) for data members. Example: In a program dealing with money, use typedef float Money; Money salary, bonus; // Good rather than float salary, bonus; // Bad Justification: This rule follows the principle of data abstraction. Typedef names do not increase the type safety of the code, but they do improve its readability. Furthermore, if we decide at a later time that money should be an int or a double we only have to change the type definition, not search the code for all float declarations and then decide which ones represent money. Reference: Paragraph 4.21, XYZ C++ Guidelines

Beispiel: Java Conventions Rules http://www.oracle.com/technetwork/java/codeconv-138413.html Why have code conventions? Code conventions are important to programmers for a number of reasons 80% of the lifetime cost of a piece of software goes to maintenance. Hardly any software is maintained for its whole life by the original author. Code conventions improve the readability of the software, allowing engineers to understand new code more quickly and thoroughly. Kapitel File names, file organization, naming conventions Indentation, comments, white space Declarations, Statements, programming practices

Tools Beispiel: CheckStyle “automatisiertes Code-Review”