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

Größe: px
Ab Seite anzeigen:

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

Transkript

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

2 Metriken in OO-Programmierung Traditionelle Metriken (Cyclomatic Complexity, Lines Of Code etc.) auf OO-Methoden anwendbar, aber: zusätzliche Metriken zur Erfassung OO-spezifischer struktureller Aspekte (z.b. Klassen, Polymorphie, Vererbung) + darauf basierender Annahmen (z.b. Ermittlung der Systemgesamtkomplexität aus Komponentenkomplexitäten) erforderlich Mehrere OO-Metriksuiten (Sammlungen von Metriken) verfügbar, z.b. CK, MOOD, Lorenz and Kidd -> im Folgenden Behandlung der CK-Suite.

3 Metriken in OO-Programmierung Name der Metrik Abkürzung Art der Metrik Anwendung auf TRADITIONELL Cyclomatic Complexity Lines of Code Comment Percentage CC SIZE COM Traditionell Traditionell Traditionell Methoden Methoden Methoden CHIDAMBER-KEMERER OO Weighted Methods per Class Response for a Class Lack of Cohesion of Methods Coupling between Objects Depth of Inheritance Tree Number of Children WMC RFC LCOM CBO DIT NOC Objektorientiert Objektorientiert Objektorientiert Objektorientiert Objektorientiert Objektorientiert Klasse/Methode Klasse/Nachricht Klasse/Kohäsion Obj.-Kopplung Vererbung Vererbung

4 Chidamber-Kemerer Metriksuite 1994 mit dem Ziel entwickelt, ein Set von Metriken zu finden, das auf fundierter theoretischer Basis (Mario Bunge Ontologie) analytisch in Hinblick auf vorher festgelegte Messprinzipien weder zu abstrakt noch zu plattformspezifisch ohne übermäßigen Aufwand in der Sammlung der Daten die Qualitätsevaluierung objektorientierten Softwarecodes ermöglicht. Sechs Designmetriken für jede Klasse: WMC Weighted Methods per Class DIT Depth of Inheritance Tree NOC Number of Children RFC Response for a Class CBO... Coupling between Object Classes LCOM Lack of Cohesion in Methods

5 Fallbeispiel: Handelssystem Beispielsystem Trader besteht aus der Superklasse Trade und den davon abgeleiteten Subklassen Equity Trade, FX Trade sowie Bond Trade. Zusammenfassung der Metriken unten, Pseudocode siehe nächste zwei Seiten.

6 Fallbeispiel: Handelssystem

7 Fallbeispiel: Handelssystem

8 WMC: Weighted Methods per Class Klasse: Vorlage zur Erzeugung konkreter Objekte Methode: Operation an einem Objekt WMC zählt die in einer Klasse enthaltenen Methoden oder (schwieriger zu implementieren) misst deren Komplexität sagt Entwicklungs- & Wartungsaufwand der Klasse voraus Klassen, die viele Methoden enthalten sind oft applikationsspezifisch, d.h. schlechte Wiederverwendbarkeit evaluiert Usability & Reusability

9 WMC Fallbeispiel: Handelssystem WMC = Anzahl der Methoden in einer Klasse Trade besitzt drei Methoden, daher WMC für Trade = 3 Bond und FX besitzen eine Methode, Equity zwei

10 DIT: Depth of Inheritance Tree Inheritance: Vererbung, ermöglicht die Wiederverwendung von bereits erstellten Objekten inklusive Variablen und Operatoren. DIT maximale Länge des Pfades von einem Klassenelement zur Wurzel des Klassenbaums, gemessen an der Zahl der Vater/Mutterklassen je tiefer in der Hierarchie, desto mehr Methoden üblicherweise von anderen Klassen geerbt, desto komplexer und schlechter vorhersehbar das Verhalten der Klasse Hohe Hierarchietiefe ist normalerweise auch Indikator für hohen Grad der Codewiederverwendung evaluiert Testbarkeit, Codeverständlichkeit und Reusability

11 DIT Fallbeispiel: Handelssystem DIT = Länge des maximalen Pfads von der Klasse zur Hierarchiewurzel Trade ist die oberste Klasse der Hierarchie, d.h. DIT für Trade=0 DIT für die Subklassen von Trade = 1

12 NOC: Number of Children NOC Anzahl der unmittelbar einer Klasse unterstellten Unterklassen Indikator des potenziellen Einflusses, den die Klasse auf das Gesamtsystem haben kann je größer die Anzahl der Subklassen, desto größer die Wahrscheinlichkeit einer fehlerhaft bzw. zu generell abstrahierten Elternklasse je größer die Anzahl der Subklassen, desto größer Code-Reuse große Kinderzahl erhöht durch großen Testaufwand die Testzeit evaluiert Testbarkeit und Design

13 NOC Fallbeispiel: Handelssystem NOC = Anzahl unmittelbarer Subklassen zu Trade gehören drei Subklassen, NOC ist somit 3 Equity, FX und Bond besitzen keine Subklassen

14 RFC: Response for a Class Nachricht: Anfrage eines Objektes an ein anderes Objekt zur Ausführung einer Operation. Die Operation, die als Antwort darauf ausgeführt wird, ist eine Methode. RFC Kardinalität (Größenordnung) des Sets aller Methoden, die als Antwort auf aus anderen Klassen oder Methoden kommenden Nachrichten ausgeführt werden können misst Klassenkomplexität als Kombination von Methodenanzahl und Umfang der Kommunikation mit anderen Klassen Testaufwand steigt mit Anzahl aufrufbarer Methoden erheblich evaluiert Design, Usability, Testbarkeit

15 RFC Fallbeispiel: Handelssystem RFC = Kardinalität der Methoden, die als Antwort auf eine Nachricht ausgeführt werden können Eingehende Nachrichten können bei Trade vier verschiedene Methoden auslösen (drei interne, und die in position_update aufgerufene externe), d.h. RFC für Trade = 4

