Seminar Werkzeuggestütze. tze Softwareprüfung. fung. Slicing. Sebastian Meyer
|
|
- Axel Kraus
- vor 8 Jahren
- Abrufe
Transkript
1 Seminar Werkzeuggestütze tze Softwareprüfung fung Slicing Sebastian Meyer
2 Überblick Einführung und Begriffe Static Slicing Dynamic Slicing Erweiterte Slicing-Techniken Fazit 2
3 Was ist Slicing?? (I) Program slicing is a method for automatically decomposing programs by analyzing their data flow and control flow. Starting from a subset of a program s behavior, slicing reduces that program to a minimal form which still produces that behavior. The reduced program, called a slice, is an independent program guaranteed to represent faithfully the original program within the domain of the specified subset of behavior. Mark Weiser,
4 Was ist Slicing?? (II) Slicing wurde 1979 erstmals von Weiser definiert. Mark Weiser, Program slices, formals, psychological and practical investigation of an automatic program abstraction method. PhD thesis, University of Michigan, Ann Arbor, Slicing beantwortet allgemein die Frage welche Anweisung beeinflusst die Berechnung einer anderen Anweisung 4
5 Beispiel 1: int OddNumsSum(int n) 2: { 3: int i = 0; 4: int sum = 0; 5: while (i <= n) 6: { 7: if (i % 2 == 1) 8: sum++; 9: i++; 10: } 11: return sum; 12: } 5
6 Begriffe (I) Slice Ein Slice ist eine Menge von Anweisungen, eines Programms P, die eine Variable v an einem bestimmten Programmpunkt s beeinflussen oder von ihr beeinflusst werden. Slicing Slicing ist der Vorgang des Berechnens eines Slice. 6
7 Begriffe (II) Slicing-Kriterium Das Tupel aus Variable v und deren Programmpunkt s wird Slicing-Kriterium (v,s) genannt Startkonfiguration Die Menge der Werte aller Parameter eines Programms, welche beim Programmaufruf übergeben bzw. während des Programmablaufs eingelesen werden können. 7
8 Beispiel zu den Begriffen 1: int OddNumsSum(int n) 2: { int OddNumsSum(int n) { 3: int i = 0; int i = 0; 4: int sum = 0; while (i <= n) 5: while (i <= n) { 6: { Slicing i++; 7: if (i % 2 == 1) } 8: sum++; } 9: i++; 10: } Slice 11: return sum; (i,9) n=6 12: } Slicing-Kriterium Start-Konfiguration Programm 8
9 Arten von Slicing (I) Static Slicing Die Analyse erfolgt unabhängig von einer bestimmten Startkonfiguration (Exact) Dynamic Slicing Die Analyse erfolgt abhängig von einer bestimmten Startkonfiguration 9
10 Arten von Slicing (II) Backward Slicing Beinhaltet alle Anweisungen, die die Variable des Slicing-Kriteriums beeinflussen können. Forward Slicing Beinhaltet alle Anweisungen, die von der Variable des Slicing-Kriteriums beeinflusst werden. 10
11 Einsatzzwecke von Slicing Debuggen Testen Zusammenfügen zweier Programme Software Wartung Compilerbau 11
12 Static Slicing (I) Die Analyse erfolgt unabhängig von einer bestimmten Startkonfiguration. Berechnung des Control flow graphs (CFG) 12
13 Control flow graph (I) Ein CFG ist ein gerichteter Graph Die Knoten repräsentieren die Anweisungen des Programms Die Kanten repräsentieren den Kontrollfluss des Programms Zu jedem Knoten kann notiert werden, welche Variablen definiert oder geschrieben werden (def) und welche Variablen gelesen werden (ref). Bei Verzweigungen wird jede ausgehende Kante mit einem eindeutigen Label beschriftet. 13
14 Control flow graph (II) START int i = 0; def = {i} false int sum = 0; while (i <= n ) true if (i % 2 == 1) false i++; return sum; EXIT def = {sum} ref = {i,n} true ref = {i} sum++; def = {sum} def = {i} ref = {sum} 14
15 Static Slicing (II) Die Analyse erfolgt unabhängig von einer bestimmten Startkonfiguration. Berechnung des Control flow graphs (CFG) Berechnung des Program dependence graph (PDG) 15
16 Program dependence graph (I) Besteht aus dem Data dependence graph Ein gerichteter Graph G, dessen Knoten N die Anweisungen des Programms enthalten. Die Kanten K geben die Abhängigkeit der Variablenbenutzung an Berechnungsvorschrift: 1. Weg p von n nach m im CFG (n * m) 2. Variable v, mit v def(n) und v ref(m) 3. Knoten k n im Pfad p gilt: v def(k) 16
17 Program dependence graph (II) int i = 0; int sum = 0; while (i <= n ) return sum; if (i % 2 == 1) i++; sum++; 17
18 Program dependence graph (III) Besteht aus dem Control dependence graph Ein gerichteter Graph G, dessen Knoten N die Anweisungen des Programms plus den Startpunkt enthalten. Die Kanten geben die Abhängigkeiten der Anweisungen untereinander an. 18
19 Program dependence graph (IV) Control dependence graph: Berechnung Erweitern des CFG um eine Kante von Start zu Stop Berechnung der Post-Dominatoren Berechnung des CDG 1. Pfad p von n nach m im CFG (n * m) 2. m ist ein Post-Dominator für jeden Knoten in p, außer für n 3. m ist kein Post-Dominator für n. 19
20 Program dependence graph (V) 20
21 Program dependence graph (VI) Das Zusammenfügen des Control und des Data dependence graphs ergibt den Program dependence graph. 21
22 Static Slicing (III) Die Analyse erfolgt unabhängig von einer bestimmten Startkonfiguration. Berechnung des Control flow graphs (CFG) Berechnung des Program dependence graph (PDG) Berechnung des static slice aus dem PDG 22
23 Static Slicing (IV) Nach Berechnung des PDG lässt sich aus diesem ein static slice berechnen. Ein backward slice S(n) über den PDG am Knoten n besteht aus allen Knoten m, von denen n (transitiv) abhängt: S(n) = {m m * n} Ein forward slice S F (n) über den PDG am Knoten n besteht aus allen Knoten m, die (transitiv) von n abhängen: S F (n) = {m n * m} n ist dann das Slicing-Kriterium. 23
24 Static Slicing (V) 1: int OddNumsSum(int n) 2: { 3: int i = 0; 4: 5: while (i <= n) 6: { 7: 8: 9: i++; 10: } 11: 12: } 1: int OddNumsSum(int n) 2: { 3: 4: 5: while (i <= n) 6: { 7: if (i % 2 == 1) 8: sum++; 9: i++; 10: } 11: return sum; 12: } Static Backward Slice für (i,8) Static Forward Slice für (i,8) 24
25 Fortgeschrittenes Static Slicing Beachtung von Nebeneffekten bei Strukturen/Arrays Pointer-Arithmetik Slicing über mehrere Prozeduren Slicing von Vererbungen Slicing von Nebenläufigen Programmen 25
26 Fazit Static Slicing Aufwand hängt im wesentlichen von der Anzahl der verwendeten Variablen und den Knoten und Kanten im CFG ab. Die Überführung in einen PDC kann leicht mittels syntaktischer Analyse vorgenommen werden. Dies ist ein Vorteil bei der Berechnung von mehreren Slices Die Berechnung eines static backward slices kann immer in endlich vielen Schritten vorgenommen werden. Static Slicing liefert eine Abschätzung nach oben. 26
27 Dynamic Slicing Zusätzlich zum Slicing-Kriterium muss auch noch Startkonfiguration berücksichtigt werden. Abhängig von der Startkonfiguration kann für ein Kriterium verschiedene Slices berechnet werden Es muss eine semantische Analyse vorgenommen werden um einen vollständigen Program-Execution-Trace zu erhalten Probleme bei Endlosschleifen Aus dem Programm und dem Program-Execution-Trace kann für die spezielle Startkonfiguration zu einem Slicing-Kriterium der dynamic slice berechnet werden. 27
28 Unterschiedliche Startkonfigurationen 1: int OddNumsSum(int n) 2: { 3: int i = 0; 4: int sum = 0; 5: while (i <= n) 6: { 7: if (i % 2 == 1) 8: 9: i++; 10: } 11: return sum; 12: } 1: int OddNumsSum(int n) 2: { 3: int i = 0; 4: int sum = 0; 5: while (i <= n) 6: { 7: if (i % 2 == 1) 8: sum++; 9: i++; 10: } 11: return sum; 12: } Dynamic Backward Slice für (sum, 10) und n=0 Dynamic Backward Slice für (sum, 10) und n=1 28
29 Program execution trace Problem: Berechnung des PET Ideen: Ergänzung des Programms um Anweisungen zur Erzeugung eines PET Interpretation des Quellcodes Bei Anweisungen mit Nebeneffekten kann es aufgrund der schwierigen Berechnung zu Ungenauigkeiten kommen. 29
30 Fazit Dynamic Slicing Der Aufwand zur Berechnung des PET kann schnell sehr gross werden. Durch die unbedingte Ausführung des Programms kann der Aufwand so groß werden, dass er in keinem Verhältnis zur eingesetzten Zeit steht. Dynamic Slicing liefert eine Abschätzung nach unten. 30
31 Operationen auf Slices Schnitt zwischen zwei Slices Ergibt die gemeinsam genutzten Anweisungen. Schnitt zwischen Forward und Backward Slice Anweisungen, die eine Eingabe zu einer Ausgabe transformiert. 31
32 Approximate Dynamic Slicing Mischung aus Static Slicing und (Exact) Dynamic Slicing Zunächst wird der PET gebildet Darauf wird ein Static Slice für das Slicing-Kriterium berechnet 32
33 Fazit Static slicing kann mit geringem Aufwand berechnet werden, Slices sind jedoch nicht unbedingt minimal. Dynamic slicing liefert genauere Slices hat aber teilweise einen unverhältnismäßigen Berechnungsaufwand. Slicing ist immer noch Gegenstand aktueller Forschung. Static Slicing ist Handwerkszeug des Compilerbaus. 33
Programmierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
MehrBinäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
MehrWhitebox-Tests: Allgemeines
-Tests: Allgemeines Andere Bezeichnungen Logic driven, Strukturelles Der Tester entwickelt Testfälle aus einer Betrachtung der Ablauflogik des Programms unter Berücksichtigung der Spezifikation Intuitiv
MehrDokumentation für das Spiel Pong
Dokumentation für das Spiel Pong BwInf - Turnierserver Didaktik der nformatik BWINF KI Wettbewerbs-Plattform Stand: 02.09.2014 Grundlagen In diesem KI-Turnier programmiert ihr einen Schläger für das Retro-Spiel
MehrZeichen bei Zahlen entschlüsseln
Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren
Mehr17.1.2014 Einführung in die Programmierung Laborübung bei Korcan Y. Kirkici. 12.Übung 13.1. bis 17.1.2014
17.1.2014 Einführung in die Programmierung Laborübung bei Korcan Y. Kirkici 12.Übung 13.1. bis 17.1.2014 1 BEFRAGUNG http://1.bp.blogspot.com/- waaowrew9gc/tuhgqro4u_i/aaaaaaaaaey/3xhl 4Va2SOQ/s1600/crying%2Bmeme.png
MehrInformation Systems Engineering Seminar
Information Systems Engineering Seminar Algorithmische Prüfung der Planarität eines Graphen Marcel Stüttgen, 22.10.2012 FH AACHEN UNIVERSITY OF APPLIED SCIENCES 1 Planarität - Definition Ein Graph heißt
MehrCodes und Informationsgehalt
Aufgaben 2 Codes und Informationsgehalt Auf wie viele Dezimalziffern genau können vorzeichenlose ganze Zahlen in einem binären Code der Länge 32 bit dargestellt werden? 2 Codes und Informationsgehalt Auf
MehrKonzepte der Informatik
Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens
MehrKlausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.
Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 Klausurteilnehmer Name: Matrikelnummer: Wichtige Hinweise Es sind keinerlei Hilfsmittel zugelassen auch keine Taschenrechner! Die Klausur dauert
MehrDarstellungsformen einer Funktion
http://www.flickr.com/photos/sigfrid/348144517/ Darstellungsformen einer Funktion 9 Analytische Darstellung: Eplizite Darstellung Funktionen werden nach Möglichkeit eplizit dargestellt, das heißt, die
MehrÜbungen zur Softwaretechnik
Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 9 17. Dezember 2002 www4.in.tum.de/~rumpe/se
MehrDer Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.
Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.
MehrPetri-Netze / Eine Einführung (Teil 2)
Manuel Hertlein Seminar Systementwurf Lehrstuhl Theorie der Programmierung Wiederholung (1) Petri-Netz = bipartiter, gerichteter Graph Aufbau: Plätze (passive Komponenten) Transitionen (aktive Komponenten)
MehrAlgorithmische Mathematik
Algorithmische Mathematik Wintersemester 2013 Prof. Dr. Marc Alexander Schweitzer und Dr. Einar Smith Patrick Diehl und Daniel Wissel Übungsblatt 6. Abgabe am 02.12.2013. Aufgabe 1. (Netzwerke und Definitionen)
MehrÜbung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse
Übung 03: Schleifen Abgabetermin: xx.xx.xxxx Name: Matrikelnummer: Gruppe: G1 (Prähofer) G2 (Prähofer) G3 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben elektronisch Aufgabe 03.1 12
MehrWS 2009/10. Diskrete Strukturen
WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910
MehrObjektbasierte Entwicklung
Embedded Software Objektbasierte Entwicklung Objektorientierung in C? Prof. Dr. Nikolaus Wulff Objektbasiert entwickeln Ohne C++ wird meist C im alten Stil programmiert. => Ein endlose while-schleife mit
MehrHäufig wiederkehrende Fragen zur mündlichen Ergänzungsprüfung im Einzelnen:
Mündliche Ergänzungsprüfung bei gewerblich-technischen und kaufmännischen Ausbildungsordnungen bis zum 31.12.2006 und für alle Ausbildungsordnungen ab 01.01.2007 Am 13. Dezember 2006 verabschiedete der
Mehr2015-06-11 Tagesprogramm
1 2015-06-11 Tagesprogramm Design-by-Contract 2 Vertragspartner Anbieter (Server) bietet Leistungen (Services) an Kunde (Client) nimmt von Anbietern angebotene Leistungen in Anspruch Details der Inanspruchnahme
MehrFormale Sprachen und Grammatiken
Formale Sprachen und Grammatiken Jede Sprache besitzt die Aspekte Semantik (Bedeutung) und Syntax (formaler Aufbau). Die zulässige und korrekte Form der Wörter und Sätze einer Sprache wird durch die Syntax
MehrHilfe zur Urlaubsplanung und Zeiterfassung
Hilfe zur Urlaubsplanung und Zeiterfassung Urlaubs- und Arbeitsplanung: Mit der Urlaubs- und Arbeitsplanung kann jeder Mitarbeiter in Coffee seine Zeiten eintragen. Die Eintragung kann mit dem Status anfragen,
MehrFachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6
Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in
MehrSharePoint Demonstration
SharePoint Demonstration Was zeigt die Demonstration? Diese Demonstration soll den modernen Zugriff auf Daten und Informationen veranschaulichen und zeigen welche Vorteile sich dadurch in der Zusammenarbeit
MehrFachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer
Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,
MehrÜbung 9 - Lösungsvorschlag
Universität Innsbruck - Institut für Informatik Datenbanken und Informationssysteme Prof. Günther Specht, Eva Zangerle Besprechung: 15.12.2008 Einführung in die Informatik Übung 9 - Lösungsvorschlag Aufgabe
MehrStand 10.2011 vr bank Südthüringen eg 1 von 10. Smart TAN plus Umstellungsanleitung VR-NetWorld Software
Stand 10.2011 vr bank Südthüringen eg 1 von 10 Smart TAN plus Umstellungsanleitung VR-NetWorld Software INHALTSVERZEICHNIS 1. Einführung 3 2. Allgemeine Informationen 4 3. Schritt 1 die Anmeldung des Generators
MehrUnterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus:
Unterrichtsmaterialien in digitaler und in gedruckter Form Auszug aus: If-clauses - conditional sentences - Nie mehr Probleme mit Satzbau im Englischen! Das komplette Material finden Sie hier: School-Scout.de
MehrProgrammieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen
Programmieren 10. Tutorium 4./ 5. Übungsblatt Inhalt I. Übungsblatt 4 II. III. - Rückgabe und Besprechung - Vorbereitung auf Wiederholung/ Nachtrag - Operatorpräzedenzen IV. Übungsblatt 5 - Vorstellung
MehrWir unterscheiden folgende drei Schritte im Design paralleler Algorithmen:
1 Parallele Algorithmen Grundlagen Parallele Algorithmen Grundlagen Wir unterscheiden folgende drei Schritte im Design paralleler Algorithmen: Dekomposition eines Problems in unabhängige Teilaufgaben.
MehrConstraint-Algorithmen in Kürze - Mit der Lösung zur Path-Consistency-Aufgabe 9
Constraint-Algorithmen in Kürze - Mit der Lösung zur Path-Consistency-Aufgabe 9 Prof. Dr. W. Conen Version 1.0c Januar 2009 Genereller Ablauf der Suche Gegeben: Variablen X, Domains D, Constraints R (explizit
MehrProgrammieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff
Programmieren in C Felder, Schleifen und Fließkommaarithmetik Prof. Dr. Nikolaus Wulff Addition von Zahlen 1 2 3 4 5 #include int main() { int x,y,z,sum; x = 1; y = 2; z = 4; sum = x + y + z;
MehrAnleitung über den Umgang mit Schildern
Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder
MehrIst Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken?
UErörterung zu dem Thema Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken? 2000 by christoph hoffmann Seite I Gliederung 1. In zu großen Mengen ist alles schädlich. 2.
MehrAnleitung Grundsetup C3 Mail & SMS Gateway V02-0314
Anleitung Grundsetup C3 Mail & SMS Gateway V02-0314 Kontakt & Support Brielgasse 27. A-6900 Bregenz. TEL +43 (5574) 61040-0. MAIL info@c3online.at loxone.c3online.at Liebe Kundin, lieber Kunde Sie haben
Mehr188.154 Einführung in die Programmierung für Wirtschaftsinformatik
Beispiel 1 Vererbung (Liste) Gegeben sind die beiden Klassen ListNode und PersonNode. 188.154 Einführung in die Programmierung für Wirtschaftsinformatik Wiederholung, Prüfungsvorbereitung Monika Lanzenberger
MehrUnterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis
Unterrichtsmaterialien in digitaler und in gedruckter Form Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis Das komplette Material finden Sie hier: Download bei School-Scout.de
MehrTheoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik
MehrStep by Step Webserver unter Windows Server 2003. von Christian Bartl
Step by Step Webserver unter Windows Server 2003 von Webserver unter Windows Server 2003 Um den WWW-Server-Dienst IIS (Internet Information Service) zu nutzen muss dieser zunächst installiert werden (wird
MehrWas meinen die Leute eigentlich mit: Grexit?
Was meinen die Leute eigentlich mit: Grexit? Grexit sind eigentlich 2 Wörter. 1. Griechenland 2. Exit Exit ist ein englisches Wort. Es bedeutet: Ausgang. Aber was haben diese 2 Sachen mit-einander zu tun?
MehrAngebot & Rechnung, Umsatzsteuer, Mein Büro Einrichtung automatischer Datensicherungen
Software Angebot & Rechnung, Umsatzsteuer, Mein Büro Thema Einrichtung automatischer Datensicherungen Datum September 2011 So richten Sie automatische Datensicherungen ein Über den Menüpunkt Datei - Datensicherung
MehrTaylorentwicklung der k ten Dimension
Taylorentwicklung der k ten Dimension 1.) Taylorentwicklung... 2 1.1.) Vorgehenesweise... 2 1.2.) Beispiel: f ((x, y)) = e x2 +y 2 8x 2 4y 4... 3 2.) Realisierung des Algorithmus im CAS Sage Math... 5
MehrMarkovketten. Bsp. Page Ranking für Suchmaschinen. Wahlfach Entscheidung unter Risiko und stat. Datenanalyse 07.01.2015
Markovketten Markovketten sind ein häufig verwendetes Modell zur Beschreibung von Systemen, deren Verhalten durch einen zufälligen Übergang von einem Systemzustand zu einem anderen Systemzustand gekennzeichnet
MehrEinführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)
Einführung 3 Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Univ.-Prof. Dr. Christoph Meinel Hasso-Plattner-Institut Universität Potsdam, Deutschland Hatten den Reduktionsbegriff
MehrFormale Systeme. Binary Decision Diagrams. Prof. Dr. Bernhard Beckert WS 2010/2011 KIT INSTITUT FÜR THEORETISCHE INFORMATIK
Formale Systeme Prof. Dr. Bernhard Beckert WS / KIT INSTITUT FÜR THEORETISCHE INFORMATIK KIT University of the State of Baden-Württemberg and National Large-scale Research Center of the Helmholtz Association
MehrEMIS - Langzeitmessung
EMIS - Langzeitmessung Every Meter Is Smart (Jeder Zähler ist intelligent) Inhaltsverzeichnis Allgemeines 2 Bedienung 3 Anfangstand eingeben 4 Endstand eingeben 6 Berechnungen 7 Einstellungen 9 Tarife
MehrKompetenzen und Aufgabenbeispiele Deutsch Erstes Schreiben
Institut für Bildungsevaluation Assoziiertes Institut der Universität Zürich Kompetenzen und Aufgabenbeispiele Deutsch Erstes Schreiben Informationen für Lehrpersonen und Eltern 1. Wie sind die Ergebnisse
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte
MehrSOMA Reverse Engineering
SOMA Reverse Engineering Univ.Prof. Dr. Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at Inhalt Was versteht man unter Reverse Engineering? Techniken/Methoden Probleme VU Software Maintenance
MehrKapiteltests zum Leitprogramm Binäre Suchbäume
Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm
MehrHandbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014)
Handbuch NAFI Online-Spezial 1. Auflage (Stand: 24.09.2014) Copyright 2016 by NAFI GmbH Unerlaubte Vervielfältigungen sind untersagt! Inhaltsangabe Einleitung... 3 Kundenauswahl... 3 Kunde hinzufügen...
MehrTeil 1: IT- und Medientechnik
Matrikelnummer Punkte Note Verwenden Sie nur dieses Klausurformular für Ihre Lösungen. Die Blätter müssen zusammengeheftet bleiben. Es dürfen keine Hilfsmittel oder Notizen in der Klausur verwendet werden
MehrARCO Software - Anleitung zur Umstellung der MWSt
ARCO Software - Anleitung zur Umstellung der MWSt Wieder einmal beschert uns die Bundesverwaltung auf Ende Jahr mit zusätzlicher Arbeit, statt mit den immer wieder versprochenen Erleichterungen für KMU.
MehrAus Knoten und Kanten, die Bezeichnungen haben können. Ein Graph, bei dem die Kanten Richtungen haben.
ormale Methoden der Informatik WS 2/2 Lehrstuhl für atenbanken und Künstliche Intelligenz ProfrrJRadermacher H Ünver T Rehfeld J ollinger 3 ufgabenblatt esprechung in den Tutorien vom 72 (ab Übungstermin)
MehrLiteratur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)
Dominating Set 59 Literatur Dominating Set Grundlagen 60 Dominating Set (DS) M. V. Marathe, H. Breu, H.B. Hunt III, S. S. Ravi, and D. J. Rosenkrantz: Simple Heuristics for Unit Disk Graphs. Networks 25,
MehrErfahrungen mit Hartz IV- Empfängern
Erfahrungen mit Hartz IV- Empfängern Ausgewählte Ergebnisse einer Befragung von Unternehmen aus den Branchen Gastronomie, Pflege und Handwerk Pressegespräch der Bundesagentur für Arbeit am 12. November
MehrACDSee Pro 2. ACDSee Pro 2 Tutorials: Übertragung von Fotos (+ Datenbank) auf einen anderen Computer. Über Metadaten und die Datenbank
Tutorials: Übertragung von Fotos (+ ) auf einen anderen Computer Export der In dieser Lektion erfahren Sie, wie Sie am effektivsten Fotos von einem Computer auf einen anderen übertragen. Wenn Sie Ihre
MehrEinführung in PHP. (mit Aufgaben)
Einführung in PHP (mit Aufgaben) Dynamische Inhalte mit PHP? 2 Aus der Wikipedia (verkürzt): PHP wird auf etwa 244 Millionen Websites eingesetzt (Stand: Januar 2013) und wird auf etwa 80 % aller Websites
MehrErwin Grüner 09.02.2006
FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife
MehrSEP 114. Design by Contract
Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit
MehrEine der Aktien hat immer einen höheren Gewinn als die andere Aktie. Ihre Aufgabe ist es diese auszuwählen.
Instruktionen am Anfang von Experiment 1 (auf Papier ausgeteilt: grünmarkierte Textstellen zeigen den Instruktionstext in der jeweiligen Bedingung an; Kommentare sind gelb markiert.) Stellen Sie sich vor,
MehrOPERATIONEN AUF EINER DATENBANK
Einführung 1 OPERATIONEN AUF EINER DATENBANK Ein Benutzer stellt eine Anfrage: Die Benutzer einer Datenbank können meist sowohl interaktiv als auch über Anwendungen Anfragen an eine Datenbank stellen:
MehrC++ Tutorial: Timer 1
C++ Tutorial: Timer 1 Timer v1.0 Einleitung Raum und Zeit sind spätestens seit der kopernikanischen Wende wichtige Gegenstände des Denkens geworden. In einem Programm bestimmt die Zeit die Abläufe und
MehrHIER GEHT ES UM IHR GUTES GELD ZINSRECHNUNG IM UNTERNEHMEN
HIER GEHT ES UM IHR GUTES GELD ZINSRECHNUNG IM UNTERNEHMEN Zinsen haben im täglichen Geschäftsleben große Bedeutung und somit auch die eigentliche Zinsrechnung, z.b: - Wenn Sie Ihre Rechnungen zu spät
Mehr6. Bayes-Klassifikation. (Schukat-Talamazzini 2002)
6. Bayes-Klassifikation (Schukat-Talamazzini 2002) (Böhm 2003) (Klawonn 2004) Der Satz von Bayes: Beweis: Klassifikation mittels des Satzes von Bayes (Klawonn 2004) Allgemeine Definition: Davon zu unterscheiden
MehrInternet Explorer Version 6
Internet Explorer Version 6 Java Runtime Ist Java Runtime nicht installiert, öffnet sich ein PopUp-Fenster, welches auf das benötigte Plugin aufmerksam macht. Nach Klicken auf die OK-Taste im PopUp-Fenster
MehrÜberblick. Lineares Suchen
Komplexität Was ist das? Die Komplexität eines Algorithmus sei hierbei die Abschätzung des Aufwandes seiner Realisierung bzw. Berechnung auf einem Computer. Sie wird daher auch rechnerische Komplexität
MehrSafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen
SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen Um die maximale Sicherheit für das Betriebssystem und Ihre persönlichen Daten zu gewährleisten, können Sie Programme von Drittherstellern
MehrDAUERHAFTE ÄNDERUNG VON SCHRIFTART, SCHRIFTGRÖßE
DAUERHAFTE ÄNDERUNG VON SCHRIFTART, SCHRIFTGRÖßE UND ZEILENABSTAND Word 2010 und 2007 Jedes neue leere Dokument, das mit Word 2010 erstellt wird, basiert auf einer Dokumentvorlage mit dem Namen Normal.dotx.
MehrInternet online Update (Internet Explorer)
Um Ihr Consoir Beta immer schnell und umkompliziert auf den aktuellsten Stand zu bringen, bieten wir allen Kunden ein Internet Update an. Öffnen Sie Ihren Internetexplorer und gehen auf unsere Internetseite:
MehrJava Kurs für Anfänger Einheit 5 Methoden
Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden
MehrOhne Fehler geht es nicht Doch wie viele Fehler sind erlaubt?
Ohne Fehler geht es nicht Doch wie viele Fehler sind erlaubt? Behandelte Fragestellungen Was besagt eine Fehlerquote? Welche Bezugsgröße ist geeignet? Welche Fehlerquote ist gerade noch zulässig? Wie stellt
MehrDie integrierte Zeiterfassung. Das innovative Softwarekonzept
Die integrierte Zeiterfassung Das innovative Softwarekonzept projekt - ein komplexes Programm mit Zusatzmodulen, die einzeln oder in ihrer individuellen Zusammenstellung, die gesamte Abwicklung in Ihrem
MehrDURCH VIDA ERZEUGTE PROTOKOLLDATEIEN 1 EINFÜHRUNG
DURCH VIDA ERZEUGTE PROTOKOLLDATEIEN 1 EINFÜHRUNG Beim Berichten über einen Fehler, erstellt VIDA Protokolldateien, die während des Prozesses zu nutzen sind. Die Protokolldateien werden benötigt, um die
MehrProgrammiersprachen und Übersetzer
Programmiersprachen und Übersetzer Sommersemester 2010 19. April 2010 Theoretische Grundlagen Problem Wie kann man eine unendliche Menge von (syntaktisch) korrekten Programmen definieren? Lösung Wie auch
MehrModellierung biologischer. Christian Maidorfer Thomas Zwifl (Seminar aus Informatik)
Modellierung biologischer Prozesse Christian Maidorfer Thomas Zwifl (Seminar aus Informatik) Überblick Einführung Arten von Modellen Die stochastische Pi-Maschine Warum Modelle Die Biologie konzentriert
Mehra n + 2 1 auf Konvergenz. Berechnen der ersten paar Folgenglieder liefert:
Beispiel: Wir untersuchen die rekursiv definierte Folge a 0 + auf Konvergenz. Berechnen der ersten paar Folgenglieder liefert: ( ) (,, 7, 5,...) Wir können also vermuten, dass die Folge monoton fallend
MehrGrammatiken. Einführung
Einführung Beispiel: Die arithmetischen Ausdrücke über der Variablen a und den Operationen + und können wie folgt definiert werden: a, a + a und a a sind arithmetische Ausdrücke Wenn A und B arithmetische
MehrProfessionelle Seminare im Bereich MS-Office
Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion
MehrAnleitung zur Bearbeitung von Prüferkommentaren in der Nachreichung
Anleitung zur Bearbeitung von Prüferkommentaren in der Nachreichung Inhalt 1. Schritt Prüferkommentare... 1 2. Schritt Prüferkommentar kommentieren... 4 3. Schritt Nachweisdokumente hochladen... 6 4. Schritt
MehrGesicherte Prozeduren
Gesicherte Prozeduren Wenn eine Anwendung auf einer Client-Maschine läuft, wird normalerweise jede SQL-Anweisung einzeln vom Client an den Server gesandt, und jedes Ergebnistupel wird einzeln zurückgeliefert.
MehrUmstieg auf Microsoft Exchange in der Fakultät 02
Umstieg auf Microsoft Exchange in der Fakultät 02 Der IT-Steuerkreis der Hochschule München hat am am 26.07.12 einstimmig beschlossen an der Hochschule München ein neues Groupware-System auf der Basis
MehrLineare Gleichungssysteme
Lineare Gleichungssysteme 1 Zwei Gleichungen mit zwei Unbekannten Es kommt häufig vor, dass man nicht mit einer Variablen alleine auskommt, um ein Problem zu lösen. Das folgende Beispiel soll dies verdeutlichen
MehrSeminar Model-Based Testing - Preorder. Marcel Bosling
Seminar Model-Based Testing - Preorder Marcel Bosling 1 / 34 Inhaltsverzeichnis Systeme, Prozesse und LTS Ausgewählte Preorder Trace Preorder Observable Testing Preorder Testing Preorder Conformance Testing
MehrDer monatliche Tarif für ein Handy wurde als lineare Funktion der Form f(x) = k x + d modelliert (siehe Grafik).
1) Handytarif Der monatliche Tarif für ein Handy wurde als lineare Funktion der Form f(x) = k x + d modelliert (siehe Grafik). Euro Gesprächsminuten Tragen Sie in der folgenden Tabelle ein, welche Bedeutung
MehrÜbungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen
Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe
MehrReaktive Programmierung Vorlesung 16 vom 14.07.2015: Theorie der Nebenläufigkeit
18:13:55 2015-07-14 1 [16] Reaktive Programmierung Vorlesung 16 vom 14.07.2015: Theorie der Nebenläufigkeit Christoph Lüth & Martin Ring Universität Bremen Sommersemester 2015 2 [16] Organisatorisches
MehrUpgrade auf die Standalone Editionen von Acronis Backup & Recovery 10. Technische Informationen (White Paper)
Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10 Technische Informationen (White Paper) Inhaltsverzeichnis 1. Über dieses Dokument... 3 2. Überblick... 3 3. Upgrade Verfahren... 4
MehrSecond Steps in eport 2.0 So ordern Sie Credits und Berichte
Second Steps in eport 2.0 So ordern Sie Credits und Berichte Schritt 1: Credits kaufen, um Zugangscodes generieren zu können Wählen Sie Credits verwalten und klicken Sie auf Credits kaufen. Geben Sie nun
MehrWS 2013/14. Diskrete Strukturen
WS 2013/14 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws1314
MehrVorlesungsplan. Von Naïve Bayes zu Bayesischen Netzwerk- Klassifikatoren. Naïve Bayes. Bayesische Netzwerke
Vorlesungsplan 17.10. Einleitung 24.10. Ein- und Ausgabe 31.10. Reformationstag, Einfache Regeln 7.11. Naïve Bayes, Entscheidungsbäume 14.11. Entscheidungsregeln, Assoziationsregeln 21.11. Lineare Modelle,
MehrUMSTELLUNG AUF DAS SEPA-ZAHLUNGSWESEN
UMSTELLUNG AUF DAS SEPA-ZAHLUNGSWESEN Dieser Leitfaden gibt Ihnen einen Überblick über die Möglichkeiten, die Ihnen bei der Umstellung vom DTAUS- auf das SEPA-Zahlungswesen in Stotax Gehalt und Lohn zur
MehrObjektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
MehrSchritt für Schritt zur Krankenstandsstatistik
Schritt für Schritt zur Krankenstandsstatistik Eine Anleitung zur Nutzung der Excel-Tabellen zur Erhebung des Krankenstands. Entwickelt durch: Kooperationsprojekt Arbeitsschutz in der ambulanten Pflege
MehrLichtbrechung an Linsen
Sammellinsen Lichtbrechung an Linsen Fällt ein paralleles Lichtbündel auf eine Sammellinse, so werden die Lichtstrahlen so gebrochen, dass sie durch einen Brennpunkt der Linse verlaufen. Der Abstand zwischen
MehrData Cube. Aggregation in SQL. Beispiel: Autoverkäufe. On-line Analytical Processing (OLAP) 1. Einführung. 2. Aggregation in SQL, GROUP BY
Data Cube On-line Analytical Processing (OLAP). Einführung Ziel: Auffinden interessanter Muster in großen Datenmengen 2. Aggregation in SQL, GROUP BY 3. Probleme mit GROUP BY 4. Der Cube-Operator! Formulierung
MehrQR Code. Christina Nemecek, Jessica Machrowiak
QR Code Christina Nemecek, Jessica Machrowiak 1 Inhaltsangabe. Einführung Definition Entstehung Grundlagen Aufbau Fehlertoleranz und -erkennung Generieren des QR Codes Lesen des QR Codes Quellen 2 Einführung.
MehrSo die eigene WEB-Seite von Pinterest verifizieren lassen!
So die eigene WEB-Seite von Pinterest verifizieren lassen! Quelle: www.rohinie.eu Die eigene Seite auf Pinterest verifizieren Es ist offiziell. Vielleicht haben auch Sie in den vergangenen Wochen die Informationen
MehrDie Invaliden-Versicherung ändert sich
Die Invaliden-Versicherung ändert sich 1 Erklärung Die Invaliden-Versicherung ist für invalide Personen. Invalid bedeutet: Eine Person kann einige Sachen nicht machen. Wegen einer Krankheit. Wegen einem
Mehr