Studierende im Studiengang Informatik, Hauptstudium
Komplexität ist nicht ohne Grund ein Modewort: Immer komplexere technische und soziale Systeme entstehen, und die wissenschaftliche Erforschung der Komplexität hat in den letzten 50 Jahren stark an Bedeutung gewonnen.
Im Alltag bezeichnen wir Systeme als komplex, die wir nicht oder nur mit großem Aufwand verstehen.
Verständlichkeit ist ein wichtiges Qualitätsmerkmal von Dokumenten und technischen Systemen: Verständliche Dokumente sind fehlerärmer und übermitteln die Botschaft des Autors effektiver. Verständliche technische Systeme haben weniger unvorhergesehene Wirkungen, sind besser wartbar und erweiterbar.
Ziel des Seminars ist es, mehr Klarheit darüber zu gewinnen, was Software leicht oder schwer verständlich macht. Dazu wird zunächst untersucht, was "Verstehen" bedeutet. Dann werden einige Systeme betrachtet, an denen sich der Zusammenhang zwischen Systemstruktur und Verständlichkeit besonders gut studieren lässt. Auf dieser Grundlage werden schließlich Ansätze zur Bewertung und Verbesserung der Verständlichkeit von Software diskutiert.
Allgemeine Lernziele:
| Datum | Thema | Vortragender |
| 28.11.2002 | (1.) Systeme, emergente Eigenschaften, ungeordnete und organisierte Komplexität (Folien). | Andreas Noack |
| 05.12.2002 | (2.) Induktives und deduktives Verstehen, Phänomenologie und Reduktion (Folien). | Jan Kühl |
| 19.12.2002 | (3.) Induktives Verstehen ist Kompression. Shannon-Information, Algorithmische Komplexität, und der Kompromiss zwischen Wissen und Ignoranz (Folien). | Thomas Bischoff |
| 16.01.2003 | (4.) Deduktives Verstehen erfordert Dekomposition: "The Architecture of Complexity". | Andreas Noack |
| 23.01.2003 | (5.) Gehirne und Ameisenkolonien: Beschreibungsebenen und die Schwierigkeit, zwischen ihnen Brücken zu bauen (Folien). | Frank Karstan |
| 30.01.2003 | (10.-12.) Messtheorie, Klassische Software-Komplexitätsmaße, Komplexität objektorientierter Software (Folien). | Robert Neumann |
| 06.02.2003 | (14.) Prinzipien für verständliche SW: strukturierte und OO-Programmierung, ADTs: "Modularization by Information Hiding" (Folien). | Parnas (Video) |
Zu jedem der folgenden Themen wird es eine zusätzliche Seite bzw. eine Besprechung mit dem Vortragenden geben, um das Thema zu präzisieren und auf weiteres Material hinzuweisen.
[1] Ludwig von Bertalanffy. General Systems Theory.
George Braziller, New York, 1968.
[2] Warren Weaver. Science and complexity. American
Scientist, 36:536544, 1948.
[3] Philip W. Anderson. More is different.
Science,
177:393396, 1972.
[4] Murray Gell-Mann. The Quark and
the Jaguar. W. H. Freeman and Company, New York, 1994.
[5] Murray Gell-Mann and Seth Lloyd. Information
measures, effective complexity, and total information. Complexity,2(1):4452,
1996.
[6] Herbert A. Simon. The architecture
of complexity. In Proc. American Philosophical Society, volume106,
pages 467482, 1962.
[7] Douglas
R. Hofstadter. Gödel, Escher, Bach: an Eternal Golden Braid.
Basic Books, New York, 1979.
[8] Martin Gardner. The fantastic combinations
of John Conways new solitaire game "life". Scientic American,223(4):120123,
1970.
[9] Elwyn R. Berlekamp, John H. Conway,
and Richard K. Guy. Gewinnen: Strategien für mathematische Spiele,
Band 4. Vieweg,
Braunschweig, 1985.
[10] Stuart A. Kauffman. Requirements
for evolvability in complex systems: Orderly dynamics and frozen components.Physica
D, 42:135152, 1990.
[11] James Kennedy and Russell C. Eberhart.
Swarm
Intelligence. Academic Press, San Diego, CA, 2001.
[12] Duncan J. Watts. Small Worlds.
Princeton University Press, Princeton, NJ, 1999.
[13] Albert-Laszlo Barabasi and Reka Albert.
Emergence of scaling in random networks. Science, 286:509512, 1999.
[14] Brian Henderson-Sellers: Object-Oriented Metrics:
Measures of Complexity. Prentice Hall, ISBN 0132398729, 1995.
[15] Norman E. Fenton, Shari Lawrence Pfleeger.
Software Metrics: A Rigorous & Practical Approach. International Thomson
Computer Press, London, 1996.
[16] George A. Miller: The Magical Number Seven,
Plus or Minus Two.
The Psychological Review, volume 63, pages 8197,
1956.
[17] B. Shneiderman and R. Mayer. Syntactic/semantic
interactions in programmer behavior. Computer and Information Sciences,
8(3):219238,
1979.
[18] David L. Parnas. On the Criteria To Be Used
in Decomposing Systems into Modules. Communications of the ACM,
15(12):10531058,
1972.
[19] David L. Parnas, Paul C. Clements and David
M. Weiss. The Modular Structure of Complex Systems. In Proc. Software
Engineering, pages 408419,
1984.
[20] Bertrand Meyer. Object-Oriented Software Construction.
Prentice Hall, Upper Saddle River (NJ), 1997.
[21] Claus Lewerentz, Frank Simon and Frank Steinbrückner.
CrocoCosmos. In
Proc. Graph Drawing 2001. LNCS 2265, pages 446-447,
Springer, 2002.