Softwareproduktlinien - Analyse von Produktlinien

Größe: px
Ab Seite anzeigen:

Download "Softwareproduktlinien - Analyse von Produktlinien"

Transkript

1 Softwareproduktlinien - Analyse von Produktlinien Christian Kästner (CMU) Sven Apel (Universität Passau) Gunter Saake, Thomas Thüm (Universität Magdeburg)

2 Das Problem

3 Variability = Complexity

4 33 optional, independent features a unique variant for every person on this planet

5 320 optional, independent features more variants than estimated atoms in the universe

6

7 Correctness?

8 Maintenance? Comprehension?

9 Checking Products 2000 Features 100 Printers 30 New Printers per Year Printer Firmware

10 Checking Products Features? Products Linux Kernel

11 Checking Product Line Implementation with Features #ifdef, Frameworks, FOP, AOP, Linux Kernel

12 Analyse von Feature-Modellen

13 Application Eng. Domain Eng. Fragen an Feature-Modell und Konfigurationen Feature-Modell Wiederverwendbare Implementierungsartefakte 13 Feature-Auswahl Generator Fertiges Program

14 Fragen an Feature-Modell Feature-Modell Ist das Modell konsistent? Welche Features muss man auswählen? Welche Features darf man nicht auswählen? Wie viele gültige Produkte gibt es? Sind zwei Feature-Modelle äquivalent?

15 Fragen an Feature-Modell und Konfigurationen Feature-Modell Feature-Auswahl Ist das Modell konsistent? Welche Features muss man auswählen? Welche Features darf man nicht auswählen? Wie viele gültige Produkte gibt es? Sind zwei Feature-Modelle äquivalent? Ist eine Feature-Auswahl gültig? Welche Features werden durch eine partielle Konfiguration bereits festgelegt?

16 Wiederholung: Feature-Modelle & Aussagenlogik Repräsentation von Feature-Modellen als Liste von Konfigurationen Aussagenlogischer Ausdruck Feature-Diagramm SPL Ù OSÙ (UnixÚWin)ÙØ(UnixÙWin)Ù (Txn Þ Write)

17 Wiederholung: Feature-Modell in Aussagenlogik übersetzen Wobei P für Parent und Ci für Child steht + Wurzel ist immer ausgewählt + alle Cross-Tree Constraints (Zusatzbedingungen) Alle diese Ausdrücke in Konjunktion verknüpfen

18 Analyse von Feature-Modellen Ist Feature-Auswahl gültig? {Root, Base, F1, F4} {Root, Base, F2, F3} Variablen in Formel ersetzen true wenn Feature in Auswahl, sonst false Formel ergibt true für gültige Auswahl

19 Formelübersetzung und Einsetzen Formel Root Ù (BaseÞ Root)Ù(Root Þ Base)Ù (F1 Þ Root)Ù (F2 Þ Root)Ù (F1<=> (F3ÚF4)) Einsetzen der beiden Auswahlen trueù (trueþ true)ù(true Þ true)ù (trueþ true)ù ( falseþ true)ù (true<=> ( falseú true)) trueù (trueþ true)ù(true Þ true)ù ( falseþ true)ù (trueþ true)ù ( false<=> (trueú false))

20 Ist das Feature-Modell konsistent? Gibt es mindestens eine Variante/Produkt? Formel erfüllbar? Anfrage an SAT-Solver SAT(FM)

21 Tote (Dead) Features Gegeben ein Feature-Modell Welche Features können ausgewählt werden? Welche Features müssen ausgewählt werden? Feature F auswählbar wenn SAT(FM F) Feature F abwählbar wenn SAT(FM F)

22 Partielle Konfigurationen Gegeben eine partielle Konfiguration Welche Features können noch ausgewählt werden? Welche Features müssen noch ausgewählt werden? Ausgewählte Features in Formel aufnehmen, dann wie tote Features Feature F noch auswählbar wenn SAT(FM AF F) Feature F noch abwählbar wenn SAT(FM AF F)

23 Änderungen von Feature-Modellen Welche Konsequenzen hat eine Änderung im Feature- Modell auf die Produktmenge? Refaktorisierungen, Spezialisierungen, Generalisierungen

24 Generalisierung von Feature-Modellen Informell (FM wird in FM verändert): Produkte aus FM bleiben erhalten, keine neuen Abhängigkeiten in FM Formal wenn Tautologie gilt: TAUT(FM => FM ) Also wenn: SAT( (FM => FM )) (Sonderbehandlung für hinzugefügte/entfernte Features sowie abstrakte Features nötig)

25 Generalisierung von Feature-Modellen

26 Spezialisierung von Feature-Modellen Informell: Keine neuen Produkte, Abhängigkeiten bleiben erhalten Formal wenn Tautologie gilt: TAUT(FM => FM) Also wenn: SAT( (FM => FM)) (Sonderbehandlung für hinzugefügte/entfernte Features sowie abstrakte Features nötig)

27 Spezialisierung von Feature-Modellen

28 Refaktorisierung von Feature-Modellen Informell: gleiche Produktmengen Informell: Spezialisierung + Generalisierung Formal wenn Tautologie gilt: TAUT(FM <=> FM ) Also wenn: SAT( (FM <=> FM )) (Sonderbehandlung für hinzugefügte/entfernte Features sowie abstrakte Features nötig)

29 Refaktorisierung von Feature-Modellen

30 Reasoning in FeatureIDE

31 Analyse der Implementierung

32 Application Eng. Domain Eng. Fragen an die Implementierung Feature-Modell Wiederverwendbare Implementierungsartefakte 32 Feature-Auswahl Generator Fertiges Program

33 Fragen an die Implementierung Kann ein Code-Block ausgewählt werden? Ändert eine Annotation etwas am Gesamt-Code? Wiederverwendbare Implementierungsartefakte

34 Annotationen bei Präprozessoren true WORLD BYE true

35 Berechnung von Presence Conditions PC line 1 #ifdef A line 2 #ifndef B line 3 #endif line 4 #elif defined(x) line 5 #else line 6 #endif true A A B A A X A X

