Fakultät für Informatik Arbeitsgruppe Datenbanken & Software Engineering

Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung (EPMD)

Organisatorisches

Dozenten: Christian Kästner
Sprache:deutsch
SWS: 2 V, 2 Ü; 6 Credit Points
Fachsemester: Modul für das Masterstudium; Hauptstudium
Ort/Zeit: G22A-110 / Mittwoch, 11-13 Uhr
Übung: Donnerstag, 15-17 Uhr, G22A-362, ab 29. Okt.; Christian Kästner
Modulbeschreibung: pdf
Univis: Vorlesungseintrag

Lernziele & erworbene Kompetenzen:

  • Verständnis von Grenzen traditioneller Programmierparadigmen bzgl. der Entwicklung von Informationssystemen
  • Uebersicht ueber verschiedene Moeglichkeiten zur Implementierung von Softwareproduktlinien
  • Kenntnisse über moderne, erweiterte Programmierparadigmen mit Fokus auf die Erstellung maßgeschneiderter Systeme
  • Befähigung zur Bewertung, Auswahl und Anwendung erweiterter Programmiertechniken

Inhalte

  • Einführung in die Problematik maßgeschneiderter Systeme am Beispiel von embedded DBMS.
  • Modellierung und Implementierung von Programmfamilien, Produktlinien und Softwarefabriken.
  • Einführung in Grundkonzepte (u.a. Separation of Concerns, Information Hiding, Modularisierung, Strukturierte Programmierung und Entwurf).
  • Überblick über erweiterte Programmierkonzepte u.a. Komponenten, Frameworks, Design Pattern, Meta-Objekt-Protokolle und Aspekt-orientierte Programmierung, Kollaborationen und Rollen, Metaprogrammierung.

Lehrformen

Vorlesung und vorlesungsbegleitende Übung mit Fragenkatalogen einschließlich einer Projektarbeit zu einem ausgewählten Thema der Vorlesung; selbständiges Bearbeiten der Übungsaufgaben und des ausgewählten Themas als Voraussetzung für die Prüfung. Die Projektarbeit kann in die Endnote mit einfliessen. Details werden in der ersten Vorlesung bekanntgegeben.

Voraussetzung

Vorausgesetzt werden Grundlagen der Softwaretechnik, der Objekt-orientierten Programmierung und Modellierung, und Programmiererfahrung mit Java oder C++.

Folien

  1. Einführung und Überblick (14.10.2009)
  2. Maßgeschneidertes Datenmanagement (14.10.2009)
  3. Software-Produktlinien (21.10.2009)
  4. Komponenten, Frameworks, Praeprozessoren (28.10 und 04.11.2009)
  5. Objekt-Orientierung und ihre Grenzen (04.11 und 11.11.2009)
  6. Feature-Orientierung, Kollaborationen und Rollen (18.11.2009)
  7. Aspekt-Orientierung (25.11 und 03.12.2009)
  8. Aspectual Feature Modules (03.12 und 09.11.2009)
  9. Gastvorlesung "Produktlinien in der Praxis" von Danilo Beuche (16.12.2009)
  10. Feature-Interaktion (13.01.2010)
  11. Verbesserte Praeprozessoren (20.01.2010)
  12. Wrapup, The Big Picture, Fragen (27.01.2010)

Uebungen

  1. Software-Produktlinien (29.10.2009)
  2. Design Pattern (05.11.2009)
  3. Frameworks etc (11.11.2009)
  4. Uebung am 18.11.2009 entfaellt
    Umfrage fuer Experiment: http://www.unipark.de/uc/cideVersion
  5. Grenzen OOP/FOP (26.11.2009)
  6. Praktische Uebung in G29-144 (03.12.2009)
  7. FOP (17.12.2009)
  8. AOP (07.01.2010)
  9. Experiment in G29-144 (14.01.2010)
  10. AFM (21.01.2010)

Programmieraufgaben

  1. Chat Basis bis zum 16.11.2009
  2. Preprozessor bis zum 27.11.2009
  3. Framework bis zum 14.12.2009
  4. FOP bis zum 11.01.2010
  5. AOP bis zum 25.01.2010

Verschiedenes

Literatur

Kleine Auswahl, genaueres auf den Folien:
[1]
Marko Rosenmüller, Thomas Leich, Sven Apel, and Gunter Saake. Von Mini- über Micro- bis zu Nano-DBMS: Datenhaltung in eingebetteten Systemen. Datenbank Spektrum, 7(20), February 2007.
[ bib | .pdf ]
[2]
Krzysztof Czarnecki and Ulrich Eisenecker. Generative programming: methods, tools, and applications. ACM Press, New York, NY, USA, 2000.
[ bib | http ]
[3]
K. Kang et al. Feature-Oriented Domain Analysis (FODA) Feasibility Study. Technical Report CMU/SEI-90-TR-21, Software Engineering Institute, Pittsburgh, PA, USA, November 1990.
[ bib | .pdf ]
[4]
Don Batory. Feature models, grammars, and propositional formulas. In Proc. Int'l Software Product Line Conference (SPLC), pages 7-20, September 2005.
[ bib | .pdf ]
[5]
David L. Parnas. On the criteria to be used in decomposing systems into modules. Communications of the ACM, 15(12):1053-1058, 1972.
[ bib | http ]
[6]
Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Addison-Wesley Publishing Company, Inc., Reading, Massachusetts, 1994.
[ bib | http ]
[7]
Don Batory, Jacob Neal Sarvela, and Axel Rauschmayer. Scaling step-wise refinement. IEEE Transaction on Software Engineering, 30(6):355-371, 2004.
[ bib | .pdf ]
[8]
Ramnivas Laddad. AspectJ in Action: Practical Aspect-Oriented Programming. Manning Publications, 2003.
[ bib | http ]
[9]
Sven Apel, Christian Lengauer, Bernhard Möller, and Christian Kästner. An algebra for features and feature composition. In Proceedings of the 12th International Conference on Algebraic Methodology and Software Technology (AMAST), volume 5140 of Lecture Notes in Computer Science, pages 36-50. Springer-Verlag, July 2008.
[ bib | .pdf ]
[10]
Sven Apel, Christian Kästner, Martin Kuhlemann, and Thomas Leich. Pointcuts, Advice, Refinements, and Collaborations: Similarities, Differences, and Synergies. Innovations in Systems and Software Engineering (ISSE) - A NASA Journal, 3(3-4), 2007.
[ bib | http | .pdf ]
[11]
Sven Apel, Christian Kästner, Martin Kuhlemann, and Thomas Leich. Modularität von Softwarebausteinen: Aspekte versus Merkmale. iX Magazin für Professionelle Informationstechnik, (10):116-122, October 2006.
[ bib | http ]
var mainNav = document.getElementById('navigation_bar'); var mainNav_height = parseInt(mainNav.clientHeight); var content = document.getElementById('content_pane'); var content_height = parseInt(content.clientHeight); var gap = 9; if ((212 + mainNav_height) < (238 + content_height)) { mainNav.style.height = (content_height - 34 + gap) + "px"; } else { content.style.height = (mainNav_height - 86 - gap) + "px"; }