|
|
 |
 |
 |
 |
 |
 |
 |
 |
|
In dem Problemseminar "Konzepte und Werkzeuge für die Softwareentwicklung mit Java" sollen die Teilnehmer sich selbstständig mit Konzepten der Softwareentwicklung auseinandersetzen und Werkzeuge vorstellen, die diese Konzepte für die Programmiersprache Java umsetzen. Zur erfolgreichen Teilnahme an dem Problemseminar wird erwartet, dass die Teilnehmer
- sich in die entsprechende Literatur einarbeiten bzw.
- sich mit den Werkzeugen, die das entsprechende Konzept realisieren, auseinandersetzen,
- eine Ausarbeitung von ca. 10-20 Seiten erstellen, in der das Konzept dargestellt wird bzw.
- eine Ausarbeitung zur Verwendung der Werkzeuge (Installation, erste Schritte, erkannte Schwierigkeiten) erstellen sowie die Vor- und Nachteile der einzelnen Werkzeuge vergleicheneinen ca. 45-minütigen Vortrag halten, in dem die erarbeiteten Inhalte vorgestellt werden,
- an den anderen Vorträgen des Problemseminars teilnehmen
Nach Möglichkeit soll in Zweiergruppen gearbeitet werden, wobei ein Teilnehmer zum Konzept vorträgt und die entsprechende Ausarbeitung anfertigt, der andere Teilnehmer die Werkzeuge evaluiert, vergleicht und vorstellt und eine Ausarbeitung zu den Werkzeugen anfertigt. Die Ausarbeitung zur Verwendung der Werkzeuge soll geeignet sein, dem Leser einen Einstieg in die Arbeit mit dem Werkzeug zu ermöglichen. Soweit möglich, soll die Arbeit mit dem entsprechenden Werkzeug im Seminar direkt vorgeführt werden.
Wichtig ist den Veranstaltern, dass das Problemseminar nicht vorlesungsartig mit einem einzelnen Akteur verläuft. Vielmehr sollen alle Teilnehmer aktiv an Diskussionen in der Gruppe teilnehmen und kritisch die vorgestellten Inhalte hinterfragen.
Bitte beachten Sie die Hinweise zur Gestaltung von Seminararbeiten und verwenden Sie den LPZ-Styleguide.
Die erste Seminarbesprechung mit Verteilung der Themen findet am Donnerstag, 14. April, 15:15 Uhr im Seminarraum des Lehrstuhls für Angewandte Telematik/e-Business (Klostergasse 3, 2. OG) statt.
Bei Fragen und zur Anmeldung wenden Sie sich bitte an Ralf Laue.
|
|
|
 |
 |
 |
 |
 |
 |
 |
