Objektorientierte Programmierung und Modellierung (Fach) / Algebraische Spezifikation (Lektion)

In dieser Lektion befinden sich 5 Karteikarten

Zusammenfassung WS 2015/2016

Diese Lektion wurde von RouHim erstellt.

Lektion lernen

  • Zwischen welchen Typen muss bei der Algebraische Spezifikation unterschieden werden? Sorts Functions Predicates Properties
  • In welcher Form werden "Sorts" spezifiziert? sort <SortName> Beispiel:    sort Company   sort Employee
  • In welcher Form werden "Functions" spezifiziert? function <name> : <Parameter> x <Paramter> x ... -> <Rückgabewert> Bsp.: function setSalary : Company x Employee x Nat -> Companyfunction getAllEmployees : Company -> Employee*function findEmployeeWithNumber : Company x Nat -> Employee? AchtungDer * bedeutet das es sich um mehrere Employees handelt.Das ? bedeutet das ein oder kein Employee zurückgegeben wird.
  • In welcher Form werden "Predicates" spezifiziert? Predicates sind gleich zu "Functions", nur das sie immer als Rückgabewert einen booleschen Wert haben. Dieswer wird jedoch nicht explizit aufgeschrieben. predicate <name> : <Parameter> x <Parameter> Bsp.: predicate isMale : Company x Employeepredicate hasEmployees : Company
  • In welcher Form werden "Properties" spezifiziert? Eine "Property" bestehen grundsätzlich aus vier Teilen: Eigenschaften / Beschreibung der Property Vorbedingung die für diese Eigenschaft gelten soll. "Ausführung" der function für die, die Property gelden soll. Nachbedinung welche nach der function gelten soll Bsp.: property setzeGehalt(c, e) : Company, Employee isInCompany(c,e) ^ not hasSalary(c, e) => let c1 = setSalary(c, e, n) in hasSalary(c1, e) ^ getSalary(c1, e) = n