Software Visualisierung im Kontext des Programmdebugging

Größe: px
Ab Seite anzeigen:

Download "Software Visualisierung im Kontext des Programmdebugging"

Transkript

1 Software Visualisierung im Kontext des Programmdebugging Marian Daubner TU-WIEN Bakkalaureatsarbeit , Österreich Abstract Diese Arbeit diskutiert nichttraditionelle Debugging-Techniken. Es beschreibt die Software Visualisierung als ein Mittel für schnelles Fehlerfinden in Programmen. Drei Arbeiten, die sich mit dieser Thema befassen, werden hier erörtert. Die einzelne Ideen haben wir zusammengefasst und verglichen.

2 Inhalt INHALT... 1 EINLEITUNG... 2 FÄRBUNGSTECHNIKEN... 3 CODE VISUALISIERUNG... 7 VISUALISIERUNG MIT UML... 8 OBJEKTDIAGRAMM...10 INTERESSENSGRAD...11 GENERALISATION UND AGGREGATION...13 END-USER TECHNIKEN...15 FEHLERLOKALISIERUNGSTECHNIKEN IN END-USER PROGRAMMEN...16 Die Test-Count Technik...17 Die Blocking Technik...18 Die Nearest Consumer Technik...19 ERGEBNISSE...19 TECHNIKEN...19 VISUALISIERUNGEN...20 SCHLUSSFOLGERUNG...21 REFERENZEN...22 BIBLIOGRAPHIE

3 Einleitung Entwickler verbrauchen den größten Teil der Softwareentwicklung mit Debugging. Der Versuch die Anzahl von Fehlern in Software zu reduzieren wird auf 50% - 80% der Entwicklungs- und Wartungszeit geschätzt. Debugging ist damit das am meisten zeitkonsumierende Verfahren in der Programmentwicklung. Viele Techniken wurden erforscht, um das Verfahren zu vereinfachen und die dafür gebrauchte Zeit zu verkürzen. Aber der größte Teil dieser Techniken ist nicht für große Programme geeignet oder braucht zu viel manuelle Beeinflussung. Symbolische Debugger schaffen einige Hilfe, aber die Aufgabe bleibt komplex und schwierig. Anders als Breakpoint und Tracing helfen diese nicht in den höheren Ebenen des Programms. Das Lokalisieren von Fehlern ist als der schwerste Teil des Debugging. Es wurde bemerkt, dass die Entwickler beim Debugging diese vier Schritte machen: 1. finde Zeilen in Source-code, die am Scheitern beteiligt sind; 2. markiere verdächtige Zeilen, die die Fehler enthalten könnten; 3. schätze die mögliche Fehlerursachen ab; und, 4. ändere das Programm. Ein Source-code Debugger hilft nur bei erster Aufgabe: der Entwickler muss mit einem Testcase, der das Scheitern verursacht hat, durch jede Zeile gehen und das Ergebnis kontrollieren. Ein falsches Ergebnis einer Instruktion hilft den Entwicklern, den Ursprung der Fehler aufzufinden. Das Debugging eines großen Programms ist aber sehr zeitkonsumierend. Darum verwenden die Entwickler oft eine Methode, die slice computing genannt wird. Hier wird versucht, den Fehler so zu lokalisieren, dass man von der betroffener Stelle rückwärts geht. Beim betrachten aller Statements, die die betroffene Stelle (wo der fehlerhafte Wert aufgetreten ist) beeinflussen, kann der Entwickler dann den Ursprung lokalisieren. Diese Methode kann den Entwickler helfen, sich nur auf den wichtigsten Teil des Programms zu konzentrieren. Obwohl diese Techniken den Programmierer bei der Fehlersuche helfen können, gibt es viele Aspekte des Prozesses, die noch verbessert werden könnten. 2

4 Eine Technik, die das Auffinden von Fehlerursprüngen automatisieren oder teilweise automatisieren würde, könnte das manuelle Aufsuchen deutlich verbessern. Die Tools fokussieren den Programmierer oft nur auf eine lokale Sicht und verbergen damit einen Fehler in der Infrastruktur. Ein Prozess, der eine globale Sicht gibt aber auch eine lokale ermöglichen würde, würde den Programmierern viele bedeutsame und reiche Informationen vermitteln. Oft verwenden die Tools nur das Ergebnis einer Programminstruktion, anstelle die Information von mehreren Programminstruktionen zu verwenden. Ein Tool, das den Programmierer mit dieser Information versorgen würde, würde ihm ermöglichen, komplexere Relationen im Programm zu verstehen. Aber mit eine solcher Einstellung wird bei großen und sehr fehlerhaften Programme eine große Menge von Daten erzeugt, die im Text nicht übersichtlich dargestellt werden können. In diese Arbeit werden diverse Techniken diskutiert, die Software- und Datenvisualisierung verwenden, um den Entwicklern bei der Fehlerlokalisierung zu helfen. Wir werden kurz ein Visualisierungstool TARANTULA und eine UML basierte Methode beschreiben und miteinander vergleichen. Dazu werden wir noch eine end-user Fehlerlokalisierungsmethode für Spreadsheetprogramme erörtern. Färbungstechniken Um Fehler zu finden muss man zuerst viele Testfälle schreiben und mit diesen das Programm testen. Das Ergebnis ist eine große Menge von Daten, die verarbeitet werden. Zusammen wird es benutzt, um Fehler zu suchen und zu beheben. Oft enthalten die Daten auch die Erschöpfung von Testfällen. Wenn es noch Stellen gibt, die nie durchgeführt wurden, müssen noch weitere Testfälle erzeugt werden. Die einfachste Methode ist es, einfach zu zählen wie oft eine Zeile (oder Funktion) ausgeführt wurde. Fehlerhafte und erfolgreiche Testfälle werden separat gezählt. Jeder Zeile wird dann eine Farbe zugeordnet. Das einfache Color-Mapping färbt Zeilen grün, 3

5 die nur bei erfolgreichen Testfällen ausgeführt wurden; rot, die nur bei fehlerhaften Testfällen ausgeführt wurden; und gelb alle andere, die bei beiden Testfällen durchgeführt wurden, [Jones et al 2003]. In Abbildung 1 zeigen wir ein Beispiel für ein einfaches Programm, das die mittlere Zahl von drei Zahlen ausgeben sollte. Der Fehler liegt in Zeile 7 (m sollte gleich x sein). mid() { Test Cases int x,y,z,m; 3,3,5 1,2,3 3,2,1 5,5,5 5,3,4 2,1,3 1: Read( Enter 3 numbers:,x,y,z) X X X X X X 2: m=z; X X X X X X 3: if (y<z) X X X X X X 4: if (x<y) X 5: m=y; X 6: else if (x<z) X X X 7: m=y; X X 8: Else X X X 9: if (x>y) X 10: m=y; X 11: else if (x>z) 12: m=x; 13: printf( Middle number is:,m); X X X X X X } Pass/Fail Status P P P P P F Abbildung 1: Gefärbt mit diskreter-drei-farbe Methode [Jones et al 2003]. Es hat 6 Testfälle, die in rechter Seite angezeigt sind. Die Testfalleingabe ist oben dargestellt und mit X sind alle Zeilen markiert, die bei jener Eingabe durchgeführt werden. Die letzte Zeile der Tabelle zeigt, ob der Testfall erfolgreich (P) oder fehlerhaft (F) war. Diese Einstellung wird auch diskrete Methode genannt. Leider, wie man schon auf dem Beispiel sieht, ist diese Methode nicht sehr informativ. Weil das Beispiel größtenteils gelb ist, gibt es auch keine Hinweise, wo der Fehler liegt. In [Jones et al 2003] wird noch eine Methode beschrieben. Diese Methode verwendet eine viel reichere Visualisierung. Es gibt den Analytiker viel mehr Information 4