36 Toter Quelltext (Dead Code) line 1 #ifdef A line 2 #ifndef A line 3 #endif line 4 #elif defined(x) line 5 #else line 6 #endif true A A A (= PC) A A X A X Kann nicht ausgewählt werden Analyse: SAT(PC)

37 Überflüssige (Superfluous) Annotation line 1 #ifdef A line 2 #ifdef A line 3 #endif line 4 #elif defined(x) line 5 #else line 6 #endif true A (= PC) A A (= PC ) A A X A X Immer gewählt wenn äußerer Block gewählt Analyse: SAT(PC PC )

38 Domain Eng. Application Eng. Fragen an die Implementierung und das Feature-Modell Feature-Modell Wiederverwendbare Implementierungsartefakte 38 Feature-Auswahl Generator Fertiges Program

39 Toter Quelltext (Dead Code) line 1 #ifdef A line 2 #ifdef B line 3 #endif line 4 #elif defined(x) line 5 #else line 6 #endif true A A B (=PC) A A X not A ^ not X Kann nicht ausgewählt werden Analyse: SAT(FM PC) Kombinierte Analyse von Feature-Modell und Implementierung

40 Überflüssige (Superfluous) Annotation line 1 #ifdef A line 2 #ifndef B line 3 #endif line 4 #elif defined(x) line 5 #else line 6 #endif true A (= PC) A B (= PC ) A A X A X Immer gewählt wenn äußerer Block gewählt Analyse: SAT(FM PC PC )

41 Analyse der Implementierung Fehler in Bezug auf das Feature-zu-Code-Mapping: Toter Quelltext (mit/ohne Feature-Modell) Überflüssige Annotationen (mit/ohne Feature-Modell) Feature verwendet, aber existiert nicht in Feature-Modell Feature aus Feature-Modell nicht verwendet Weitere wichtige Fehlerklasse: Typfehler Klasse/Methode/Feld wird Varianten aufgerufen, in denen sie/es nicht definiert ist Bei FOP: Methode enthält original, aber nicht in allen Varianten gibt es eine vorherige Rolle

42 Typsysteme für Produktlinien

43 Type Checking #include <stdio.h> char *msg = "Hello World"; int main() { printf(msg); } Reference Type errors: referenced variable does not exist,

44 Variability-Aware Type Checking #include <stdio.h> #ifdef HELLO char *msg = "Hello World"; #endif #ifdef BYE char *msg = "Bye bye!"; #endif int main() { printf(msg); }

45 Variability-Aware Type Checking #include <stdio.h> #ifdef HELLO char *msg = "Hello World"; #endif #ifdef BYE char *msg = "Bye bye!"; #endif int main() { printf(msg); } Reference? Conflict?

46 Variability-Aware Type Checking Presence conditions: true HELLO BYE true #include <stdio.h> #ifdef HELLO char *msg = "Hello World"; #endif #ifdef BYE char *msg = "Bye bye!"; #endif int main() { printf(msg); } Reference? Conflict?

47 Variability-Aware Type Checking true HELLO BYE TAUT(true -> true)? true #include <stdio.h> #ifdef HELLO char *msg = "Hello World"; #endif #ifdef BYE char *msg = "Bye bye!"; #endif int main() { printf(msg); } Reference? TAUT(true -> (HELLO v BYE))? TAUT( (HELLO BYE))? Conflict?

48 Reachability: PC(Source) -> PC(Target) Conflicts: (PC(Def1) PC(Def2)) true HELLO BYE TAUT(true -> true)? true #include <stdio.h> #ifdef HELLO char *msg = "Hello World"; #endif #ifdef BYE char *msg = "Bye bye!"; #endif int main() { printf(msg); } Reference? TAUT(true -> (HELLO v BYE))? TAUT( (HELLO BYE))? Conflict?

49 Einbeziehung des Feature-Modells true HELLO BYE #include <stdio.h> TAUT(FM -> (true -> true))? true #ifdef HELLO char *msg = "Hello World"; #endif #ifdef BYE char *msg = "Bye bye!"; #endif int main() { printf(msg); } TAUT(FM -> (HELLO BYE))? Reference? TAUT(FM -> (true -> (HELLO v BYE)))? Conflict?

50 Einbeziehung des Feature-Modells true HELLO BYE #include <stdio.h> TAUT(FM -> (true -> true))? true #ifdef HELLO char *msg = "Hello World"; #endif #ifdef BYE char *msg = "Bye bye!"; #endif int main() { printf(msg); } TAUT(FM -> (HELLO BYE))? Reference? TAUT(FM -> (true -> (HELLO v BYE)))? Conflict?

51 Einbeziehung des Feature-Modells true HELLO BYE #include <stdio.h> TAUT(FM -> (true -> true))? true #ifdef HELLO char *msg = "Hello World"; #endif #ifdef BYE char *msg = "Bye bye!"; #endif int main() { printf(msg); } TAUT(FM -> (HELLO BYE))? Reference? TAUT(FM -> (true -> (HELLO v BYE)))? Conflict?

52 AST with Variability Information WORLD BYE 53 WORLD BYE Extended Reference lookup mechanism

53 Variability-Aware Analysis of Linux > 7000 files: avg 30 secs parsing-time per file 85 hours total Up to ~ variants: we are immensely faster Challenges for evaluation Extracting feature model Build scripts are also conditional and unstructured SAT solving still not a problem

54 Zusammenfassung Variabilität Komplexität Analysen auf Feature-Modellen und Implementierung sind notwendig Analyse aller validen Produkte ist nicht praktikabel Variabilitätsgewahre Analysen

