• Set HOME=http://www.inf.fu-berlin.de/inst/ag-se/teaching/S-Komponenten-2005

Seminar "Software aus Komponenten" SS 2005

Die Konstruktion von Software aus vorgegebenen Komponenten und Bibliotheken spielt eine immer größere Rolle, da die Komplexität von Systemen, Protokollen und Anwendungsszenarien anwächst und damit eine Eigenentwicklung aus Gründen der Wirtschaftlichkeit und Sicherheit nicht ratsam erscheint. Als Beispiel lässt sich heutzutage mit Nachdruck behaupten, dass die Schwierigkeit der Softwareentwicklung nicht in der Beherrschung der gewählten Programmiersprache liegt, sondern vielmehr in der der zugehörigen Bibliothek (vgl. die Komplexität der Sprache Java und die des JDK). Komponenten zu entwickeln, stellt hierbei noch höhere Anforderungen an unsere softwaretechnischen Fertigkeiten als reguläre Software, da eine ganze Reihe neuer Einflüsse beachtet werden müssen, die bei einmaliger Anwendung nicht auftreten.

In diesem Seminar wollen wir uns mit den grundlegenden Fragen der Erstellung von Komponenten und ihrem Einsatz beschäftigen und zugrundeliegende Rahmenwerke, Prozesse, Werkzeuge, Technologien kennenlernen. Abgerundet wird das Seminar durch Themen im Bereich Dokumentation von Komponentensystemen und kognitiven Aspekten des Erlernens und Anwendens von Bibliotheken. Jede/r Teilnehmer/in arbeitet hierzu ein Referat zu einem interessanten Teilgebiet aus. Neben dem fachlichen Wissen werden auch Vortragstechniken diskutiert und das Schreiben von Ausarbeitungen geübt.

