Software-Engineering

Slides:



Advertisements
Ähnliche Präsentationen
Blue J.
Advertisements

der Universität Oldenburg
Qualitätssicherung von Software (SWQS)
Dr. Andreas Winter Sommersemester 2007 Einführung in die Software-Entwicklung © Institut für Informatik Programmier-Richtlinien vgl. auch
(kleine!) Java Einführung Mittwoch, Heute Ziel: erstes Java-Programm erstellen Von der Aufgabenstellung bis zur Lösung Grundlagen Einfache.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung versteht Java Programmcode versteht Java Programmcode Für die Entwicklung eigener Software.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Was ist Refactoring? Bevor man die Integration angeht, mag es angebracht sein, den.
Java: Objektorientierte Programmierung
Abstrakte Klassen.
Polymorphie (Vielgestaltigkeit)
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Imperative Programmierung Funktionen und Parameter
Modularisierungstechniken
Einführung in die Programmierung mit Java
Programmieren mit JAVA
Programmieren mit JAVA
Praxis-Repetitorium JAVA zusätzliche, ergänzende Lehrveranstaltung
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.
Zusammenfassung Vorwoche
Grundlegende Analysen & Zwischendarstellungen
1 Analyse von Software-statisch- Darmstadt,den Presentation: Sebastian Schikowski Steve Kenfack.
Prüfkriterien für objektorientierte Systeme
Packages Vortrag : Cornelia Hardt 23. November 1999.
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Felder1 Felder. DVG Felder 2 Was sind Felder? Felder sind Reihungen aus endlich vielen Elementen gleichen Typs. Z.B.: Vektoren : (x.
DVG Klassen und Objekte
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Java programmieren mit JavaKara
IT2 – WS 2005/20061Oct 10, 2005 Externes Verhalten – Quelltext (source code) Durch Aufrufe der Konstruktoren und Methoden kann das externe Verhalten (=die.
EPROG Tutorium Einheit 4 Klassen und Objekte. Wiederholung Schleifen do... while while for break/continue Strings String char Methoden für Strings Arrays.
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
HORIZONT 1 XINFO ® Das IT - Informationssystem Assembler HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 /
NDepend - Kurzvorstellung Stefan Lieser Web:
Die Grundidee Funktionsaufruf Funktionsname (Kopf) Code der Funktion
1. Entwicklungsumgebung 2. Kontextmenü 3. Compile 4. Objekt 5. Attribut 6. Klasse 7. Deklaration 8. Intialisierung.
Java Programmierung.
Unterprogramme in JAVA
Algorithmen und Datenstrukturen Übungsmodul 8
Objectives Verstehen was unterDelegate verstanden wird
Einführung in PHP.
CuP - Java Neunte Vorlesung Entspricht Kapitel 4.2 und 5 des Skriptums
CuP - Java Vierte Vorlesung Entspricht ungefähr Kapitel 2.1 des Skriptums Montag, 14. Oktober 2002.
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Inf K1/2 Sj 13/14 GZG FN W.Seyboldt 1 SFZ FN Sj. 13/14 Python Klassen und Objekte.
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Einführung in die Programmierung mit Java
Java-Kurs Übung Besprechung der Hausaufgabe
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Einführung in die Programmierung mit Java
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003.
Institut für Kartographie und Geoinformation Prof. Dr. L. Plümer, Dipl.-Ing. D. Dörschlag, Dr. G. Gröger Einführung in die Programmierung mit Java 13.
Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,
Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar?
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Java Programme nur ein bisschen objektorientiert.
C++ FÜR cOMPUTERSPIELENTWICKLER
Das IT - Informationssystem
Nksainf.ch/oinf.
Implementieren von Klassen
 Präsentation transkript:

Software-Engineering Lösung für Praktikum I Software-Engineering Software-Metriken Prof. Dr. Bernd Hafenrichter

Lösung für Praktikum I Zyklomatische Zahl (CCN) Wird pro Methode berechnet Darstellung der Programms als Kontrollflussgraph V(G) = e – n + 2 e = Anzahl der Kanten n = Anzahl der Knoten Prof. Dr. Bernd Hafenrichter

Lösung für Praktikum I Zyklomatische Zahl Faustregeln für die zyklomatische Komplexität V(G): V(G) Risiko 1 – 10 Einfaches Programm, geringes Risiko 11 – 20 komplexeres Programm, erträgliches Risiko 21 – 50 komplexes Programm, hohes Risiko > 50 untestbares Programm, extrem hohes Risiko oder einfacher: Wenn eine Umstrukturierung ansteht, dann beginne mit der Komponente, die die h¨ochste zyklomatische Komplexit¨at hat! Prof. Dr. Bernd Hafenrichter

Lösung für Praktikum I Coupling between Objects Zählt die Referenztypen, die in • Attributdeklarationen, • formalen Parametern, • Rückgabewerttypen, • "Throws"-Deklarationen und • lokalen Variablen verwendet werden, sowie • Typen, mit denen die Auswahl von Attributen und Methoden getroffen wird. • Primitive Typen, Typen des Pakets java.lang und Supertypen werden nicht gezählt. Prof. Dr. Bernd Hafenrichter

Lösung für Praktikum I Coupling between Objects Der Messwert für eine Klasse A gibt die Anzahl von Klassen an, die A benutzt. • Besitzen Klassen einen hohen CBO, sind sie aufgrund zahlreicher Abhängigkeiten mit anderen Klassen schwer einzeln wiederverwendbar und verstehbar. • Außerdem sorgt die hohe Verflochentenheit dafür, dass bei Änderungen einer einzelnen Klasse, viele weitere Systemteile in Mitleidenschaft gezogen werden. Prof. Dr. Bernd Hafenrichter

Lösung für Praktikum I Response for a Class Bei der Berechnung dieses Maßes werden Klassen als nachrichtenempfangende Einheiten angesehen und die Frage gestellt: Welche Methoden können ausgeführt werden, wenn eine beliebige Nachricht an eine Instanz dieser Klasse gesendet wird? Zu diesem "reponse set" gehören 1. alle Methoden der Klasse selbst und 2. alle weiteren Methoden anderer Klassen, welche durch die Methoden in (1.) direkt aufgerufen werden. Das Maß liefert daher ein Indiz für die Interaktionskopplung der betreffenden Klasse. Die Autoren argumentieren, dass Klassen mit einer großen Antwortmenge ein größeres Maß an Verständnis erfordern und daher zu mehr Aufwand beim Debuggen und Testen führen. Also: Je größer RFC, desto höher ist die Fehlerwahrscheinlichkeit Prof. Dr. Bernd Hafenrichter

Lösung für Praktikum I ACD-Metrik Die ACD ist die mittlere Anzahl von Abhängigkeiten einer Komponente zu anderen Komponenten. ACD=10/5=2 Prof. Dr. Bernd Hafenrichter

Lösung für Praktikum I NCSS-Metrik NCSS = Non-Commenting-Source-Statement Setzt sich wie folgt zusammen Alle Deklarationen Alle Statements Keine Kommentare Keine leeren Anweisungen Grundansatz: Zähle alle ";" und alle " {„ Klassen mit mehr als 1000 Zeilen Code werden als zu groß erachtet Prof. Dr. Bernd Hafenrichter