55 Literatur David Benavides, Sergio Segura, Antonio Ruiz Cortés: Automated analysis of feature models 20 years later: A literature review. Inf. Syst. 35(6): (2010) [Überblick Feature-Modell-Analysen] Thomas Thüm, Christian Kästner, Sebastian Erdweg, and Norbert Siegmund Abstract Features in Feature Modeling. In SPLC. IEEE Computer Society, Washington, DC, USA, [Vergleich von Feature-Modellen] Thomas Thüm, Sven Apel, Christian Kästner, Ina Schaefer, and Gunter Saake A Classification and Survey of Analysis Strategies for Software Product Lines. ACM Comput. Surv. 47, 1, Article 6 (June 2014), 45 pages. [Überblick variabilitätsgewahre Analysen]

Softwareproduktlinien - Analyse von Produktlinien

Softwareproduktlinien - Analyse von Produktlinien Softwareproduktlinien - Analyse von Produktlinien Christian Kästner (CMU) Sven Apel (Universität Passau) Gunter Saake, Thomas Thüm (Universität Magdeburg) Das Problem Variability = Complexity 33 optional,

Mehr

Softwareproduktlinien Teil 12: Analyse von Produktlinien

Softwareproduktlinien Teil 12: Analyse von Produktlinien Softwareproduktlinien Teil 12: Analyse von Produktlinien Christian Kästner (Universität Marburg) Sven Apel (Universität Passau) Gunter Saake (Universität Magdeburg) inkl. Folien von Das Problem Database

Mehr

Softwareproduktlinien Teil 12: Analyse von Produktlinien. Christian Kästner (CMU) Sven Apel (Universität Passau) Gunter Saake (Universität Magdeburg)

Softwareproduktlinien Teil 12: Analyse von Produktlinien. Christian Kästner (CMU) Sven Apel (Universität Passau) Gunter Saake (Universität Magdeburg) Softwareproduktlinien Teil 12: Analyse von Produktlinien Christian Kästner (CMU) Sven Apel (Universität Passau) Gunter Saake (Universität Magdeburg) Das Problem Variability = Complexity 33 optional, independent

Mehr

Softwareproduktlinien Teil 12: Analyse von Produktlinien. Sven Apel (Universität Passau) Gunter Saake (Universität Magdeburg)

Softwareproduktlinien Teil 12: Analyse von Produktlinien. Sven Apel (Universität Passau) Gunter Saake (Universität Magdeburg) Softwareproduktlinien Teil 12: Analyse von Produktlinien ChristianKästner (Universität Marburg) Sven Apel (Universität Passau) Gunter Saake (Universität Magdeburg) inkl. Folien von Das Problem Database

Mehr

Implementierung v. Software-Produktlinien - Einführung und Überblick

Implementierung v. Software-Produktlinien - Einführung und Überblick Implementierung v. Software-Produktlinien - Einführung und Überblick Christian Kästner (Carnegie Mellon University) Sven Apel (Universität Passau) Gunter Saake, Thomas Thüm (Universität Magdeburg) 1 Gunter

Mehr

Softwareproduktlinien Teil 1: Einführung und Überblick

Softwareproduktlinien Teil 1: Einführung und Überblick Softwareproduktlinien Teil 1: Einführung und Überblick Christian Kästner (Universität Marburg) Sven Apel (Universität Passau) Gunter Saake (Universität Magdeburg) 1 Agenda Formales, Organisatorisches Kurzeinführung

Mehr

Softwareproduktlinien Teil 4: Versionsverwaltungs- und Buildsysteme

Softwareproduktlinien Teil 4: Versionsverwaltungs- und Buildsysteme Softwareproduktlinien Teil 4: Versionsverwaltungs- und Buildsysteme Christian Kästner (Universität Marburg) Sven Apel (Universität Passau) Gunter Saake (Universität Magdeburg) 1 Application Eng. Domain

Mehr

Softwareproduktlinien - Versionsverwaltungs- und Buildsysteme

Softwareproduktlinien - Versionsverwaltungs- und Buildsysteme Softwareproduktlinien - Versionsverwaltungs- und Buildsysteme Christian Kästner (Carnegie Mellon University) Sven Apel (Universität Passau) Gunter Saake, Martin Kuhlemann (Universität Magdeburg) 1 Application

Mehr

Softwareproduktlinien Teil 11: Verbesserte Präprozessoren

Softwareproduktlinien Teil 11: Verbesserte Präprozessoren Softwareproduktlinien Teil 11: Verbesserte Präprozessoren Christian Kästner (Universität Marburg) Sven Apel (Universität Passau) Gunter Saake (Universität Magdeburg) Agenda Wiederholung: Probleme von Präprozessoren

Mehr

Wissensverarbeitung. - Knowledge Engineering: Feature Models -

Wissensverarbeitung. - Knowledge Engineering: Feature Models - - Knowledge Engineering: Feature Models - Alexander Felfernig und Gerald Steinbauer Institut für Softwaretechnologie Inffeldgasse 16b/2 A-8010 Graz Austria 1 Goals Feature Models Semantics Anomalies Inconsistencies

Mehr

Software Product Lines

Software Product Lines Software Product Lines Concepts, Analysis and Implementation Programmier-Paradigmen für Software-Produktlinien (3/3) ES Real-Time Systems Lab Prof. Dr. rer. nat. Andy Schürr Dept. of Electrical Engineering

Mehr

Softwareproduktlinien - Entwicklungsprozess und Variabilitätsmodellierung

Softwareproduktlinien - Entwicklungsprozess und Variabilitätsmodellierung Softwareproduktlinien - Entwicklungsprozess und Variabilitätsmodellierung Sven Apel (Universität Passau) Christian Kästner (Universität Marburg) Gunter Saake, Thomas Thüm (Universität Magdeburg) 1 Agenda

Mehr

Software Product Lines

Software Product Lines Software Product Lines Concepts, Analysis and Implementation Feature-Modelle und Produktkonfiguration ES Real-Time Systems Lab Prof. Dr. rer. nat. Andy Schürr Dept. of Electrical Engineering and Information

Mehr

Einführung Makros Includes Errors und Warnings Pragmas Diverses. Der C-Präprozessor. Lukas Stabe. Universität Hamburg

