Vorlesung Software Engineering I

Slides:



Advertisements
Ähnliche Präsentationen
Business Engineering Philipp Osl, Alexander Schmidt
Advertisements

Integrations- und Funktionstests im Rahmen des V-Modelles
Das V - Modell - Überblick
V - Modell Anwendung auf große Projekte
Prüfungspläne Bachelor-Thesis
Vorgehensmodell - Wasserfallmodell
Von David Keß, Heinrich Wölk, Daniel Hauck
Gliederung der Ausführungen: Einleitung, Hauptteil, Schluss
Die Planungsphase -Anforderungsanalyse-
Projektumfeld Gesellschaftliche Strömungen Strukturen/ Gliederung
Anwendungsfalldiagramm
Konzeption und Realisierung eines Software Configuration Management Systems Autor: Alex Rempel Referent: Prof. Dr. Elke Hergenröther Korreferent: Prof.
Modellbasierte Software-Entwicklung eingebetteter Systeme
Eingebettete Systeme Qualität und Produktivität Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
On a Buzzword: Hierachical Structure David Parnas.
Requirements Engineering
Universität Stuttgart Institut für Kernenergetik und Energiesysteme I nstitut für K ernenergetik und E nergiesysteme Rational Unified Process (RUP) - Definitionen.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Was ist Refactoring? Bevor man die Integration angeht, mag es angebracht sein, den.
Risiken und Chancen Risiko Beurteilung: Dazu gehört die Identifikationen von Risiken, ihre Analyse und das Ordnen nach Prioritäten. Risiko Kontrolle: Dazu.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Aufgaben des Testens Vergleich des Verhaltens einer Software mit den an sie gestellten.
Beispiel: Wasserfallmodell als einfaches Phasenmodell
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Agile Software Entwicklung mit dem RUP Agile Softwareentwicklung Best Practice bei.
es gibt (fast) nichts, was nicht anders gemacht werden könnte
Rational Unified Process (RUP) - Definitionen
eXtreme Programming (XP)
Access 2000 Datenbanken.
Datenbankentwurfsprozess
UML Begleitdokumentation des Projekts
Vorlesung Gestaltung von soziotechnischen Informationssystemen - RequirementsEngineering und Contextual Design- Thomas Herrmann, Lehrstuhl Informations-
Anpassung des RUP an ein konkretes Projekt - 1
Vorgehensmodelle: Schwergewichtige Modelle
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Spezifikation von Anforderungen
Das Wasserfallmodell - Überblick
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Weitere Vorgehensmodelle Der Rational Unified Process RUP –bei IBM.
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2006 / 2007Folie 1 Agile Vorgehensweisen Hintergrund –in den letzten Jahren hat.
11. Vorlesung: Dynamische Konzepte am Fallbeispiel
Fünf-Fünf-Zwei der 3. Vorlesung/Übung Requirements Engineering WS 10/11 Marin Zec.
Das Pflichtenheft Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth
Durchführung einer Zielgruppenanalyse
REQUIREMENTS ENGINEERING
Software-Technik „Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden und Werkzeugen für die arbeitsteilige, ingenieurmäßige.
Eidgenössisches Finanzdepartement EFD Eidgenössische Finanzverwaltung EFV Vorhaben E-Rechnung Review-Unterstützung durch ffO EFV.
Kompetenz -, Lern - und Prüfungsbereiche Anforderungsbereiche
Wasserfallmodell und Einzelbegriffe
IKP Uni Bonn Medienpraxis EDV II Internet-Projekt
PRO:CONTROL Ziel des Moduls Arbeitspakete
Projektmanagement Ziel und Umfang eines Softwareprojektes definieren
Modellbasierte Software-Entwicklung eingebetteter Systeme
Produktvergleich durch Werbung und Fragebogen
Lernen durch Vergleiche
GIS Design: A Hermeneutic View (Michael D. Gould)
QFD Quality Function Depolyment
Software Engineering Strukturierte Analyse
Institut Experimentelles Software Engineering Fraunhofer IESE Vorstellung des neuen GI Arbeitskreis: Produktlinientools Isabel John, Fraunhofer IESE
Requirements Engineering Universität zu Köln Medienkulturwissenschaften/Medieninformatik Kurzreferat in Planung von Softwareprojekten bei Herrn Christoph.
Was ist Quality Function Deployment?
Methoden der Sozialwissenschaften
Seminar: Software-Architektur Einführender Vortrag
Funktionale Unifikations-Grammatik (FUG)  Hauptmerkmale der FUG.
Studieneinstiegstest – Motivation, Hintergrund und Aufbau
Software-Entwicklung
Sortierverfahren Mit VB 2010 express edition JBS Tr, info Q1.
Performanz- und Lasttests Formale Methoden
1 Prozesse im Studiengangsmanagement Kontext: Neues Abschlussziel erstellen Neues Studienfach erstellen.
1 Prozesse im Studiengangsmanagement Kontext: Neues Abschlussziel erstellen Neues Studienfach erstellen.
Formale Methoden Semesterprojekt Präsentation Thema 1 Test-Arten Fernstudium Master WI, MWI 10F Jan te Kock,
1 Suchprofile erstellen und verwalten. 2 Suchprofile bei Registrierung Hier können Sie bis zu drei Suchprofile einrichten. Diese finden Sie später unter.
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Entwurf Dr. Wolfgang Wörndl
1. Betreuer: Prof. Dr. Jörg Striegnitz 2. Betreuer: Dr. Martin Schindler Kontextsensitive Autocompletion für Klassendiagramme in der UML/P Florian Leppers.
 Präsentation transkript:

Vorlesung Software Engineering I Requirements Engineering Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Der Systemanalytiker (Requirements Engineer) ist dafür zuständig. Definition Die Anforderungsanalyse ist üblicherweise die Startphase im Software-Lebenszyklus. Requirements Engineering steht für das systematische Vorgehen bei der Erfassung, Beschreibung, Prüfung und Verfolgung von Anforderungen für ein zu entwickelndes (Software-) System. Der Systemanalytiker (Requirements Engineer) ist dafür zuständig. http://www.infforum.de/themen/anforderungsanalyse/thema_requirements.htm Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Pohl, Klaus; Rupp, Chris: Basiswissen Requirements Engineering Literatur Pohl, Klaus; Rupp, Chris: Basiswissen Requirements Engineering Aus und Weiterbildung zum Certified Professional for Requirements Engineering Foundation Level nach IREB-Standard. dpunkt, Heidelberg, 2009. Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

 Lastenheft Pflichtenheft Kundenanforderungen Systemanforderungen Anforderungsphasen Kundenanforderungen Definition der Systemeigenschaften (WAS)  Lastenheft Systemanforderungen Technische Spezifikation des Systems (WIE) Pflichtenheft Pflichtenheft wird Vertragsgrundlage! Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Analysephase  Designphase Anforderungs- Spezifikation (Lastenheft) Anforderungs-Ermittlung Produkt- Spezifikation (Pflichtenheft) Anforderungsanalyse, Systemmodellierung Design Architektur- Spezifikation “Projektstart“ Architekturentwurf WAS für ein System sollen wir bauen, bzw. WAS für Aspekte eines Systems sollen verändert werden? WAS sind die Anforderungen des Kunden? Ist es möglich, das geforderte System zu realisieren ? Nach Balzert: - Anforderungsspezifikation - Modell = „Fachliche Lösung“ - Architektur = „Technische Lösung“ - Implementierung = „System/Produkt“  Sind strikt getrennt zu halten! Detailentwurf Modul-/Klassen- Spezifikationen Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Relevanz von RE Requirements Engineering (RE) ist eine Schlüsseldisziplin der Systementwicklung und entscheidet maßgeblich über den Erfolg oder Misserfolg eines Projekts. Die perfekte Analyse ist nicht möglich, aber sie muss das Ziel sein !!! Ein guter Requirements-Engineer benötigt bestimmte persönliche Eigenschaften: Analytisch, Selbstbewusst, Emphatisch, Abstraktes Denken, Neugierig, Kommunikativ, Penetrant, präziser schriftlicher Ausdruck. Analytisch, Selbstbewusst, Emphatisch, Abstraktes Denken, Neugierig, Kommunikativ, Penetrant, präziser schriftlicher Ausdruck. Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Definition Eine Anforderung (Requirement) ist eine funktionale oder nichtfunktionale Vorgabe, die ein System erfüllen soll bzw. eine technische oder formale Restriktion, die von außen vorgegeben und zu beachten ist. Die Definition der Anforderung muss als Übereinkunft zwischen Auftraggeber und Auftragnehmer formuliert sein. Eindeutigkeit ist dabei ein wesentliches Kriterium. Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Anforderungen an Anforderungen Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Problem: Widersprüchliche Anforderungen Vexierbild Nicht realisierbar ! Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Problem: Mehrdeutige Anforderungen Vexierbild Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Problem: Mehrdeutige Anforderungen Mehrere Interpretationen möglich Was ist richtig ? Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Problem: Unscharfe Anforderungen Nicht interpretierbar ! Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Prägnant Schlecht: Das geplante System soll sowohl von Experten als auch von unerfahrenen Personen (Nutzerinnen und Nutzern) benutzbar sein. Unerfahrene User sollen auch ohne große Vorkenntnisse der Bedienerführung oder des Vorgängersystems die vorgesehene Systemfunktionalität nutzen können. Zur Benutzung des Systems sollen die Anwender also keinerlei Schulungen oder spezielle Hilfestellungen benötigen. Der Umgang mit dem System muss daher leicht verständlich sein und ohne große Erfahrung mit dem Vorgängersystem oder vergleichbaren Systemen erfolgen können. Prägnant Aktiv Überprüfbar Verfeinerbar Wertschöpfend Begründbar Deklarativ Besser: Ein unerfahrener Benutzer soll das System ohne spezielle Schulung verwenden können Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Aktiv Schlecht: Die Dauer für die Erfassung und Verarbeitung der Messdaten soll halbiert werden. Dadurch soll die Wartezeit bis zum Vorliegen von Ergebnissen verkürzt werden. Prägnant Aktiv Überprüfbar Verfeinerbar Wertschöpfend Begründbar Deklarativ Besser: Das System erfasst und verarbeitet die Messdaten im Vergleich zum System xy doppelt so schnell. Dadurch muss der Nutzer kürzer auf das Vorliegen von Ergebnissen warten Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Überprüfbar (Quantitativ) Schlecht: Das System soll besser sein als das Vorgängersystem. Prägnant Aktiv Überprüfbar Verfeinerbar Wertschöpfend Begründbar Deklarativ Besser: Das System soll folgende Verbesserungen gegenüber dem System xy bieten: … Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Verfeinerung von Zielen Schlecht: Die Benutzung des Systems soll selbsterklärend sein Prägnant Aktiv Überprüfbar Verfeinerbar Wertschöpfend Begründbar Deklarativ Besser: Das System soll selbsterklärend sein, d.h. ein durchschnittlicher Nutzer soll durchschnittlich nach 2 Min. folgende Funktionen aufrufen können: … Das System soll selbsterklärend sein, d.h. den Vorgaben nach W3C… in Bezug auf … folgen Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Schlecht: Das System soll leicht benutzbar sein. Mehrwertbildung Schlecht: Das System soll leicht benutzbar sein. Prägnant Aktiv Überprüfbar Verfeinerbar Wertschöpfend Begründbar Deklarativ Besser: Das System soll … so dass sich die Nutzer auf andere Aufgaben konzentrieren können Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Nachvollziehbare Begründungen Schlecht: Das System soll auch von ungeschulten Benutzern intuitiv benutzbar sein. Prägnant Aktiv Überprüfbar Verfeinerbar Wertschöpfend Begründbar Deklarativ Besser: … weil es auch in Mietfahrzeugen einsetzbar sein soll Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Keine Lösungsvorwegnahme Schlecht: Durch komprimierte Datenübertragung im Cache soll das geplante System um 10% kürzere Antwortzeiten aufweisen Prägnant Aktiv Überprüfbar Verfeinerbar Wertschöpfend Begründbar Deklarativ Besser: Das System soll um 10% kürzere Antwortzeiten aufweisen als System xy. Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Problem: Trennung von Anforderung und Lösung WAS = Spezifikation, WIE = Entwurf /REQ 1/ „Das System druckt eine wahlweise nach Namen oder Land alphabetisch sortierte Liste von Teilnehmern mit Nummer, Name, Vorname, Affiliation und Land. Auf jeder Seite sind unten links das Erstellungsdatum und unten rechts die Seitenzahl aufgedruckt.“ Ist dieser Satz eine Anforderung oder eine Entwurfsentscheidung? ➜ WAS vs. WIE ist kontextabhängig und liefert keine brauchbare Abgrenzung zwischen Anforderungen und Entwurfsentscheidungen. Die gleiche Sache kann je nach Kontext beides sein. Probleme (beschrieben als Anforderungen) und Lösungen (das Ergebnis von Entwurfsentscheidungen) sind hierarchisch miteinander verzahnt! ➜ WAS vs. WIE ist stufenabhängig: Eine Entwurfsentscheidung auf Stufe n wird zur Aufgabe (=Anforderung) auf Stufe n+1 Top-Down! Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Problembeispiel: WAS versus WIE Problem: Julia Meier hat ihr Studium abgeschlossen und erhält keine Unterstützung von ihren Eltern mehr. Sie ist daher mit der Anforderung konfrontiert, ihren Lebensunterhalt zu sichern. Sie wohnt in Adorf und hat ein Stellenangebot bei einer Firma in Befingen. Ferner hat sie einen reichen Freund und eine ebenso reiche Erbtante. Hierarchische Verzahnung von Problem und Lösung ! Übergeordnete Entwurfsentscheidungen beeinflussen untergeordnete Anforderungen ! Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Ja, mit operationaler Abgrenzung: Lösung: WAS versus WIE Sind Spezifikation von Anforderungen und Entwurf von Lösungen voneinander trennbar? Ja, mit operationaler Abgrenzung: Anforderungsänderungen brauchen die Zustimmung des Auftraggebers Entwurfsänderungen kann der Auftragnehmer autonom vornehmen Braucht eine Veränderung eines Satzes, eines Modellelements, eines Konstrukts, etc. die Zustimmung des Auftraggebers/Kunden? ja ➜ Anforderung nein ➜ Entwurfsentscheidung Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Ist die Trennung zwischen Anforderungen und Lösungen notwendig ? WAS versus WIE Ist die Trennung zwischen Anforderungen und Lösungen notwendig ? Ja ! Die Kompetenz zur Festlegung von Anforderungen liegt fast immer bei anderen Personen als die Kompetenz zum Treffen von Entwurfsentscheidungen Anforderungen und Entwürfe sind daher getrennt zu dokumentieren ! Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Prozesse im Requirements Engineering Kennen lernen der Anwendungsdomäne Identifikation von Konzepten, Beziehungen, grundlegendem Verhalten Bestimmung der Anforderungen an das System Identifikation der Geschäftsprozesse, die das System unterstützen soll Identifikation der Funktionen die das System dafür bieten soll  Das Ganze geschieht auf zwei Ebenen, aus denen sich die zwei verschiedenen "Workflows" des RE-Prozesses ergeben: Anforderungserhebung („Requirements Elicitation“): Definition des Systems in einer Form, die Kunden und Entwickler verstehen Anforderungsanalyse („Requirements Analysis“): Technische Spezifikation des Systems in einer für die Entwickler verständlichen und umsetzbaren Form. Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Wie komme ich zu den richtigen Anforderungen? Teilgebiete Wie komme ich zu den richtigen Anforderungen? Wie dokumentiere ich Anforderungen verständlich? Wie vermeide ich inkonsistente, unvollständige Anforderungen? Wie manage ich Änderungen der Anforderungen? Wie beschleunige ich mit Templates und Patterns den Analyseprozess? Wie sichere ich die Testbarkeit der Anforderungen? Wie messe ich den Projektfortschritt? Welchen Faktor spielt der Mensch im Analyseprozess? Wie verwalte ich Anforderungen? Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Standards Standards für das Requirements Management Ein sehr bekannter Standard zum Requirements Management ist der IEEE 830 (Recommended Practice for Software Requirements Specifications). Er ist ein konkreter praxisnaher Standard für die Beschreibung und die Definition von Softwareanforderungen. Es werden Strukturen vorgeben für den Aufbau der Dokumentation, den Aufbau der einzelnen Anforderungen und sogar zur Formulierung der Anforderungen. Eine gute Ergänzung hierzu ist der Standard IEEE 1362 (Guide for Information Technology – System Definition, Definition - Concept of Operations Document), der letztendlich ein Standard für Anforderungsdokumente (Lastenhefte) darstellt. Eine weitere sinnvolle Ergänzung zu den beiden genannten Standards sind die Spezifikationen aus VDI 2519 – Blatt 1 (Vorgehensweise bei der Erstellung von Lasten-/Pflichtenheften). Hier wird definiert was Lasten- und Pflichtenhefte sind, was sie enthalten sollten und wie sie erstellt werden sollten. Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Anforderungsermittlung: Methoden engl. „Requirements Elicitation“ http://www.software-kompetenz.de/?6926 http://www.software-kompetenz.de/?6926 Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Beobachtungstechniken Der Systemanalytiker beobachtet, welche Prozesse die Stakeholder während ihrer Arbeit ausführen. Er erfasst diese Abläufe und ermittelt daraus die Vorgänge sowie Verbesserungsansätze für das zu entwickelnde System. Beobachtungstechniken eignen sich dazu, sowohl Anforderungen auf sehr detailliertem Niveau als auch unterbewusste Anforderungen zu ermitteln. Beispiele hierfür sind Feldbeobachtung und Apprenticing. Die Apprenticing-Technik ("in die Lehre gehen") ist eine Beobachtungstechnik bei der Anforderungsermittlung. Dabei erlernt der Systemanalytiker die Tätigkeiten der Stakeholder unter deren Anleitung, um sich ein genaues Bild von den Arbeitsabläufen zu machen. Diese Stakeholder sind meistens die Mitarbeiter, die wichtiges fachliches Know-how besitzen und nicht die Zeit haben, bei der Anforderungsermittlung mitzuarbeiten. Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Befragungstechniken Diese Ermittlungstechniken basieren darauf, Stakeholder nach ihren Wünschen und Bedürfnissen zu befragen. Hierbei stellt ein Systemanalytiker dem Stakeholder gezielte Fragen und lässt sich Sachverhalte, Abläufe und Wünsche schildern. Die Befragungstechniken Fragebogen, Interview, Selbstaufschreibung und On-Site-Customer sind zur Ermittlung von Anforderungen beliebiger Detaillierungsgrade geeignet. Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Vergangenheitsorientierte Techniken Um bestehende Lösungen in ein neues System zu integrieren, sind vergangenheitsorientierte Techniken geeignet. Durch diese Techniken wird die Möglichkeit geschaffen Erfahrungen aus bereits erfolgreich abgeschlossenen Systementwicklungen wiederzuverwenden. Beispiele hierfür sind Systemarchäologie und Reuse. Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Feedback-Techniken Missverständnisse, Fehlinterpretationen oder Fehler bei der Formulierung können bei der Ermittlung der Anforderungen durch einen Systemanalytiker auftreten. Um die Qualität der Anforderungen sicherzustellen, muss der Stakeholder das Ergebnis überprüfen. Hierzu verwendet er Feedback-Techniken wie Simulationsmodelle und Anforderungsreview (Anforderungsprüfung und Akzeptanz). Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Unterstützende Techniken Es gibt unterstützende Techniken, die in Kombination mit den bisher beschriebenen Ermittlungstechniken eingesetzt werden. Zu diesen unterstützenden Techniken gehören z.B. Workshops, Snowcards, CRC-Karten, Modellierung etc. Diese Techniken dienen nicht primär der Ermittlung von Anforderungen, sondern der Optimierung der Ergebnisse. Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Kundenorientierung im RE Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Nichtfunktionale Anforderungen Funktionale Anforderungen Anforderungsarten Visionen und Ziele Rahmenbedingungen z.B. Juristische Vorgaben Kontext und Überblick Systemumgebung Nichtfunktionale Anforderungen Qualitätsmerkmale Funktionale Anforderungen Funktionen Bevor funktionale und nichtfunktionale Anforderungen sowie Rahmenbedingungen festgelegt werden, sollten die Visionen und Ziele des Systems aufgestellt werden. Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Funktionale und nichtfunktionale Anforderungen Beschreibung der Dienste des Systems, z.B. wie es auf bestimmte Eingaben reagiert oder sich in bestimmten Situationen verhält z.B. was passiert wenn ein bestimmter Knopf gedrückt wird Nicht-funktionale Anforderungen Randbedingungen für die Dienste, z.B. zeitliche Einschränkungen, Entwicklungseinschränkungen, usw. z.B. Lebensdauer oder Leistung Domänen-Anforderungen allgemeine Anforderungen für alle Systeme einer bestimmten Anwendungsdomäne (Medizintechnik, Schienenverkehr...) z.B. anwendbare Standards Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Funktionale Anforderungen Funktionalität oder Dienste des Systems Funktionale Nutzeranforderungen: Abstrakte Außensicht Funktionale Systemanforderungen: Abstrakte Innensicht Formulierung hängt ab von der zu erwartenden Nutzung und dem Einsatzbereich des Systems BLACK BOX VIEW! Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Nichtfunktionale Anforderungen Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Struktur einer Anforderung Typischerweise besteht eine Anforderung aus folgenden Attributen: Identifikator (Requirement Number): Identifiziert die Anforderung eindeutig. Beschreibung (Description) Problembeschreibung (Rationale): Beschreibt das die Anforderung verursachende Problem. Priorität (Priority): Ein numerischer Wert, der die Priorität dieser Anwendung definiert und dann wichtig wird, wenn nicht alle Anforderungen erfüllt werden können. Quelle (Originator): Identifiziert die anfordernde Person oder ein Dokument, aus dem sich die Anforderung ergibt, beispielsweise eine Rechtsvorschrift. Abnahmekriterium (Fit Criterion): Beschreibt eine messbare Bedingung, mit der später geprüft wird, ob die Anforderung erfüllt wurde. Konflikte (Conflicts): Hier können Anforderungen aufgeführt werden, die dieser Anforderung widersprechen, sodass zwischen ihnen abgewägt werden muss. Informationen zum Lebenszyklus: Status: Identifiziert den aktuellen Zustand der Anforderung, beispielsweise ob sie vom Auftragnehmer bereits akzeptiert wurde. Offene Punkte: Bietet Platz für noch zu klärende Sachverhalte. History: Versionsgeschichte der Anforderung: Wann wurde sie von wem erstmals formuliert, wann von wem geändert usw. I Produktrelease: Identifiziert die Version des zu erstellenden Produkts, in dem die Anforderung erfüllt werden soll. Da Anforderungen nicht konstant bleiben, sondern sich im Verlauf eines Projektes weiterentwickeln, werden auch Informationen zu ihrem Lebenszyklus benötigt. Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Anforderungsbeschreibung Verbal Fließtext, strukturierte Texte Non-Verbal Grafische Notationen Formale Sprachen Ich nutze gerne UML. Vielleicht liegt es daran, dass ich bei Sophist viele viele UML-Trainings gehalten habe. Typischerweise verwende ich UML als Ergänzung zu sprachlichen Spezifikationen, z. B. für - Zusammenhänge von Dingen (Objekten), z. B. Eine Organisationsstruktur im Klassendiagramm - Lebenszyklus von Dingen im System, z. B. ein Dokument im Knowledge Management System im Zustandsdiagram - Kommunikation zwischen Systemen im Sequenzdiagramm - Natürlich das Use-Case-Diagamm als Übersicht der Dienstleistung des Systems Selten, aber es kommt auch vor: eine vollständige objektorientierte Analyse habe ich bisher in einem Projekt durchgeführt. Alle Use-Cases habe ich vollständig durch Zustandsdiagramme spezifiziert. Die Besonderheit war, dass der Kunde UML liebte und ich mit ihm zusammen die Diagramme entworfen habe, die alle Funktionen definierten. Es war phantastisch. Präzise, vollständig, Klar. Die meisten Kunden würden diese Diagramme allerdings nicht verstehen. Daher spezifiziere ich meist mit Sprache und ergänze wo sinnvoll durch Diagramme. Mein Ziel ist, einerseits den Kunden eine verständliche Spezifikation zu liefern und andererseits präzise und eindeutig zu definieren. Kunden verstehen Sprache (fast :) immer, allerdings sind komplexe Zusammenhänge schwer beschreibbar. Diese fasse ich in ein Diagramm und ergänze die sprachliche Beschreibung. Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Natürlichsprachliche Anforderungen Anforderungen werden meist in natürlicher Sprache beschrieben Vorteil: Einfach, flexibel, universell Nachteil: Gefahr der Mehrdeutigkeit, Vermischung etc.  Erstellung eines Glossars  Verwendung von Schablonen Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Natürlichsprachliche Anforderungen Die Anforderungsschablone der SOPHISTen <When?> The SYSTEM SHALL SHOULD WILL <process> PROVIDE <whom?> THE ABILITY TO BE ABLE TO <process> <thing to be processed> <process detail> <Under what conditions?> Darstellung der englischen Version Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Sprachliche Abhängigkeiten… Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Vor- und Nachteile der Sprachschablone Vorteile: Einfach lesbar Übersichtlich Sehr genau Einfach zu erstellen Semiformal, daher maschinell analysierbar Nachteile: Muss der Grammatik der verwendeten Sprache angepasst werden Möglicherweise Akzeptanzprobleme Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

(Semi-) Formale Konzepte Anwendung von Modellierungskonzepten zur Anforderungsspezifikation, die das System aus verschiedenen Sichten beschreiben (Statik, Dynamik, Logik) Nachteil: Auftraggeber und Auftragnehmer müssen diese Notationen verstehen. Weitverbreitet: UML-Diagramme  Nächste Vorlesung Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Requirements Management Software Engineering I VE 03: Requirements Engineering Version 24.04.2017

Requirements Coverage & Traceability Software Engineering I VE 03: Requirements Engineering Version 24.04.2017