Softwareproduktlinien - Analyse von Produktlinien
|
|
- Pamela Bader
- vor 6 Jahren
- Abrufe
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 Fragen an Feature-Modell und Konfigurationen Domain Eng. Feature-Modell Wiederverwendbare Implementierungsartefakte Application Eng. 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 Ist das Feature-Modell konsistent? Gibt es mindestens eine Variante/Produkt? Formel erfüllbar? Anfrage an SAT-Solver SAT(FM)
20 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)
21 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)
22 Änderungen von Feature-Modellen Welche Konsequenzen hat eine Änderung im Feature- Modell auf die Produktmenge? Refaktorisierungen, Spezialisierungen, Generalisierungen
23 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)
24 Generalisierung von Feature-Modellen
25 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)
26 Spezialisierung von Feature-Modellen
27 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)
28 Refaktorisierung von Feature-Modellen
29 Reasoning in FeatureIDE
30 Analyse der Implementierung
31 Fragen an die Implementierung Domain Eng. Feature-Modell Wiederverwendbare Implementierungsartefakte Application Eng. 31 Feature-Auswahl Generator Fertiges Program
32 Fragen an die Implementierung Kann ein Code-Block ausgewählt werden? Ändert eine Annotation etwas am Gesamt-Code? Wiederverwendbare Implementierungsartefakte
33 Annotationen bei Präprozessoren true WORLD BYE true
34 Berechnung von Presence Conditions 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
35 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)
36 Ü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 )
37 Fragen an die Implementierung und das Feature-Modell Domain Eng. Feature-Modell Wiederverwendbare Implementierungsartefakte Application Eng. 37 Feature-Auswahl Generator Fertiges Program
38 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
39 Ü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 )
40 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
41 Typsysteme für Produktlinien
42 Type Checking #include <stdio.h> char *msg = "Hello World"; int main() { printf(msg); } Reference Type errors: referenced variable does not exist,
43 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); }
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); } Reference? Conflict?
45 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?
46 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?
47 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?
48 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?
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 AST with Variability Information WORLD BYE 52 WORLD BYE Extended Reference lookup mechanism
52 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
53 Zusammenfassung Variabilität Komplexität Analysen auf Feature-Modellen und Implementierung sind notwendig Analyse aller validen Produkte ist nicht praktikabel Variabilitätsgewahre Analysen
54 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 Christian Kästner (CMU) Sven Apel (Universität Passau) Gunter Saake, Thomas Thüm (Universität Magdeburg) Das Problem Variability = Complexity 33 optional,
MehrSoftwareproduktlinien 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
MehrSoftwareproduktlinien 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
MehrSoftwareproduktlinien 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
MehrImplementierung 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
MehrSoftwareproduktlinien 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
MehrSoftwareproduktlinien 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
MehrSoftwareproduktlinien - 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
MehrSoftwareproduktlinien - 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
MehrSoftwareproduktlinien 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
MehrSoftwareproduktlinien 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
MehrSoftware 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
MehrSoftware 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
MehrC/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
MehrWissensverarbeitung. - 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
MehrErweiterte 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
MehrRequirements 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
MehrFeaturemodellbasiertes 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
MehrSoftwareproduktlinien 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
MehrComparing 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
MehrFACHHOCHSCHULE 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
MehrFeature-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)
MehrFeature 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
MehrLogik 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
MehrVerknü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
MehrSoftware 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
MehrSoftwareproduktlinien 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
MehrAgile 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
MehrKonsolidierung 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
MehrName: 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
MehrProgrammieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff
Programmieren in C Macros, Funktionen und modulare Programmstruktur Prof. Dr. Nikolaus Wulff Der C Präprozessor Vor einem Compile Lauf werden alle Präprozessor Kommandos/Makros ausgewertet. Diese sind
MehrEinfü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
MehrProduktä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
MehrProduct 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.
MehrEinleitung 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
MehrState-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
MehrVorsemesterkurs Informatik
Vorsemesterkurs Informatik Vorsemesterkurs Informatik Mario Holldack WS2015/16 30. September 2015 Vorsemesterkurs Informatik 1 Einleitung 2 Aussagenlogik 3 Mengen Vorsemesterkurs Informatik > Einleitung
MehrGrundlagen 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
Mehr23.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
MehrDurchfü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
MehrSymbolic 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
MehrM. Sc. Mirjana Jakšić Dipl.-Inf. Christian Schönberg Dipl.-Inf. Franz Weitl
Spezifikationsmuster für Web Dokumente M. Sc. Mirjana Jakšić Dipl.-Inf. Christian Schönberg Dipl.-Inf. Franz Weitl Verdikt Übersicht Formale Wissensrepräsentation Model Checking Formale Spezifikation Introduction
MehrElementare 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)
MehrCompiler und Präprozessor (1) Erstellen eines Projektes
Compiler und Präprozessor (1) Erstellen eines Projektes Projekte bestehen meist aus mehreren Dateien, z.b. Quelldateien, Funktionssammlungen in Bibliotheken Zur Definition eines Projektes sind folgende
MehrAuszeichungen 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,
MehrGrundlagen 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,
MehrWelche 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
MehrBeispiel. 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]+
MehrSS2010 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.................................
MehrPrä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.
MehrWertstoff Software Wissenssicherung in (Legacy-) Systemen
Wertstoff Software Wissenssicherung in (Legacy-) Systemen Mag. Michael Moser Software Competence Center Hagenberg Software Analytics and Evolution +43 7236 3343 814 michael.moser@scch.at www.scch.at SCCH
MehrSeminar: 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
Mehr0. Einführung & Motivation
0. Einführung & Motivation Ansatz: "C++ für Java-Kenner" Konzentration auf semantische Unterschiede 'gleichartiger' Konzepte Erörterung der C++ -spezifischen Konzepte (Overloading, Templates) Anspruch
MehrFormale Logik. PD Dr. Markus Junker Abteilung für Mathematische Logik Universität Freiburg. Wintersemester 16/17 Sitzung vom 9.
Formale Logik PD Dr. Markus Junker Abteilung für Mathematische Logik Universität Freiburg Wintersemester 16/17 Sitzung vom 9. November 2016 Weitere Begriffe Eine Zuweisung von Wahrheitswerten W bzw. F
MehrBeispiel 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
MehrTU5 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 ;)
Mehr16. März 2016 artb5-v1.1
C 16. März 2016 artb5-v1.1 Inhaltsverzeichnis C 2 Was ist ein Programm?........................ 2 Was ist C?............................... 3 Grundgerüst - Hallo Welt....................... 3 Tools und
MehrFunktionen. Ü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
MehrAllgemeingültige Aussagen
Allgemeingültige Aussagen Definition 19 Eine (aussagenlogische) Formel p heißt allgemeingültig (oder auch eine Tautologie), falls p unter jeder Belegung wahr ist. Eine (aussagenlogische) Formel p heißt
MehrGeneratives Programmieren
Generatives Programmieren Seminar Produktlinien WS03/04 Tammo van Lessen 08.01.2004 Outline Einleitung Generatoren Generatives Programmieren Fazit Einleitung Industrielle Entwicklung 1826 Austauschbare
MehrBash-Scripting Linux-Kurs der Unix-AG
Bash-Scripting Linux-Kurs der Unix-AG Zinching Dang 02. Juli 2013 Was ist ein Bash-Script? Aneinanderreihung von Befehlen, die ausgeführt werden Bedingte und wiederholende Ausführung möglich Nützlich bei
MehrDAP2-Programmierpraktikum Einführung in C++ (Teil 1)
DAP2-Programmierpraktikum Einführung in C++ (Teil 1) Carsten Gutwenger 11. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Mein erstes C++-Programm Namensräume
MehrSystemprogrammierung
Systemprogrammierung 3Vom C-Programm zum laufenden Prozess 6. November 2008 Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2008 SS 2006 SOS 1 (03-Pro.fm 2008-11-06 08.52) 3 Vom C-Programm
MehrProjekt Weblog :: Integration
Projekt Weblog :: Integration Die Implementation des Formhandling Frameworks wird nun im Projekt Weblog integriert. Dafür stehen 2 Möglichkeiten zur Auswahl. Sie haben Ihre eigene Implementation der Actions,
MehrSoftwareproduktlinien - 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) 1 Agenda Produktlinien
MehrBuild- und Delivery-Pipelines als Code mit Jenkins
.consulting.solutions.partnership Build- und Delivery-Pipelines als Code mit Jenkins Alexander Schwartz, Principal IT Consultant Entwicklertag Frankfurt 16.02.2017 Build- und Delivery-Pipelines als Code
MehrFormale Systeme. Prof. P.H. Schmitt. Winter 2007/2008. Fakultät für Informatik Universität Karlsruhe (TH) Voraussetzungen
Formale Systeme Prof. P.H. Schmitt Fakultät für Informatik Universität Karlsruhe (TH) Winter 2007/2008 Prof. P.H. Schmitt Formale Systeme Winter 2007/2008 1 / 12 Übungen und Tutorien Es gibt wöchentliche
MehrFormale Grundlagen der Informatik 1 Kapitel 16 Normalformen und Hornformeln
Formale Grundlagen der Informatik 1 Kapitel 16 Normalformen und Frank Heitmann heitmann@informatik.uni-hamburg.de 9. Juni 2015 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/36 Ersetzbarkeitstheorem
MehrVorlesung C-Kurs 9:15-10:45 Mathe 11:15-12:45 1. Woche Hörsaal 1 2. Woche Hörsaal 7
Vorlesung C-Kurs 9:15-10:45 Mathe 11:15-12:45 1. Woche Hörsaal 1 2. Woche Hörsaal 7 Seminare / Praktikum M1/C1 : Mathe 13:15-14:45, C-Kurs 15:15-16:45h M2/C2 : C-Kurs 13:15-14:45, Mathe 15:15-16:45h M*
MehrROOT Tutorial für HEPHY@CERN. D. Liko
ROOT Tutorial für HEPHY@CERN D. Liko Was ist ROOT? Am CERN entwickeltes Tool zur Analyse von Daten Funktionalität in vielen Bereichen Objekte C++ Skriptsprachen Was kann ROOT Verschiedene Aspekte C++ as
MehrKlassische Themen der Computerwissenschaft Constraint Programming: Exercises. Gruppe: 100. Inhaltsverzeichnis
Klassische Themen der Computerwissenschaft Constraint Programming: Exercises Gruppe: 100 Inhaltsverzeichnis 1 Exercise 1 1 2 Exercise 2 2 2.1 Backtracking........................... 2 2.2 Forward checking.........................
MehrHydroinformatik I: Hello World
Hydroinformatik I: Hello World Prof. Dr.-Ing. habil. Olaf Kolditz 1 Helmholtz Centre for Environmental Research UFZ, Leipzig 2 Technische Universität Dresden TUD, Dresden Dresden, 28. Oktober 2016 1/15
MehrVererbung und Traits
Vererbung und Kiermaier Ulrich FWP-Fach: Scala: Java-Nachfolger oder akademisches Experiment? 11.5.2010 Übersicht Aufbau nach dem Buch Programming in Scala von Martin Odersky, Lex Spoon, Bill Venners Vererbung
MehrSoftware-Refactoring. 27. Mai 2015
Software-Refactoring 27. Mai 2015 Überblick Was ist Refactoring und wozu dient es? Welche Refactorings gibt es? Refactoring-Katalog: www.refactoring.com Wann, wo und wie führt man Refactorings durch? Wie
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Eigene Entwicklungen Datenstrukturen Elementare Datentypen Abstrakte Datentypen Elementare
MehrNachklausur Bitte in Druckschrift leserlich ausfüllen!
Übungen zur Vorlesung Informatik für Informationsmanager WS 2005/2006 Universität Koblenz-Landau Institut für Informatik Prof. Dr. Bernhard Beckert Dr. Manfred Jackel Nachklausur 24.04.2006 Bitte in Druckschrift
MehrPreisliste für The Unscrambler X
Preisliste für The Unscrambler X english version Alle Preise verstehen sich netto zuzüglich gesetzlicher Mehrwertsteuer (19%). Irrtümer, Änderungen und Fehler sind vorbehalten. The Unscrambler wird mit
MehrUnterlagen. CPP-Uebungen-08/
Unterlagen http://projects.eml.org/bcb/people/ralph/ CPP-Uebungen-08/ http://www.katjawegner.de/lectures.html Kommentare in C++ #include /* Dies ist ein langer Kommentar, der über zwei Zeilen
MehrDLLs (dynamic loaded libraries) mit MingW erstellen
DLLs (dynamic loaded libraries) mit MingW erstellen Autor: Michel D. Schmid Datum: April 2, 2009 Contents 1 Einführung 1 1.1 Open-Source Tools.......................................... 1 2 Beispiel 1:
MehrStrukturen & Math. Strukturen und Vektoren. Allokieren eines Vektors. Zugriff auf Strukturen. Freigeben eines Vektors
Strukturen & Math Strukturen für mathematische Objekte: allgemeine Vektoren Matrizen Strukturen und Vektoren 1 #ifndef _STRUCT_VECTOR_ 2 #define _STRUCT_VECTOR_ 3 4 #include 5 #include
MehrRelationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL
Relationales Modell: SQLDDL SQL als Definitionssprache SQLDDL umfaßt alle Klauseln von SQL, die mit Definition von Typen Wertebereichen Relationenschemata Integritätsbedingungen zu tun haben Externe Ebene
MehrSoftware development with continuous integration
Software development with continuous integration (FESG/MPIfR) ettl@fs.wettzell.de (FESG) neidhardt@fs.wettzell.de 1 A critical view on scientific software Tendency to become complex and unstructured Highly
MehrLogik für Informatiker
Logik für Informatiker 2. Aussagenlogik Teil 6 14.05.2012 Viorica Sofronie-Stokkermans Universität Koblenz-Landau e-mail: sofronie@uni-koblenz.de 1 Bis jetzt Syntax der Aussagenlogik: Definition der Menge
MehrDistributed testing. Demo Video
distributed testing Das intunify Team An der Entwicklung der Testsystem-Software arbeiten wir als Team von Software-Spezialisten und Designern der soft2tec GmbH in Kooperation mit der Universität Osnabrück.
MehrHello world. Sebastian Dyroff. 21. September 2009
Hello world Sebastian Dyroff 21. September 2009 1 / 35 Inhaltsverzeichnis Organisatorisches Hello World Typen und Operatoren Programmfluss Weitere Konstrukte Nützliche Tipps 2 / 35 Inhalte dieser Veranstaltung
MehrRechnerorganisation Tutorium Nr. 1
Rechnerorganisation Tutorium Nr. 1 Tutorium 3 Nicholas Kjär - uadnm@student.kit.edu 20. April 2015 INSTITUT FÜR INFORMATIK KIT University of the State of Baden-Wuerttemberg and National Laboratory of the
MehrC-Kurs 2010 Pointer. 16. September v2.7.3
C-Kurs 2010 Pointer Sebastian@Pipping.org 16. September 2010 v2.7.3 This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 License. C-Kurs Mi Konzepte, Syntax,... printf, scanf Next
MehrLiteraturrecherche. für das Seminar Software Qualität im SS2014. Henning Femmer und Benedikt Hauptmann
Literaturrecherche für das Seminar Software Qualität im SS2014 Henning Femmer und Benedikt Hauptmann Unter Verwendung von Material von Dr. Florian Deißenböck und Prof. Dr. Stefan Wagner Lernziele und Inhalte
MehrEinstieg in die Informatik mit Java
Vorlesung vom 6.11.07, Weitere Anweisungen Übersicht 1 Verbundanweisung 2 Bedingte Anweisung 3 Auswahlanweisung 4 for Schleife 5 while Schleife 6 do Schleife 7 break Anweisung 8 continue Anweisung 9 Leere
Mehr1. Übung zur Vorlesung Software-Produktlinien
1. Übung zur Vorlesung Software-Produktlinien Feature-Modelle und Produktkonfiguration Aufgabe 1 SPL Engineering a) Welche Vorgehensweisen zur Entwicklung einer Produktlinie wurden in der Vorlesung besprochen?
MehrErfüllbarkeit von Horn-Klauseln und Berechnung des kleinsten Herbrand-Modells
Erfüllbarkeit von Horn-Klauseln und Berechnung des kleinsten Herbrand-Modells Effiziente Entscheidung der Erfüllbarkeit von Horn-Klauseln Effiziente Berechnung des kleinsten Herbrand-Modells M P Naive
MehrSoftwareproduktlinien 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
MehrBeispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging
Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging Das Beispiel orientiert sich am selben Code, der im Teil 1 der Serie verwendet wurde. Text Styles: Shell Prompt mit
MehrCreational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05.
Creational Patterns Seminar Software-Entwurf WS 2004/05 Thomas Liro Inhaltsüberblick Einordnung des Themas Beschreibung von Design Pattern Auswahl von Design Patterns Was sind Creational
Mehr1. Übung zu "Numerik partieller Differentialgleichungen"
1. Übung zu "Numerik partieller Differentialgleichungen" Simon Gawlok, Eva Treiber Engineering Mathematics and Computing Lab 22. Oktober 2014 1 / 15 1 Organisatorisches 2 3 4 2 / 15 Organisatorisches Ort:
MehrBachelorarbeit: Entwicklung eines Konfigurationsvalidierers (extern)
Bachelorarbeit: Entwicklung eines Konfigurationsvalidierers (extern) Christian Cikryt Freie Universität Berlin 21.07.2011 Überblick Motivation Verwandte Arbeiten / Evaluation Vorgehen Technologie-Evaluation
MehrNetzwerksicherheit Musterlösung Übungsblatt 4: Viren
Institut für Informatik Alina Barendt und Philipp Hagemeister Netzwerksicherheit Musterlösung Übungsblatt 4: Viren 1 Vorbereitung msg db "Virus" mov ah, 40h mov bx, 1 mov cx, $5 mov dx, msg int 21h ; Write
Mehron Software Development Design
Werner Mellis A Systematic on Software Development Design Folie 1 von 22 How to describe software development? dimensions of software development organizational division of labor coordination process formalization
MehrABSICHERUNG MODELLBASIERTER SICHERHEITSKRITISCHER AVIONIK SOFTWARE Dr. Elke Salecker
ABSICHERUNG MODELLBASIERTER SICHERHEITSKRITISCHER AVIONIK SOFTWARE Dr. Elke Salecker MOTIVATION Fahrzeug-Software wird modellbasiert mit Simulink/TargetLink entwickelt & DO331/DO-178C ermöglicht modellbasierte
MehrHubert Schweinesbein Tel. 0911 / 749 53-626 e-mail: Hubert.Schweinesbein@suse.de
Hubert Schweinesbein Tel. 0911 / 749 53-626 e-mail: Hubert.Schweinesbein@suse.de Die nächsten 60 Minuten Der Linux Markt Was ist Linux - was ist Open Source Was macht SuSE SuSE Linux Server Strategie SuSE
Mehr