Einführung Makros Includes Errors und Warnings Pragmas Diverses. Der C-Präprozessor. Lukas Stabe. Universität Hamburg Der C-Präprozessor Lukas Stabe Universität Hamburg Proseminar C - Grundlagen und Konzepte, 2013 Lukas Stabe C-Präprozessor 1 / 19 Inhalt 1. Einführung 2. Makros 3. Includes 4. Errors und Warnings 5. Pragmas

Mehr

Softwareproduktlinien Teil 2: Entwicklungsprozess und Variabilitätsmodellierung

Softwareproduktlinien Teil 2: Entwicklungsprozess und Variabilitätsmodellierung Softwareproduktlinien Teil 2: Entwicklungsprozess und Variabilitätsmodellierung Sven Apel (Universität Passau) Christian Kästner (Universität Marburg) Gunter Saake (Universität Magdeburg) 1 Agenda Produktlinien

Mehr

C/C++ Programmierung

C/C++ Programmierung 1 C/C++ Programmierung Grundlagen: Der Präprozessor Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 Der Präprozessor

Mehr

Compiler Präprozessor Header Files

Compiler Präprozessor Header Files Freitagsrunde C-Kurs 2013 Compiler Präprozessor Header Files Tutorium 3 This work is licensed under a Creative Commons Attribution NonCommercial ShareAlike 3.0 License Gliederung Compiler Präprozessor

Mehr

Übersetzen des Quelltexts in ausführbaren Maschinen-Code Translation of source code into executable machine code

Übersetzen des Quelltexts in ausführbaren Maschinen-Code Translation of source code into executable machine code Informatik II D-BAUG Self-Assessment, 2. März 2017 Lösung Name, Vorname:............................................................. Legi-Nummer:.............................................................

Mehr

Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Teil 3: Software-Produktlinien

Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Teil 3: Software-Produktlinien Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Teil 3: Software-Produktlinien Sven Apel, Christian Kästner, Gunter Saake Apel, Kästner, Saake EPMD Folie 3-2 Agenda Produktlinien und Programmfamilien

Mehr

Softwareproduktlinien The Big Picture. Sven Apel (Universität Passau) Christian Kästner (CMU) Gunter Saake, Thomas Thüm (Universität Magdeburg)

Softwareproduktlinien The Big Picture. Sven Apel (Universität Passau) Christian Kästner (CMU) Gunter Saake, Thomas Thüm (Universität Magdeburg) Softwareproduktlinien The Big Picture Sven Apel (Universität Passau) Christian Kästner (CMU) Gunter Saake, Thomas Thüm (Universität Magdeburg) Was haben wir gelernt? Grundlagen Software-Produktlinien Klassische

Mehr

Featuremodellbasiertes und kombinatorisches Testen von Software-Produktlinien

Featuremodellbasiertes und kombinatorisches Testen von Software-Produktlinien Featuremodellbasiertes und kombinatorisches Testen von Software-Produktlinien Sebastian Oster, Philipp Ritter, Andy Schürr Sebastian Oster oster@es.tu-darmstadt.de Tel.+49 6151/16-3776 ES Real-Time Systems

Mehr

Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Teil 12 The Big Picture

Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Teil 12 The Big Picture Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Teil 12 The Big Picture Sven Apel (Universität Passau) Christian Kästner (Universität Magdeburg) Sven Apel, Christian Kästner Moderne Programmierparadigmen

Mehr

Requirements Engineering im SPL-Umfeld

Requirements Engineering im SPL-Umfeld Requirements Engineering im SPL-Umfeld Manuel Wörmann 16.02.2015 Requirements Engineering im SPL-Umfeld Inhalt 1. Definition 2. Ziele 3. Domain Requirements Engineering 4. Application Requirements Engineering

Mehr

Softwareproduktlinien Teil 5: Präprozessoren (Variabilitätsannotationen)

Softwareproduktlinien Teil 5: Präprozessoren (Variabilitätsannotationen) Softwareproduktlinien Teil 5: Präprozessoren (Variabilitätsannotationen) Christian Kästner (Universität Marburg) Sven Apel (Universität Passau) Gunter Saake (Universität Magdeburg) Wie Variabilität implementieren?

Mehr

Softwareproduktlinien Teil 13: The Big Picture/Ausblick

Softwareproduktlinien Teil 13: The Big Picture/Ausblick Softwareproduktlinien Teil 13: The Big Picture/Ausblick Sven Apel (Universität Passau) Christian Kästner (Universität Marburg) Gunter Saake (Universität Magdeburg) Was haben wir gelernt? Grundlagen Software-Produktlinien

Mehr

Comparing Software Factories and Software Product Lines

Comparing Software Factories and Software Product Lines Comparing Software Factories and Software Product Lines Martin Kleine kleine.martin@gmx.de Betreuer: Andreas Wuebbeke Agenda Motivation Zentrale Konzepte Software Produktlinien Software Factories Vergleich

Mehr

Feature Diagramme und Variabilität. Requirements Engineering Seminar 2006 Stefan Marr

Feature Diagramme und Variabilität. Requirements Engineering Seminar 2006 Stefan Marr Feature Diagramme und Variabilität Requirements Engineering Seminar 2006 Stefan Marr Agenda 2 Ausgangssituation 3 Anforderungen ermittelt und niedergeschrieben Verbessert und geordnet Nächstes großes Ziel:

Mehr

Feature Modelle. und ihre Anwendung. Feature Modelle und ihre Anwendungen. Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn

Feature Modelle. und ihre Anwendung. Feature Modelle und ihre Anwendungen. Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Feature Modelle und ihre Anwendung Feature Modelle und ihre Anwendungen 22.07.2010 1 Software-Produktlinien Zusammenfassung mehrerer verwandter Softwaresysteme zu einer Domäne (Anwendungsgebiet) Softwaresysteme

Mehr

3. Klausur Einführung in die Theoretische Informatik Seite 1 von Welches der folgenden klassischen Probleme der Informatik ist entscheidbar?

3. Klausur Einführung in die Theoretische Informatik Seite 1 von Welches der folgenden klassischen Probleme der Informatik ist entscheidbar? 3. Klausur Einführung in die Theoretische Informatik Seite 1 von 14 1. Welches der folgenden klassischen Probleme der Informatik ist entscheidbar? A. Gegeben eine kontextfreie Grammatik G. Gibt es ein

