![Page 1: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/1.jpg)
SoftwareanforderungsanalyseSpezifizieren und Dokumentieren von Anforderungen
Burkhardt Renz
THM, Fachbereich MNI
Wintersemester 2018/19
![Page 2: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/2.jpg)
Spezifikation und Dokumentation von Anforderungen
Start
Analyse des Anwendungsgebietsund Ermittlung von Anforderungen
Evaluierung undAbstimmung
Qualitätssicherung Spezifikationund Dokumentation
Alternative Vorschläge
Vereinbarte Anforderungen
Dokumentierte Anforderungen
Konsolidierte Anforderungen
![Page 3: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/3.jpg)
Übersicht
Was spezifizieren und dokumentieren?
Gliederung für AnforderungsspezifikationProblem Frames
Wie spezifizieren und dokumentieren?
Natürliche SpracheModellbasierte DarstellungFormale Spezifikation
![Page 4: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/4.jpg)
Erwartungen an eine Anforderungsspezifikation
vollständigkonsistentadäquateindeutigverständlich, gut strukturiertprüfbarrelevant, risikogerechtverfolgbar
![Page 5: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/5.jpg)
Übersicht
Was spezifizieren und dokumentieren?Aufbau und Gliederung der AnforderungsspezifikationProblem Frames
Spezifikation in natürlicher Sprache
Modellbasierte Spezifikationen
Formale Spezifikationen
![Page 6: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/6.jpg)
Gliederung der Anforderungsspezifikation
ISO/IEC/IEEE Standard 29148:2011Systems and software engineering – Life cycle processes –Requirements engineeringenthält in Kapitel 8.4 Beispiel für die Gliederung des Softwarerequirements specification documentIm deutschen Sprachraum oft Unterscheidung
Lastenheft„Vom Auftraggeber festgelegte Gesamtheit der Forderungen andie Lieferungen und Leistungen eines Auftragsnehmersinnerhalb eines Auftrags“Pflichtenheft„. . . vom Auftragnehmer erarbeitete Realisierungsvorgabenaufgrund der Umsetzung des vom Auftraggeber vorgegebenenLastenhefts“
![Page 7: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/7.jpg)
Mustergliederung nach ISO 29148:2011 I
1. Einführung1.1 Anlass und Ziele1.2 Einsatzbereich1.3 Produktübersicht
1.3.1 Kontext1.3.2 Funktionen des Produkts1.3.3 Art der Benutzer1.3.4 Annahmen und Einschränkungen
2. Referenzen3. Einzelanforderungen
3.1 Externe Schnittstellen3.2 Funktionen3.3 Anforderungen an die Benutzbarkeit3.4 Anforderungen an die Leistungsfähigkeit3.5 Anforderungen bzgl. des logische Datenmodells3.6 Entwurfsbedingungen und -einschränkungen3.7 Weitere Qualitätsmerkmale3.8 Wartungs- und Supportinformationen
![Page 8: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/8.jpg)
Mustergliederung nach ISO 29148:2011 II
4. Verifikation (bzgl. aller Unterpunkte von 3.)5. Anhang
5.1 Annahmen und Abhängigkeiten5.2 Akronyme und Abkürzungen
![Page 9: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/9.jpg)
Spezifikationsbausteine von sd&m
Projektgrundlagen
Abläufe & Funktionen
AnwendungsfälleGeschäftsprozesse
Anwendungsfunktionen
Daten
DatentypverzeichnisDatenmodell
Benutzerschnittstelle
BatchDialogspezifikation
Druckausgaben
Externe Schnittstellen
DatenmigrationNachbarsystem-Schnittstellen
Einführung / Migration
NichtfunktionaleAnforderungen
NichtfunktionaleEigenschaften
Querschnittskonzepte
Ergänzende BausteineGlossar
Spezifikationsbausteine
Systemüberblick
Technische GrundlagenFachliche Grundlagen
Projektgrundlagen
Abläufe & Funktionen
AnwendungsfälleGeschäftsprozesse
Anwendungsfunktionen
Daten
DatentypverzeichnisDatenmodell
Benutzerschnittstelle
BatchDialogspezifikation
Druckausgaben
Externe Schnittstellen
DatenmigrationNachbarsystem-Schnittstellen
Einführung / Migration
NichtfunktionaleAnforderungen
NichtfunktionaleEigenschaften
Querschnittskonzepte
Ergänzende BausteineGlossar
Spezifikationsbausteine
Systemüberblick
Technische GrundlagenFachliche Grundlagen
Quelle: Andreas Birk Anforderungsspezifikationen in großenIT-Projekten, in: Jahrestagung der GI-Fachgruppe RequirementsEngineering, Kaiserslautern 2004.
![Page 10: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/10.jpg)
Problem Frames
Die Grundidee
Maschine Anwendungs-gebiet Anforderungen
a b
Grundlegende Problem FramesMichael Jackson Problem Frames: Analyzing and structuringsoftware development problems
http://esb-dev.github.io/mat/saa-pf-bh.pdf
![Page 11: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/11.jpg)
Übersicht
Was spezifizieren und dokumentieren?
Spezifikation in natürlicher SpracheSprachliche RegelnBlaupausen für die Formulierung von AnforderungenGlossar
Modellbasierte Spezifikationen
Formale Spezifikationen
![Page 12: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/12.jpg)
Spezifikation in natürlicher Sprache
wird am häufigsten für Spezifikation von Anforderungenverwendet, warum?ausdrucksmächtigfür jeden ohne Spezialkenntnisse schreibbar und lesbaraber:
inhärent mehrdeutigfehlerträchtigschwierig zu prüfenje umfangreicher desto unübersichtlicher
![Page 13: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/13.jpg)
Verbesserung der Qualität natürlichsprachlicherSpezifikationen
Man kann die Qualität von Anforderungsspezifikationen innatürlicher Sprache verbessern durch
geeignete Gliederung und Strukturierung des DokumentsSprachliche Regeln für Formulierungen bis hin zuBlaupausen für die Formulierung von Einzelanforderungenklare Definition und Verwendung von Bezeichnungen durchein Glossar
![Page 14: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/14.jpg)
Sprachliche Regeln: Struktur der Sätze
Vollständige Satzstruktur bildenIm Aktiv formulierenAnforderungen in Hauptsätzen, Nebensätze nur zurErläuterung etc.Bei Vergleichen Bezugspunkt angebenBei Alternativen und/oder Fallunterscheidungen alleMöglichkeiten berücksichtigen
![Page 15: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/15.jpg)
Sprachliche Regeln: Vage Bezeichnungen vermeiden
Unspezifische Nomen durch präzise Angaben ersetzennicht: „die Daten werden. . . “sondern: „die Daten des aktuellen Auftrags. . . “Verben, die Prozesse, Funktionen oder Abläufe beschreiben,präzise definieren„Daten werden übertragen“welche Daten? wohin übertragen?
![Page 16: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/16.jpg)
Sprachliche Regeln: Nominalkonstruktionen
Nominalkonstruktionen sind Nomen, die aus Verben gebildetwerdenz.B. „Initialisierung, Neustarten des Systems“Oft verbergen sich hinter Nominalkonstruktionenunvollständig spezifizierte Abläufe
![Page 17: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/17.jpg)
Sprachliche Regeln: Quantoren und Ausschlüsse
Allquantoren hinterfragen, weil sie in Umgangssprache oftimplizit kontextabhängig verwendet werdenz.B. „auf dem Dialog werden alle Daten angezeigt“z.B. „der Vorgang kann jederzeit abgebrochen werden“Existenzquantoren durch explizites Angeben des Exemplarspräzise verwendenz.B. „Es gibt eine Einstellung für die Schriftgröße“welche? wo?Ausschlüsse nach Ausnahmen hinterfragenz.B. „Es ist nicht möglich, dass. . . “wirklich?
![Page 18: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/18.jpg)
Blaupausen für die Formulierung von Anforderungen
Vorlage für Bildung präziser Formulierung von Anforderungen
[When? Under whatconditions?]
THE SYSTEM<system name>
SHALL
SHOULD
WILL
MAY
<process verb>
PROVIDE <whom?> WITHTHE ABILITY TO <process verb>
BE ABLE TO<process verb>
<object> <additional detailsabout the object>
Quelle: Klaus Pohl, Chris Rupp Requirements EngineeringFundamentals, Kapitel 5.2
![Page 19: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/19.jpg)
Modus von Äußerungen
Michael Jackson kritisiert den Einsatz von Zeitformen (Tempus)wie in „shall“ und „will“, weil Zeiten keinen Modus angeben,sondern eher zweideutig sind.
Besser die präzise Unterscheidung:
Optativ – Wunschform = drückt aus, was gewünscht wird zuerreichen, was vorgeschrieben wird, präskriptivIndikativ – Wirklichkeitsform = drückt aus, was imAnwendungsgebiet ist, unabhängig von dem zukonstruierenden System, beschreibend, deskriptivDefinition – Festlegung einer präzisen Sprechweise fürKonzepte etc.
![Page 20: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/20.jpg)
Glossar
Verzeichnis der Begriffe und Bezeichnungen desAnwendungsgebietsPräzise Definition der Begrifflichkeiten – hilftMehrdeutigkeiten zu vermeidenerfordert genaues Verstehen des AnwendungsgebietsBasis der Kommunikation zwischen Fachexperten undSoftwareentwicklernRegeln:
Hintergrund der Begriffsbildung festhaltenAgreement bei allen Beteiligten herstellenKonsistente Struktur festlegenZentral zugänglichÜber die Laufzeit des Projekts gepflegtVerwendung der Begriffe des Glossars ist verpflichtend
![Page 21: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/21.jpg)
Übersicht
Was spezifizieren und dokumentieren?
Spezifikation in natürlicher Sprache
Modellbasierte SpezifikationenAnwendungsfälleDrei PerspektivenDatenperspektivePerspektive der FunktionalitätPerspektive des Verhaltens
Formale Spezifikationen
![Page 22: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/22.jpg)
Use-Case-Diagramm
Anwendungsfall: Interaktionssequenz eines Akteurs mit demSystem zur Erreichung eines ZielesUse-Case-Diagramm: Übersicht über die Anwendungsfälleund ihre Beziehungen zur Systemumgebungsowie untereinanderNicht viel mehr als eine graphisch dargestellte Liste derAnwendungsfälle
![Page 23: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/23.jpg)
Beispiel Use-Case-Diagramm
Terminplaner
Initiator
Teilnehmer
Bearbeite Anfrage
Melde Einschränkungen
Löse Konflikte
Konflikt-löser
<include>
![Page 24: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/24.jpg)
Spezifikation des Anwendungsfalls
Oft werden Blaupausen für textuelle Darstellung verwendet,z.B. Alistair Cockburn: Writing Effective Use CasesAktivitätendiagramm zur Darstellung der InteraktionenSequenzdiagramm zur Darstellung der Interaktionen
![Page 25: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/25.jpg)
Kritik der Ansatzes mit Anwendungsfällen
Use cases are a popular albeit fairly fuzzy form of opera-tional specification. As their specification does not conveymuch, use cases are not really amenable to useful forms ofanalysis.However, they provide an outline view of the operationsthat an agent has to perform; such a view may prove usefulfor elicitation and communication with stakeholders.
– van Lamsweerde S. 277
![Page 26: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/26.jpg)
Drei Perspektiven für Anforderungen
DatenperspektiveWelche Daten benötigt man für die Aufgabe?Wie hängen sie zusammen?Welche Daten speichert und/oder liefert das System?Perspektive der FunktionalitätWelche Transformation von Daten macht das System?Welche Aktionen in der Umgebung löst es aus?Perspektive des VerhaltensWelche Zustände hat das System?Wie reagiert es auf Ereignisse in bestimmten Zuständen?Welche Zustandsübergänge macht es dann?
![Page 27: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/27.jpg)
Entity-Relationship-Modellierung
Entitäten und EntitätstypenAttributeBeziehungen und Assoziationen (Beziehungstypen)MultiplizitätenDiagrammdarstellung in Chen-Notation oder UML-Notation
![Page 28: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/28.jpg)
Beispiel: Bibliotheksverwaltung
*
1
1 *
*
*
1
*
beschreibt
Vormerkung
Vormerkdatum
Ausleihe
AusleihdatumRückgabedatum
Ausleiher
AusweisNr {PK}NameVornameAdresseE-Mail
Buchexemplar
Signatur {PK}Kaufdatum
Buchtitel
ISBN {PK}AutorTitelVerlagOrtJahr
Student
MatrikelNrStudienbeginn
Dozent
PersonalNrEintrittsdatum
![Page 29: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/29.jpg)
UML-Klassendiagramm
Weiterentwicklung der Entity-Relationship-Modellierungim Wesentlichen kommen Methoden hinzuzugeschnitten (und basierend) auf objekt-orientierteProgrammiersprachen – etwas andere Semantik alsER-Modelle
![Page 30: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/30.jpg)
Strukturierte Analyse
Spezifikationsmethode aus den 80er JahrenAktivitätsdiagramm: Prozesse/Funktionen mit Input- undOutput-DatenDatenflussdiagramm:
Datenspeicherdargestellt durch parallele LinienDatenflussdargestellt durch PfeilProzess/Funktiondargestellt durch OvalAkteurdargestellt durch Rechteck
wird heute nicht mehr viel verwendet
![Page 31: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/31.jpg)
Beispiel: Terminplaner
Initiator
Anfrageprüfen
Einschränkungenanfragen
Einschränkungensammeln
Einschränkungenzusammenführen
Terminfestlegen
Einschränkungen
Teilnehmer
Teilnehmer
AnfrageTermin
Kopie derAnfragen an Teilnehmer
Anfrageungültig
Anfragegültig
AnfrageEinschränkungen
IndividuelleEinschränkungen
MöglicheTermine
Termin-benachrichtigung
![Page 32: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/32.jpg)
UML-Diagramme
AktivitätendiagrammAktivitäten, Kontrollfluss, Entscheidungsknoten,Synchronisation nebenläufiger Ausführung, . . .Sequenz- bzw. InteraktionsdiagrammBeteiligte Rollen, Lebenslinie, Nachrichten/Methodenaufruf,. . .
![Page 33: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/33.jpg)
Statecharts bzw. UML-Zustandsdiagramm
Statechart von David Harel 1984Zustandsdiagramm der UML
Prinzip
Zustand Folge-zustand
Ereignis/Aktion
![Page 34: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/34.jpg)
Beispiel: Terminplaner
Daten-sammlung
TerminValidierung
Termine
Einschrän-kungen
angefragt
Einschrän-kungen
auflösen
Planung
Terminfestgelegt
Terminmitgeteilt
Anfrage abgelehnt
Terminanfrage
[nicht autorisiert]
[autorisiert]
okay
nicht möglich
[alle verfügbar]
[Konflikte]Einschränkungenabgeschwächt [keine Konflikte]/Termin festlegen
/mitteilen
![Page 35: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/35.jpg)
Übersicht
Was spezifizieren und dokumentieren?
Spezifikation in natürlicher Sprache
Modellbasierte Spezifikationen
Formale SpezifikationenLogikBeispiel: ZBeispiel: AlloyDiskussion formaler Methoden
![Page 36: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/36.jpg)
Grundlagen formaler Spezifikationen
AussagenlogikAtomare Aussagen, die wahr oder falsch sein könnenKomplexe Aussagen gebildet durch ¬ ,∧,∨,→, . . .
PrädikatenlogikTerme bezeichnen Objekte des Universums, FunktionenPrädikate sind Beziehungen der Objekte, die wahr oder falschsein könnenAussagen gebildet durch aussagenlogische Operatoren sowiedie Quantoren über Variablen ∀ x ,∃ yTemporale LogikFolge von Zuständen, in denen bestimmte atomare Aussagenwahr oder falsch sein könnenTemporale Operatoren ♦ später mal, � immer, © imnächsten Zustand
![Page 37: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/37.jpg)
Die Spezifikationssprache Z
Z ist eine Sprache zur formalen Beschreibung mathematischerSachverhaltedient der Beschreibung von Software und auch Hardwareentwickelt an der Universität Oxford von Jean-Raymond Abrial2002 durch ISO als Standard 13568 standardisiertName kommmt von Ernst Zermelo, Axiome der Mengenlehrenach Zermelo-Fraenkel (ZF, ZFC)in der Praxis verbreiteste formale SpezifikationsspracheLiteratur: Jonathan Jacky The Way of Z: PracticalProgramming with Formal Methods, CUP 1997
![Page 38: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/38.jpg)
Grundelemente von Z, 1
Eine Z-Spezifikation besteht aus Mengen, Typen, Axiomenund SchemataTypen, wie [Datum],NMengen haben einen Typ, wie Personen :P Name, Zaehler : NAxiome definieren globale Variablen und Invarianten, wie
limit : N
limit ≤ 65535
![Page 39: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/39.jpg)
Grundelemente von Z, 2
Schemata bilden einen eigenen Namensraum und gliedern dieSpezifikation, sie bestehen aus:
NameDeklaration von ZustandsvariablenInvariantenBeziehungenOperationen, die Zustand ändern
![Page 40: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/40.jpg)
Beispiel: Bibliotheksverwaltung
Bestand an Büchern
BibliothekBestand : PBuchBenutzer : PPersonausgeliehen : Buch 7→ Person
dom ausgeliehen ⊆ Bestandran ausgeliehen ⊆ Benutzer
![Page 41: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/41.jpg)
Beispiel: Bibliotheksverwaltung
Ausleihen von Büchern
Ausleihen∆BibliothekauszuleihendesBuch? : BuchAusleiher? : Person
auszuleihendesBuch? ∈ Bestand \ dom ausgeliehenAusleiher? ∈ Benutzerausgeliehen′ = ausgeliehen ∪ {(auszuleihendesBuch?,Ausleiher?)}Bestand ′ = BestandBenutzer ′ = Benutzer
![Page 42: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/42.jpg)
Alloy
Spezifikationssprache entwickelt von Daniel Jackson MITbasiert auf Mengen, Relationen und relationaler Logikhat interaktiven Alloy-Analyzer, der Modelle zur Spezifikationfindet und so interaktives Entwickeln einer SpezifikationerlaubtAlloy = Legierung, weil Verschmelzung von Z mit ModelCheckingverwendet oft für (kritische) Ausschnitte einer SpezifikationLiteratur: Daniel Jackson Software Abstractions: Logic,Language, and Analysis, MIT Press 2012Literatur: Burkhardt Renz und Nils Asmussen KurzeEinführung in Alloy, THM 2014
![Page 43: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/43.jpg)
Beispiel mit Alloy
Demo Zugsegmente und Sicherheitsrichtlinie (nach D. Jackson)
![Page 44: Softwareanforderungsanalyse - Spezifizieren und](https://reader033.vdocuments.mx/reader033/viewer/2022052905/62902fb80248ae54d63b10f2/html5/thumbnails/44.jpg)
Diskussion: formale MethodenStärken
Immer eindeutig (da Semantik formal definiert)Konsistenz formal prüfbarErfüllung wichtiger Eigenschaften beweisbar und/oderautomatisiert testbarFormale Verifikation von Programmen/Code möglichModelle simulierbar/animierbar, z.B. Alloy
Schwächensehr aufwändigNachweis der Vollständigkeit schwierigGroße Spezifikationen schwer zu verstehen, profundeAusbildung notwendigAspekte von Benutzerschnittstellen schwierig darstellbar