6 und damit erleichtert es die Fehlersuche. Die Farbabbildung basiert auf einem stetigen Übergang von verschiedenen Farbtönen und Helligkeiten, um anzuzeigen, wie die Statements bei verschiedenen Testfällen partizipieren. Sie wird stetige Einstellung genannt. Der erste Bestandteil der Visualisierung ist die Farbe. Der Farbton repräsentiert die Information über den Prozentsatz von erfolgreichen Testfällen, die das Statement ausführt, im Vergleich zu fehlerhaften Testfällen, die das Statement ausführt. Ye mehr erfolgreiche bzw. fehlerhafte Testfälle das Statement ausführt, desto grüner bzw. roter wird es gefärbt. Wird es ungefähr gleich ab ausgeführt, dann wird der Farbton näher zur gelber Farbe sein. Die Absicht ist, dass die Stellen, durch die mehr als ein fehlerhafter Testfall gegangen ist, den Programmierer auf diese Stelle mehr aufmerksam machen sollte. Der Farbton wird folgender Weise berechnet: color = low color (red) + %passed (s) %passed (s) + %failed (s) * color range (1) In Gleichung (1) ist %passed (s) eine Funktion, die das Verhältnis zwischen der Anzahl von erfolgreichen Testfällen, die durch s gegangen sind, und der Anzahl von allen erfolgreichen Testfällen zurück gibt. %failed (s) ist ähnlich definiert, nur für fehlerhafte Testfälle. low color (red) ist der Wert von der Farbe mit niedrigstem Spektrum, also rot. color range ist die absolute Entfernung zwischen der niedrigste Farbe (rot) und die höchste Farbe (grün); der Wert von grün minus den Wert von rot. Der zweite Bestandteil der Visualisierung ist die Helligkeit. Die Technik in [Jones et al 2003] verwendet die Helligkeit, um den Prozentsatz von durchgeführten Testfällen deutlich zu machen. Erfolgreiche Testfälle werden separat von fehlerhaften Testfällen kalkuliert. Danach wird der höhere Wert genommen. Ye mehr erfolgreiche bzw. fehlerhafte Testfälle durch das Statement s gehen, desto heller wird das Statement markiert. Die maximale Helligkeit ist erreicht, wenn alle erfolgreiche (bzw. fehlerhafte) Testfälle das Statement ausgeführt haben. Das Ziel ist, dass je öfter ein Statement 5

7 durchgeführt wird, umso größer die Wahrscheinlichkeit wird, dass das Statement einen Fehler bzw. keinen Fehler enthält. Die Helligkeit ist ein Beleg für die Korrektheit des Farbtons. Der Helligkeitsgrad wird in folgender Weise kalkuliert: bright (s) = max (%passed (s), %failed (s)) (2) Die Funktionen %passed (s) und %failed (s) sind die selben wie in Gleichung (1). Gleichung (2) berechnet die Mitwirkung von Statement in dem Testprozess. Die Verwendung der stetigen Methode ist vielversprechender als die der diskreten Methode. Den Unterschied sehen wir in Abbildung 2 (die Farben haben nicht die richtige Farbtöne und Helligkeiten, wegen einer kleinen Farbpalette). mid() { Test Cases int x,y,z,m; 3,3,5 1,2,3 3,2,1 5,5,5 5,3,4 2,1,3 1: Read( Enter 3 numbers:,x,y,z) X X X X X X 2: m=z; X X X X X X 3: if (y<z) X X X X X X 4: if (x<y) X 5: m=y; X 6: else if (x<z) X X X 7: m=y; X X 8: Else X X X 9: if (x>y) X 10: m=y; X 11: else if (x>z) 12: m=x; 13: printf( Middle number is:,m); X X X X X X } Pass/Fail Status P P P P P F Abbildung 2: Zeigt das Auswirken der stetigen Methode auf dieses Beispiel (rot ist orange und dunkelrot ist orange-rot). 6

8 Durch Anwendung der stetige Methode, wurden die Zeilen 1-3 und 13 als gelb; 4-5 und 9-10 als dunkle grün; 8 als helle grün; 6 als orange; und Zeile 7 als orange-rot markiert. Diese Präsentation färbt die potentiellen (und aktuellen) Fehler im Programm deutlicher als die diskrete Einstellung. Code Visualisierung In Abbildungen 1 und 2 haben wir eine effiziente Farbtechnik vorgestellt. Diese Technik lässt den Programmierer alle wichtige Informationen des Testens leicht erfassen. Dennoch fehlt ein Überblick über das ganze Programm. Große Programme würden für diese Visualisierung zu viele Seiten brauchen und nicht übersichtlich bleiben. Darum wird in [Jones et al 2003] eine Visualisierungstechnik vorgestellt, die es ermöglicht, die Menge von Daten übersichtlich darzustellen. Es basiert auf der Annahme, dass der Entwickler während der globalen Suche nach Fehlern, den Source-code nicht braucht. Erst wenn die wichtige (rote) Stelle gefunden ist, inspiziert er den Source-code. Im globalen Überblick werden darum die Source-code Zeilen als eine horizontale Linie von Pixels repräsentiert. Um das noch übersichtlicher zu machen, ist die Länge der Linie proportional zu der Länge der Source-code Zeile. Farbe kann dann mit verschiedenen Methoden (diskrete, stetige,...) berechnet werden. Ein Tool, genannt TARANTULA, präsentiert die Daten mit dieser Strategie. Ein Beispiel ist in Abbildung 3 dargestellt. 7

9 Abbildung 3: TARANTULA, visualiziert mit diskreter Methode. Der Source-code ist in der Mitte dargestellt, eine detaillierte Abbildung von Sourcecode unten links und die Testfalleinformation über dieses Statement unten. Mit der Maus selektiert man im Hauptfenster die Stelle, über die man mehr wissen möchte. Außerdem kann man mit Radiobutton aus verschiedenen Visualisierungstechniken wählen. Als Default wird der Source-code ohne Färbung angezeigt. Um noch größere Programme präsentieren zu können, hat das Tool eine Option, die Visualisierung auf der Ebene der Prozeduren zu berechnen. Die Farbe der Prozedur wird das röteste Statement in der Prozedur sein. Visualisierung mit UML Die Arbeit [Jacobs&Musiall 2003] stellt eine andere Art der Visualisierung vor. Sie fokussiert mehr auf das Verstehen von Prozessen und deren Abläufen in verteilten Systemen. Die Visualisierungstechnik erfasst die Beziehungen und Abhängigkeiten zwischen Prozessen und Daten. Programmverständnis wird durch Verbinden des 8

