7

Softwarekonstruktion (Fach) / Softwarekonstruktion 7 (Lektion)

Übungsblatt 7

Diese Lektion wurde von blumenkohl erstellt.

Lektion lernen

Diese Lektion ist leider nicht zum lernen freigegeben.

  • Welcher Aspekt einer Software wird mit einer Spezifikation beschrieben? Die Spezifikation beschreibt das Verhalten des Softwaresystems.
  • Welche Anforderungen gibt es an gute Spezifikationsmethoden? Verständliche und überschaubare SpezifikationstextePräzise und eindeutige SemantikAbstraktion von irrelevanten DetailsErlernbarkeitProblem-Angemessenheit
  • Welche positiven und negativen Aspekte hat die Entwicklung einer formalen Spezifikation? + Kann zusätzliche Erkenntnisse vermitteln+ Eindeutigkeit, Chance auf Verifizierbarkeit (Vollständigkeit, Widerspruchsfreiheit, Redundanz)- Handhabbarkeit und Anwendbarkeit auf Probleme relevanter Komplexität
  • Welcher Schluss ergibt sich aus den positiven und negativen Askpekten der Entwicklung einer formalen Spezifikation? ⇒ Formale Spezifikationen sind insbesondere sinnvoll bei Anwendung auf wichtigen und schwierigen Anforderungen (Security, Safety) und besonders kritischen Systemteilen (Protokolle, Modulschnittstellen). Bei grösseren ’Projekten’ ergibt sich die Notwendigkeit von Werkzeug-Unterstützung.
  • Aufbau Algebra Algebra xxx    Introduces sorts A,B,C   Introduces sorts Operations     op1: -> A     op2: -> A x B -> A Constraints op1, op2 so that forall a,b ∈ A, c ∈ B    op1(op2(a,c)) = undefined
  • Gegeben sei die Signatur ΣNat = (S, F, X) einer Algebra mit S = {Nat} und F = {one :→ Nat, inv : Nat → Nat, add : Nat × Nat → Nat}. Bestimmen Sie die Grundterme der Stufen 0, 1, 2 und eine vollständige Darstellung. Stufe 0: oneStufe 1: inv(one), add(one, one)Stufe 2: inv(inv(one)), inv(add(one, one)), add(inv(one), add(one,one)), add(one, inv(one)), add(inv(one), one), add(add(one,one), inv(one)), add(inv(one), inv(one)), add(add(one,one), add(one,one)), add(one, add(one,one)), add(add(one,one), one) vollständige Darstellung: T (ΣNat , Nat) = {one}∪{inv(n)|n ∈ T (ΣNat , Nat)}∪{add(n, m)|n, m ∈T (ΣNat , Nat)} Der Ubersichtlichkeit halber sind Terme, die bereits in niedrigeren Stufen vorkamen nicht noch einmal extra aufgelistet.
  • Werten Sie die folgenden Terme aus: eval(ANat ) (add(inv(one), inv(one))) = addA (eval(ANat ) (inv(one)) , eval(ANat ) (inv(one))) =addA (invA (eval(ANat ) (one)), invA (eval(ANat ) (one))) =addA (invA (oneA ), invA (oneA )) =addA (invA (1), invA (1)) =addA (1, 1) = 2
Anzeige