16 CBO: Coupling Between Object Classes Kopplung: Stärke der Assoziation zwischen zwei Entitäten z.b. durch Austausch von Nachrichten zwischen zwei Objekten, Verwendung der Methode einer Klasse durch eine andere, Vererbung. CBO zählt Anzahl der anderen (nicht geerbten) Klassen, mit denen eine Klasse gekoppelt ist exzessive Kopplung widerspricht modularem Aufbau, reduziert durch Abhängigkeiten der Klasse deren externe Wiederverwendbarkeit starke Kopplung erhöht Sensitivität gegenüber Änderungen in anderen Programmteilen, macht Code schwer überblickbar evaluiert Design und Reusability

17 CBO Fallbeispiel: Handelssystem CBO = Kopplung mit anderen Klassen (Aufrufe von Methoden oder Instanzvariablen anderer Klassen) Die Klasse Trade verwendet eine Methode der position_manager- Klasse, CBO ist somit 1.

18 LCOM: Lack of Cohesion in Methods Kohäsion: Grad, zu dem Methoden innerhalb einer Klasse miteinander verbunden sind und zusammenarbeiten. LCOM misst die Ähnlichkeit von Methoden anhand der von Ihnen verwendeten Attribute und Variablen entweder durch Ermittlung, wie viele Prozent der Methoden jedes Datenfeld der Klasse verwenden oder durch Vergleich der eingesetzten Attribute hohe Kohäsion signalisiert gute Klassenunterteilung niedrige Kohäsion erhöht Komplexität und Fehleranfälligkeit Klassen mit niedriger Kohäsion erlangen durch Aufspaltung in mehrere Klassen möglicherweise bessere Kohäsionswerte evaluiert Design und Reusability

19 LCOM Fallbeispiel: Handelssystem LCOM = Anzahl der Methodenpaare ohne gemeinsame Instanzvariable minus Methodenpaare mit gemeinsamer Instanzvariable hier 1, weil die Klasse Trade drei Methoden (3) hat, also drei Methodenpaare möglich sind, zwei davon auf keine gemeinsame Variable zugreifen (2), ein Paar (get_trade & pos_update) sich jedoch auf die gemeinsame Variable trade_id bezieht (2-1)

20 Studie 1: Validität der CK-Metriken Hypothese: CK Metriken zur Messung von Designkomplexität geeignet Folgerung: Metrikwerte müssen in engem Zusammenhang mit resultierender Softwarekomplexität, -produktivität, -verwendbarkeit und -wartbarkeit stehen Überprüfung der Hypothese anhand der Analyse dreier kommerzieller Softwaresysteme der European Bank ISD Ergebnis: Metriken NOC und DIT unerheblich (minimaler Einsatz von Vererbung); WMC, RFC und CBO hochgradig korreliert (>0.8), gemeinsame Verwendung in Regressionsanalyse somit problematisch deshalb Konzentration auf hohe Korrelation mit abhängiger Managementgröße in Einzelbereichen: z.b. Produktivität, Nachbearbeitungsaufwand, Designaufwand

21 Studie 1: Produktivität Produktivität = SIZE (Codegröße) / EFFORT (Arbeitsstunden) Untersuchung: Inwiefern erklären OO Metriken Produktivitätsunterschiede in OO-Programmen besser als traditionelle Metriken? Einführung von Dummy-Variablen zur Ausschaltung gerade nicht relevanter Metriken: HICBO und HILCOM, werden Eins oder Null bei Überschreiten von Metrikschwellenwerten Schrittweise Regression führt zum Ergebnis: Produktivität mit hohen CBO oder LCOM-Werten stark negativ korreliert. Entwickler benötigen daher für stark gegenseitig verknüpfte (CBO) und inkohärente (LCOM) Klassen mehr Programmier- und Testzeit (siehe Formel unten)

22 Studie 1: Nachbearbeitungsaufwand Wiederverwendbarkeit von Code bedeutender Vorteil der objektorientierten Programmierung Niedriger Nachbearbeitungsaufwand erwünscht, d.h. Klassen sollen möglichst unverändert in neue Projekte übernehmbar sein Aufwand bei einem der 3 Systeme empirisch ermittelt & analysiert Ergebnis: hohe CBO und LCOM-Werte stehen für höheren Nachbearbeitungsaufwand, STAFF (Leistungsunterschiede beim Programmierer) und SIZE (Codegröße) aber nicht mehr signifikant

23 Studie 1: Designaufwand ermittelt an einem System, an dem der Code selbst noch nicht implementiert war, erst die Klassen spezifiziert somit keine SIZE- und STAFF-Informationen verfügbar (Code erst grob entworfen, Anzahl der Zeilen noch unbekannt) Wie bei Nachbearbeitungsaufwand hohes CBO + LCOM = Vorhersage für arbeitsaufwändige Implementierung Zusammenfassung: Metriken auf Systemen mit verschiedenen Programmiersprachen und selbst bei noch nicht implementierten Klassen sinnvoll ermittelbar DIT und NOC bei keiner der Untersuchungen relevant WMC, CBO und RFC hochgradig korreliert Hohes Coupling (CBO) und fehlende Kohäsion (LCOM) resultieren in ineffizientem Code

24 Studie 2: Metriken als Qualitätsindikatoren Empirische Analyse der CK OO-Metriken hinsichtlich ihrer Fähigkeit zur Fehlerwahrscheinlichkeitsvorhersage Hypothesen: H-WMC: hohe Funktionszahl -> komplex, fehleranfällig H-DIT: tiefe Hierarchien -> Integritäts- und Vererbungsfehler H-NOC: Kinderreiche Klassen testintensiv & schwer modifizierbar H-CBO: Von anderen abhängige Klassen fehleranfälliger H-RFC: Funktionsvielfalt erzeugt Komplexität und Fehler H-LCOM: Niedrige Kohäsion resultiert aus Designfehlern