10 Programmflusses auf wohlbekannte Modelle des Systems erhöht. Durch Visualisierung des Programms auf verschiedenen abstrakte Ebenen, kann der Entwickler unnötige Information verstecken, bis er diese braucht. Dann kann er auf eine detailliertere Ebene wechseln. Animationen und Farben helfen, die dynamische Natur eines Systems, wie Methodenaufrufe oder Zustandsänderungen, zu präsentieren. Nach [Jacobs&Musiall 2003] sollte eine Visualisierungstechnik folgende Kriterien erfüllen. Scope bessere Visualisierungsmethoden präsentieren ein großes Ausmaß von Daten (Source-code, Abläufe, Programmverhalten, usw.) Abstraktion Diese Techniken sollen auch viele (aber nicht zu viele) verschiedene Ansichten und mehrere Abstraktionsebenen, von der Infrastrukturebene bis zum Code, haben. Spezifikationsmethoden Ermöglichen dem Benutzer eine ausreichende Freiheit, Inhalte anders zu präsentieren. Sie sollten mit minimaler Anstrengung des Benutzers wirken und dennoch eine große Flexibilität haben. Interface Schnittstellen sollten intuitiv (direkte Manipulation) und einfach zu verstehen sein. Präsentation Die Präsentationssemantik sollte hinreichend abstrakt und mächtig sein, um die kognitive Last des Benutzers zu reduzieren. Die Visualisierung sollte nicht den Programmablauf stören. Sie sollte keine irreführende Semantik haben, die zu einer falschen Interpretation führen würde. Als die am besten geignette Modellrepräsentation wurde UML gefunden. Diese Sprache ist wohl bekannt, überall verwendet und einfach zu verstehen. Ein Vorteil ist, dass sie oft in Analyse, Entwurf und Design für Repräsentationen verwendet wird, also die Entwickler sind damit oft schon vertraut. 9

11 Objektdiagramm Das Klassendiagramm ist das meist benutzte UML Modell. Grafisch wird hier eine Klasse durch ein Rechteck dargestellt, wobei Klassenname, Eigenschaften und Funktionen durch eine Linie voneinander getrennt sind. Die Beziehungen zwischen Klassen werden mit einer Linie dargestellt. Es ist nicht ungewöhnlich, dass sich ein System aus mehreren hundert Klassen bildet. Analyse und Verständnis solcher Systeme benötigen beides: eine höhere Ebene von Überblick der Systemstruktur, wie auch eine detaillierte Untersuchung von individuellen Klassencharakteristiken; UML-Klassendiagramme sorgen dafür. [Jacobs&Musiall 2003] führt ein Tool vor, das aus ArgoUML [ArgoUML 2002] gebildet wurde. UML-Objektdiagramme wurden für die Repräsentation von Objekten und Beziehungen einer Javaapplikation entwickelt. Java Programm Information wird von Java Virtual Machine extrahiert. Dafür wird das Java Plattform Debugging Architektur (JPDA) benutzt. Wann immer ein neues Objekt in der Applikation erzeugt wird, werden alle wichtige Daten extrahiert und das Objektdiagramm wird aktualisiert. Während des Ablaufs der Applikation wird das aktive Objekt im Objektdiagramm zum höchstem Detailgrad expandiert und die aktive Methode wird markiert. Auf diese Weise kann man beobachten, wie die Objekte zusammenarbeiten. In einer größeren Applikation sind aber mehrere hundert potentiell aktive Objekte. Die Präsentation würde dafür viele Seiten brauchen, was die Navigation des Programmierers in dem Visualisierungssystem fast unmöglich machen würde. Außerdem verliert das System die Möglichkeit, die Architektur der Applikation und die Detailinformationen der Klassen dem Programmierer auf einmal zu präsentieren. Damit verhindert es das Verstehen von Beziehungen, die wichtig für das Verständnis der Einflüsse der Programmänderungen sein können. Um das zu verhindern, wurde eine Version der UML gebaut, die seine Symbole und Semantik behält, aber die Raumeffizienz verbessert. Eine fisheye lens wurde entwickelt, die weniger Informationen für Komponenten mit kleinerem Interessensgrad zeigt. Außerdem wird eine selektive Aggregationstechnik verwendet, um alle Komponenten mit Interessensgrad unter einem bestimmten Wert zu verstecken. Dazu wird noch ein 10

12 Algorithmus verwendet, der die graphische Anordnung verbessert, um die Hierarchie und Beziehungen zwischen Klassen hervorzuheben. Interessensgrad Die graphische Komponenten wurden geändert, um sechs Detailebenen (level of detail - LOD) zu kreieren. LOD 0 enthält den höchsten Detailgrad. Die UML-Klassenrepräsentation enthält den Klassennamen, sowie die Namen von allen Attributen und Methoden mit Typ Information. Klasse 0 Attribut0: int Attribut1: String Methode0():void Methode1():String LOD 1 versteckt den Attributtyp und den zurückgegebenen Typ der Methode. Klasse 0 Attribut0 Attribut1 Methode0(): Methode1(): LOD 2 zeigt nur den Namen der Klasse in einem kleineren Font. Klasse 0 LOD 3 versteckt alle Textinformationen und deutet nur auf die Präsenz der Klasse. 11

13 LOD 4 wie LOD 3, nur kleiner. LOD 5 versteckt die ganze Komponente. Der Detailgrad einer Klasse im Objektdiagramm wird mit Hilfe der degree of interest (DOI) Funktion berechnet. Die Funktion basiert auf der Zugriffsfrequenz der Klasse und der Distanz der Klasse von der Klasse, die ist gerade im Fokus. DOI = log 2 (freq) + (max_visible_doi - dist) (3) In dieser Gleichung ist freq der Anzahl der Benutzerzugriffe auf die Klasse; dist ist die graphische Distanz von der Klasse zum Fokalpunkt in Diagramm und max_visible_doi ist der maximale DOI, für den die Klasse noch sichtbar ist. Ein Vergleich von klassischer UML und ein mit DOI entstandenes Diagramm ist in Abbildung 4 gezeigt. Das Beispiel zeigt, wie UML mit DOI Platz spart. In dieser Abbildung ist Klasse0 der Fokalpunkt des Objektdiagramms und wird damit mit LOD0 dargestellt. Klasse1 ist eine Link vom Fokalpunkt entfernt; also hat sie ein DOI weniger als der Fokalpunkt LOD1. Ähnliches gilt für den DOI der Klasse2, Klasse3 und Klasse4. Immer wenn auf die Komponente zugegriffen wird, wird DOI wieder neu kalkuliert und das Diagramm aktualisiert. Wenn eine Komponente aktiv wird, wird sie temporär mit LOD 1 dargestellt, um den aktuellen Programmlauf hervorzuheben. Sollte das Programm in ein verstecktes Objekt springen, dann werden alle Komponenten zwischen Fokalpunkt und diesem Objekt mit LOD 4 dargestellt. 12

14 Klasse0 Klasse1 Klasse2 Klasse3 newatr: int newatr: int newatr: int newatr: int Methode(): void Methode(): void Methode(): void Methode(): void Klassisches Objektdiagramm Klasse4 newatr: int Methode(): void Klasse0 newatr: int Methode(): void Klasse1 newatr Methode(): Klasse2 Objektdiagramm nach Applikation von DOI Funktion Abbildung 4: Objektdiagramme. Generalisation und Aggregation Generalisation und Aggregation sind ein wichtiger Aspekt des objektorientierten Softwaresystems. Diese sind hierarchische Beziehungen. Die Generalisationsbeziehung verbindet eine generelle Klasse zu einer oder mehreren Klassen, die die Attribute der generellen Klasse erben. Ähnlich verknüpft Aggregation eine Containerklasse zu einer oder mehreren Klassen, die die Bestandteile repräsentieren, die in der Containerklasse kombiniert sind. Diese hierarchische Beziehungen sind gute Kandidaten für selektive Aggregationstechniken, die Klassen mit niedrigerer Hierarchie verstecken. Zum Beispiel hat es nicht viel Zweck zu zeigen, dass ein Auto aus Räder und Motor besteht, wenn der Benutzer nur daran interessiert ist, ob dort überhaupt ein Auto ist. In der Arbeit [Jacobs&Musiall 2003] wird auch ein Model mit selektive Aggregationstechnik beschrieben. Wiederum werden für Repräsentationen von Generalisationen und Aggregationen dieselbe Assoziationen verwendet wie in UML. Um zu indizieren, dass Klassen versteckt sind, wird die passende Symbolik für Aggregation oder Generalisation noch gezeigt, aber die Klasse mit niedrigerem Hierarchiegrad bleibt 13

