Fakultät für Informatik

TU München - Fakultät für Informatik
Software- and Systems Engineering Research Group

TUM

Vorlesung | Wintersemester 2005/06
Grundlagen der Programm- und Systementwicklung
Prof. Dr. Manfred Broy

 

Diese Seite enthält in alphabetischer Reihenfolge Verweise auf für die Vorlesung relevante Literatur sowie Links auf Online-Resourcen. Besonders lohnende Quellen sind rot markiert. Die Liste ist unvollständig und wird im Lauf des Semesters vervollständigt.


[Kap. 1] [Kap. 2] [Kap. 3] [Kap. 4] [Kap. 5] [Kap. 6] [Kap. 7] [Kap. 8]


Literatur

Kapitel 1: Grundlegende Begriffe

  • J.R. Abrial. On Constructing Large Software Systems. In: J. van Leeuwen (ed.): Algorithms, Software Architecture, Information Processing 92, Vol. I, 103-119.
  • P. Coad und E. Yourdon. Object-oriented Analysis. Prentice Hall International Editions 1991.
  • J. Dahl, E.W. Dijkstra und C.A.R. Hoare. Structured Programming. London-New York: Academic Press 1972.
  • T. DeMarco. Structured Analysis and System Specification. New York: Yourdan Press, NY, 1979.
  • E. Denert. Software-Engineering. Springer 1991.
  • Weakest precondition-Kalkül, viele und gute Beispiele:
    Edsger W. Dijkstra. A Discipline of Programming. Englewood Cliffs: Prentice-Hall, 1976.
  • C.A.R. Hoare und He Jifeng. Unifying Theories of Programming. Prentice Hall, 1998.
    Vom selben Autor online verfügbar: Theories of Programming: Top-Down and Bottom-Up and Meeting in the Middle. Springer LNCS 1708: FM'99 (vol. 1), S. 1-27, Springer 1999.
  • Informelle, sehr gut zu lesende Anmerkungen zur Softwaretechnik und ihre Ausrichtung als Ingenieursdisziplin:
    M.A. Jackson. Software Requirements & Specification - a Lexicon of Practice, Principles and Prejudices. Addison-Wesley 1995.
  • Eine gut lesbare und umfassende Beschreibung objektorientierter Konzepte und deren Anwendung im Softwareentwurf (vom Entwickler der OO-Sprache Eiffel):
    B. Meyer. Objektorientierte Softwareentwicklung. Hanser/Prentice-Hall, 1990.
  • Links:

Kapitel 2: Rechenstrukturen

  • Umfassendes Lehrbuch zur Einführung in Rechen- und Objektstrukturen:
    F.L. Bauer und H. Wössner. Algorithmische Sprache und Programmentwicklung. Berlin-Heidelberg-New York: Springer 1981.
  • Weakest precondition-Kalkül, Programmverifikation, Grundlagen:
    David Gries. The Science of Programming. New York: Springer 1981.
  • J.V. Guttag und J.J. Horning. A Larch Shared Language Handbook. Springer 1993.
  • B.H. Liskov und S.N. Zilles. Programming with Abstract Data Types. Proc. ACM Conference on Very High-Level Languages. SIGPLAN Notices 9. 4, pp. 50-59, 1974.

Kapitel 3: Daten als Rechenstrukturen

  • H.-D. Ehrich, Martin Gogolla, Udo Lipeck. Algebraische Spezifikation abstrakter Datentypen. Teubner, 1989.
  • Hartmut Ehrig, Bernd Mahr. Fundamentals of Algebraic Specification. Springer-Verlag, 1985.
  • J. Loeckx, H.-D. Ehrich, M. Wolf. Specification of Abstract Data Types. Wiley, 1996.
  • Eine knappe Einführung in das Entity-Relationship-Modell sowie Grundlagen des OO-Datenmodells sind zu finden in Kapitel 5 bzw. 15 von
    G. Vossen. Datenmodelle, Datenbanksprachen und Datenbank-Management-Systeme. 2. Auflage, Addison-Wesley, 1994.
  • Klassisches Buch über Datenstrukturen:
    N. Wirth. Algorithmen und Datenstrukturen. 3. Aufl. Stuttgart: Teubner 1983.
  • N. Wirth. Systematisches Programmieren. Stuttgart: Teubner 1972.

Kapitel 4: Funktionale Programmierung

  • Der Klassiker:
    Richard Bird and Philip Wadler. Introduction to Functional Programming. Prentice-Hall, 1988.
  • Der Klassiker in Haskell-Verkleidung:
    Richard Bird. Introduction to Functional Programming using Haskell. Prentice-Hall, 1998.
  • Eine ausgezeichnete, umfassende Einführung in Bereichs- und Fixpunkttheorie:
    B.A. Davey und H.A. Priestley. Introduction to lattices and order. Cambridge University Press, 1991.
  • Der ML-Klassiker:
    Lawrence C. Paulson. ML for the Working Programmer. 2nd edition. Cambridge University Press, 1996.
  • Haskell:
    Simon Thompson. Haskell: The Craft of Functional Programming. Addison-Wesley, 1996.
  • Grundlagen:
    Peter Thiemann. Grundlagen der funktionalen Programmierung. Teubner, 1994.
    Simon Thompson. Type Theory and Functional Programming. Addison-Wesley, 1991.
  • Eine eingängige Einführung in Induktion, Fixpunkttheorie und Hoare-Logik findet sich u.a. in
    Glynn Winskel. The Formal Semantics of Programming Languages. MIT Press, 1993.
  • Fixpunkttheorie und denotationelle Semantik:
    Zohar Manna. Mathematical Theory of Computation. McGray-Hill Computer Science Series, 1974. ISBN 0-07-039910-7
    Lloyd Allison. A practical introduction to denotational semantics. Cambridge University Press, 1986. ISBN 0-521-30689-2
  • Links: funktionale Programmierung, (S)ML