25 Studie 2: Datensammlung & Analyse Viermonatige empirische Studie mit Studententeams der University of Maryland, OO-Analyse und Design Jedes Team entwickelt eigenes Management- Informationssystem anhand des Wasserfallmodells, testet diese auf Fehler und vermerkt gefundene (Report) Expertenevaluierung der resultierenden Systeme+Reports, Anwendung der CK-Metriken auf Quellcode; Vergleich der von den Metriken vorhergesagten Fehlerraten mit den tatsächlich aufgetretenen (Wahrscheinlichkeitsverteilung, Regressionsanalyse,

26 Studie 2: Ergebnisse Eindimensionale Analyse (einzelne Metriken) WMC, DIT, RFC, CBO signifikant, Hypothese soweit bestätigt Number of Childen hochsignifikant, aber hier Hyp. widerlegt: je höher die NOC, desto niedriger die Wahrscheinlichkeit eines Fehlers. Vermuteter Grund: hohes Coderecycling bedeutet viel Vererbung, somit viele Subklassen, positive Auswirkung des bereits erprobten Codes überwiegt ggü. Komplexitätszunahme LCOM nirgends signifikant Mehrdimensionale Analyse (mehrere Metriken simultan) Fehlerhäufigkeitsvorhersagen der OO-Metriken treffen zu OO-Metriken bei OO-Code besser als klassische M. geeignet

27 Weiterführende Literatur Lanza/Marinescu: Object-Oriented Metrics in Practice: Using Software Metrics to characterize, evaluate and improve the Design of Object-Oriented Systems. Springer, New York, Henderson-Sellers, Brian: Object-Oriented Metrics. Measures of Complexity. Prentice Hall, New Jersey 1996 Lorenz/Kidd: Object-Oriented Software Metrics. Prentice Hall, New Jersey Shaw/Garlan: Software Architecture. Perspectives on an Emerging Discipline. Prentice Hall, New Jersey, 1996.

28 Weiterführende Literatur Chidamber/Kemerer: A Metrics Suite for Object Oriented Design. MIT Sloan School of Management, Massachusetts Chidamber/Darcy/Kemerer: Managerial Use of Metrics for Object- Oriented Software. IEEE Transactions on Software Engineering, Vol. 24 No. 8, August Basili/Briand/Melo: A Validation of Object-Oriented Design Metrics as Quality Indicators. IEEE Transactions on Software Engineering, Vol. 22 No. 10, October Marinescu: Measurement and Quality in Object-Oriented Design. Proceedings of the 21st IEEE International Conference on Software Maintenance (ICSM 2005), IEEE Computer Society Press,2005

Verwendung von OO-Metriken zur Vorhersage

Verwendung von OO-Metriken zur Vorhersage Verwendung von OO-Metriken zur Vorhersage Tobias Angermayr Übersicht 1. Definitionen 2. Gründe, Anforderungen, Ziele 3. Die CK-Metriken 4. Beobachtungen 5. Studie 6. Zusammenfassung Folie 2 Definitionen

Mehr

Softwaretechnik (Allgemeine Informatik) Überblick

Softwaretechnik (Allgemeine Informatik) Überblick Softwaretechnik (Allgemeine Informatik) Überblick 1 Einführung und Überblick 2 Abstraktion 3 Objektorientiertes Vorgehensmodell 4 Methoden der Anforderungs- und Problembereichsanalyse 5 UML-Diagramme 6

Mehr

Softwaremessung und -metrik

Softwaremessung und -metrik Softwaremessung und -metrik AW1 Votrag - Daniel Wojtucki Hamburg, 20. Januar 2010 Inhalt 1 Einleitung 2 Softwarequalität 3 Grundlagen der Softwaremetrik 4 Beispiele bestimmter Metriken 5 Zusammenfassung

Mehr

Thomas Haug MATHEMA Software GmbH 209

Thomas Haug MATHEMA Software GmbH 209 Thomas Haug MATHEMA Software GmbH 209 Wer bin ich > Dipl.-Inf (Univ.) > Senior Consultant, Architekt und Trainer (MATHEMA Software GmbH) > 25+ Jahre Software Entwicklung > 12+ Jahre Java Enterprise > 7+

Mehr

Objektorientierte Codemetriken und deren Anwendung im Bereich von Embedded Systems

Objektorientierte Codemetriken und deren Anwendung im Bereich von Embedded Systems Objektorientierte Codemetriken und deren Anwendung im Bereich von Embedded Systems Eugenia Drosdezki, 166771 Angewandte Informatik, WS2008/2009 Seminar Neue Technologien, Hochschule Oenburg 16. Januar

Mehr

3. Konzepte der objektorientierten Programmierung

3. Konzepte der objektorientierten Programmierung 3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung

Mehr

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

Jan Schumann, G+J Manuel Pichler, Trainer & Consultant - Qafoo. Statische Codeanalyse wirklich effektiv nutzen Jan Schumann, G+J Manuel Pichler, Trainer & Consultant - Qafoo Statische Codeanalyse wirklich effektiv nutzen Über uns Jan Schumann Jahrgang 1976 System- / Softwarearchitekt Entwickler von: PHP_Depend,

Mehr

Software-Qualität sichtbar machen

Software-Qualität sichtbar machen Software-Qualität sichtbar machen Prof. Dr. Claus Lewerentz BTU Cottbus Vortrag im Rahmen des Berlin-Brandenburger Software-Forums Zeit: 28. April 2003,18.30 Uhr Ort: Fraunhofer FIRST Berlin Software Qualität

Mehr

Inhalt. 1. Sprachspezifische Fehlerrisiken C++ Java. Smalltalk. 2. Coverage - Modelle. Statement Coverage. Branch Coverage

Inhalt. 1. Sprachspezifische Fehlerrisiken C++ Java. Smalltalk. 2. Coverage - Modelle. Statement Coverage. Branch Coverage Inhalt 1. Sprachspezifische Fehlerrisiken C++ Java Smalltalk 2. Coverage - Modelle Statement Coverage Branch Coverage Inkrementelles Testen von Klassen Testen Polymorpher Bindungen Optimistischer Ausblick

Mehr

Softwarequalität. 20. Januar 2015

Softwarequalität. 20. Januar 2015 Softwarequalität 20. Januar 2015 Überblick Wie definiert man gute Software? Welche Qualitätskriterien gibt es für Software? Welche Qualitätsanforderungen leiten sich daraus ab? Wie erreicht man gute Software?

Mehr

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java Objektorientierte Programmierung mit Java Eine praxisnahe Einführung mit BlueJ Klassenentwurf Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? 1.0 Zentrale Konzepte

Mehr

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

Messen & Metriken Ist Qualität messbar? André Fleischer Messen & Metriken Ist Qualität messbar? 1 1995 2000 Studium Technische Informatik (HAW Hamburg) 2001 2007 Lufthansa System IT Consultant, Software Architekt Seit 2007, otto group Otto Group, Software Architekt

Mehr

Selbstbestimmtes Lernen. Proinformatik III Objektorientierte Programmierung. Format. Inhalt. Buzzwords

Selbstbestimmtes Lernen. Proinformatik III Objektorientierte Programmierung. Format. Inhalt. Buzzwords 4.0 Proinformatik III Objektorientierte Programmierung Michael Kölling University of Kent Canterbury, UK Selbstbestimmtes Lernen Vorlesung Tutorium Übungen Buch Web-Seite Üben, üben, üben! Format Vorlesung:

Mehr

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern Objektorientierte Programmierung mit Python Polymorphismus und Vererbung Eltern Kind Kind Kind Kind Prinzipien der objektorientierten Programmierung Vererbung Strukturierung von Klassen. Oberbegriffe beschreiben

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung

1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung K05 Vererbung & Polymorphie in C++ 1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung 2 Vererbung in C++: Grundlagen Analog zu Java unterstützt C++ das Konzept der Vererbung:

Mehr

Management von Softwaresystemen Systembewertung: Metriken und Prozess

Management von Softwaresystemen Systembewertung: Metriken und Prozess Management von Softwaresystemen Systembewertung: Metriken und Prozess Referent: Vadym Alyokhin Betreuer: Florian Deißenböck Übersicht Definition Einführung in die Messtheorie Meilensteine von Software-Metriken

Mehr

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 A. Beschreibung der Projektarbeit. Welche Aufgabe haben Sie im Rahmen der Projektarbeit gelöst? 2. Mit welchen Tools bzw. Programmen (Anwendung,

Mehr

Timo Wagner & Sebastian Kühn Entwurf einer Multi-Tier Anwendung in ASP.NET

Timo Wagner & Sebastian Kühn Entwurf einer Multi-Tier Anwendung in ASP.NET Timo Wagner & Sebastian Kühn Entwurf einer Multi-Tier Anwendung in ASP.NET Überblick 1.Einfürung in die Multi-Tier Architektur 2.Ausgangspunkt und Probleme 3.Rundgang durch die Architektur 4.Architektur

Mehr

Fachthema. JavaSPEKTRUM 5/2008. Alles im Blick. Einführung. Strukturanalyse. Christoph Beck, Oliver Stuhr

Fachthema. JavaSPEKTRUM 5/2008. Alles im Blick. Einführung. Strukturanalyse. Christoph Beck, Oliver Stuhr Fachthema Alles im Blick STAN Strukturanalyse für Java Christoph Beck, Oliver Stuhr Neben der üblicherweise durch Tests gewährleisteten äußeren Qualität einer Software ist auch die innere Qualität entscheidend

Mehr

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung Eltern Kind Kind Vererbung Definition von Klassen auf Basis von bestehenden Klassen. Implementierung von ist ein. bildet ein hierarchisches

Mehr

OO Design. welche Methoden in welcher Klasse sind, und. diese Interagieren

OO Design. welche Methoden in welcher Klasse sind, und. diese Interagieren Design: GRASP 1 OO Design Definition Objektorientiertes Design: After identifiying your requirements and creating a domain model, then add methods to the software classes, and define the messaging between

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Die Vererbung ermöglicht es, neue Klassen auf der Basis von schon

Mehr

Java lernen mit BlueJ

Java lernen mit BlueJ Java lernen mit BlueJ Eine Einführung in die objektorientierte Programmierung David J. Barnes Michael Kölling 4.0 Lernen in Eigenregiegi Vorlesungen Seminare Übungen Bücher Webseiten Diskussionslisten

Mehr

Werkzeuge zur Ermittlung von Software- Produktmetriken und Qualitätsdefekten Studie zu Software-Messwerkzeugen 2005

Werkzeuge zur Ermittlung von Software- Produktmetriken und Qualitätsdefekten Studie zu Software-Messwerkzeugen 2005 Werkzeuge zur Ermittlung von Software- Produktmetriken und Qualitätsdefekten Studie zu Software-Messwerkzeugen 2005 AUTOREN: JÖRG RECH SEBASTIAN WEBER IESE-Report Nr. 108.05/D Version 1.0 29. November

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung Ein Computerprogramm besteht aus Funktionen (Programmabschnitten, die etwas tun) und Variablen (Speicherplätzen für Informationen). Werden Funktionen aktiviert, verändern

Mehr

Prinzipien Objektorientierter Programmierung

Prinzipien Objektorientierter Programmierung Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)

Mehr

OO Softwareentwicklung

OO Softwareentwicklung OO Softwareentwicklung Objektorientierung Prof. Dr. Bernhard Schiefer 1 OO als Ansatz zur Verbesserung der Software-Qualität Modellierung der Welt als selbständig agierende Objekte. Gemeinsame Beschreibung

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Software Engineering

Software Engineering Software Engineering Softwaremetriken Prof. Dr.-Ing. habil. Reiner R. Dumke http://www.smlab.de R. Dumke 5-1 Software Engineering - LV-Inhalt - 11. Softwaremessung und bewertung Grundbegriffe der Softwarenmessung

Mehr

1. Java ist... 2. Stammbaum der Programmiersprachen 3. Die "Softwarekrise"

1. Java ist... 2. Stammbaum der Programmiersprachen 3. Die Softwarekrise im Überblick im Überblick Inhalt 1. Java ist... 2. Stammbaum der Programmiersprachen 3. Die Softwarekrise 1. Merkmale von Software 2. Fortlaufende Veränderungen 3. Erschwerte Rahmenbedingungen bei der

Mehr

Grundzüge der Programmierung. Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN

Grundzüge der Programmierung. Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN Grundzüge der Programmierung Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN Inhalt dieser Einheit JAVA ist objektorientiert! Grundbegriffe der objektorientierten Programmierung:

Mehr

1. Zweckdes Dokuments

1. Zweckdes Dokuments Testplanung Testplanung 1.Zweck des Dokuments 2.Testziele 3.Teststrategie 4. Inkrementeller Test 5. Dokumentation der Tests 6. Performance Test 7. Literaturreferenzen 1. Zweckdes Dokuments Dokumentation

Mehr

6 Architektur-Mittel (WOMIT)

6 Architektur-Mittel (WOMIT) 6 Architektur-Mittel (WOMIT) Abb. 6-1: Positionierung des Kapitels im Ordnungsrahmen. Dieses Kapitel befasst sich mit der WOMIT-Dimension des architektonischen Ordnungsrahmens, indem es grundlegende Konzepte

Mehr

Vorab: Welt der SNMP-RFCs

Vorab: Welt der SNMP-RFCs Vorab: Welt der SNMP-RFCs M. Leischner Internetkommunikation II Folie 1 Historie von SNMP Version SMI MIB Protokoll SGMP RFC1028, 11/87 RFC1028, "Simple Gateway Monitoring Protocol" SNMPv1 RFC1065-1067,

Mehr

Whitepaper. The Big Ball of Mud. Flexible Architekturen (Stand: August 2009)

Whitepaper. The Big Ball of Mud. Flexible Architekturen (Stand: August 2009) Whitepaper Flexible Architekturen (Stand: August 2009) The Big Ball of Mud The most frequently deployed software architecture: the Big Ball of Mud, so haben Foote und Yoder das Ergebnis von 30 Jahren Software-Engineering

Mehr

Java Schulung (Java 2 Java Development Kit 5 / 6)

Java Schulung (Java 2 Java Development Kit 5 / 6) 2. Grundlagen der Objektorientierung 2.1 Klassen, Attribute, Methoden Klassen Eine Klasse beschreibt als Bauplan Gemeinsamkeiten einer Menge von Objekten ist also ein Modell, auf dessen Basis Objekte erstellt

Mehr

DESIGN'PATTERN'2011. November. Abstract Factory & Factory Method BEARBEITET VON INHALT [1] Christoph Süsens

DESIGN'PATTERN'2011. November. Abstract Factory & Factory Method BEARBEITET VON INHALT [1] Christoph Süsens November DESIGN'PATTERN'2011 INHALT Intent Motivation Applicability Structure Consequences Implementation Sample Code [1] BEARBEITET VON Christoph Süsens Abstract Factory & Factory Method Inhaltsverzeichnis

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2008/2009

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2008/2009 PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2008/2009 FB Informatik

Mehr

4 Vererbung, Polymorphie

4 Vererbung, Polymorphie 4 Vererbung, Polymorphie Jörn Loviscach Versionsstand: 21. März 2014, 22:57 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015

Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015 Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015 CODESYS a trademark of 3S-Smart Software Solutions GmbH Agenda 1 Warum

Mehr

PHP Aufbaukurs. Tag 3. PHP5 & Klassen

PHP Aufbaukurs. Tag 3. PHP5 & Klassen PHP Aufbaukurs Tag 3. PHP5 & Klassen Organisatorisches 2 Igor Olkhovskiy Dr. Dipl.- Ing. Kontakt: olkhovskiy@rrzn.uni-hannover.de PHP Aufbaukurs 19.09.2006 Folie 2 PHP. OOP. Geschichte 3 PHP/FI ( PHP 1

Mehr

Software-Entwicklung: Konzepte der Objektorientierung

Software-Entwicklung: Konzepte der Objektorientierung Software-Entwicklung: Konzepte der Objektorientierung 1 Übersicht Objektorientierte Softwareentwicklung Klasse und Objekt Attribut und Operation Schnittstelle Taxonomie und Vererbung Weitere Begriffe 2

Mehr

Client-Server-Beziehungen

Client-Server-Beziehungen Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server

Mehr

Objektorientierte Datenmodelle und - verwaltung

Objektorientierte Datenmodelle und - verwaltung Schlagworte der 90er: Objektorientiertes GIS OpenGIS Case-Tool Geoökologe Legt Problemstellung fest (Art, Anzahl, Dimension, Skalierung) Wählt Koordinatensystem Wählt Fachattribute OOUI (object-oriented

Mehr

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

Department of Computer Science Chair of Software Engineering Faculty of Engineering. Grundlagen der Softwarearchitektur (im Softwarepraktikum) Grundlagen der Softwarearchitektur (im Softwarepraktikum) 1 ORGANISATORISCHES 2 Inhalt Was ist Softwarearchitektur? Dokumentieren mit UML Wie bewerte ich eine Softwarearchitektur? Wie plane ich eine Softwarearchitektur?

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Softwarequalität: Definitionen, Wünsche, Grenzen

Softwarequalität: Definitionen, Wünsche, Grenzen Softwarequalität: Definitionen, Wünsche, Grenzen iks Thementag Mehr Softwarequalität Ausgewählte Themen 22.05.2014 Autor: Christoph Schmidt-Casdorff Agenda Einführung Was ist Softwarequalität? Qualität

Mehr

Messen & Metriken Ist Qualität messbar?

Messen & Metriken Ist Qualität messbar? Messen & Metriken Ist Qualität messbar? (André Fleischer) prio.conference, Baden-Baden, 14.November 2007 1 Abstrakt Seitdem Probleme mit Hilfe von Softwaresystemen gelöst werden, ist man auf der Suche

Mehr

Von der UML nach C++

Von der UML nach C++ 22 Von der UML nach C++ Dieses Kapitel behandelt die folgenden Themen: Vererbung Interfaces Assoziationen Multiplizität Aggregation Komposition Die Unified Modeling Language (UML) ist eine weit verbreitete

Mehr

Ersetzbarkeit, Client-Server Beziehungen

Ersetzbarkeit, Client-Server Beziehungen Ersetzbarkeit, Client-Server Beziehungen 182.132 VL Objektorientierte Programmierung Raimund Kirner Mitwirkung an Folienerstellung: Peter Puschner, basieren auf den Folien von Franz Puntigam, TU Wien Überblick

Mehr

Kapitel 3 Software Quality I

Kapitel 3 Software Quality I Kapitel 3 Software Quality I Software Architecture, Quality, and Testing FS 2015 Prof. Dr. Jana Köhler jana.koehler@hslu.ch Agenda Heute Wie können wir Software Qualität definieren? Warum ist Qualitätssicherung

Mehr

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014 Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung Klaus Kusche, September 2014 Inhalt Ziel & Voraussetzungen Was sind abstrakte Datentypen? Was kann man damit grundsätzlich?

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

Übungen zur Softwaretechnik

Übungen zur Softwaretechnik Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 8 10. Dezember 2002 www4.in.tum.de/~rumpe/se

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

Objekt-Orientierte Programmierung

Objekt-Orientierte Programmierung Objekt-Orientierte Programmierung Ein OO-Programm modelliert eine Anwendung als eine Welt von Objekten, die miteinander in Beziehung stehen ( später). Ein Objekt kann andere Objekte erzeugen. Ein Objekt

Mehr

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden VIII: Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik I VIII: Vererbung 259 Beispiel:

Mehr

Erster Bug: eine Motte

Erster Bug: eine Motte SOFTWAREFEHLER Der erste Bug Erster Bug: eine Motte Der Begriff Bug (deutsch: Motte) stammt aus dem Jahre 1945, als Ingenieure in einem Schaltrelais eines Computers (Harvard Mark II-System) eine Motte

Mehr

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume.

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume. Universität Osnabrück 1 Bäume 3 - Objektorientierte Programmierung in Java Vorlesung 10: Collections 4 Einführung Bäume sind verallgemeinerte Listenstrukturen Lineare Liste Jedes Element hat höchstens

Mehr

BEDEUTUNG VON AUSGANGSZUSTÄNDEN BEIM TESTEN VON OBJEKTORIENTIERTER SOFTWARE IMPORTANCE OF INITIAL STATES BY TESTING OF OBJECT-ORIENTED SOFTWARE

BEDEUTUNG VON AUSGANGSZUSTÄNDEN BEIM TESTEN VON OBJEKTORIENTIERTER SOFTWARE IMPORTANCE OF INITIAL STATES BY TESTING OF OBJECT-ORIENTED SOFTWARE CO-MAT-TECH 2004 14-15 October 2004 BEDEUTUNG VON AUSGANGSZUSTÄNDEN BEIM TESTEN VON OBJEKTORIENTIERTER SOFTWARE IMPORTANCE OF INITIAL STATES BY TESTING OF OBJECT-ORIENTED SOFTWARE Roman NAGY External doctorand

Mehr

Erste Implementation eines praxisbezogenen Analyse- Tools für Softwarequalität und ein Ansatz zur Erkennung von Zustandsvariablen

Erste Implementation eines praxisbezogenen Analyse- Tools für Softwarequalität und ein Ansatz zur Erkennung von Zustandsvariablen Erste Implementation eines praxisbezogenen Analyse- Tools für Softwarequalität und ein Ansatz zur Erkennung von Zustandsvariablen Master Thesis Wintersemester 2005/2006 Fachbereich Informatik von Benedikt

Mehr

Die Macht, die uns umgibt. Design Prinzipien. Schneller und besser Software entwickeln. 2012 Jörg Bächtiger

Die Macht, die uns umgibt. Design Prinzipien. Schneller und besser Software entwickeln. 2012 Jörg Bächtiger Die Macht, die uns umgibt Design Prinzipien Schneller und besser Software entwickeln 2012 Jörg Bächtiger Joerg.Baechtiger@Abraxas.ch http://www.xing.com/profile/joerg_baechtiger Übersicht geben Zusammenhänge

Mehr

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

Seminar Softwareentwicklung in der Wissenschaft Code-Qualität Seminar "Softwareentwicklung in der Wissenschaft" "Code-Qualität" Johann Weging 8weging@informatik.uni-hamburg.de Arbeitsbereich Wissenschaftliches Rechnen Department Informatik Universität Hamburg 2011-02-09

Mehr

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

Code Quality. Steigerung der Codequalität mit Visual Studio & TFS Code Quality Steigerung der Codequalität mit Visual Studio & TFS Tobias Richling 30 Jahre Wohnhaft im Münsterland Softwareentwickler seit Amiga Basic Microsoftie Logisitksoftware Silverlight TFS Trainer,

Mehr

...we make the invisible visible...

...we make the invisible visible... ...we make the invisible visible... 1 Inhalt Qualitätsbegriff Fragestellungen im Zusammenhang mit innerer Softwarequalität Analysen und deren Anwendung Erfahrungen 2 Ausfallsicherheit Datensicherheit Zuverlässigkeit

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

5.6 Vererbung. Vererbung

5.6 Vererbung. Vererbung 5.6 Vererbung Klassen können zueinander in einer "ist ein"- Beziehung stehen Beispiel: Jeder PKW ist ein Kraftfahrzeug, jedes Kraftfahrzeug ist ein Transportmittel aber: auch jeder LKW ist ein Kraftfahrzeug

Mehr

Test. Dipl. Wirtsch. Ing. Alexander Werth 9-1

Test. Dipl. Wirtsch. Ing. Alexander Werth 9-1 Test Dipl. Wirtsch. Ing. Alexander Werth 9-1 Phasen der Problemdefinition Anforderungsanalyse Spezifikation Entwurf Implementation Erprobung Wartung Methoden der 9-2 Software Test / Erprobung Messen der

Mehr

Werkzeugunterstützte Betrachtungen von Software-Qualität und -Architekturen

Werkzeugunterstützte Betrachtungen von Software-Qualität und -Architekturen ...we make the invisible visible... Werkzeugunterstützte Betrachtungen von Software-Qualität und -Architekturen 1 Inhalt Qualitätsbegriff und Qualitätsmodelle Abstraktion Analysen und deren Anwendung Erfahrungen

Mehr

Objektorientierter Software-Entwurf Die Unified Modeling Language 4 1

Objektorientierter Software-Entwurf Die Unified Modeling Language 4 1 Objektorientierter Software-Entwurf Die Unified Modeling Language 4 1 Die Unified Modeling Language Die UML (hier in der Version 0.9) ist ein Satz von Notationen zur Beschreibung objektorientierter Softwaresysteme.

Mehr

Maintainability Index als Instrument der Software-Wartung

Maintainability Index als Instrument der Software-Wartung Stuttgart 04.10.2007 Maintainability Index als Instrument der Software-Wartung Maintainability Index als Instrument der Software-Wartung Dieses Werk einschließlich aller seiner Teile ist urheberrechtlich

Mehr

Software-Architektur Design Patterns

Software-Architektur Design Patterns Design Patterns Prof. Dr. Oliver Braun Fakultät für Informatik und Mathematik Hochschule München SS 2015 Standardwerk Gang of Four: Erich Gamma, Richard Helm, Ralph Johnson & John Vlissides: Design Patterns:

Mehr

C vs. C++ Sebastian Meyer. Proseminar C - Grundlagen und Konzepte. Universität Hamburg

C vs. C++ Sebastian Meyer. Proseminar C - Grundlagen und Konzepte. Universität Hamburg C vs. C++ Sebastian Meyer Universität Hamburg Proseminar C - Grundlagen und Konzepte 2013 1 / 31 Gliederung 1 Einführung 2 Vergleich der Spracheigenschaften 3 Neue Sprachelemente in C++ 4 Fazit 5 Zusammenfassung

Mehr

ORM & OLAP. Object-oriented Enterprise Application Programming Model for In-Memory Databases. Sebastian Oergel

ORM & OLAP. Object-oriented Enterprise Application Programming Model for In-Memory Databases. Sebastian Oergel ORM & OLAP Object-oriented Enterprise Application Programming Model for In-Memory Databases Sebastian Oergel Probleme 2 Datenbanken sind elementar für Business-Anwendungen Gängiges Datenbankparadigma:

Mehr

Räumliches Data Mining

Räumliches Data Mining Räumliches Data Mining Spatial Data Mining Data Mining = Suche nach "interessanten Mustern" in sehr großen Datensätzen => explorative Datenanlyse auch: Knowledge Discovery in Databases (KDD) verbreitete

Mehr

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

!  #! $! % & ' ' (!  # # $ ! " #! $! % & ' ' (! " # # $ Abstract Software integration testing can be divided into three sections: The static analysis, the symbolic execution and the dynamic test. While the static analysis exposes

Mehr

Entwurf von wiederverwendbaren Klassen

Entwurf von wiederverwendbaren Klassen Seminar Software aus Komponenten Sommersemester 2005 Entwurf von wiederverwendbaren Klassen Olaf Hecht hecht@inf.fu-berlin.de Seminarleiter: Christopher Oezbek 7. August 2005 Olaf Hecht Entwurf von wiederverwendbaren

Mehr

Risikobasiertes statistisches Testen

Risikobasiertes statistisches Testen Fabian Zimmermann Robert Eschbach Johannes Kloos Thomas Bauer Ziele von Risikobasiertem Testen Testen von Safety-kritischen Produkten Garantieren, dass das Produktrisiko geringer ist als das tolerierbare

Mehr

2.4.3 Polymorphie (Wiederholung von Alp2)

2.4.3 Polymorphie (Wiederholung von Alp2) 2.4.3 Polymorphie (Wiederholung von Alp2) Sparbuch einsparbuch = new Sparbuch(3.0); Konto einkonto; KontoDrucker = new KontoDrucker(); KontoDrucker.setzeKonto(einSparbuch); einkonto = einsparbuch; Wie

Mehr

Testen und Metriken. Einige Fehler. Fehler vermeiden. Andreas Zeller Universität des Saarlandes Microsoft Research. http://www.st.cs.uni-sb.

Testen und Metriken. Einige Fehler. Fehler vermeiden. Andreas Zeller Universität des Saarlandes Microsoft Research. http://www.st.cs.uni-sb. Testen und Metriken Andreas Zeller Universität des Saarlandes Microsoft Research http://www.st.cs.uni-sb.de/ Einige Fehler Fehler vermeiden Spezifizieren Beweisen Gegenlesen Testen Module Welche sollte

Mehr

EINE STRATEGIE FÜR OBJEKTORIENTIERTE SOFTWARE TESTEN- OMEN

EINE STRATEGIE FÜR OBJEKTORIENTIERTE SOFTWARE TESTEN- OMEN EINE STRATEGIE FÜR OBJEKTORIENTIERTE SOFTWARE TESTEN- OMEN Wissenschaftliches Arbeiten Recep IBILOGLU 0027849 534 Technische Universitaet Wien 1.Abstract Das Testen ist der kosten und zeitaufwendigste

Mehr

LEHRVERANSTALTUNGSBESCHREIBUNG

LEHRVERANSTALTUNGSBESCHREIBUNG LEHRVERANSTALTUNGSBESCHREIBUNG 1. Angaben zum Programm 1.1 Hochschuleinrichtung Babes-Bolyai Universität 1.2 Fakultät Mathematik und Informatik 1.3 Department Informatik 1.4 Fachgebiet Informatik 1.5 Studienform

Mehr

Praktikum Internetprotokolle - POP3

Praktikum Internetprotokolle - POP3 Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Praktische Informatik und Medieninformatik Fachgebiet Telematik/Rechnernetze 19. Mai 2008 1 Aufgabenstellung Praktikum

Mehr

Softwaretechnik (Medieninformatik) Überblick: 6. Objektorientiertes Design

Softwaretechnik (Medieninformatik) Überblick: 6. Objektorientiertes Design Softwaretechnik (Medieninformatik) Überblick: 6.1 Einleitung 6.2 Verfeinerung des Klassenmodells 6.3 Sequenzdiagramme 6.4 Umsetzung der Analysekonstrukte in das Design 6.5 Fallstudie 6.6 Software Kontrakte

Mehr

Kapitel 4.1 - Abbildung von UML-Modellen auf Code

Kapitel 4.1 - Abbildung von UML-Modellen auf Code SWT I Sommersemester 2010 Walter F. Tichy, Andreas Höfer, Korbinian Molitorisz IPD Tichy, Fakultät für Informatik KIT die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe (TH)

Mehr

Delta-Gamma-Verfahren als Standard- Risikomodell für Lebensversicherer

Delta-Gamma-Verfahren als Standard- Risikomodell für Lebensversicherer Delta-Gamma-Verfahren als Standard- Risikomodell für Lebensversicherer 1 Einleitung Im Rahmen des SST wird teilweise vereinfachend angenommen, dass der Zusammenhang zwischen der Veränderung des risikotragenden

Mehr

Abschlussarbeiten 2010 in der Medizininformatik

Abschlussarbeiten 2010 in der Medizininformatik Abschlussarbeiten 2010 in der Medizininformatik Ansprechpartner: Prof. Dr. Eberhard Beck eberhard.beck@fh-brandenburg.de FACHHOCHSCHULE BRANDENBURG FACHBEREICH INFORMATIK UND MEDIEN Konzeption und prototypische

Mehr

Objektorientierte Software-Entwicklung

Objektorientierte Software-Entwicklung Objektorientierte Software-Entwicklung Priv.- Doz Dr. Rolf Hennicker 04.10.2002 Kapitel 1 Software Engineering: Überblick Kapitel 1 Software Engineering: Überblick 2 Ziele Verstehen, womit sich die Disziplin

Mehr

Marktliquidität von Aktien

Marktliquidität von Aktien Marktliquidität von Aktien Inauguraldissertation zur Erlangung der Würde eines Doctor rerum oeconomicarum der Wirtschafts- und Sozialwissenschaftlichen Fakultät der Universität Bern Lukas Roth Die Fakultät

Mehr

17 Komponentenbasiertes Software-Engineering

17 Komponentenbasiertes Software-Engineering 17 Komponentenbasiertes Software-Engineering 17.0 Einführung Lernziele Grundlagen, Prinzipien und Probleme des CBSE 17.1 Komponenten und Komponentenmodelle Komponenten und ihre Eigenschaften Komponentenmodelle

Mehr

DATA ANALYSIS AND REPRESENTATION FOR SOFTWARE SYSTEMS

DATA ANALYSIS AND REPRESENTATION FOR SOFTWARE SYSTEMS DATA ANALYSIS AND REPRESENTATION FOR SOFTWARE SYSTEMS Master Seminar Empirical Software Engineering Anuradha Ganapathi Rathnachalam Institut für Informatik Software & Systems Engineering Agenda Introduction

Mehr

OOAD Richtlinien & Tips

OOAD Richtlinien & Tips Software-Architekturen Sommersemester 2002 Prof. Dr. Wolfgang Pree Universität Salzburg www.softwareresearch.net/swa 1 OOAD Richtlinien & Tips 2002, W. Pree, Software-Architekturen, SS2002; Teil I 2 Metriken

Mehr

Programmieren - Vererbung & Polymorphie

Programmieren - Vererbung & Polymorphie Programmieren - Vererbung & Polymorphie Reiner Nitsch r.nitsch@fbi.h-da.de Vererbung - Was ist das? Vererbung ist ein wichtiges Konzept zur Unterstützung der Wiederverwendbarkeit, wenn auch nicht das Wichtigste.

Mehr

Software Engineering, SoSe 07, WSI, D. Huson, (Original Author: A. Zeller), 4. Juni 2007 45

Software Engineering, SoSe 07, WSI, D. Huson, (Original Author: A. Zeller), 4. Juni 2007 45 Software Engineering, SoSe 07, WSI, D. Huson, (Original Author: A. Zeller), 4. Juni 2007 45 7 Programmverstehen + Fehlersuche Nach einer Vorlesung von Prof. Andreas Zeller, Lehrstuhl Softwaretechnik Universität

Mehr

Software Engineering Klassendiagramme weiterführende Konzepte

Software Engineering Klassendiagramme weiterführende Konzepte Software Engineering Klassendiagramme weiterführende Konzepte Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Klassenattribut: static Implementierung in Java public

Mehr

Java für Computerlinguisten

Java für Computerlinguisten Java für Computerlinguisten 2. Objektorientierte Programmierung Christian Scheible Institut für Maschinelle Sprachverarbeitung 28. Juli 2009 Christian Scheible Java für Computerlinguisten 28. Juli 2009

Mehr