15 versteckt. Abbildung 5 zeigt ein Beispiel vor und nach Verwendung von selektiver Aggregationstechnik. Nach Applikation von selektiver Aggregationstechnik Ein Teil eines Klassensdiagramms Abbildung 5: Selektive Aggregationstechnik. Eine Link mit kleinem Dreieck (Pfeilspitze) stellt eine Vererbungsbeziehung dar und eine Link mit einem Diamant am Ende symbolisiert eine Aggregationsbeziehung. Die kleinen Symbole stehen immer mit der Klasse mit höherer Priorität in Beziehung. Nach der Anwendung von selektiver Aggregationstechnik bleibt das kleine Dreieck, Diamant und eine kurze Linie sichtbar, um hinweisen, dass die versteckte Klasse diese Beziehung mit der sichtbare Klasse hat. Abbildung 6 zeigt ein Klassendiagramm vor und nach Anwendung der DOI- Funktion und der selektiven Aggregationstechnik. 14

16 Abbildung 6: Klassendiagramme vor und nach Komprimierung. Durch Applikation dieser Visualisierungstechniken ist es also möglich, ein größeres Klassendiagramm einer Applikation zu betrachten. Damit zeigt dieses Modell die gesamte Struktur und die Beziehungen zwischen einzelnen Instanzen der Applikation erfolgreich auf. End-User Techniken Bisher haben wir Software Visualisierungen nur als Hilfsmittel für die Fehlerlokalisation für professionelle Programmierer betrachtet. Der Anzahl von End-User Programmierumgebungen steigt und im Jahr 2005 werden voraussichtlich 55 Millionen. End-User Programmierer im Vergleich zu 2,75 Millionen professionellen Programmierern sein. Es gibt viele diverse End-User Umgebungen, aber als das meist verbreitete könnte man Spreadsheets zählen. Trotz der wahrgenommenen Einfachheit von dieser Art von End-User Programmierung, fabrizieren End-User Programmierer eine große Anzahl von Fehlern. 15

17 Um dieses Problem zu lösen und den End-Usern zu helfen die Anzahl von Fehlern zu minimieren, beschreiben die Autoren von [Ruthruff et al 2003] verschiedene Techniken. Die Autoren beschreiben eine Methodologie bekannt als What you see is what you test (WYSIWYT). Diese Methodologie teilt den End-Usern das testedness (aktueller Testgrad) von jeder Spreadsheetzelle durch inkrementelle low-cost Visualisierungsgeräte mit, wie z.b. Randfarbe. Es reagiert auf die Aktionen von Benutzern und nach jeder Änderung, werden die Visualisierungsgeräte aktualisiert. Wenn der Benutzer erkennt, dass der Wert in einer Zelle korrekt ist, kann er diese Zelle in eine Checkbox gleich neben als korrekt markieren. Als eine Antwort darauf werden die Visualisierungen auf drei Ebenen aktualisiert. Die Ebene von Zellen zeigt den Checkmarker, dass dieser Wert ein Ergebnis von erfolgreichem Test ist. Die Farbe des Zellenrandes von allen Zellen, die zu dem Wert beitragen, wechselt stetig von einer roter Farbe (nicht getestet) auf eine blaue Farbe (getestet). Wenn der Benutzer die Datenflüsse sehen möchte, werden diese als Pfeile in der Farbe der Zelle, auf die sie zeigen, dargestellt. Das testedness von dem Spreadsheet wird immer als ein Prozentsatz sichtbar. Es wird mit einer Methode dataflow-test-adequacy-criterion [Laski&Korel1993] berechnet. Ein adequacy-criterion setzt einen Standard, der definiert, wenn ein Produkt voll getestet ist. Welche Methoden sollen aber angewandt werden, um den Benutzer beim Fehlerorten helfen können, und die dabei schnell genug sind, um dem End-User nach jeder Aktion eine schnelle Visualisierungsantwort geben können? Fehlerlokalisierungstechniken in End-User Programmen Während einer inkrementelle Entwicklung des Spreadsheets, kann ein Benutzer nach seiner Beobachtung von einem Fehler die Zelle markieren. In diesem Moment sollte das System auf diese Aktion reagieren. Am meisten ändert sich die Farbe des Zellenrands. Dabei sollten alle Zellen, die zu diesem Fehler auch beitragen könnten, dem Benutzer mit einer Farbänderung eine visuelle Hilfe über mögliche Fehlerursprünge geben. In [Ruthruff et al 2003] werden drei Techniken vorgestellt. 16

18 Test-Count Technik (ähnlich zu der Technik, die in TARANTULA benutzt wurde) Blocking Technik Nearest Consumers Technik Die Test-Count Technik Diese Technik stellt die Fehlerwahrscheinlichkeit von Zellen, basierend auf der Anzahl der erfolgreichen Tests (markiert als richtig) gegen die Anzahl von fehlerhaften Testen (markiert als falsch) in denen die Zelle partizipiert hat, dar. Die Test-Count Technik verwendet die Information über erfolgreiche und fehlerhafte Tests um diese Eigenschaften zu halten: 1. Wenn eine Zelle Z oder irgendein Verbraucher (Zelle, die verwendet den Wert von Z) hat den Test nicht erfolgreich überstanden, dann wird Z eine nicht null Fehlerwahrscheinlichkeit. 2. Die Fehlerwahrscheinlichkeit von Z ist proportional zu der Anzahl von fehlerhaften Tests. 3. Die Fehlerwahrscheinlichkeit von Z ist umgekehrt proportional zu der Anzahl von erfolgreichen Tests. Um diese Eigenschaften zu implementieren wird die Gleichung 4 verwendet. Fehlerwahrscheinlichkeit = max( 1, 2*NFT NST ) (4) In Gleichung 4 ist NFT (NumFailingTests) die Anzahl von fehlerhaften Tests und NST (NumSuccessfulTests) die Anzahl von erfolgreichen Tests. Das Ergebnis ist abgebildet auf vier mögliche Wahrscheinlichkeitsskalen: 1-2 niedrige Fehlerwahrscheinlichkeit (FW), 3-4 mittlere FW, 5-9 hohe FW, und 10- sehr hohe FW. Jeder Skala ist dann eine Farbe zugeordnet, blau oder grün als die niedrigste und rot als die höchste FW. 17

19 Die Blocking Technik Diese Technik in Addition zur Test-Count hat eine Skala mehr; sehr niedrig. Es basiert auf den Beobachtungen der Beziehungen zwischen Zellen, die zur Wert der Zelle Z beitragen (Produzenten von Z) und den Verbrauchern von Z. Sie hat also zwei weitere Eigenschaften: 4. Eine Markierung von falschem Wert in Zelle Z blockiert den Effekt von weitern Checkmarkierungen in Verbrauchern von Z auf Produzenten von Z. 5. Eine Markierung von richtigem Wert in Z blockiert den Effekt von Falschmarkierten Verbrauchern von Z auf Produzenten von Z. Mit Ausnahme von FW Eigenschaft verwendet in Eigenschaft 1. Implementierung von diesen weiteren Eigenschaften ist viel komplizierterer als die von Test-Count. Es verwendet vier wichtige Funktionen: NumBlockedFailedTests (NBFT) Anzahl von Verbrauchern von Z, die als falsch markiert sind, aber sind blockiert durch einen Wert, markiert als richtig, entlang des Datenflusses zwischen Z und den Wert markiert als falsch. NumReachableFailedTests (NRFT) das Ergebnis der Subtraktion von NBFT von Anzahl den Verbrauchern von Z. NumBlockedSuccessfulTests (NBST) ähnlich wie NBFT. NumReachableSuccessfulTests (NRST) ähnlich wie NRFT. Wenn eine Zelle Z keine fehlerhafte Tests erhält, ist das FW null. Wenn Z auch fehlerhafte Tests hat, aber keine reachable, dann ist FW von Z sehr niedrig. Sonst wird Gleichung (5) verwendet. Fehlerwahrscheinlichkeit = max(1, NRFT NRST/2 ) (5) Die Skala bleibt die gleiche, wie in Test-Count Technik. 18