Kapitel 5: Zustandsorientierte, sequentielle Programme

  • Detailierte Behandlung der Spezifikations- und Verifikationsmethode B, basierend auf prädikativer Spezifikation:
    J.-R. Abrial: The B-Book: Assigning Programs to Meanings. Cambridge University Press, 1996.
  • Semantik, Hoaresche Logik, Programmverifikation (auch parallele und verteilte Programme):
    K.R. Apt und E.R. Olderog. Programmverifikation. Springer, 1994.
  • Weakest precondition-Kalkül, viele und gute Beispiele:
    Edsger W. Dijkstra. A Discipline of Programming. Englewood Cliffs: Prentice-Hall, 1976.
  • Ein sehr gut lesbares Lehrbuch, mit Schwerpunkt auf systematischer Programmentwicklung:
    Edsger W. Dijkstra, W.H.J. Feijen: A Method of Programming. Addison-Wesley, 1988.
  • Spezifikation mit VDM-SL (ein ISO-Standard):
    John Fitzgerald, Peter Gorm Larsen. Modelling Systems. Cambridge University Press, 1998.
  • Ein Klassiker des weakest precondition-Kalküls a la Dijkstra, mit Schwerpunkt auf systematischer Programmentwicklung. Behandelt auch die logischen Grundlagen:
    David Gries. The Science of Programming. Springer, 1981.
  • Theorie prädikativer Spezifikation:
    E. Hehner. A Practical Theory of Programs. Springer, 1993.
  • Spezifikations- und Verifikationsmethode VDM, basierend auf prädikativer Spezifikation:
    Cliff Jones. Systematic Software Development Using VDM. Prentice-Hall International, 1990.
  • Der Z-Klassiker ist vergriffen, aber zum Glück online verfügbar:
    Mike Spivey. The Z Notation: A Reference Manual.Prentice-Hall, 1992.
  • Eine Auswahl weiterer Bücher über Z finden sich auf der Z-Seite (unter Publications).
  • Eine exzellente Einführung in die Semantik von Programmiersprachen, die auch die Grundlagen der Hoare-Logik behandelt:
    Glynn Winskel. The Formal Semantics of Programming Languages. MIT Press, 1993.

Kapitel 6: Referenzen und organisierte Speicher

  • Umfassendes Lehrbuch zur Einführung in Rechen- und Objektstrukturen:
    F.L. Bauer und H. Wössner. Algorithmische Sprache und Programmentwicklung. Berlin-Heidelberg-New York: Springer 1981.

Kapitel 7: Objektorientierung

  • Ein Standardwerk zu Prinzipien und Techniken der objektorientierten Systemanalyse, die der Strukturierung und nicht zuletzt dem Verständnis eines Problems dient:
    P. Coad und E. Yourdon. Objektorientierte Analyse. Prentice Hall 1994.
  • Der zweite Teil beschreibt die Umsetzung der Erkentnisse aus der Analyse in den Systementwurf (ebenfalls ein Standardwerk):
    P. Coad und E. Yourdon. Objektorientiertes Design. Prentice Hall 1994.
  • Eine gut lesbare und umfassende Beschreibung objektorientierter Konzepte und deren Anwendung im Softwareentwurf (vom Entwickler der OO-Sprache Eiffel):
    B. Meyer. Objektorientierte Softwareentwicklung. Hanser/Prentice-Hall, 1990.

Kapitel 8: Grundlagen der Methodik

  • Enthält im ersten Teil eine umfassende und präzise Beschreibung mathematischer Strukturen für Kalküle zur Systementwicklung und im zweiten u.a. eine Einführung in die Verfeinerung strombasierter Spezifikationen:
    M. Broy und R. Steinbrüggen (Hrsg.). Calculational System Design. NATO Science Series F-173, IOS Press, 1999.
  • Ein weiterer Verfeinerungskalkül, der u.a. auf Dijkstra's Arbeiten zum wp-Kalkül und den guarded commands aufbaut (mit zahlreichen Fallstudien):
    Carroll Morgan. Programming from Specifications. Prentice Hall, 2nd edition, 1994. Online verfügbar.

[Kap. 1] [Kap. 2] [Kap. 3] [Kap. 4] [Kap. 5] [Kap. 6] [Kap. 7] [Kap. 8] [Vorlesung] [Übungen]


Links

Zusätzliche Informationen

Motivierende Beispiele

Funktionale Programmierung



[nach oben (Literatur)]

© Software & Systems Engineering Research Group
Sitemap |  Kontakt/Impressum
Letzte Änderung: 2006-05-18 09:30:38