Mehr

Unicode Support Atomic Operations Thread Support Type-Generic Makros Sicherheit Ease-of-Use C11. Thomas Duckardt

Unicode Support Atomic Operations Thread Support Type-Generic Makros Sicherheit Ease-of-Use C11. Thomas Duckardt C11 Thomas Duckardt Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität Hamburg 22.05.2014 1 / 22 Gliederung (Agenda)

Mehr

Verknüpfung von kombinatorischem Plattformund individuellem Produkttest für Software-Produktlinien

Verknüpfung von kombinatorischem Plattformund individuellem Produkttest für Software-Produktlinien Verknüpfung von kombinatorischem Plattformund individuellem Produkttest für Software-Produktlinien Andreas Wübbeke Sebastian Oster 23.02.2010 ES Real-Time Systems Lab Dept. of Electrical Engineering and

Mehr

C - PRÄPROZESSOR. Seminar effiziente C Programmierung WS 2012/13. Von Christian Peter

C - PRÄPROZESSOR. Seminar effiziente C Programmierung WS 2012/13. Von Christian Peter C - PRÄPROZESSOR Seminar effiziente C Programmierung WS 2012/13 Von Christian Peter Themen Was sind Präprozessoren? Beispiele für Präprozessoren Funktionsweisen Der C - Präprozessor Der # Präfix #include

Mehr

Seminar aus Programmiersprachen. Markus Raab LVA

Seminar aus Programmiersprachen. Markus Raab LVA Seminar aus Programmiersprachen Markus Raab LVA 185.307 09.03.2016 Outline Problem description Topics Seminar course Grading Select date Choose topic+registration Elektra's

Mehr

Software Product Lines

Software Product Lines Software Product Lines Concepts, Analysis and Implementation Motivation, Basics, Examples ES Real-Time Systems Lab Prof. Dr. rer. nat. Andy Schürr Dept. of Electrical Engineering and Information Technology

Mehr

Logik für Informatiker Logic for computer scientists

Logik für Informatiker Logic for computer scientists Logik für Informatiker Logic for computer scientists Till Mossakowski Wintersemester 2014/15 Till Mossakowski Logik 1/ 24 Die Booleschen Junktoren Till Mossakowski Logik 2/ 24 Die Negation Wahrheitstafel

Mehr

Agile Methoden im Softwareprojekt. Janet Siegmund Thomas Thüm Sandro Schulze Elmar Jürgens

Agile Methoden im Softwareprojekt. Janet Siegmund Thomas Thüm Sandro Schulze Elmar Jürgens Agile Methoden im Softwareprojekt Janet Siegmund Thomas Thüm Sandro Schulze Elmar Jürgens September Eigene Erfahrung Dezember/ Januar Februar Aufgaben festgelegt und verteilt Neues Teammitglied Aussteigen

Mehr

Feature-Komposition auf Bytecode-Ebene

Feature-Komposition auf Bytecode-Ebene Feature-Komposition auf Bytecode-Ebene Claus Hunsen Sergiy Kolesnikov Sven Apel FOSD-Treffen 2012 Feature-Komposition Quellcode-Komposition Feature-Module (Quellcode) ➊ Komposition Variante (Quellcode)

Mehr

Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Teil 3: Software-Produktlinien

Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Teil 3: Software-Produktlinien Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Teil 3: Software-Produktlinien Sven Apel, Christian Kästner, Gunter Saake Apel, Kästner, Saake EPMD Folie 3-2 Agenda Produktlinien und Programmfamilien

Mehr

Name: Klausur Informatik III WS 2003/04

Name: Klausur Informatik III WS 2003/04 1 : Methodenimplementierung ca. 42 Punkte Gegeben ist die Klasse Mitarbeiter. Listing 1: (./Code1/Mitarbeiter.h) using namespace std; // globale Variable fuer Ausgabedatei // kann entsprechend

Mehr

Übungspaket 17 Der gcc Compiler

Übungspaket 17 Der gcc Compiler Übungspaket 17 Der gcc Compiler Übungsziele: Skript: 1. Sicherer Umgang mit gemischten Ausdrücken 2. Herleiten der unterschiedlichen Datentypen in gemischten Ausdrücken 3. Kenntnis über die implizite Durchführung

Mehr

State-of-the-Art in Software Product Line Testing and Lessons learned

State-of-the-Art in Software Product Line Testing and Lessons learned State-of-the-Art in Software Product Line Testing and Lessons learned Sebastian Oster Sebastian Oster oster@es.tu-darmstadt.de Tel.+49 6151 16 3776 ES Real-Time Systems Lab Prof. Dr. rer. nat. Andy Schürr

Mehr

Verifikation und AO Florian Wagner

Verifikation und AO Florian Wagner Verifikation und Aspektorientierung Inhalt Klassifikation und Analyse von Adivces AOP-Fehlermodell und Testkriterien Verifikation Model-Checking State-Based Incremental Testing 2 KLASSIFIKATION UND ANALYSE

Mehr

Softwareproduktlinien Teil 1: Einführung und Überblick

Softwareproduktlinien Teil 1: Einführung und Überblick Softwareproduktlinien Teil 1: Einführung und Überblick Christian Kästner (Universität Marburg) Sven Apel (Universität Passau) Gunter Saake (Universität Magdeburg) 1 Agenda Formales, Organisatorisches Kurzeinführung

Mehr

Logik für Informatiker

