Klasse :: Vertrag.

Klasse :: Vertrag - Design-by-Contract oo in Perl.
Jetzt downloaden

Klasse :: Vertrag. Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • Perl Artistic License
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Damian Conway
  • Website des Verlags:
  • http://search.cpan.org/~dconway/

Klasse :: Vertrag. Stichworte


Klasse :: Vertrag. Beschreibung

Klasse :: Vertrag - Design-by-Contract oo in Perl. Klasse :: Vertrag - Design-by-Contract oo in Perl.synopsis-Paket-Klassenname verwenden Klasse: Vertrag; Vertrag {Baseclass in Erbten '; invar {...}; Attr "Data1"; attr 'data2' => hash; Klasse attr "Shared" => Skalar; ctor 'neu'; Methode 'MethodName'; Vor { ... }; FAILMSG 'Fehlermeldung'; Post { ... }; FAILMSG 'Fehlermeldung'; Impl {...}; Methode 'nextmethod'; Impl {...}; Klasse-Methode 'SharedMeth'; Impl {...}; # usw.}; BackgroundDesign-by-contract ist eine Software-Engineering-Technik, in der jedes Modul eines Softwaresystems explizit angibt, welche Eingaben (oder von Daten oder Argumente) erfordert, und welche Ausgabe (oder Informationen oder Ergebnisse), die es gewährleistet, um zu produzieren Antwort. Diese Spezifikationen bilden die "Klauseln" eines Vertrags zwischen einem Modul und der Client-Software, die es verwendet. Wenn die Client-Software anhand der Eingabeanforderungen bleibt, garantiert das Modul, um die korrekte Ausgabe zu erzeugen. Daher kann durch Überprüfung dieser Klauseln bei jeder Wechselwirkung mit einem Modul das Gesamtverhalten des Systems sicher vorhergesagt werden.Design-by-Contract Die Vorteile modularer Entwurfstechniken durch Einfügen expliziter Kompilierzeit- oder Laufzeitprüfungen auf einen Vertrag. Diese Überprüfungen sind meistens in objektorientierten Sprachen zu finden und werden in der Regel als Vorbedingungen und Nach-Bedingungen auf Methoden und Invarianten auf Klassen umgesetzt. Freund, dass diese Funktionen von einfachen Überprüfungsanweisungen wie der C-Assert-Anweisung unterscheiden. Die Bedingungen und Invarianten sind Eigenschaften einer Klasse und werden von abgeleiteten Klassen geerbt. Eine zusätzliche Kapazität, die häufig in Design-by-Contract-Systemen bereitgestellt werden, ist die Möglichkeit, den Überprüfungscode selektiv zu deaktivieren. Dies ermöglicht es, die vertraglichen Prüfung während der Umsetzung durchzuführen, ohne auf die Leistung des endgültigen Systems abzulehnen Bestehende Klassendefinitionsmodule Klasse :: Struktur, Klasse :: MethodMaker und Klasse :: Generieren). Klasse :: Vertrag ermöglicht, dass sowohl Pro-Objekt als auch Pro-Klasse-Methoden und Attribute definiert werden können. Attribute können skalar-, array-, hash- oder object-based.class :: vertrag unterscheidet sich von anderen Klassenspezifikationsmodulen (außer Klasse :: Generieren) dadurch, dass er auch invariante Bedingungen auf Klassen angeben und Vor- und Nachbedingungen auf Methoden und Attributen. Alle diese Klauseln sind vollständig erbärmlich und können selektiv deaktiviert werden. Es unterscheidet sich von allen anderen Modulen, dadurch, dass sie eine sauberere, einfachere Spezifikationssyntax aufweist, und ist wichtiger, dass sie die Einkapselung von Objektattributen durchsetzt, wodurch sichergestellt wird, dass der Klassenvertrag nicht unterschritten werden kann Zur Definition der Attribute, Methoden und Konstruktoren einer Klasse. Die Klasse selbst wird mit der Vertrags-Subroutine definiert. Vertrag nimmt ein einzelnes Argument - eine Subroutine-Referenz oder einen Block. Dieser Block wird einmal ausgeführt und die Ergebnisse, die zum Konstruieren und Installieren der verschiedenen Komponenten der Klasse im aktuellen Paket verwendet werden: Paketwarteschlange; Vertrag {# Spezifikation der Klassenwarteschlangenattribute und -methoden hier}; Anforderungen: · Perl.


Klasse :: Vertrag. Zugehörige Software