20 Die Nearest Consumer Technik Um die sich den fünf Eigenschaften annähern, würde eine dritte Technik in [Ruthruff et al 2003] vorgestellt. Es basiert auf einem greedy Verfahren. Es betrachtet nur den direkten Verbrauchern von Z. Die Fehlerwahrscheinlichkeit von Z ist allein durch die Markierung von Z und den mittleren Wert von FW von allen direkten Verbrauchern von Z. Die Produzenten von Z sind dann gleichsam aktualisiert. Nähmen wir an, dass DV ist die Menge allen direkten Verbrauchern von Z. x ist dann die Anzahl von allen Zellen in DC, die als falsch markiert sind und y die Anzahl von allen Zellen in DC die als richtig markiert sind. w = 1 wenn (x>1 und y=0) oder (x>y und y>0) oder (x>y und Z ist als falsch markiert). Sonst ist w null. Die FW ist dann berechnet mit Gleichung 6. Fehlerwahrscheinlichkeit = Durchschnitt FW von DZ + w (6) Es hat aber drei Ausnahmen. Wenn Z markiert als richtig ist, dann es hat automatisch ein FWGrad sehr niedrig. Wenn Z als falsch markiert ist, aber der Durchschnitt FW von DZ ist kleiner als mittlere FW, dann ist Z mit mittlerem FWGrad bezeichnet. Eine Falschmarkierung von Z verbietet die FW von Z und die FW von seinen Produzenten weiter von ihren letzten FW zu steigen. Ergebnisse Techniken Um die Effizienz dieser Techniken erforschen, wurden Experimente [Jones et al 2003, Ruthruff et al 2003] durchgeführt. Die Ergebnisse liefern die Antworten über die Verwendbarkeiten und Robustheiten dieser Techniken. Die Test-Count Technik hat sich als eine sehr gute Methode bewiesen. Drei empirische Studien wurden gemacht. Zwei befassen sich mit der Verwendung in professioneller Programmierumgebung und eine in End-User Spreadsheets. 19

21 In professioneller Umgebung hat sie in meisten Fällen die fehlerhafte Stelle richtig markiert. Nur in 30% der Fälle hat sie ein nichtfehlerhaftes Statement zwischen orange und rot gefärbt. Probleme sind entstanden nur wenn sich der Fehler in Initialisierungscode befunden hat, oder das Programm mehr als ein Fehler enthält hat. Sogar mit Multifehlern hat es sich besser als gewartet verhaltet. Dabei wurde ein Phänomen beobachtet. Bei Multifehlern wurden nicht alle fehlerhafte Statements identifiziert. Nach der Beseitigung von diesen Statements wurden die andere Fehler entdeckt. Was deutet auf ein inkrementelles Verhalten. In Fehlersuche in Spreadsheets wurde sie auch als ein ausgesprochenes Verfahren beobachtet. Außerdem ist sie als die meist robuste Technik bezeichnet worden. Für ein frühzeitiges Feedback ist sie aber nicht geeignet. Als meist effiziente für frühzeitiges Feedback zeigte sich die Blocking Technik zu sein. Nearest Consumer Technik hat sich nicht als sehr gutes und konsistentes Verfahren entwiesen, obwohl sie ziemlich gut in frühzeitigem Feedback gehandelt hat. Visualisierungen In dieser Arbeit haben wir zwei Visualisierungsmethoden erörtert. Eine die wird in TARANTULA verwendet und die UML Visualisierung. Offensichtlich ist UML Visualisierung besser in Visualisierung der Infrastruktur von Programm. Es hat sich mit der entwickelte UML gelangen übersichtlich 75 Klassen im Bildschirm anzuzeigen. Für ein Experiment wurde ein Demoprogramm mit 84 Klassen und mit ungefähr Zeilen von Code benutzt. In diesem Experiment wurde dieses Programm problemlos debuggiert mit einem Überblick auf statische und dynamische Struktur des Programms. Es wurde berechnet, dass für die Visualisierung mit klassischer UML würde das System drei bis vier Seiten brauchen. Visualisierung in TARANTULA wurde nicht getestet, weil es auch nicht das leitende Ziel war. Bei TARANTULA haben sich mehr auf den Färbalgorithmus konzentriert. Dabei ist aber auch diese Visualisierung nicht schlecht, und es kann leicht berechnet werden, wie viel Code wird auf einer Seite angezeigt. Wenn jedes Statement als eine Pixellinie dargestellt ist, ein Bildschirm ungefähr 1000 vertikale Pixellinien hat 20

Visualisierung verteilter Systeme

Visualisierung verteilter Systeme Visualisierung verteilter Systeme End-User Software Visualizations for Fault Localization Referentin Maren Settekorn Die Autoren Margaret M. Burnett, Professorin am Institut für Informatik der Oregon State

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

Test-Strategien. Grundsätzliches Blackbox-Testen Whitebox-Testen Graybox-Testen Ablauf von Tests Zusammenfassung. HS Mannheim

Test-Strategien. Grundsätzliches Blackbox-Testen Whitebox-Testen Graybox-Testen Ablauf von Tests Zusammenfassung. HS Mannheim Test- Grundsätzliches - - - Ablauf von Tests Grundsätzliche Test- -Tests Äquivalenzklassenbildung Randwertanalyse -Tests Man unterscheidet verschiedene Überdeckungsgrade: Statement Coverage Decision Coverage,

Mehr

09.01.14. Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)

09.01.14. Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML) Vorlesung Programmieren Unified Modeling Language (UML) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Unified Modeling Language (UML)

Mehr

Projektmodell Softwareentwicklung: Unified Software Development Process / Unified Process (Teil I)

Projektmodell Softwareentwicklung: Unified Software Development Process / Unified Process (Teil I) Projektmodell Softwareentwicklung: Unified Software Development Process / Unified Process (Teil I) Historisch Kulturelle Informationsverarbeitung Hauptseminar: KLIPS 2.0 Dozent: Prof. Dr. Thaller Referent:

Mehr

Inhalt: Version 1.7.5

Inhalt: Version 1.7.5 Inhalt: Objekte ohne Methoden Objekte mit einfachen Methoden Objekte und Methoden mit Parametern Objekte und Methoden mit Rückgabewert Objekte mit einem Array als Attribut Beziehungen zwischen Objekten

Mehr

Orientierte Modellierung mit der Unified Modeling Language

Orientierte Modellierung mit der Unified Modeling Language UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler Ziel dieses Seminars Verständnis von Objekt-Orientierung Was sind Klassen? Was ist Vererbung?

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

iphone app - Anwesenheit

iphone app - Anwesenheit iphone app - Anwesenheit Anwesenheit - iphone App Diese Paxton-App ist im Apple App Store erhältlich. Die App läuft auf allen iphones mit ios 5.1 oder höher und enthält hochauflösende Bilder für Geräte

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

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

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