Logik für Informatiker Vorlesung Logik für Informatiker 5. Aussagenlogik Normalformen Bernhard Beckert Universität Koblenz-Landau Sommersemester 2006 Logik für Informatiker, SS 06 p.1 Normalformen Definition: Literal Atom (aussagenlogische

Mehr

Ausnahmen-Behandlung

Ausnahmen-Behandlung Wintersemester 2008/2009 1 try..except..else 2 try..finally 3 raise 4 assert Ausnahmen in Python Trennung von funktionalem Code und Fehlerbehandlung. Gute Sprachintegration Einfache Verwendbarkeit Ähnlich

Mehr

Product Line Engineering (PLE)

Product Line Engineering (PLE) Product Line Engineering (PLE) Produktlinienentwicklung Von Christoph Kuberczyk Christoph Kuberczyk, SE in der Wissenschaft 2015, Product Line Engineering 1 Gliederung 1. Was ist PLE? 2. Motivation 3.

Mehr

Bash-Skripting Linux-Kurs der Unix-AG

Bash-Skripting Linux-Kurs der Unix-AG Bash-Skripting Linux-Kurs der Unix-AG Sebastian Weber 07.01.2013 Was ist ein Bash-Skript? Skript muss mit chmod +x ausführbar gemacht sein Aneinanderreihung von Befehlen normale Befehle nutzbar Sebastian

Mehr

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Einführung in den Einsatz von Objekt-Orientierung mit C++ I Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen

Mehr

Der C-Präprozessor. Lukas Stabe

Der C-Präprozessor. Lukas Stabe Der C-Präprozessor Lukas Stabe Inhaltsverzeichnis 1 Einleitung 1 2 Makros 1 2.1 Parameterlose............................ 1 2.2 Parameterbehaftete......................... 3 2.3 Verbreitete Fehler..........................

Mehr

FACHHOCHSCHULE MANNHEIM

FACHHOCHSCHULE MANNHEIM für Java-Programmierer Der Präprozessor Prof. Dr. Wolfgang Schramm FACHHOCHSCHULE MANNHEIM Hochschule für Technik und Gestaltung Präprozessor Ist dem Compiler vorgeschaltet ( Prä -). Spezielle Anweisungen

Mehr

Vorsemesterkurs Informatik

Vorsemesterkurs Informatik Vorsemesterkurs Informatik Vorsemesterkurs Informatik Mario Holldack WS2015/16 30. September 2015 Vorsemesterkurs Informatik 1 Einleitung 2 Aussagenlogik 3 Mengen Vorsemesterkurs Informatik > Einleitung

Mehr

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches

Mehr

Grundlagen der Künstlichen Intelligenz

Grundlagen der Künstlichen Intelligenz Grundlagen der Künstlichen Intelligenz 28. Aussagenlogik: DPLL-Algorithmus Malte Helmert Universität Basel 2. Mai 2014 Aussagenlogik: Überblick Kapitelüberblick Aussagenlogik: 26. Grundlagen 27. Logisches

Mehr

C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen. Leibniz Universität IT Services Anja Aue

C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen. Leibniz Universität IT Services Anja Aue C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen Leibniz Universität IT Services Anja Aue Modularisierung Logische Gliederung von Programmteilen mit Hilfe von Namensräumen. Aufteilung

Mehr

Softwareproduktlinien - Entwicklungsprozess und Variabilitätsmodellierung

Softwareproduktlinien - Entwicklungsprozess und Variabilitätsmodellierung Softwareproduktlinien - Entwicklungsprozess und Variabilitätsmodellierung Sven Apel (Universität Passau) Christian Kästner (Universität Marburg) Gunter Saake (Universität Magdeburg) Thomas Thüm (TU Braunschweig)

Mehr

Zusammenfassung der letzten LVA. Einführung in die Theoretische Informatik. Syntax der Aussagenlogik. Inhalte der Lehrveranstaltung

Zusammenfassung der letzten LVA. Einführung in die Theoretische Informatik. Syntax der Aussagenlogik. Inhalte der Lehrveranstaltung Zusammenfassung Zusammenfassung der letzten LVA Einführung in die Theoretische Informatik Wenn das Kind schreit, hat es Hunger Das Kind schreit Also, hat das Kind Hunger Christina Kohl Alexander Maringele

Mehr

Konsolidierung von Software-Varianten in Software-Produktlinien ein Forschungsprogramm

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

Mehr

Übungspaket 17 Der gcc Compiler

Übungspaket 17 Der gcc Compiler Übungspaket 17 Der gcc Compiler Übungsziele: Skript: 1. Sicherer Umgang mit gemischten Ausdrücken 2. Herleiten der unterschiedlichen Datentypen in gemischten Ausdrücken 3. Kenntnis über die implizite Durchführung

Mehr

Crashkurs C++ Wiederholung

Crashkurs C++ Wiederholung Crashkurs C++ Wiederholung #include int main(void) { int i, j; bool is_prime; for (j = 1; j < 1000; j += 2) { is_prime = true; for (i = 3; i

Mehr

Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Teil 11 FAME-DBMS

Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Teil 11 FAME-DBMS Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Teil 11 FAME-DBMS Christian Kästner (Universität Marburg) Sven Apel (Universität Passau) Gunter Saake (Universität Magdeburg) Apel, Kästner,

Mehr

Zusammenfassung der letzten LVA. Einführung in die Theoretische Informatik. Syntax der Aussagenlogik. Inhalte der Lehrveranstaltung

Zusammenfassung der letzten LVA. Einführung in die Theoretische Informatik. Syntax der Aussagenlogik. Inhalte der Lehrveranstaltung Zusammenfassung Zusammenfassung der letzten LVA Einführung in die Theoretische Informatik Christina Kohl Alexander Maringele Georg Moser Michael Schaper Manuel Schneckenreither Institut für Informatik

Mehr

Durchführungsbestimmung Metadaten. Kristian Senkler, con terra GmbH, k.senkler@conterra.de

Durchführungsbestimmung Metadaten. Kristian Senkler, con terra GmbH, k.senkler@conterra.de Durchführungsbestimmung Metadaten Kristian Senkler, con terra GmbH, k.senkler@conterra.de Inhalt Wer hat die Durchführungsbestimmungen für Metadaten spezifiziert? Wie wurden die Durchführungsbestimmungen

Mehr

Elementare Konzepte von

Elementare Konzepte von Elementare Konzepte von Programmiersprachen Teil 2: Anweisungen (Statements) Kapitel 6.3 bis 6.7 in Küchlin/Weber: Einführung in die Informatik Anweisungen (statements) in Java Berechnung (expression statement)

Mehr

Welche Informatik-Kenntnisse bringen Sie mit?

Welche Informatik-Kenntnisse bringen Sie mit? Welche Informatik-Kenntnisse bringen Sie mit? So gehen Sie vor! Lösen Sie die Aufgaben der Reihe nach von 1 bis 20, ohne das Lösungsblatt zur Hilfe zu nehmen. Der Schwierigkeitsgrad der Aufgaben nimmt

Mehr

Produktänderung EPCOS DeltaCap Kondensatoren für die Blindleistungskompensation

Produktänderung EPCOS DeltaCap Kondensatoren für die Blindleistungskompensation 06.03.2015 Produktänderung EPCOS DeltaCap Kondensatoren für die Blindleistungskompensation Bei einigen EPCOS DeltaCap TM Leistungskondensatoren der Baureihen B32300A* und B32303A* für die Blindleistungskompensation

Mehr

Beispiel. Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio)

