Measurement-based Product Analysis

Ähnliche Dokumente
Software-Qualität sichtbar machen

Software-Metriken. Dipl.-Ing.(BA) Henning Sievert Seminar Software-Entwurf WS 2004/05

Inhalt. Fragestellungen. ...we make the invisible visible... Analysen und deren Anwendung Erfahrungen

Softwaremetriken verstehen und nutzen

Software-Metriken. Wolfgang Globke. Seminar Moderne Softwareentwicklung SS Software-Metriken. Wolfgang Globke. Metriken und Qualitätsmodelle

Software-Metriken. B. Sc. Michael Thomas. Seminar Software-Entwurf WS 2004/05.

DATA ANALYSIS AND REPRESENTATION FOR SOFTWARE SYSTEMS

Objects First With Java A Practical Introduction Using BlueJ. Mehr über Vererbung. Exploring polymorphism 1.0

Softwaretechnik (Allgemeine Informatik) Überblick

Darstellung und Anwendung der Assessmentergebnisse

Verwendung von OO-Metriken zur Vorhersage

Softwareschnittstellen

Management von Softwaresystemen Systembewertung: Metriken und Prozess

ISO Reference Model

HIR Method & Tools for Fit Gap analysis

Software Engineering. 13. Automatische Code Analyse. Franz-Josef Elmer, Universität Basel, WS 2005/06

Jan Schumann, G+J Manuel Pichler, Trainer & Consultant - Qafoo. Statische Codeanalyse wirklich effektiv nutzen

Software development with continuous integration

Ausarbeitung Iteration I

Safer Software Formale Methoden für ISO26262

Software Tests (2) Quellcode Reviews

Messung. Mariem Ben Rehouma

Qualitätsmanagement im Projekt

En:Tool EnEff BIM Introduction to the Project and Research Association

Mitglied der Leibniz-Gemeinschaft

Programmentwicklung ohne BlueJ

Assessment of disgn-flows in water management, Classical methods, nonstationary and multidimensional extensions of Extreme Value Modeling (EVM)

Group and Session Management for Collaborative Applications

Dynamische Programmiersprachen. David Schneider STUPS

ABSICHERUNG MODELLBASIERTER SICHERHEITSKRITISCHER AVIONIK SOFTWARE Dr. Elke Salecker

Werkzeuggestützte Softwareprüfungen Statische Analyse und Metriken

Softwaremessung und -metrik

Seminar: Software Engineering verteilter Systeme

...we make the invisible visible...

Exercise (Part XI) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

Künstliche Intelligenz

Shock pulse measurement principle

Fluid-Particle Multiphase Flow Simulations for the Study of Sand Infiltration into Immobile Gravel-Beds

How to develop and improve the functioning of the audit committee The Auditor s View

IBM Security Lab Services für QRadar

Seminar "Softwareentwicklung in der Wissenschaft" "Code-Qualität"

Algorithms for graph visualization

Geometrie und Bedeutung: Kap 5

Customer-specific software for autonomous driving and driver assistance (ADAS)

Anforderungen, KEFs und Nutzen der Software- Prozessverbesserung

Objektorientierte Datenbanken

CMMI for Embedded Systems Development

<JASK Gaming> <!Everybodys Perfect> <Iteration/ Master> Test Plan. Test Plan. Version <1.0> 1.Introduction. 2.Evaluation Mission and Test Motivation

Frontend Migration from JSP to Eclipse Scout

Mit Legacy-Systemen in die Zukunft. adviion. in die Zukunft. Dr. Roland Schätzle