Themenliste

  • Themengebiet Dokumentation & Bibliotheken
    1. Kognitive Dimensionen von Bibliotheken
      • Kognitive Dimensionen ist ein Evaluationswerkzeug, dessen Einsatz für Bibliotheken wir betrachten wollen. Steven Clarke hat damit die Microsoft Foundation Classes (MFC) untersucht, als die Entwicklung des Nachfolgers (des .NET Framework) anstand.
      • Steven Clarke. Measuring API Usability. In Dr. Dobb's Journal. 2004.
      • Kerry Rodden, Alan Blackwell - Class Libraries: A Challenge for Programming Usability Research. In Psychology of Programming Interest Group, 2002.
    2. Delocalized Plans
      • Source-Code stellt Pläne für Problemlösungen dar. Was passiert aber nun, wenn diese Pläne modularisiert und aufgespalten werden müssen, weil z.B. bestimmte Teile wiederverwendet werden sollen? Diese entstehende Verteilung macht es schwierig, den Code zu verstehen.
      • Letovsky, S. and E. Soloway. Delocalized Plans and Program Comprehension. IEEE Software 3, 3 (May 1986), 41-48.
      • Elliot Soloway, Jeannine Pinto, Stan Letovsky, David Littman, Robin Lampert. Designing Documentation to Compensate for Delocalized Plans. In Communications of the ACM. 1988.
    3. Dokumentation von Bibliotheken
      • Da man bei Bibliotheken meistens nicht in den Code schauen will, ist die Dokumentation für die Benutzbarkeit dieser besonders wichtig. Erik Berglund hat in seiner Doktorarbeit dieses Thema behandelt und einen eigenen JavaDoc-Clone hierbei entwickelt. Die Literaturreferenz ist seine komplette Dissertation, davon ist aber nur ein Teil zu bearbeiten.
      • Berglund E. (2002) Library Communication Among Programmers Worldwide. Linköping Studies in Science and Technology, Dissertation no. 758. Linköping University. ISBN: 91-7373-349-0
    4. Designing Reusable Classes
      • Grundlegendes Paper zum Thema Wiederverwendung.
      • Ralph E. Johnson, Brian Foote. 1988. Designing Reusable Classes. Journal of Object Oriented Programming.
    5. Entwurf von Algorithmischen Bibliotheken
      • Hier mal ein ganz anderer Blickwinkel auf den Entwurf von Bibliotheken. Was muß man technisch beachten, wenn man für Algorithmen Bibliotheken schreiben will?
      • Karsten Weihe. A Software Engineering Perspective on Algorithmics. In ACM Computing Surveys. 2001.
  • Themengebiet Informationsmanagement in Free / Open Source Software (FOSSIM)
    1. Einfluss gewinnen
      • In der laufenden Studienarbeit zum Thema Informationsmanagement wurde klar, dass ein Vorschlag an eine fremde Community nur mit ca. 5% Wahrscheinlich mit einer Antwort rechnen kann. Ohne vorher einen Ruf erlangt zu haben bzw. "Einfluß" gewonnen zu haben, besteht also so gut wie keine Chance in einem Open Source Projekt etwas zu verändern. Dieses Thema soll herausfinden, wie man diesen Einfluß online und offline gewinnen kann.
      • O'Mahony, Siobhan, and Fabrizio Ferraro. "Hacking Alone? The Effects of Online and Offline Participation on Open Source Community Leadership." 2004.
    2. Informationen gewinnen aus Versionhaltungen
      • Was für Informationen kann man aus der Versionhaltung gewinnen? Wie funktioniert das ganze und welche Probleme bei der Verwendung der Erkenntnisse lassen ermitteln?
      • T. Zimmermann, P. Weißgerber, S. Diehl, A. Zeller: "Mining Version Histories to Guide Software Changes", International Conference on Software Engineering (ICSE), 2004.
    3. Wissensmanagement
      • Kann man das Wissen einer Organisation mittels Werkzeugen verwalten? Kann dies Neueinsteigern helfen? Behandelt wird das Werkzeug Hipikat.
      • Davor Cubranic, Reid Holmes, Annie T.T. Ying, and Gail. C. Murphy. "Tools for light-weight knowledge sharing in open-source software development". International Conference on Software Engineering (ICSE), 2004.
  • Themengebiet Empirie
    1. Überblick
      • Ein Review oder Survey-Paper begutachtet andere Papers, ist sozusagen also ein Meta-Paper. Dies kann hilfreich sein, um einen Überblick über ein Themengebiet zu gewinnen.
      • Ignatios S. Deligiannis, Martin Shepperd, Steve Webster, Manos Roumeliotis. A Review of Experimental Investigations into Object-Oriented Technology. In Empirical Software Engineering. 2002.
    2. Program Comprehension
      • Für viele Forschung im Bereich Software Engineering ist es interessant zu erfahren, wie gut Versuchteilnehmer wirklich verstanden haben, was der Source-Code an dem sie gearbeitet haben, tut. Wie kann man dies nun empirisch messen?
      • von Mayrhauser, A. & A. M. Vans. (1995) Program Understanding: Models and Experiments. In M. Yovits & M. Zelkowitz (eds.), Advances in Computers, Vol 40. San Diego: Academic Press. p. 1-38.
    3. Programmierern über die Schulter geschaut
      • Was machen Programmierer denn so eigentlich? Für dieses Paper wurden Programmierer über lange Zeiträume beobachtet.
      • Janice Singer, Timothy Lethbridge, Norman Vinson, Nicolas Anquetil. 97. An Examination of Software Engineering Work Practices. Center for Advanced Studies Conference
      • Timothy Lethbridge, Janice Singer. 02. Studies of the Work Practices of Software Engineers. In Advances in software engineering - Springer.

Themenvergabe & Ergebnisse

Name Thema Ausarbeitung Vortrag !BibTeX
Patrick Plieth Program Comprehension pdf ppt txt
Eike Send Empirie Überblick pdf ppt txt
Olaf Hecht Designing Reusable Classes pdf ppt txt
Frederik Bäßmann Über die Schulter geschaut pdf ppt txt
Maximilian Schmidt Delocalized Plans pdf ppt txt
Maximilian Höflich Wissensmanagement pdf ppt txt
Nicolai Kamenzky Einfluss gewinnen pdf ppt txt

Organisatorisches

Dies war eine zweistündige Veranstaltung (ECTS Credits 4) für Studenten im Hauptdiplom im Sommersemester 2005. Die Veranstaltungsnummer ist 19553 (KVV). Der Veranstalter war Christopher Oezbek (030/838-75242).

Kommentare

 
Topic revision: r32 - 01 Mar 2010, LutzPrechelt
 
  • Printable version of this topic (p) Printable version of this topic (p)