|
Die Teilnehmer können aus folgenden Themen auswählen oder auch gerne eigene Themenvorschläge einbringen:
- Architektur-Reengineering: Reengineering-Tools werden verwendet, um eine Dokumentation über die Architektur von Altsystemen zusammenzustellen.
- Code-Reviews, Codekonventionen: Um zu prüfen, ob Codekonventionen eingehalten werden, können automatische Reviews benutzt werden. Die Tools können außerdem einfache Programmfehler entdecken.
- Software-Metriken: Software-Metriken dienen dazu, Eigenschaften von Code (z.B. Qualität, Komplexität, Grad der Modularität) zu messen.
- Literatur:
- Peter Liggesmeyer: Software-Qualität, Spektrum-Verlag 2002
- Phillip G. Armour: Beware of counting LOC, Communications of the ACM, Volume 47 , Issue 3 (March 2004)
- Allan J. Albrecht, "Measuring Application Development Productivity," Proceedings of the IBM Application Development Symposium, Monterey, California, October 1979, pp. 83-92.
- Balzert, Lehrbuch der Software Technik Bd. 2
- Tools:
- Deployment von Java-Anwendungen auf Systemen mit wenig Speicher: Moderne Programmiersprachen zeichnen sich u.a. durch die Verfügbarkeit umfangreicher Bibliotheken aus. Für nahezu alle erdenklichen "Standardprobleme" gibt es fertig programmierte Lösungen. Das bedeutet, dass ausgelieferte Programme in der Regel nur zu einem eher geringen Teil aus selbst programmierten Code bestehen, während umfangreiche Bibliotheken mitgeliefert werden. Das führt jedoch auf Systemen mit wenig Speicher zu Schwierigkeiten. Statt komplette Bibliotheken auszuliefern, können Tools zum Extrahieren der von einer Anwendung tatsächlich benötigten Klassen aus einer Bibliothek die Dateigröße des ausgelieferten Codes erheblich verringern. Weitere Maßnahmen bestehen darin, unnötige Informationen im Bytecode zu entfernen und lange Bezeichner durch kurze zu ersetzen.
- Literatur:
- Frank Tip, Peter F. Sweeney, Chris Laffra: Extracting library-based Java applications, Communications of the ACM archive Volume 46 , Issue 8 (August 2003)
- David Grove , Craig Chambers, A framework for call graph construction algorithms, ACM Transactions on Programming Languages and Systems (TOPLAS), v.23 n.6, p.685-746, November 2001
- Ole Agesen , David Ungar, Sifting out the gold: delivering compact applications from an exploratory object-oriented programming environment, Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications, 1994
- Tools:
- Aspektorientierte Programmierung: Das Paradigma der aspektorientierten Programmierung erlaubt es, die Programmierung wiederkehrender Typen von Aufgaben in einem Programm (sog. "Aspekten") zu modularisieren. Ein typischer Aspekt ist z.B. die Protokollierung von Informationen in eine Datei. Beim Compilieren werden die einzelnen Module zu einem ausführbaren Programm "verwoben".
- Literatur:
- Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Lopes, Jean-Marc Loingtier and John Irwin: Aspect-Oriented Programming, Proceedings European Conference on Object-Oriented Programming, 1997
- Gregor Kiczales, Erik Hilsdale, Jim Hugunin, Mik Kersten, Jeffrey Palm, William G. Griswold: An Overview of AspectJ, Lecture Notes in Computer Science (2001)
- Frédéric Duclos, Jacky Estublier, Philippe Morat: Describing and using non functional aspects in component based applications, in: Proceedings of the 1st international conference on Aspect-oriented software development, 2002
- Karl Banke, Konrad Hesse: Webstile, iX 9/2003
- Tools:
- Java-Performancemessung: In komplexen Javaprogrammen ist es mitunter schwer, Performanceengpässe und ihre Ursachen zu erkennen. Um experimentell zu bestimmen, welche Methodenaufrufe besonders häufig vorkommen bzw. besonders viel CPU-Zeit beanspruchen, wurden verschiedene Profiling-Werkzeug entwickelt.
- Design-by-Contract, Spezifizierungssprachen: JML ist eine Spezifikationssprache, die das Prinzip des Design-by-Contract benutzt, um das Verhalten von Java-Modulen zu spezifizieren.
- Literatur:
- Lilian Burdy, Yoonsik Cheon, David Cok, Michael Ernst, Joe Kiniry, Gary T. Leavens, K. Rustan M. Leino, and Erik Poll. An overview of JML tools and applications. To appear in International Journal on Software Tools for Technology Transfer
- Gary T. Leavens, K. Rustan M. Leino, Erik Poll, Clyde Ruby, and Bart Jacobs. JML: notations and tools supporting detailed design in Java. In OOPSLA '00 Companion
- Gary T. Leavens and Yoonsik Cheon: Design by Contract with JML
- JMLSPECS.org
- Tools:
- Test-driven Development: Test-driven Development wurde mit der Popularisierung von Extreme Programming bekannt. Die grundlegende Forderung besteht darin, dass vor dem Schreiben von Code ein Test zu erstellen ist, der Übereinstimmung des erstellten Codes mit den spezifizierten Anforderungen zeigt. JUnit unterstützt die Automatisierung von Tests.
- Literatur:
- Andreas Spillner, Tilo Linz: Basiswissen Softwaretest, dpunkt Verlag 2004
- Peter Liggesmeyer: Software-Qualität, Spektrum-Verlag 2002
- Using JUnit With Eclipse IDE
- Tools:
|
|
|
 |
 |
|