Beispiel. Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio) Beispiel Beispiel: Namensliste konvertieren (Karl Egon Meier Meier, Karl Egon). s/(.*) (.*)/$2, $1/; Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio) s/(.*) (.*)/$2, $1/; s/(.*) ([a-z]+

Mehr

Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften

Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften Teil 10: Präprozessor, Header und Bibliotheken Martin Nolte Abteilung für Angewandte Mathematik Universität Freiburg i. Br. Vorlesung

Mehr

Compiler Präprozessor Header Files

Compiler Präprozessor Header Files Freitagsrunde C-Kurs 2011 Compiler Präprozessor Header Files Tutorium 3 This work is licensed under a Creative Commons Attribution NonCommercial ShareAlike 3.0 License Gliederung Compiler Präprozessor

Mehr

Bash-Skripting Linux-Kurs der Unix-AG

Bash-Skripting Linux-Kurs der Unix-AG Bash-Skripting Linux-Kurs der Unix-AG Sebastian Weber 13.06.2012 Was ist ein Bash-Skript? Skript muss mit chmod +x ausführbar gemacht sein Aneinanderreihung von Befehlen normale Befehle nutzbar Sebastian

Mehr

Auszeichungen und Stipendien

Auszeichungen und Stipendien Berufserfahrung Seit August 2013 März April 2014 März Juli 2013 August 2011 February Oktober 2009 July 2013 Akademische Rätin (auf Zeit), Universität Passau, Software Product-Line Group. Gastaufenthalte,

Mehr

Oracle9i Designer. Rainer Willems. Page 1. Leitender Systemberater Server Technology Competence Center Frankfurt Oracle Deutschland GmbH

Oracle9i Designer. Rainer Willems. Page 1. Leitender Systemberater Server Technology Competence Center Frankfurt Oracle Deutschland GmbH Oracle9i Designer Rainer Willems Leitender Systemberater Server Technology Competence Center Frankfurt Oracle Deutschland GmbH Page 1 1 Agenda 9i Designer & 9i SCM in 9i DS Design Server Generierung &

Mehr

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie

Mehr

- Theorie der uninterpretierten

- Theorie der uninterpretierten Theorie der uninterpretierten Funktionen Entscheidungsverfahren mit Anwendungen in der Softwareverifikation STEPHAN FALKE INSTITUT FÜR THEORETISCHE INFORMATIK (ITI) 0 KIT 13. Universität Mai 2013 des S.

Mehr

Seminar: Adaptivität T1: Anforderungserhebung für autonome Software mit Goal Models von Michael Kusenbach

Seminar: Adaptivität T1: Anforderungserhebung für autonome Software mit Goal Models von Michael Kusenbach Seminar: Adaptivität T1: Anforderungserhebung für autonome Software mit Goal Models von Michael Kusenbach mkusenbach@uni-koblenz.de Blockseminar 25. Juli 2011 1 Inhaltsverzeichnis 1. Motivation 2. Goal

Mehr

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens Grundlagen von C Jonas Gresens Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität

Mehr

Kurzeinführung in C99

Kurzeinführung in C99 Kurzeinführung in C99 Institut für Numerische Simulation Rheinische Friedrich-Wilhelms-Universität Bonn Oktober 2013 Überblick 1 Compiler und Editoren - Was wird benötigt um ein Programm zu erstellen 2

Mehr

23.1 Constraint-Netze

23.1 Constraint-Netze Grundlagen der Künstlichen Intelligenz 1. April 2015 2. Constraint-Satisfaction-Probleme: Constraint-Netze Grundlagen der Künstlichen Intelligenz 2. Constraint-Satisfaction-Probleme: Constraint-Netze Malte

Mehr

Präprozessor und make. einfache Makros Makros nehmen eine Textersetzung vor. Erst nach der Ersetzung muss gültiger C-Code vorliegen.

Präprozessor und make. einfache Makros Makros nehmen eine Textersetzung vor. Erst nach der Ersetzung muss gültiger C-Code vorliegen. Bevor der eigentliche Kompilier-Vorgang stattfindet, wird vom sogenannten eine Vorverarbeitung durchgeführt. Hierbei werden zum Beispiel Kommentare entfernt, aber auch explizite Anweisungen an den verarbeitet.

Mehr

Programmierung mit C Modularisierung von Programmen. Präprozessor-Anweisungen nutzen.

Programmierung mit C Modularisierung von Programmen. Präprozessor-Anweisungen nutzen. Programmierung mit C Modularisierung von Programmen. Präprozessor-Anweisungen nutzen. Modularisierung Zerlegung eines Programms in überschaubare Einheiten Die einzelnen Einheiten werden als Modul bezeichnet.

Mehr

SS2010 BAI2-LBP Gruppe 1 Team 07 Entwurf zu Aufgabe 4. R. C. Ladiges, D. Fast 10. Juni 2010

SS2010 BAI2-LBP Gruppe 1 Team 07 Entwurf zu Aufgabe 4. R. C. Ladiges, D. Fast 10. Juni 2010 SS2010 BAI2-LBP Gruppe 1 Team 07 Entwurf zu Aufgabe 4 R. C. Ladiges, D. Fast 10. Juni 2010 Inhaltsverzeichnis 4 Aufgabe 4 3 4.1 Sich mit dem Programmpaket vertraut machen.................... 3 4.1.1 Aufgabenstellung.................................

Mehr

Kurzeinführung in C/C++ Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ Einleitung

Kurzeinführung in C/C++ Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ Einleitung Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ 1 Einleitung Vorteile von Java: gut strukturiert mit hohem Funktionsumfang (mächtige Standardbibliothek) weitestgehend

Mehr

EINFÜHRUNG IN DIE PROGRAMMIERUNG

EINFÜHRUNG IN DIE PROGRAMMIERUNG EINFÜHRUNG IN DIE PROGRAMMIERUNG GRUNDLAGEN Tobias Witt!! 24.03.2014 ORGANISATORISCHES 09:00-10:30! Täglich Übungen zur Vertiefung! Laptop hier nicht erforderlich! Linux, OS X! Freitag: http://hhu-fscs.de/linux-install-party/

Mehr

Präsentation BDDs Binary Decision Diagrams

Präsentation BDDs Binary Decision Diagrams Präsentation Binary Decision Diagrams Günther Eder Andreas Weichhart 28.01.2011 1 / 19 Überblick 1/2 Überblick Boolean Expressions Nachteil KNF/DNF Shannon Expansion INF 1. 2. Boolean Expressions 3. Nachteil

Mehr

TU5 Aussagenlogik II

TU5 Aussagenlogik II TU5 Aussagenlogik II Daniela Andrade daniela.andrade@tum.de 21.11.2016 1 / 21 Kleine Anmerkung Meine Folien basieren auf den DS Trainer von Carlos Camino, den ihr auf www.carlos-camino.de/ds findet ;)

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung 7. Vorlesung 18.05.2016 1 Konstanten Ganzzahlkonstante Dezimal: 42, 23, -2 Oktal (0 vorangestellt): 052 Hexadezimal (0x vorangestellt): 0x2A Gleitkommazahlen: 3.1415, 2.71,