PRÜFUNG. Grundlagen der Softwaretechnik

PRÜFUNG. Grundlagen der Softwaretechnik Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner PRÜFUNG Grundlagen der Softwaretechnik Musterlösung Name: Matrikelnummer: Note: Prüfungstag:

Mehr

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: 5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel Beispiel (3) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Probleme des Implementierungsvorschlags:

Mehr

Einführung in die Programmierung mit Java. Hörsaalübung

Einführung in die Programmierung mit Java. Hörsaalübung Einführung in die Programmierung mit Java Hörsaalübung Folie 1 Grundlagen der Objektorientierung Seit Anfang der Neunzigerjahre Standardmethode der Softwareentwicklung. Die OOP Objektorientierte Programmierung

Mehr

PRÜFUNG. Grundlagen der Softwaretechnik

PRÜFUNG. Grundlagen der Softwaretechnik Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner PRÜFUNG Grundlagen der Softwaretechnik Name: Matrikelnummer: Note: Prüfungstag: 21.09.2012 Prüfungsdauer:

Mehr

Projekt AGB-10 Fremdprojektanalyse

Projekt AGB-10 Fremdprojektanalyse Projekt AGB-10 Fremdprojektanalyse 17. Mai 2010 1 Inhaltsverzeichnis 1 Allgemeines 3 2 Produktübersicht 3 3 Grundsätzliche Struktur und Entwurfsprinzipien für das Gesamtsystem 3 3.1 Die Prefuse Library...............................

Mehr

Bedienung von BlueJ. Klassenanzeige

Bedienung von BlueJ. Klassenanzeige Im Folgenden werden wichtige Funktionen für den Einsatz von BlueJ im Unterricht beschrieben. Hierbei wird auf den Umgang mit Projekten, Klassen und Objekten eingegangen. Abgeschlossen wird dieses Dokument

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

Rhapsody in J Modellierung von Echtzeitsystemen

Rhapsody in J Modellierung von Echtzeitsystemen Rhapsody in J Modellierung von Echtzeitsystemen Tobias Schumacher tobe@uni-paderborn.de Rhapsody in J - Modellierung von Echtzeitsystemen p.1/17 Anspruch des Tools Einsatzbereiche/Features Modellierung

Mehr

Unit-Test Theorie und Praxis. Stephan Seefeld, INGTES AG

Unit-Test Theorie und Praxis. Stephan Seefeld, INGTES AG Unit-Test Theorie und Praxis Stephan Seefeld, INGTES AG Inhalt Was sind Unit-Test? NUnit für.net Demo Seite 2 Quellen Für diesen Vortrag verwendete Quellen: dotnet User Group Berlin Brandenburg http://www.dotnet-berlinbrandenburg.de/

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22 Kapitel 19 Vererbung, UML Seite 1 von 22 Vererbung - Neben der Datenabstraktion und der Datenkapselung ist die Vererbung ein weiteres Merkmal der OOP. - Durch Vererbung werden die Methoden und die Eigenschaften

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

Kundeninformation zur neuen Version 5.0

Kundeninformation zur neuen Version 5.0 Kundeninformation zur neuen Version 5.0 Kundeninformation Die Version 5.0 hat teilweise ihr Gesicht verändert. Einige Funktionalitäten wurden auch geändert. Um Ihnen den Umstieg leichter zu machen, finden

Mehr

3.4 Unified Process. 1999 Ivar Jacobson, Grady Booch, James Rumbaugh: The Unified Software Development Process.

3.4 Unified Process. 1999 Ivar Jacobson, Grady Booch, James Rumbaugh: The Unified Software Development Process. 1999 Ivar Jacobson, Grady Booch, James Rumbaugh: The Unified Software Development Process. 1996 Philippe Kruchten: Rational Unified Process Produkt der Firma Seit 2002 Teil des IBM Konzerns Objektorientiertes

Mehr

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005 Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der

Mehr

WIRIS quizzes Datenbank, Mathematik für Moodle Quiz

WIRIS quizzes Datenbank, Mathematik für Moodle Quiz WIRIS quizzes Datenbank, Mathematik für Moodle Quiz Carles Aguiló Maths for More WIRIS quizzes verbessert die Funktionalität von Moodle Quiz in der Mathematik und in anderen wissenschaftlichen Themengebieten.

Mehr

RÖK Typo3 Dokumentation

RÖK Typo3 Dokumentation 2012 RÖK Typo3 Dokumentation Redakteur Sparten Eine Hilfe für den Einstieg in Typo3. Innpuls Werbeagentur GmbH 01.01.2012 2 RÖK Typo3 Dokumentation Inhalt 1) Was ist Typo3... 3 2) Typo3 aufrufen und Anmelden...

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

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

Ausarbeitung des Interpreter Referats

Ausarbeitung des Interpreter Referats Ausarbeitung des Interpreter Referats Gliederung 1. Programmiersprache 1.2. Syntax 1.2.1. Konkrete Syntax 1.2.2. Abstrakter Syntax Baum (Abstrakte Syntax) 2. Parser 2.1. Syntaktische Struktur einer Sprache

Mehr

Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen.

Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen. Teil B: Erweiterungen Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen. Die folgenden Aufgaben und Ausführungen geben einige Hilfestellungen, welche (mindestens

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

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Aufgabe 3. Assoziation

Mehr

Software-Test: Funktionstest

Software-Test: Funktionstest Software-Test: Funktionstest Andreas Zeller Lehrstuhl für Softwaretechnik Universität des Saarlandes, Saarbrücken 2006-02-06 Funktionale Testverfahren Funktionale Testverfahren testen gegen die Spezifikation

Mehr

Arbeiten mit BlueJ. Objektorientiertes Programmieren in Java mit BlueJ

Arbeiten mit BlueJ. Objektorientiertes Programmieren in Java mit BlueJ Arbeiten mit BlueJ Compilieren, Editieren, Objekte erzeugen, Methoden aufrufen, Objekte inspizieren, vorhandene Klassen benutzen, eigene Klassen und Methoden erstellen In BlueJ geht es einfach BlueJ durch

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

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

UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18

UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18 UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18 Software Testing Automatisiert Manuell 100% 70% 1 Überwiegender Teil der Testing Tools fokusiert auf automatisiertes Testen Microsoft

Mehr

Programmieren was ist das genau?

Programmieren was ist das genau? Programmieren was ist das genau? Programmieren heisst Computerprogramme herstellen (von griechisch programma für Vorschrift). Ein Computerprogramm ist Teil der Software eines Computers. Als Software bezeichnet

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

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

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

Startansicht... 1 Menüleiste... 2 Persönliche Einstellungen... 2 Queueansicht... 3 Suche... 5 Shortcuts... 5

Startansicht... 1 Menüleiste... 2 Persönliche Einstellungen... 2 Queueansicht... 3 Suche... 5 Shortcuts... 5 Inhalt Startansicht... 1 Menüleiste... 2 Persönliche Einstellungen... 2 Queueansicht... 3 Suche... 5 Shortcuts... 5 Ab dem Wintersemester 20112/2013 wird OTRS Version 2 durch Version 3 abgelöst und für

Mehr

Grüezi Mein Name ist Susanne Bandi und ich begrüsse Sie herzlich zum Kurzreferat: So richten Sie ihr Configuration Management auf die Zukunft aus!

Grüezi Mein Name ist Susanne Bandi und ich begrüsse Sie herzlich zum Kurzreferat: So richten Sie ihr Configuration Management auf die Zukunft aus! Grüezi Mein Name ist Susanne Bandi und ich begrüsse Sie herzlich zum Kurzreferat: So richten Sie ihr Configuration Management auf die Zukunft aus! SIE sind hier, weil sie Potential sehen für ihr Configuration

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

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek Programmieren I Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2008/2009 1 / 22 2 / 22 Strategie zum Entwurf von Klassen Beispiele Objektorientierte Sichtweise: Mit welchen Objekten habe ich es

Mehr

SWT MN Vorlesung 19.04.2006 2. Übungsblatt Hausaufgaben und Hörsaalübungen zum Themenbereich UML-Modellierung mit Rollen und OOA-Muster

SWT MN Vorlesung 19.04.2006 2. Übungsblatt Hausaufgaben und Hörsaalübungen zum Themenbereich UML-Modellierung mit Rollen und OOA-Muster SWT MN Vorlesung 19.04.2006 2. Übungsblatt Hausaufgaben und Hörsaalübungen zum Themenbereich UML-Modellierung mit Rollen und OOA-Muster Aufgabe 1 analytische Aufgabe Die Eigenschaften und Einsatzbereiche

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

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

Dynamische Plug-ins mit Eclipse 3. Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org)