p^db=`oj===pìééçêíáåñçêã~íáçå=

AS Path-Prepending in the Internet And Its Impact on Routing Decisions

Challenges for the future between extern and intern evaluation

Integration of D-Grid Sites in NGI-DE Monitoring

Karlsruhe Institute of Technology Die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe (TH)

Beschwerdemanagement / Complaint Management

Programmverstehen 2: Wie ist das System-Design? Dr. Thorsten Arendt Marburg, 04. Dezember 2014

Funktionale Sicherheit ISO Schwerpunkt Requirements Engineering,

Verwendung von objektorientierten Metriken zur Softwarequalitätsvorhersage. Arno Egger,

Sicherheit / Sicherung - unterschiedliche Begriffsbestimmung, gemeinsame Fachaspekte

Inhalt Software-Metriken Software-Metriken mit Together FindBugs. Software-Metriken. Raimar Lill Matthias Meitner David Föhrweiser Marc Spisländer

Langlebige Softwarearchitekturen

Code Quality. Steigerung der Codequalität mit Visual Studio & TFS

Messen & Metriken Ist Qualität messbar? André Fleischer

Seminar: Software Engineering verteilter Systeme

! " #! $! % & ' ' (! " # # $

Infrastructure as a Service (IaaS) Solutions for Online Game Service Provision

Risk-Managements for Installation, Maintenance and Reprocessing of Medical Devices

Support Technologies based on Bi-Modal Network Analysis. H. Ulrich Hoppe. Virtuelles Arbeiten und Lernen in projektartigen Netzwerken

All-Digital Standard-Cell Based Audio Clock Synthesis

Einsatz einer Dokumentenverwaltungslösung zur Optimierung der unternehmensübergreifenden Kommunikation

IDS Lizenzierung für IDS und HDR. Primärserver IDS Lizenz HDR Lizenz


The Future of Software Testing

Product Lifecycle Manager

Vertrauen ist gut. Dr. Florian Deißenböck. BITKOM Arbeitskreis Software Engineering. 8. Oktober Continuous Quality in Software Engineering

Model Driven Development einige wichtige Grundprinzipien

Service Level in der Assekuranz

USBASIC SAFETY IN NUMBERS

ROOT Tutorial für D. Liko

Context-adaptation based on Ontologies and Spreading Activation

Software-Architektur Design Patterns

ELBA2 ILIAS TOOLS AS SINGLE APPLICATIONS

Release Notes BRICKware Copyright 23. March 2010 Funkwerk Enterprise Communications GmbH Version 1.0

Prozesse als strategischer Treiber einer SOA - Ein Bericht aus der Praxis

Lehrstuhl für Allgemeine BWL Strategisches und Internationales Management Prof. Dr. Mike Geppert Carl-Zeiß-Str Jena

Department of Computer Science Chair of Software Engineering Faculty of Engineering. Grundlagen der Softwarearchitektur (im Softwarepraktikum)

Klausur Verteilte Systeme

Exercise (Part II) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

Vorlesung Software-Reengineering

Distributed testing. Demo Video

aqpa Vereinstreffen 15. Okt. 2014, Wien

Pilot Project Biogas-powered Micro-gas-turbine

TIn 1: Feedback Laboratories. Lecture 4 Data transfer. Question: What is the IP? Institut für Embedded Systems. Institut für Embedded Systems

EMC Simulation on the Way to Top

SAP Simple Finance Die Finanz- und Risikomanagementlösung für die Digital Economy

Modellfreie numerische Prognosemethoden zur Tragwerksanalyse

Transkript:

Measurement-based Product Analysis real world empirical relational system formal relational system? model validate cognition barrier measure 126, 21 254, 13 97, 20 412, 17 > transformation calculation result interpret 24% 38% visualize visual models 1

Example: Basic Structural OO Product Abstraction system 1..1 subsystem name : string subsystem nesting 1..n inheritance structure subclass superclass file name : string 1..1 class nesting class name : string abstract : bool 1..1 1..1 0..1 method name : string visibility : int length : int abstract : bool virtual : bool read/write called calling use/call graph attribute name : string visibility : int 2

Software Produkt-Metriken Kategorien: Größe Anzahl der Komponenten (K) einer Einheit Kopplung Anzahl der K, die eine K kennt, verwendet oder voraussetzt (Aufruf, Zugriff auf Attribut, etc.) ausgehend (afferent), eingehend (efferent) Kohäsion Intensität des Zusammenhangs der K innerhalb einer Einheit Komplexität??? algorithmisch / kognitiv??? 3

Einige bekannte Software-Metriken (1) Halstead PL/1, Fortran: complexity for writing/maintaining programs Programm = Menge von Operationen + Menge von Operanden Basis-Metriken: n # verschiedener Operatoren m # verschiedener Operanden N # Operatoren M # Operanden abgleitete Metriken: Programm-Länge L = N+M Volumen V = L*log 2 (n+m) Komplexität K = (n/2)*(m/m) Aufwand E = V*K etc. nie validiert! genügt nicht der Messtheorie! 4

Einige bekannte Software-Metriken (2) McCabe Cyclomatic Complexity ( 76) Ziel: Komplexität für Wartung und Verstehen messen Idee: Struktur berücksichtigen; Kontrollflussgraph (CFG) Programm Graph P = (E,V) v V meist Funktionen e E Kontrollflussabhängigkeiten CC(P) = E - V + p (p: Zshg.-Komponenten) Gegenbeispiel s. 24.06.04 empirische Korrelation für OO nicht geeignet 5

OO Metriken DIT: depth of inheritance tree NOC: number of subclasses CBO(c): coupling between objects # der benutzten Attr./Methoden anderer Klassen RFC(c): response for class # Methoden von c + # aller benutzen Methoden anderer Klassen LCOM(c): lack of cohesion ~ wie misst man, ob Klasse c einen abstrakten Datentyp implementiert eine Klasse ein Konzept? 6

Beispiel eines OO Wartbarkeit QM Qualitätsziel Faktor Entwurfsprinzip Entwurfsregel Analyseregel / Metrik (Zielwert) Wartbarkeit Modularität Strukturiertheit Realisieren Abstraktion Verständlichkeit Einfachheit Kapselung Schmale Schnittstellen Kopplung Subsysteme Kohäsion Abstrakte Schnittstellen Prüfen #öffentliche Methoden (min) #Parameter pro Methode (min) #Referenzen (min) CBO (min) #Referenzen über Paketgrenzen (min) #Aufrufe (min) LCOM (min) Vererbung Tiefe des Vererbungsgraphen (T) Breite des Vererbungsgraphen (T) Klassenkomplexität Referenzen zu abstr. Klassen (max) Methodenkomplexität zyklomatische Komplexität (min) Verbindungskomplexität WMC (T) LOC pro Methode (T) 7

Einflüsse auf das Qualitätsmodell generelles Entwurfswissen Styleguide (projektspez.) Projektrichtlinien Anwendungsdomäne Reifegrad Perspektive Qualitätsziel Faktor Entwurfsprinzip Entwurfsregel Metrik Zielwert Konstruktions- Paradigma Entwurf/ Programmiersprache Metrikauswahl Anwendungstyp 8

Example from a Case Study DFS quality goals: Maintainability Level of object-orientation Portability Dependability focus of analysis OO models a system as a set of collaborating objects Objects have a state and an interface OO Design Principles Bundling Encapsulation Inheritance Polymorphism Apply principles in favour of quality goals Check, whether principles have been applied properly 9

Quality Criteria and Metrics Design Concepts Bundling: everything is a class! Encapsulation: hide data representation make encapsulation explicit encapsulate platform dependent parts Low coupling, high cohesion Metrics (target) Usage of class/struct keywords (use class!) number of global variables/functions (min) Usage of keywords private/public/... Number of public attributes (min) Usage of abstraction layers Coupling: degree of dependencies Directions: out-/ingoing Kinds: call/attribute/inheritance attribute couplings (min) bidirectional couplings (min) access to attributes of superclass (min) CBO (min) 10

Quality Criteria and Metrics Design Concepts Cohesion: degree of togetherness Levels: package/class/method One class = one responsibility Inheritance: Express specialisation Factor out common class elements Polymorphism: many forms Abstract One class = one responsibility Metrics (target) No. of attributes/methods per class (T) LCOM (min) Number of private method calls (max) No. of abstract classes (max) DIT (T) NOC (T) Number of overwritten methods (max) Number of enums and switches (min) Coding style: Central places for constants Simple control flow Distribution of string constants (min) CC (min) Number of if/switch per unit (min) 11

Interpretation of Metrics Values value filter functions definition of threshold values (design rules / statistics) Schwellenwert aus Entwurfsregel threshold from design rule # of "# methods Methoden sollte should kleiner 50 be sein" < 20 (d.h. nach oben begrenzt) outlier Ausreißer Schwellenwert statistisch ermittelt statistical threshold Ausreißer, wenn Wert nach oben begrenzt ("Wert darf nicht zu groß sein") } } µ + σ statist. µ Mittelwert mean value µ µ µ-σ σ outlier Ausreißer, wenn Wert nach unten begrenzt ("Wert value muß at mindestens least... so und so groß sein") 12

Quality assessment (package structure) Internal software quality Structuredness Grouping of classes to subsystems Number of classes within a subsystem (should support understandability) 20 18 16 16 18 de/jwamx/technology/iafpf/swingpf 14 Frequency 12 10 8 8 de/jwamalpha/handling/processfolder/tool 6 4 4 5 5 4 2 0 2 1 1 1 1 1 1 2 1 1 0 0 0 0 0 0 0 0 0 0 0 3 7 10 14 17 21 24 28 31 35 38 42 45 49 52 56 59 63 66 70 73 77 80 84 88 89 Number of classes within a subsystem 13

Quality assessment (coupling between packages) Internal software quality Ease of maintenance Coupling Number of packages a package uses something from (should be small) 30 25 61: de/jwamx/handling/desktop 60: de/jwamalpha/handling/collection 24 20 Frequency 15 10 9 14 7 5 0 4 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 2 4 7 9 12 14 17 19 21 24 26 29 31 34 36 39 41 43 46 48 51 53 56 58 61 Number of packages a package uses something from 14

Trend Data for 3 System Releases data 20000from analysis of requirements documents version history 18000 6472 16000 14000 12000 10000 8000 6000 3614 3411 5016 5366 9253 attributes methods classes files pakages 4000 2000 0 1267 744 685 978 514 583 77 67 126 V.1.6 V.1.8 V.2.0 15

Trend Data for 2 Classes 9 BasicTraceObserver DialerServer 8 7 35 30 25 20 15 10 6 5 4 3 2 1 0 NoPubM effcbo kwmc NoP NoPubA 1 2 3 NoPubM outcbo kwmc NoP NoPubA 5 0 1 2 3 16

Visualisierung komplexer Strukturen - Objekttypen (Paket, Klasse) - Eigenschaften (Messwerte) -Beziehungen zwischen Objekten (Vererbung, Aufruf, Benutzt) und deren Richtungen -Ähnlichkeit von Objekten (bzgl. Beziehungen mit anderen Objekten) Formen Farben Größe Kanten mit verschiedenen Farbübergängen Layout (ähnliche Objekte räumlich nah) 17

3D Graph Vererbung Untersuchtes System Anderes System CH QAR Nur 8 Klassen vererben, 2 Klassen haben 250 bzw. 30 abgeleiteten Klassen Vererbung gering genutzt geringe Tiefe, extreme Breite Risiken: Chance, Ähnlichkeitsbeziehungen aus Problembereich im Code auszudrücken wenig genutzt Dadurch erschwertes Verständnis 18

Metapher: Stadt/Landschaft 19

Diagnoses & Recommendations (two examples from analysis of JWAM 1.4) Lines of Code: The file HtmlStandardWriter seems too large (1277 LOC). agreement ++ + 0 - -- novelty + 0 - Number of public Attributes: The class ConfigurationStandard contains 18 public attributes. Because they are used only by methods of this class the visibility should be reduced to protected at least. The same should be applied to class ClassUseMapper. agreement ++ + 0 - -- novelty + 0-20

Evaluation of our results: JWAM 1.4: 27 diagnoses 28 recommendations 1 3 1010 2 10 12 25 strong accept (++) weak accept(+) Indifferent (0) weak reject (-) strong reject (--) the most relevant critical situations got repaired in JWAM 1.5 JWAM 1.5: 36 diagnoses 32 recommendations 1 0 1 0 4 6 12 1 34 9 21

Parser IDE Xrefscope CASE- Tool CM- System Runtime data Information extractors IDE/CASE interaction R e p o s i - t o r y ( R D Query B developer ) Architecture scope Query scope Analysedaten Metrics scope Graph visualizer Szenario 1: Initiales Q-Assessment Q-Ziele Q-Ziele Q-Bericht QS/Management SW-Entwickler Q-Modell Q-Assessor Quellcode Analysewerkzeuge 22

Parser IDE Xrefscope CASE- Tool CM- System Runtime data Information extractors IDE/CASE interaction R e p o s i - t o r y ( R D Query B developer ) Architecture scope Query scope Analysedaten Metrics scope Graph visualizer Szenario 2: Review-Unterstützung Q-Ziele Q-Bericht QS/Management SW-Entwickler Richtlinien Q-Modell Q-Assessor Quellcode Analysewerkzeuge 23