Mehr

Logik für Informatiker

Logik für Informatiker Logik für Informatiker Vorlesung 5: Normalformen Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 2. November 2017 1/37 MOTIVATION FÜR AUSSAGENLOGIK Aussagenlogik

Mehr

Software Product Lines

Software Product Lines Software Product Lines Concepts, Analysis and Implementation Feature-Oriented Software Product Lines Dr. Malte Lochau Malte.Lochau@es.tu-darmstadt.de author(s) of these slides 2008 including research results

Mehr

Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion

Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion Überblick über Stored Functions Funktionen Eine Funktion ist ein benannter PL/SQL- Block, der einen Wert zurückgibt. Eine Funktion kann in der Datenbank als Objekt zur wiederholbaren Ausführung gespeichert

Mehr

RESI A Natural Language Specification Improver

RESI A Natural Language Specification Improver Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 RESI A Natural Language Specification Improver Dipl. Inform. Sven J. Körner Torben Brumm Prof. Dr. Walter F. Tichy Institute for Programming

Mehr

Beispiel Aussagenlogik nach Schöning: Logik...

Beispiel Aussagenlogik nach Schöning: Logik... Beispiel Aussagenlogik nach Schöning: Logik... Worin besteht das Geheimnis Ihres langen Lebens? wurde ein 100-jähriger gefragt. Ich halte mich streng an die Diätregeln: Wenn ich kein Bier zu einer Mahlzeit

Mehr

Grundkurs C++ IDE Klassenhierarchien

Grundkurs C++ IDE Klassenhierarchien Grundkurs C++ IDE Klassenhierarchien Martin Knopp 03.05.2017 Folie 1/34 GK C++: IDE, Klassenhierarchien Martin Knopp 03.05.2017 IDE Integrated Development Environment Wir empfehlen: Qt Creator (Bestandteil

Mehr

Algorithmen und Datenstrukturen Musterlösung 5

Algorithmen und Datenstrukturen Musterlösung 5 Algorithmen und Datenstrukturen Musterlösung 5 Martin Avanzini Thomas Bauereiß Herbert Jordan René Thiemann

Mehr

19. Vererbung und Polymorphie

19. Vererbung und Polymorphie 667 19. Vererbung und Polymorphie Ausdrucksbäume, Vererbung, Code-Wiederverwendung, virtuelle Funktionen, Polymorphie, Konzepte des objektorientierten Programmierens (Ausdrucks-)Bäume -(3-(4-5))*(3+4*5)/6

Mehr

Introduction to Python. Introduction. First Steps in Python. pseudo random numbers. May 2016

Introduction to Python. Introduction. First Steps in Python. pseudo random numbers. May 2016 to to May 2016 to What is Programming? All computers are stupid. All computers are deterministic. You have to tell the computer what to do. You can tell the computer in any (programming) language) you

Mehr

Symbolic Methods for the Verification of Software Models

Symbolic Methods for the Verification of Software Models Symbolic Methods for the Verification of Software Models DISSERTATION submitted in partial fulfillment of the requirements for the degree of Doktor/in der technischen Wissenschaften by Magdalena Widl Registration

Mehr

Wiederholung: Listen, Referenzen

Wiederholung: Listen, Referenzen Wiederholung: Listen, Referenzen Symbolische Programmiersprache Benjamin Roth and Annemarie Friedrich Wintersemester 2016/2017 Centrum für Informations- und Sprachverarbeitung LMU München 1 Wiederholung

Mehr

Grundkurs C++ IDE Klassenhierarchien

Grundkurs C++ IDE Klassenhierarchien Grundkurs C++ IDE Klassenhierarchien Martin Knopp & Johannes Feldmaier 20.04.2016 Folie 1/35 GK C++: IDE, Klassenhierarchien Martin Knopp & Johannes Feldmaier 20.04.2016 IDE Integrated Development Environment

Mehr