Dynamische Plug-ins mit Eclipse 3. Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org) Dynamische Plug-ins mit Eclipse 3 Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org) Überblick Die Ausgangslage Dynamische Plug-ins Warum? Eclipse 3 Die OSGi-basierte

Mehr

Parallele und funktionale Programmierung Wintersemester 2013/14. 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr

Parallele und funktionale Programmierung Wintersemester 2013/14. 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr Aufgabe 8.1: Zeigerverdopplung Ermitteln Sie an folgendem Beispiel den Rang für jedes Listenelement sequentiell und mit dem in der Vorlesung vorgestellten parallelen

Mehr

Programmieren. Wie entsteht ein Programm

Programmieren. Wie entsteht ein Programm Wie entsteht ein Programm 1/9 1. Schritt: Programmentwurf Der wichtigste Teil beim Erstellen eines Programms ist der Programmentwurf. Dabei wird das vorgegebene Problem analysiert, es wird ermittelt, welche

Mehr

Einführung in die OPC-Technik

Einführung in die OPC-Technik Einführung in die OPC-Technik Was ist OPC? OPC, als Standartschnittstelle der Zukunft, steht für OLE for Process Control,und basiert auf dem Komponentenmodel der Firma Microsoft,dem Hersteller des Betriebssystems

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

Approximationsalgorithmen

Approximationsalgorithmen Ausarbeitung zum Thema Approximationsalgorithmen im Rahmen des Fachseminars 24. Juli 2009 Robert Bahmann robert.bahmann@gmail.com FH Wiesbaden Erstellt von: Robert Bahmann Zuletzt berarbeitet von: Robert

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

C# Tutorial Part 1. Inhalt Part 1. Einleitung. Vorbereitung. Eagle Eye Studios. Einleitung Vorbereitung Das erste Projekt

C# Tutorial Part 1. Inhalt Part 1. Einleitung. Vorbereitung. Eagle Eye Studios. Einleitung Vorbereitung Das erste Projekt Eagle Eye Studios C# Tutorial Part 1 Inhalt Part 1 Einleitung Vorbereitung Das erste Projekt Einleitung Wer sich mit dem Programmieren schon einigermaßen auskennt, kann diesen Abschnitt überspringen. Programmieren,

Mehr

3. Spezielle ER-Modelle und Tabellenableitung. Transformation von ER-Diagrammen in Relationen

3. Spezielle ER-Modelle und Tabellenableitung. Transformation von ER-Diagrammen in Relationen 3. Spezielle ER-Modelle und Tabellenableitung Spezialfälle von ER-Modellen Grundlage, was sind Relationen Transformation von ER-Diagrammen in Relationen 56 Lesebeispiel Access (Realisierungmodell!) 57

Mehr

Veränderung in der VR-NetWorld Software 5.0. 1. Was ist neu?

Veränderung in der VR-NetWorld Software 5.0. 1. Was ist neu? Information zur neuen 5.0 Veränderung in der 5.0 Die Version 5.0 hat teilweise ihr Aussehen verändert. Ebenso wurden einige Funktionalitäten geändert. Um Ihnen den Umstieg leichter zu machen, finden Sie

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

Workflow Monitoring basierend auf den SemTalk Services. Semtation GmbH

Workflow Monitoring basierend auf den SemTalk Services. Semtation GmbH Workflow Monitoring basierend auf den SemTalk Services Semtation GmbH Inhalt Zielsetzung Seite 3 Visualisierung Seite 4 Technische Information Seite 5 Implementierung Überblick Seite 9 Hintergrund Seite

Mehr

Kompakte Graphmodelle handgezeichneter Bilder

Kompakte Graphmodelle handgezeichneter Bilder Kompakte Graphmodelle handgezeichneter Bilder Einbeziehung in Authentizierung und Bilderkennung Inhaltsverzeichnis Seminar Mustererkennung WS 006/07 Autor: Stefan Lohs 1 Einleitung 1 Das graphische Modell.1

Mehr

Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun. Java Projekt. Schiffe Versenken mit GUI

Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun. Java Projekt. Schiffe Versenken mit GUI Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun Java Projekt Schiffe Versenken mit GUI 1. Über den Autor: Name: Marija Matejic Matrikelnummer: 9352571 E-mail: marijamatejic@yahoo.com

Mehr

SemTalk Services. SemTalk UserMeeting 29.10.2010

SemTalk Services. SemTalk UserMeeting 29.10.2010 SemTalk Services SemTalk UserMeeting 29.10.2010 Problemstellung Immer mehr Anwender nutzen SemTalk in Verbindung mit SharePoint Mehr Visio Dokumente Viele Dokumente mit jeweils wenigen Seiten, aber starker

Mehr

Microsoft Visio 2010 Funktionalitäten und Leistungen

Microsoft Visio 2010 Funktionalitäten und Leistungen Microsoft Visio 2010 Funktionalitäten und Leistungen Die fortgeschrittenen Funktionen zur Diagrammerstellung von Visio 2010 helfen Ihnen, komplexe Inhalte und Zusammenhänge schneller und einfacher zu vermitteln.

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

Das vorliegende Skript ist aktualisiert für die Processing Version 1.1 von März 2010.

Das vorliegende Skript ist aktualisiert für die Processing Version 1.1 von März 2010. Was ist Processing? Processing ist eine Open Source-Programmiersprache für die Programmierung von Bildern, Animation und Sound. Es wurde speziell für Studenten, Künstler und Designer entwickelt. Durch

Mehr

MY.AQUAGENIUZ.COM Website

MY.AQUAGENIUZ.COM Website BENUTZERHANDBUCH MY.AQUAGENIUZ.COM Website Nachdem das AquageniuZ-Modul installiert und mit dem Internet verbunden wurde, ist es möglich, den Wasserverbrauch und etwaige im Modul ausgelöste Alarme zu verfolgen.

Mehr

Assoziation und Aggregation

Assoziation und Aggregation Assoziation und Aggregation Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Nora Koch 05/03 2 Ziele Verstehen der Begriffe Assoziation und Aggregation Implementierung von Assoziationen in Java schreiben

Mehr

A Domain Specific Language for Project Execution Models

A Domain Specific Language for Project Execution Models A Domain Specific Language for Project Execution Models Eugen Wachtel, Marco Kuhrmann, Georg Kalus Institut für Informatik Software & Systems Engineering Inhalt Einführung und Hintergrund Problembereiche

Mehr

