Die Einbindung von Ada in die ersten Entwurfsphasen des Systementwurfes bedingt nicht nur geeignete graphische Hilfsmittel und Programmierumgebungen, sondern auch eine dem Sprachkonzept entsprechende Entwurfsmethode. Da Ada aufgrund der vorhandenen Sprachmittel ein Denken in abstrakten Datentypen nahelegt, empfiehlt sich natürlich eine Entwurfsmethode, die solche Konzepte berücksichtigt. Es ist klarerweise auch möglich, in Ada zu programmieren wie in anderen Programmiersprachen, die diese Konzepte nicht unterstützen, allerdings erinnert das an Leute, die einen Elektro-Schrauber als Hammer benutzen, um Nägel einzuschlagen.
Wir tun hier so, als suchten wir nach einer passenden Entwurfsmethode für den Systementwurf, um anschließend Ada als System-Implementierungssprache zu verwenden. In Wirklichkeit lief die Entwicklung aber in der anderen Richtung. Gezwungen durch die in den Siebzigerjahren herrschende, sogenannte Software-Krise wurden Konzepte ersonnen, die den Entwurf von sehr großen Software-Systemen ermöglichen sollten. Dabei war nicht nur ein einfacher, leicht verständlicher Entwurf angestrebt worden, sondern es war vielmehr ein ausgesprochenes Ziel, die Software-Entwicklung von den ersten Spezifikationsphasen bis hin zur Wartung des Systems zu unterstützen. Als wohl vielversprechendstes Ergebnis darf die objekt-orientierte Entwurfsmethode gelten. Wir werden sie im folgenden Kapitel kennenlernen.
Objekt-orientiertes Denken allein bringt jedoch wenig, wenn der Programmierer gezwungen ist, die Konzepte mühevoll auf eine Programmiersprache abzubilden, die etwa keinerlei Unterstützung zur Implementierung von abstrakten Datentypen bietet.
Der Entwurf von Echtzeit- und Automatisierungssystemen bringt im Unterschied zur Programmierung anderer Systeme Probleme mit sich, die es notwendig erscheinen lassen, ihnen ein eigenes Kapitel zu widmen. Ada bietet dadurch, daß Prozesse (Tasks) als Sprachmittel zur Verfügung stehen, und mit dem Rendezvous-Konzept die Möglichkeit, vom Systementwurf zur Implementierung überzugehen, ohne auf Betriebssystemeigenschaften näher einzugehen. Wir werden uns im Kapitel 19 mit diesem Thema näher beschäftigen.