Was ist ein Design von Contract®?

Design by Contract® ist eine Methode zur Entwicklung von Software, die auf der Einrichtung von gut definierten Schnittstellenparametern oder Verträgen für alle Teile eines Programms beruht. Obwohl Design by Contract® als ein konzeptioneller Entwicklungsstil angesehen werden kann, der durch Dokumentation oder Modellierung implementiert wird, wird es in einigen Programmiersprachen, die tatsächlich die implizite Codierung der Verträge innerhalb eines Programms benötigen, in einem nativen oder Drittanbieter-Mechanismus in einigen Programmiersprachen implementiert. Das Ziel bei der Verwendung von Design by Contract® ist, dass ein Programm entwickelt und letztendlich auf eine viel vollständigere Weise codiert wird, die trivialere Fehler beseitigt, während die Durchsetzung der Verträge durch die unterstützende Sprache alle verbleibenden Fehler leicht zu finden und erfasst wird. Ein Programm, das Verträge für Funktionen und Klassen verwendetr Die Designphilosophie von Design by Contract® ist die Idee der realen Geschäftsverträge. In diesem Modell definiert jede Methode und Klasse in einem objektorientierten Programm einen Vertrag, mit dem eine andere Methode oder eine andere mit ihm interagierende Methode einhalten muss. Jede Klasse kann auch einen Vertrag haben, der als Klasseninvariante bezeichnet wird, dass sie intern befolgen muss, um sicherzustellen, dass externe Verträge ihre Funktionsfähigkeit nicht beeinträchtigen.

Die beiden Teile eines Vertrags, die während des Designs und der Codierung am wichtigsten sind, sind die Voraussetzungen und die Nach-Konditionen. Diese beiden Teile des Designs By Contract® definieren den Status des Programms, bevor eine Methode aufgerufen wird, und der Status des Programms, nachdem die Methode ausgeführt wurde. Andere Teile eines Vertrags können je nach Implementierung variieren, können jedoch Querversicherungen zu anderen Modulen, Synchronisationsbedingungen und Anforderungen an die Bestellung umfassen.

Durch die Entwicklung von Verträgen für jede Klasse und Methode kann die Interaktion der verschiedenen Teile eines Programms leicht zugeordnet und vorhergesagt werden. Die Durchsetzung der Verträge, entweder durch die Verwendung von Behauptungen oder anderen Mechanismen, stellt auch sicher, dass das Programm nicht versucht, sich auszuführen, wenn ein Verstoß gegen Verträge vorliegt, da jede in diesem Zustand erzeugte Ausgabe ohnehin technisch ungültig wäre. Bei der Implementierung als Muttersprache kann Design by Contract® dazu beitragen, dass ein Endprodukt wie erwartet funktioniert, wobei kaum eine Chance auf unvorhergesehene Fehler ist.

Einige der Komplikationen, die mit der Verwendung des Designs nach Contract® -Philosophie einhergehen, umfassen längere Designzeiten und eine stärkere Entwicklung eines Systems vor Beginn der Codierung, was bei einem großen Projekt manchmal schwierig sein kann. Praktischer kann der in einer Programmiersprache verwendete Vertragsvalidierungsmechanismus, der Verträge nativ unterstützt, die Programmausführung verlangsamen. Ein schlechtes Verständnis von tDie Entwurf von Contract® -Methodik kann zu einem Programm führen, das Verträge zur Ausführung grundlegender Fehlerprüfung verwendet, was möglicherweise zu einer Anwendung führt, die nach der Veröffentlichung plötzliche Abstürze neigt.

ANDERE SPRACHEN

War dieser Artikel hilfreich? Danke für die Rückmeldung Danke für die Rückmeldung

Wie können wir helfen? Wie können wir helfen?