Kapitelübersicht. Was ist So#waretechnik? Historische Entwicklung der So9waretechnik Prinzipien, Methoden, Werkzeuge. Was bedeutet Objektorien+erung?

Kapitelübersicht. Was ist So#waretechnik? Historische Entwicklung der So9waretechnik Prinzipien, Methoden, Werkzeuge. Was bedeutet Objektorien+erung? Kapitelübersicht Was ist So#waretechnik? Historische Entwicklung der So9waretechnik Prinzipien, Methoden, Werkzeuge Was bedeutet Objektorien+erung? ObjektorienCerte Analyse und Design die Objektmodellierung

Mehr

Grob- und Detailplanung bei der Implementierung nutzen

Grob- und Detailplanung bei der Implementierung nutzen Softwarearchitektur Grob- und Detailplanung bei der Implementierung nutzen Bereich Realisierung Aktivität Softwareinkrement realisieren Ziele Vermitteln einer Orientierungshilfe für alle Entwickler Etablierung

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

C# im Vergleich zu Java

C# im Vergleich zu Java C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung

Mehr

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Klausur zur Einführung in die objektorientierte Programmierung mit Java Klausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Prof. Dr. Christian Wolff Professur für Medieninformatik Institut für Medien-, Informations-

Mehr

Abb.1. Zweiter Schritt: Risikoprofil-Analyse. Abb.2

Abb.1. Zweiter Schritt: Risikoprofil-Analyse. Abb.2 Gewinn/Verlust einer Facebook Covered Stock Position vor dem Kauf analysieren! Heute ist Sonntag der 26.08.2012 und ich will am Montag den 27.08.2012-100 Facebook Aktien kaufen und diese mit einer Put-Option

Mehr

C# - PROGRAMME MIT PLUGINS ERWEITERN

C# - PROGRAMME MIT PLUGINS ERWEITERN C# - PROGRAMME MIT PLUGINS ERWEITERN Schreibt man ein Programm welches erweiterbar sein soll, dann gibt es häufig mehrere Möglichkeiten dies umzusetzen. Die Objektorientierung ist dabei der erste Schritt,

Mehr

Software Engineering Interaktionsdiagramme

Software Engineering Interaktionsdiagramme Software Engineering Interaktionsdiagramme Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Nachrichtenaustausch Welche Nachrichten werden ausgetauscht? (Methodenaufrufe)

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

Visual Business Analytics Visueller Zugang zu Big Data

Visual Business Analytics Visueller Zugang zu Big Data Visual Business Analytics Visueller Zugang zu Big Data Dr.-Ing. Jörn Kohlhammer Fraunhofer-Institut für Graphische Datenverarbeitung (IGD) Fraunhoferstraße 5 64283 Darmstadt Tel.: +49 6151 155-646 Fax:

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

Entwurfsmuster (Design Pattern) ETIS SS05

Entwurfsmuster (Design Pattern) ETIS SS05 Entwurfsmuster (Design Pattern) ETIS SS05 Gliederung Motivation Pattern allgemein Proxy-Pattern Zusammenfassung 2 Motivation I Wie gut sind eure Programme strukturiert? Wartbarkeit? - Verständlichkeit

Mehr

DRIVE LIKE A VIRTUAL DEVELOPER Die Poleposition für Ihre Softwareentwicklung

DRIVE LIKE A VIRTUAL DEVELOPER Die Poleposition für Ihre Softwareentwicklung DRIVE LIKE A VIRTUAL DEVELOPER Die Poleposition für Ihre Softwareentwicklung Was für ein Tempo! Das Rad dreht sich rasant schnell: Die heutigen Anforderungen an Softwareentwicklung sind hoch und werden

Mehr

4 Greedy-Algorithmen (gierige Algorithmen)

4 Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine

Mehr

Streckenfliegen mit dem ZS1/GP941

Streckenfliegen mit dem ZS1/GP941 Streckenfliegen mit dem ZS1/GP941 Thomas Stemmler, 5.6.2011 V1.1 Vorbemerkung: Diese Anleitung ersetzt nicht das Studium der Manuals des ZS1 und des GP941, die auf der Webseite von Schänis Soaring oder

Mehr

Seminararbeit Ruby Uno Kartenspiel

Seminararbeit Ruby Uno Kartenspiel Seminararbeit Ruby Uno Kartenspiel Autor: Fabian Merki Fabian Merki 05.11.2006 1 von 10 Inhaltsverzeichnis Einleitung... 3 Die Idee... 4 Design und Implementierung in Ruby... 5 Testing... 7 Startbefehle...

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

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

Collaborative Virtual Environments

Collaborative Virtual Environments Collaborative Virtual Environments Stefan Lücking Projektgruppe Kreativität und Technik AG Domik WS 02/03 09.01.2003 1/35 Was sind CVE? Versuch einer Definition : Ein CVE ist ein Programm, das eine virtuelle

Mehr

03/ DISKUS Erweiterungen 2003

03/ DISKUS Erweiterungen 2003 03/ DISKUS Erweiterungen 2003 03/ 1. Diverses a) Größe der Markier-Pfeile ist konfigurierbar Für Nutzer hochauflösender Kameras, stehen bei dem größeren Bild auch größere Pfeile zum einstanzen zur Verfügung.

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

Analyse und Modellierung von Informationssystemen

Analyse und Modellierung von Informationssystemen Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2013 1 / 19 Einführung: Entwurfsmuster Erzeugungsmuster Fabrik-Muster Singleton-Muster Beispiel 2

Mehr

Raytracing. Schlussbericht. Jonas Lauener 1995, Áedán Christie 1997 Melvin Ott 1997, Timon Stampfli 1997

Raytracing. Schlussbericht. Jonas Lauener 1995, Áedán Christie 1997 Melvin Ott 1997, Timon Stampfli 1997 Raytracing Schlussbericht Jonas Lauener 1995, Áedán Christie 1997 Melvin Ott 1997, Timon Stampfli 1997 bei Betreuer Marco Manzi, Institut für Informatik und angewandte Mathematik Inhalt Fragestellung...

Mehr

Swp08-6 Verantwortliche: Yundensuren, Baigalmaa. Testkonzept

Swp08-6 Verantwortliche: Yundensuren, Baigalmaa. Testkonzept Testkonzept 1.Einführung Um die Zuverläsigkeit und die Qualität der Software und des gesamten Systems zu verbessern, sind Tests durchzuführen. Die Testreihe läst sich in drei Stufen einteilen, nülich Komponententest,

Mehr

1. Erstellung, aus einer Idee wird ein digitaler Bestandteil einer Website.

1. Erstellung, aus einer Idee wird ein digitaler Bestandteil einer Website. 2. Webpublishing Zur Erstellung von Webpages wurden verschiedene Konzepte entwickelt. Alle diese Konzepte basieren auf dem Content Life Cycle, der mit einem Content Management System weitgehend automatisiert

Mehr

Finaler Testbericht. Finaler Testbericht. 1 Einführung 2. 1.1 Warum Softwaretests?... 2

Finaler Testbericht. Finaler Testbericht. 1 Einführung 2. 1.1 Warum Softwaretests?... 2 Inhaltsverzeichnis 1 Einführung 2 1.1 Warum Softwaretests?.................................... 2 2 Durchgeführte Tests 2 2.1 Test: allgemeine Funktionalität............................... 2 2.1.1 Beschreibung.....................................

Mehr

Analyse und Modellierung von Informationssystemen

Analyse und Modellierung von Informationssystemen Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2013 1 / 19 Einführung: Entwurfsmuster Erzeugungsmuster Fabrik-Muster Singleton-Muster Beispiel 2

Mehr