Vorlesung Software-Reengineering
|
|
- Hannah Franke
- vor 6 Jahren
- Abrufe
Transkript
1 Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2009/10
2 Überblick I 1 Merkmalsuche
3 Merkmalsuche I 1 Merkmalsuche Ausgangsszenario für Merkmalsuche Statische Analyse Dynamische Analyse Statische und dynamische Analysen Formale Begriffsanalyse Partielle Ordnung Supremum und Infimum Verkürztes Hasse-Diagramm Merkmalsuche Weitere Anwendungen der Begriffsanalyse Wiederholungsfragen Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/ / 26
4 Merkmalsuche Lernziele Ausnutzung aller verfügbarer Information (statisch und dynamisch) Suche nach Merkmalen (statt Programmmustern) Kontext Weitere Anwendung der Begriffsanalyse Unterstützung der Lokalisierung beim Programmverstehen Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/ / 26
5 Szenario für Merkmalsuche in einem Zeichentool Ziel: Rekonstruktion von Traceability-Abbildung: Merkmal (Feature) Implementierungskomponenten Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/ / 26
6 Ihre Aufgabe ist es, für ein System mit mehr als 10,000 Routinen ein Merkmal hinzuzufügen, zu korrigieren oder zu ändern oder einfach die Implementierung eines Merkmals zu verstehen. Wo beginnen Sie? Merkmalsuche: welche Komponenten eines Systems implementieren ein einzelnes Merkmal bzw. eine Menge von Merkmalen?
7 Merkmale und Komponenten Ein Merkmal ist eine realisierte funktionale oder nicht-funktionale Eigenschaft des Systems. Eine Komponente ist eine ausführbare Einheit, z.b.: eine einzelne Anweisung oder ein Ausdruck, eine Routine (Funktion, Prozedur), ein Modul, ein Subsystem, eine Task, ein Thread oder Prozess. Im Folgenden: Merkmal = von außen anstoßbares und beobachtbares Verhalten des Systems, das auf Komponenten abgebildet werden kann. Komponente = Routine. Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/ / 26
8 Statische Analyse nach Chen und Rajlich (2000) source code call graph extractor call graph call graph traversal Probleme: Wo beginnen? Wo fortfahren? Wo aufhören? Präzision der statischen Extraktion? load set text draw draw arc set ru ll move save set centc set cente Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/ / 26
9 Zwei dynamische Ausführungs-Traces (Wilde u. a. 1992) source code compiler executable invoke with feature invoke w/o feature trace trace profiler profiler invoking input set excluding input set difference starting set for static analysis Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/ / 26
10 Dynamische Aufrufgraphen mit Merkmal ohne Merkmal load set text load set text draw draw arc set ru ll set centc set cente draw draw arc set ru ll set centc set cente move move save Differenz: save load set text draw draw arc set ru ll set centc set cente save move Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/ / 26
11 Probleme der dynamischen Analyse Invoking-Input-Set Excluding-Input-Set kann immer noch sehr viele nicht-merkmalspezifische Routinen sowie nicht wirklich merkmalspezifische Routinen enthalten. Resultate hängen von der Eingabe ab; d.h. Resultate bilden nur einen Startpunkt für weitere statische Analysen. Wo soll mit der statischen Analyse begonnen werden? Das Resultat differenziert die identifizierten Routinen nicht weiter. Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/ / 26
12 Statisch und dynamisch nach Eisenbarth u. a. (2003) invoke feature f1 invoke feature f2 invoke feature fn trace trace trace profiler profiler profiler routines (f1) routines (f2) ,... routines (fn) invocation table compiler executable concept analysis source code call graph extractor call graph call graph traversal concept lattice Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/ / 26
13 Szenarien für das Grafikprogramm ze eine Ellipse zeichnen zk einen Kreis zeichnen zr ein Rechteck zeichnen zt Text zeichnen Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/ / 26
14 Aufruftabelle ze zk zr zt draw draw arc set centc set cente set ru ll set text Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/ / 26
15 Die Darstellung der Relation in Form einer Aufruftabelle erfolgt im Kontext der Merkmalsuche aus Platzgründen konsequent transponiert, da wir es stets mit mehr Routinen als Merkmalen zu tun haben werden.
16 Begriffsanalyse (Concept Analysis) Menge O von Objekten Menge A von Attributen Relation I O A das Tripel C = (O, A, I) wird formaler Kontext genannt für eine Menge von Objekten O O ist α(o) die Menge gemeinsamer Attribute: α(o) := {a A (o, a) I für alle o O} für eine Menge von Attributen A A ist ω(a) die Menge der gemeinsamen Objekte: ω(a) := {o O (o, a) I für alle a A} Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/ / 26
17 Begriffsanalyse (Concept Analysis) Ein Paar aus Objekten und Attributen c = (O, A) heißt Begriff (Concept), genau dann, wenn A = α(o) und gleichzeitig O = ω(a) Begriff entspricht einem maximalen Rechteck in der Tabelle (modulo Zeilen- und Spaltenpermutationen). Für einen Begriff c = (O, A) ist O = extent(c) (extent) und A = intent(c) (intent) des Begriffs c. Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/ / 26
18 ze zk zr zt draw draw arc set centc set cente set ru ll set text ({, draw},{ze,zk, zt, zr }) ({draw arc,, draw}, {ze,zk}) ({set cente, draw arc,, draw}, {ze}) ({set centc, draw arc,, draw}, {zk}) ({set text,, draw},{zt}) ({set ru ll,, draw},{zr}) ({set ru ll, set text, set centc, set cente, draw arc,, draw}, ) Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/ / 26
19 Partielle Ordnung von Begriffen Partielle Ordnung : Seien c 1 = (O 1, A 1 ) und c 2 = (O 2, A 2 ) zwei Begriffe; dann c 1 c 2 : O 1 O 2 oder, dual c 1 c 2 : A 2 A 1 c 2 ist Oberbegriff (Superconcept) von c 1 c 1 ist Unterbegriff (Subconcept) von c 2 c 2 hat mindestens die Objekte von c 1 und c 1 hat mindestens die Attribute von c 2. Bsp.: ({draw arc,, draw}, {ze,zk}) ({set centc, draw arc,, draw}, {zk}) Falls weder c 1 c 2 noch c 2 c 1, dann sind c 1 und c 2 unvergleichbar. Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/ / 26
20 Begriffsverband Menge L aller Begriffe eines Kontexts C zusammen mit Halbordnung bilden einen vollständigen Verband, den so genannten Begriffsverband: L(C) = {(O, A) 2 O 2 A A = α(o) und O = ω(a)} Hasse-Diagramme visualisieren die Relation <: c 1 < c 2 c 1 c 2 und es gibt keinen Begriff c( c 1, c 2 ), mit c 1 c c 2 Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/ / 26
21 Hasse-Diagramm draw Ellipsis set cente draw arc draw draw Ellipsis draw Circle draw arc draw draw Circle set centc draw arc draw set ru ll set text set centc set cente draw arc draw draw Rectangle set ru ll draw draw Text set text draw draw draw Ellipsis draw Circle draw Text draw Rectangle Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/ / 26
22 Infimum und Infimum Für zwei Begriffe c 1 und c 2 Gemeinsamer Unterbegriff Infimum (O 1, A 1 ) (O 2, A 2 ) = (O 1 O 2, α(o 1 O 2 )) Begriff, der die Menge der gemeinsamen Attribute zweier Objektmengen enthält Gemeinsamer Oberbegriff Supremum ( ) (O 1, A 1 ) (O 2, A 2 ) = (ω(a 1 A 2 ), A 1 A 2 ) Begriff, der die Menge der gemeinsamen Objekte zweier Attributmengen umfasst Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/ / 26
23 Verkürztes Hasse-Diagramm des Begriffsverbands draw Circle set centc draw Ellipsis set cente draw Rectangle set ru ll draw arc 6 draw Text set text 0 draw Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/ / 26
24 Merkmalsuche Für Kreis zeichnen: draw Ellipsis set cente draw Circle set centc draw Rectangle set ru ll spezifisch: sehr relevant: etwas relevant irrelevant set centc draw arc, draw alle anderen draw arc 6 0 draw Text set text draw load set text draw draw arc set ru ll move set centc set cente save Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/ / 26
25 Weitere Anwendungen der Begriffsanalyse Anwendungsbeispiel: Refactoring von Klassenhierarchien: Sammle alle erforderlichen Attribute für jede Instanz einer Klasse Tabelle Erstelle Begriffsverband für Tabelle. Jedes Konzept ist prinzipiell eine Klasse. Die -Relation stellt die Vererbung dar. Supremum: gemeinsame Oberklasse. Infimum: gemeinsame Unterklasse. Snelting und Tip (2000) Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/ / 26
26 Wiederholungs- und Vertiefungsfragen I Wie kann man bei der Lokalisierung von Merkmalen prinzipiell vorgehen, d.h. welche Verfahren kommen in Frage? Wie könnnen Merkmale mit Hilfe der Begriffsanalyse identifiziert werden? Was ist der formale Kontext hierfür? Welche Rolle spielt der Begriffsverband? Wie lässt er sich interpretieren? Welche Rolle spielt die statische Analyse? Warum ist sie notwendig? Wie funktioniert die inkrementelle Begriffsanalyse? Und wie kann dies für die Merkmalsuche ausgenutzt werden? Wie findet man Merkmale, wenn es keine Ein-zu-eins-Beziehung zwischen Merkmalen und Szenarien existiert? Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/ / 26
27 Chen und Rajlich 2000 Chen, Kunrong ; Rajlich, Václav: Case Study of Feature Location Using Dependence Graph. In: Proceedings of the 8th International Workshop on Program Comprehension. Limerick, Irland : IEEE Computer Society Press, Juni 2000, S Eisenbarth u. a Eisenbarth, Thomas ; Koschke, Rainer ; Simon, Daniel: Locating Features in Source Code. In: IEEE Computer Society Transactions on Software Engineering 29 (2003), März, Nr. 3, S Snelting und Tip 2000 Snelting, Gregor ; Tip, Frank: Understanding Class Hierarchies Using Concept Analysis. In: ACM Transactions on Programming Languages and Systems 22 (2000), Mai, Nr. 3, S Wilde u. a Wilde, Norman ; Gomez, Juan A. ; Gust, Thomas ; Strasburg, Douglas: Locating User Functionality in Old Code. In: Proceedings of the International Conference on Software Maintenance. Orlando, FL, USA : IEEE Computer Society Press, November 1992, S Rainer Koschke (Univ. Bremen) Vorlesung Software-Reengineering WS 2009/ / 26
Konsolidierung von Software-Varianten in Software-Produktlinien ein Forschungsprogramm
Konsolidierung von Software-Varianten in Software-Produktlinien ein Forschungsprogramm Rainer Koschke Universität Bremen Workshop Software-Reengineering Bad Honnef 5. Mai 2005 Bauhaus Forschungskooperation
MehrVorlesung Software-Reengineering
Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2010/11 Überblick I Analyse und Restrukturierung
MehrVorlesung Software-Reengineering
Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2007/08 Überblick I 1 Refactoring Refactorings
MehrOrdnungen und Verbände
Ordnungen und Verbände Diskrete Strukturen Uta Priss ZeLL, Ostfalia Sommersemester 2016 Diskrete Strukturen Ordnungen und Verbände Slide 1/28 Agenda Klausur Hausaufgaben Ordnungsrelation Baum-Ordnung Verbände
MehrGeordnete Mengen. Eine Relation heißt Ordnung oder Ordnungsrelation, wenn sie reflexiv, transitiv und antisymmetrisch ist.
Geordnete Mengen Eine Relation heißt Ordnung oder Ordnungsrelation, wenn sie reflexiv, transitiv und antisymmetrisch ist. Ist eine Ordnungsrelation auf eine geordnete Menge., dann nennt man Die Namensgebung
MehrVorlesung Software-Reengineering
Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2007/08 Überblick I 1 1 Das tägliche Brot
MehrSoftwaretechnik. Überblick I. Prof. Dr. Rainer Koschke. Sommersemester 2009
Softwaretechnik Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Sommersemester 2009 Überblick I 1 Entwurfsmuster Entwurfsmuster: Entwurfsmuster
MehrSoftwaretechnik. Prof. Dr. Rainer Koschke. Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen
Softwaretechnik Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Wintersemester 2010/11 Überblick I Entwurfsmuster Entwurfsmuster: Entwurfsmuster
MehrVorlesung Software-Reengineering
Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke 1 1 Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2005/06 Überblick I 1 Refactoring 1 Refactoring
MehrWarum Programme Verträge schließen sollten
1 Warum Programme Verträge schließen sollten RALF HINZE Institut für Informatik, Lehrstuhl Softwaretechnik, Universität Freiburg Georges-Köhler-Allee, Gebäude 079, 79110 Freiburg i. Br. Email: ralf@informatik.uni-bonn.de
MehrSeminar: Formale Begriffsanalyse Begriffsverbände
Seminar: Formale Begriffsanalyse Begriffsverbände Dozentin: Wiebke Petersen petersew@uni-duesseldorf.de SoSe 2010 4. Foliensatz Hinweise für AP Die Standardleistung für eine AP ist eine Haus- bzw. Projektarbeit
MehrOrdnungsrelationen. Bernhard Ganter. Institut für Algebra TU Dresden D Dresden
Ordnungsrelationen Bernhard Ganter Institut für Algebra TU Dresden D-01062 Dresden bernhard.ganter@tu-dresden.de Geordnete Mengen Eine Relation R A A heißt Ordnung oder Ordnungsrelation, wenn sie reflexiv,
MehrAlgorithmen und Datenstrukturen Wintersemester 2008/ Übung Abgabe bis , 10:00 Uhr
4. Übung Abgabe bis 17.11.2008, 10:00 Uhr Aufgabe 4.1: Sichtbarkeit und Referenzen 20 Punkte Geben Sie ihre Antworten als Sichtbarkeit.pdf ab. a) Betrachten Sie folgenden Code: 1 public class Vis { 26
MehrVorlesung Software-Reengineering
Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2009/10 Überblick I 1 I 1 Arten von Reengineering-Projekten
MehrVorlesung Software Reengineering
Vorlesung Software Reengineering Rainer Koschke Institut für Informatik, Universität Stuttgart Requirements Design Code reengineering forward engineer- forward engireverse engineer- reverse engineer- restructuring
MehrFormale Begriffsanalyse
Formale Begriffsanalyse Formale Begriffsanalyse ist um 1980 in Darmstadt entstanden als mathematische Theorie, die eine Formalisierung des Begriffs vom Begriff liefert. FBA hat seitdem zunehmend Verbreitung
MehrObjektorientierte Programmierung OOP
Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel Alina Stürck WS2016/17 11. Oktober 2016 Objektorientierte Programmierung OOP 1 Was ist das? 2 Wie geht das? 3 Warum
MehrWeb Engineering-Seminar Methoden zur Web Modellierung: Object-oriented Hypermedia Method (OO-H)
Web Engineering-Seminar Methoden zur Web Modellierung: Object-oriented Hypermedia Method (OO-H) Dominik Kirsten Daniel Schäferbarthold Trier, 21.01.2008 1 Gliederung 1. Einführung 1.1 Anforderungen an
MehrVorlesung Software-Reengineering
Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2008/09 Überblick I 1 1 Softwarearchitektur
MehrSystemtheorie 1. Einführung Systemtheorie 1 Formale Systeme 1 # WS 2006/2007 Armin Biere JKU Linz Revision: 1.4
Einführung intro 1 Grobklassifizierung r Methoden in der Informatik intro 2 Systemtheorie 1 Systeme 1 #342234 http://fmv.jku.at/fs1 WS 2006/2007 Johannes Kepler Universität Linz, Österreich Univ. Prof.
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte
MehrSystemtheorie 1. Formale Systeme 1 # WS 2006/2007 Johannes Kepler Universität Linz, Österreich
Einführung 1 Systemtheorie 1 Formale Systeme 1 #342234 http://fmv.jku.at/fs1 WS 2006/2007 Johannes Kepler Universität Linz, Österreich Univ. Prof. Dr. Armin Biere Institut für Formale Modelle und Verifikation
MehrKapitel 2 - Die Definitionsphase
Kapitel 2 - Die Definitionsphase 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
MehrFormale Begriffsanalyse (B. Ganter, R. Wille) Teil 1
Formale Begriffsanalyse (B. Ganter, R. Wille) Teil 1 Einleitung und Definitionen formale Begriffsanalyse 1 Definition von formalen Kontexten K:=(G,M,I) : formaler Kontext G : Menge der Gegenstände M :
Mehrsoftware visualization NICK MÜLLER, a
software visualization NICK MÜLLER, a1001030 Papers Visualizing Compiled Executables for Malware Analysis. Daniel A. Quist and Lorie M. Liebrock, VizSec 2009. Visualizing Application Behavior on Superscalar
MehrObjektorientierte Modellierung (1)
Objektorientierte Modellierung (1) Die objektorientierte Modellierung verwendet: Klassen und deren Objekte Beziehungen zwischen Objekten bzw. Klassen Klassen und Objekte Definition Klasse Eine Klasse ist
MehrUniversität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 08. Oktober Klausur II
Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 08. Oktober 2001 Stefan Holland Informatik II Hinweise: Klausur II Verwenden Sie für Ihre Lösungen ausschließlich
MehrNotationen für Transformationsregeln
Notationen für Transformationsregeln Seminar Transformationen Dennis Gerke 20.01.06 Fragestellung Wie werden die Transformationsregeln in den einzelnen Systemen angegeben? Welche theoretischen Grundlagen
MehrProgrammierung im Grossen
1 Letzte Aktualisierung: 16. April 2004 Programmierung im Grossen Bertrand Meyer 2 Vorlesung 4: Abstrakte Daten-Typen Übungen 3 Passe die vorhergehende Spezifikation von Stacks (LIFO, Last-In First-Out
MehrEinführung in die Informatik 2
Einführung in die Informatik 2 Mathematische Grundbegriffe Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag, 12:30-14:00 Uhr,
MehrUnified Modeling Language 2
Unified Modeling Language 2 Marvin Frommhold 17.11.2008 Gliederung Einleitung Geschichte Strukturierung der Spezifikation Diagrammtypen Strukturdiagramme Verhaltensdiagramme CASE-Werkzeuge Quellen Was
MehrDaten Bank. 2. Vorlesung. Dr. Karsten Tolle PRG2 SS 2014
Daten Bank 2. Vorlesung Dr. Karsten Tolle PRG2 SS 2014 Letzte Vorlesung Grundbegriffe SQL create table insert select Dr. Karsten Tolle PRG2 SS 2014 2 Heute Übersicht Modellierung (ER-Diagramme) Entitäten
MehrSoftware Engineering, SoSe 07, WSI, D. Huson, May 7,
Software Engineering, SoSe 07, WSI, D. Huson, May 7, 2007 17 4 Modellierung in UML Nach einer Vorlesung von Prof. Andreas Zeller, Lehrstuhl Softwaretechnik Universität des Saarlandes, Saarbrücken. 4.1
MehrInformatik II Übung, Woche 17
Giuseppe Accaputo 28. April, 2016 1. Vererbung 2. Vorbesprechung Übung 8 Plan für heute 3. Erweiterung des Vorlesungsverzeichnis (VVZ) (Live-Programmierung) Informatik II (D-BAUG) Giuseppe Accaputo 2 Vererbung
MehrRelationen und Funktionen
Relationen und Funktionen Relationen und Funktionen Quick Start Informatik Theoretischer Teil WS2011/12 11. Oktober 2011 Relationen und Funktionen > Relationen Relationen Relationen und Funktionen > Relationen
MehrDiskrete Strukturen Kapitel 2: Grundlagen (Relationen)
WS 2016/17 Diskrete Strukturen Kapitel 2: Grundlagen (Relationen) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_16
MehrSommersemester Implementierung I: Struktur
Sommersemester 2003 Implementierung I: Struktur 2 Aufgabe 3 Implementierung I: Struktur Umfang: 1 Woche Punkte: 50 P. In den ersten beiden Aufgaben wurden die Struktur und das Verhalten des Systems modelliert.
MehrUniversität Karlsruhe (TH)
Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Kapitel 2 Die Definitionsphase Prof. Walter F. Tichy Wo sind wir gerade? Planung Lastenheft (funktionales Modell) Definition (Analyse) Pflichtenheft
MehrSoftwaretechnik. Prof. Dr. Rainer Koschke. Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen
Softwaretechnik Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Wintersemester 2010/11 Überblick I Software-Produktlinien Software-Produktlinien:
MehrObjektorientierte Systementwicklung
Karl-Heinz Rau Objektorientierte Systementwicklung Vom Geschäftsprozess zum Java-Programm Mit 162 Abbildungen vieweg Überblick und Vorbemerkungen 1 1 Objektorientierte Software-Entwicklung 5 1.1 Überblick
MehrDetecting Near Duplicates for Web Crawling
Detecting Near Duplicates for Web Crawling Gurmeet Singh Manku et al., WWW 2007* * 16th international conference on World Wide Web Detecting Near Duplicates for Web Crawling Finde near duplicates in großen
MehrGrundlagen der Informatik 0
Technische Universität Darmstadt 01.07.2013 Grundlagen der Informatik 0 Vorlesung 0 Java ist eine Programmiersprache Ilkay Baytekin Douglas Crockford http://media.smashingmagazine.com/wp-content/uploads/2012/04/doug-crockford-image.jpg
MehrSimullda. Structured Interlingua MultiLingual Lexical Database Application. Sonja Weber
Simullda Structured Interlingua MultiLingual Lexical Database Application Sonja Weber 1 Gliederung Background Begriffsklärung Multilinguale Datenbanken WordNet Maschinelle Übersetzung Formale Begriffsanalyse
MehrEIN HYPERTEXT-EDITOR ZUR SOFTWARE-WARTUNG
EIN HYPERTEXT-EDITOR ZUR SOFTWARE-WARTUNG Johannes Sametinger, Alois Stritzinger Johannes-Kepler-Universität Linz Institut für Wirtschaftsinformatik A-4040 Linz ZUSAMMENFASSUNG Dieser Artikel beschreibt
MehrObjektorientiertes Programmieren
JL Ute Claussen Objektorientiertes Programmieren Mit Beispielen und Übungen in C++ Zweite, überarbeitete und erweiterte Auflage Mit 24 Abbildungen Springer Inhaltsverzeichnis 1 Einleitung 1 1.1 Was ist
MehrKapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen
Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18
MehrSoftwaretechnik. Überblick I. Prof. Dr. Rainer Koschke. Sommersemester 2006
Softwaretechnik Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Sommersemester 2006 Überblick I 1 Software-Produktlinien Software-Produktlinien:
MehrSchlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:
Musterlösung Übung 7 Aufgabe 1 Sehen wir uns zu allererst das gegebene Forth Programm an: 0 3 new - list constant list1 list1 5 new - list constant list2 list1 6 new - list constant list3 list2 2 new -
MehrErkennung von Race Conditions mit Bauhaus
Erkennung von Race Conditions mit Bauhaus Steffen Keul steffen.keul@informatik.uni-stuttgart.de Abteilung Programmiersprachen Institut für Softwaretechnologie http://www.iste.uni-stuttgart.de/ps Stand
MehrUML -Klassendiagramme
UML -Klassendiagramme UML - offline: ArgoUML http://argouml.stage.tigris.org/ UML online: Links genmymodel.com umlet.com/umletino/umletino.html Arten von UML-Diagrammen Diagramm Strukturdiagramm Verhaltensdiagramm
MehrAbgabe: keine Pflichtabgabe (vor 12 Uhr) Aufgabe 10.1 (P) Vererbung Gegeben seien folgende Java-Klassen:
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2011 Einführung in die Informatik I Übungsblatt 10 Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz,
Mehrpue08 December 9, 2016
pue08 December 9, 2016 1 Aufgabe 1: Ein einfaches Zeichenprogramm 1.1 a) Erstellen Sie eine Klasse Square mit den folgenden Eigenschaften: Objektvariablen: - width: Seitenlänge (default: 0) - color: Füllfarbe
MehrProgrammierkurs C++ Abstrakte Klassen und Methoden
Programmierkurs C++ Abstrakte Klassen und Methoden Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie Obst double
MehrProgrammierkurs Java
Programmierkurs Java Abstrakte Klassen und Methoden & Interfaces Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie
MehrHuman-Computer-Interaction und Psychologie: Aufgaben-, Kontext, Konkurrenzanalyse
Human-Computer-Interaction und Psychologie: Aufgaben-, Kontext, Konkurrenzanalyse Analyse der Aufgaben Beachte: nur ein System, mit dem die Benutzer erfolgreich ihre Aufgaben erfüllen können, wird verkauft
MehrEntwurf: Fortgeschrittene Konzepte
Bisher: Entwurf als grafisches Diagramm mit Entitätsmengen (auch weiche) Beziehungsmengen Attribute Assoziationstypen, Beziehungstypen und ausschließlich 2 stellige Beziehungen Extended / Enhanced (Erweitertes)
MehrAbstrakte Klassen, Interfaces
Abstrakte Klassen, Interfaces INE2, Mittwoch 8.00-9.35 / TE561 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was gehtes? Problemstellung Klassenhierachie - verschiedene geometrische
MehrVorlesung Software-Reengineering
Vorlesung Software-Reengineering Prof. Dr. R. Koschke 1 D. Simon 2 1 Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen 2 Institut für Software Technologie Fakultät
MehrBeispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung
Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]
MehrNeben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter
Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener
MehrAlgorithmen und Programmierung III WS 05/06
Algorithmen und Programmierung III WS 05/06 Übungsblatt 4 - Abgabe vor der Vorlesung 15.11.05 Aufgabe 0 (Wiederholung) [Optional] Ausnahmen (throw, catch, finally, throws, Behandlung, Laufzeitausnahmen,
MehrProgrammieren in Java
Einführung in die Objektorientierung Teil 4 Interfaces, innere Klassen und Polymorphie 2 Vererbung im Klassendiagram (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Ware
Mehr4. Funktionen und Relationen
Bestimmung der Umkehrfunktionen c) bei reellen Funktionen geometrisch durch Spiegelung des Funktionsgraphen an der Winkelhalbierenden y = x. y = x 3 y = x y = x y = (x+1)/2 y = x 1/3 y = 2x 1 Seite 27
MehrSoftwaretechnik. Überblick I. Prof. Dr. Rainer Koschke. Sommersemester 2007
Softwaretechnik Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Sommersemester 2007 Überblick I 1 Vorbemerkungen Vorbemerkungen: Vorbemerkungen
MehrUntertypen, Vererbung, Sichtbarkeit A01 OOP. Untertypen, Vererbung, Sichtbarkeit
2013-10-30 Untertypen, Vererbung, Sichtbarkeit 1 185.A01 OOP Untertypen, Vererbung, Sichtbarkeit 2013-10-30 Untertypen, Vererbung, Sichtbarkeit 2 OOP Abstrakte Klassen Polygon ւ ց Triangle Square Hexagon
MehrTheorie zu Übung 8 Implementierung in Java
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept
MehrKlausur zur Vorlesung Grundbegriffe der Informatik 5. März 2014
Klausur zur Vorlesung Grundbegriffe der Informatik 5. März 2014 Klausurnummer Nachname: Vorname: Matr.-Nr.: Aufgabe 1 2 3 4 5 6 7 max. Punkte 6 8 4 7 5 6 8 tats. Punkte Gesamtpunktzahl: Note: Punkte Aufgabe
MehrGeoinformation Abbildung auf Tabellen
Folie 1 von 32 Geoinformation Abbildung auf Tabellen Folie 2 von 32 Abbildung auf Tabellen Übersicht Motivation des relationalen Datenmodells Von Objekten zu Tabellen Abbildung von Objekten Schlüssel Abbildung
MehrVorlesung Software-Reengineering
Vorlesung Software-Reengineering Prof. Dr. R. Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2005/06 Überblick I 1 Blatt 2 1 Blatt 2 A 2.1:
MehrVorlesung Software-Reengineering
Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2007/08 Überblick I 1 1 Probleme statischer
MehrKurze Wege Übungen. Prof. Dr. Rainer Koschke 1 Dipl.-Inform. Jochen Quante 1 Dipl.-Inform. Raimar Falke 1
Kurze Wege Übungen Prof. Dr. Rainer Koschke 1 Dipl.-Inform. Jochen Quante 1 Dipl.-Inform. Raimar Falke 1 1 Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen 22. März
MehrAlgebra. Eine Menge A heißt abzählbar, wenn A gilt. Insbesondere sind, und abzählbar, und sind nicht abzählbar (überabzählbar).
Algebra 1 Mengen 1.1 Operationen A Anzahl der Elemente von A (Mächtigkeit, Betrag, Kardinalität) (A) Potenzmenge von X ( (A) = 2 A ) A B wenn jedes Element von A auch Element von B ist. A = B (A B und
MehrDOORS Schema IBM Rational DOORS Start-Up Training - Teil 3
DOORS Schema IBM Rational DOORS Start-Up Training - Teil 3 Inhalt: Anforderungen an ein Schema Design eines Schemas Schrittweises Vorgehen Strukturierung und Design der Daten in DOORS Voraussetzung für
Mehr8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure
8. Objektorientierte Programmierung Informatik II für Verkehrsingenieure Grundbegriffe ALAN KAY, ERFINDER DER SPRACHE SMALLTALK, HAT DIE GRUNDBEGRIFFE DER OBJEKTORIENTIERTEN PROGRAMMIERUNG WIE FOLGT ZUSAMMENGEFASST:
MehrSoftware-Qualität Ausgewählte Kapitel. Messung und Prognose von interner Software-Qualität"
Institut für Informatik! Martin Glinz Software-Qualität Ausgewählte Kapitel Kapitel 11 Messung und Prognose von interner Software-Qualität" 2011 Martin Glinz. Alle Rechte vorbehalten. Speicherung und Wiedergabe
MehrCNAM: Theoretische Informatik I
Fachhochschule Darmstadt WS 2004 Dr. Frithjof Dau 09.12.2004 CNAM: Theoretische Informatik I Übung 6 Aufgabe 1: Begriffsverbände bestimmen: Gegeben seien die folgenden beiden Kontexte über Authentifizierungsmethoden
MehrMathematik-Vorkurs für Informatiker (Wintersemester 2012/13) Übungsblatt 8 (Relationen und Funktionen)
DEPENDABLE SYSTEMS AND SOFTWARE Fachrichtung 6. Informatik Universität des Saarlandes Christian Eisentraut, M.Sc. Julia Krämer Mathematik-Vorkurs für Informatiker (Wintersemester 0/3) Übungsblatt 8 (Relationen
MehrStatische Methoden, Vererbung, Benutzereingabe
Statische Methoden, Vererbung, Benutzereingabe Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung https://www.sosy-lab.org/teaching/2017-ws-infoeinf/
MehrAnhang B. Relationenalgebraische Definitionen. B.1 Relationen
Anhang B Relationenalgebraische Definitionen Die relationenalgebraischen Definitionen bilden die Grundlage der formalen Aspekte der Projekte WebReference und InterMediate [Her00]. Sie sind [SS89] entnommen.
MehrPLUS Architektur-Browser
Tobias Kiefer Bachelor-Arbeit Betreuer: Prof. Dr. Antonio Krüger PLUS Architektur-Browser (PAB) Bachelor-Master-Seminar, 09.01.2014 Agenda Was ist abat+? Motivation Related Work Architektur Mein Vorhaben
MehrGeoinformation I Datenmodellierung
Seite 1 von 61 Geoinformation I Datenmodellierung Seite 2 von 61 Datenmodellierung Übersicht Datenverwaltung und Datenbanken objektorientierte Abbildung der Realität Grundlagen der Objektorientierung Darstellung
MehrPraxis der Softwareentwicklung WS 2015/16
Praxis der Softwareentwicklung WS 2015/16 Prof. Dr. Gregor Snelting LEHRSTUHL PROGRAMMIERPARADIGMEN 0 KIT 28. Universität Oktober des 2015- Landes Praxis Baden-Württemberg der Softwareentwicklung und WS
MehrÜbungen Softwaretechnik I
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Übungen Softwaretechnik I Übung 5: Objektorientierte Analyse Einführung Objektorientierung in der
Mehr2.Vorlesung Grundlagen der Informatik
Christian Baun 2.Vorlesung Grundlagen der Informatik Hochschule Darmstadt WS1112 1/16 2.Vorlesung Grundlagen der Informatik Christian Baun Hochschule Darmstadt Fachbereich Informatik christian.baun@h-da.de
MehrMathematische Grundlagen der Computerlinguistik Ordnungsrelationen
Mathematische Grundlagen der Computerlinguistik Ordnungsrelationen Dozentin: Wiebke Petersen 4. Foliensatz Wiebke Petersen math. Grundlagen 89 starke / schwache Ordnungen Eine Ordnung R einer Menge A ist
MehrEinführung in C# Teil 3. Matthias Nübling
Einführung in C# Teil 3 Matthias Nübling Vorausgesetzte Grundkenntnisse Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,
MehrStatische Methoden, Vererbung, Benutzereingabe
Statische Methoden, Vererbung, Benutzereingabe Dr. Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-16-17/infoeinf WS16/17 Action required now
Mehr7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik
7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik:
MehrTheoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke
Theoretische Informatik 1 WS 2007/2008 Prof. Dr. Rainer Lütticke Inhalt der Vorlesung Grundlagen - Mengen, Relationen, Abbildungen/Funktionen - Datenstrukturen - Aussagenlogik Automatentheorie Formale
MehrInformatik I. Grundlagen der systematischen Programmierung. Peter Thiemann WS 2007/08. Universität Freiburg, Germany
Informatik I Grundlagen der systematischen Programmierung Peter Thiemann Universität Freiburg, Germany WS 2007/08 Literatur Herbert Klaeren, Michael Sperber. Die Macht der Abstraktion. Teubner Verlag,
MehrReengineering und Refactoring von Softwarearchitekturen
Methodische und Praktische Grundlagen der Informatik 3 Reengineering und Refactoring von Softwarearchitekturen Steffen Helke Technische Universität Berlin Fachgebiet Softwaretechnik WS 2008/2009 Lernziele?
MehrEinleitung. Komplexe Anfragen. Suche ist teuer. VA-File Verfeinerungen. A0-Algo. GeVAS. Schluß. Folie 2. Einleitung. Suche ist teuer.
Anwendung Input: Query-Bild, Ergebnis: Menge ähnlicher Bilder. Kapitel 8: Ähnlichkeitsanfragen und ihre effiziente Evaluierung Wie zu finden? Corbis, NASA: EOS Bilddatenbank Folie Folie 2 Ähnlichkeitssuche
MehrVorausgesetzte Grundkenntnisse. Inhalt. Klassenhierarchie und Vererbung. Vererbung. Klassenhierarchie und Vererbung. Einführung in C# Teil 3
Vorausgesetzte Grundkenntnisse Einführung in C# Teil 3 Matthias Nübling Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,
MehrVorlesung Programmieren
Vorlesung Programmieren Unified Modeling Language (UML) Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer Unified Modeling Language (UML)
MehrProgrammverstehen 3: Detailliertes Verständnis. Dr. Thorsten Arendt Marburg, 10. Dezember 2015
Programmverstehen 3: Detailliertes Verständnis Dr. Thorsten Arendt Marburg, 10. Dezember 2015 Re-Engineering Patterns [Demeyer et al.] 2 Software-Evolution WS 2015/2016 Überblick Probleme Auch wenn das
MehrUE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 2. Spezifikation Schrittweise Verfeinerung
UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 2 Spezifikation Schrittweise Verfeinerung Institut für Pervasive Computing Johannes Kepler Universität Linz Altenberger Straße 69,
MehrMusterlösung Stand: 5. Februar 2009
Fakultät IV Elektrotechnik/Informatik Probeklausur Einführung in die Informatik I Hinweis: Diese Probeklausur ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der Teilleistung TL 2 (Programmiertest)
MehrInstrumentation von Android Anwendungen mit ExplorViz
Instrumentation von Android Anwendungen mit ExplorViz Jan Witzany 28. September 2016 Jan Witzany Instrumentation von Android Anwendungen mit ExplorViz 28. September 2016 1 / 19 Gliederung 1. Motivation
MehrSoftware Engineering. Statische Analyse! Kapitel 11
Martin Glinz Thomas Fritz Software Engineering Kapitel 11 Statische Analyse 2005, 2013 Martin Glinz. Alle Rechte vorbehalten. Speicherung und Wiedergabe für den persönlichen, nicht kommerziellen Gebrauch
MehrJava: Kapitel 1. Überblick. Programmentwicklung WS 2008/2009. Holger Röder Holger Röder
Java: Kapitel 1 Überblick Programmentwicklung WS 2008/2009 Holger Röder holger.roeder@informatik.uni-stuttgart.de Was ist Java? Die Java-Technologie umfasst die Programmiersprache Java sowie die Java-Plattform
Mehr