Die Methode der schrittweisen Verfeinerung fiihrte uns auf der Datenseite zu den strukturierten Datentypen und auf der Algorithrnenseite zu den Prozeduren. Durch Parameterlisten werden Prozeduren zu einem flexiblen, wiederverwendbaren Konstrukt. Eine Prozedur HiBt sich also, sofern sie nur allgemein genug ge schrieben ist, in mehreren Programmen verwenden. Wiederverwendbarkeit von Prozeduren erfordert, daB keine Veranderung oder Verwendung globaler GroBen vorkommt, daB alle Parametertypen bekannt sind und daB die Prozeduren im verwendenden Programm neu tibersetzt werden. Sowohl vom Schreiber der Prozedur als auch von ihrem Verwender wird also Programmierdisziplin gefordert, da eine Prozedur nicht immer unabhangig von ihrer Umgebung ist. Diese Schwachen werden durch Module beseitigt, die noch die wertvolle Eigenschaft mitbringen, die Zerlegbarkeit (Modularisierung) des Pro gramms in einzelne, voneinander unabhangige Teile zu untersttitzen. Stellen wir uns vor, es soll ein groBeresSoftwareprojekt mit mehreren Mitar beitern durchgeftihrt werden. Mit dem gegenwartigen Kenntnisstand wtirde man wie folgt vorgehen: Zu Beginn eines Softwareprojekts erfolgt die Festlegung der wichtigsten Datenstrukturen, dann werden die Teilprobleme getrennt bearbeitet (d.h. die Strukturen wer den auf unterschiedliche Weise manipuliert).