pptx

Report
Requirements Engineering
Jaroslav Svacina
Plan für die heutige Übung
•
•
•
•
•
•
•
Vorstellung
Organisatorisches
Zusammenfassung Requirements-Engineering
Beispiele
Vorstellung Übungsblatt
Fragen
(Werkzeuge)
Organisatorisches
Organisatorisches
• Wöchentliche Übung
• Übungsblätter (ein- oder zweiwöchiger Rhythmus)
•
– Abgabe vor der entsprechenden Übung per Mail
• Jaroslav.Svacina @ fokus.fraunhofer.de
– Bearbeitung in Gruppen (2 Personen)
– Ca. 8 Stunden pro Woche für die Übungsblätter
– Keine Punkte, qualitative Bewertung
– Übungsblätter müssen bearbeitet werden
Ablauf der Übung
– Vorstellung / Zusammenfassung eines Themas aus der Vorlesung (Optional, keine
Wiederholung der Vorlesung)
– Diskussion des letzten Übungsblattes
– Vorstellung des neuen Übungsblattes
• Fragen, Wünsche
Zusammenfassung Requirements-Engineering
Motivation
• Ein gemeinsames Verständnis über ein zu entwickelndes System zwischen Auftragnehmer und
Auftraggeber erreichen
• Beispiele aus der Praxis:
– TollCollect und das LKW-Mautsystem – 16 Monate Verspätung, Zahlungsausfälle in
Milliardenhöhe
– Hartz IV Software – Verspätung, Testphase ausgelassen, Rückgriff auf alte Systeme
notwendig
– Hochschulstart
• Verspätung, deutlich höhere Kosten als geplant
• Z.B. Schnittstellenprobleme: Unterschiedliche Benennung gleicher Fächer
Kostenfortpflanzung eines Fehlers
McConnell, Steve (2004). Code Complete (2nd ed.)
•
•
•
•
Kosten für die Behebung von Fehlern abhängig von ihrer Verweildauer in der Software
Fehler möglichst frühzeitig erkennen
In allen Phasen aktiv gegen Fehler vorgehen
Richtig betriebenes Requirements Engineering ist wirtschaftlich
Definitionen
Anforderung nach IEEE Glossar für Software Engineering:
Eine Anforderung ist die dokumentierte Darstellung einer Bedingung oder Fähigkeit gemäß 1.
oder 2.:
1. Beschaffenheit oder Fähigkeit, die von einem Benutzer zur Lösung eines Problems oder
Erreichung eines Ziels benötigt wird.
2. Beschaffenheit oder Fähigkeit, die ein System oder Systemteil erfüllen oder besitzen muss,
um einen Vertrag, eine Norm, eine Spezifikation oder andere, formell vorgegebene
Dokumente zu erfüllen
Anforderungs-Engineering nach SOPHISTen:
Anforderungs-Engineering beschreibt einen systematischen Weg von der Projektidee über die
Ziele zu einem vollständigen Satz von Anforderungen. Es definiert das Vorgehen und die
Qualitätsmerkmale, die jede Anforderung und jede Anforderungsspezifikation erfüllen muss.
Definitionen
• Anforderungsspezifikation (Pohl, Rupp, 2011)
– Eine systematisch dargestellte Sammlung von Anforderungen (typischerweise für ein
System oder eine Komponente), die vorgegebenen Kriterien genügt.
• Lastenheft (DIN 69901 – 5):
– Vom Auftraggeber festgelegte Gesamtheit der Forderungen an die Lieferung und
Leistungen eines Auftragnehmers innerhalb eines Auftrags.
• Pflichtenheft (DIN 69901 – 5):
– Das vom Auftragnehmer erarbeitete Realisierungs-vorhaben aufgrund der Umsetzung
des vom Auftraggeber vorgegebenen Lastenhefts
Einordnung
© Hammerschall
Aufgaben einer Anforderung
• Anforderungen sind die Grundlage für:
•
•
•
•
•
•
Kommunikation
Ausschreibung und Vertragsgestaltung
Systemintegration, Wartung und Pflege
Systemarchitektur
Systemtest
Erhöhung der Mitarbeiterzufriedenheit
Haupttätigkeiten im Anforderungs-Engineering
1. Erhebung
2.
3.
4.
– Interview
– Fragebogen
Dokumentation
– Prosa: Kurze Sätze, ungenaue Adjektive und Adverbien vermeiden (schneller, schöner,
circa)
– Styleguide
– Anwendungsfalldiagramme / Aktivitätsdiagramme / Message Sequence Charts /
Temporale Logik etc.
Validierung
– Review, Inspektion
Verwaltung
– Änderung von Anforderungen
– Grundvoraussetzung: Verfolgbarkeit von Anforderungen
– Werkzeugunterstützung unabdingbar
Arten von Anforderungen
•
•
•
•
•
•
•
Funktionale Anforderungen
Technische Anforderungen (Hardware, Programmiersprache)
Anforderungen an die Benutzerschnittstelle
Qualitätsanforderungen (Zuverlässigkeit, Sicherheit, Effizienz)
Anforderungen an sonstige Lieferbestandteile (Handbuch)
Anforderungen an durchzuführende Tätigkeiten
(Vorgehensweise, Tools)
Rechtlich-vertragliche Anforderungen (Zahlungsmeilensteine,
Vertragsstrafen, Änderungen)
Qualitätskriterien für eine Anforderung
• Anforderungen sollen u.a. folgende Kriterien erfüllen:
–
–
–
–
–
–
Vollständig
Verständlich
Korrekt
Widerspruchsfrei
Eindeutig
Prüfbar
Prinzipien des Requirements Engineering
• Die Betroffenen kennen: Alle Betroffenen (stakeholders) kennen und berücksichtigen
• Ziele identifizieren: Wenige klar formulierte und überprüfbare Ziele sind wichtiger als eine
•
•
•
•
•
•
Fülle von Detailanforderungen
Randbedingungen erheben: Eine Systementwicklung kann an nicht erkannten
Randbedingungen scheitern
Den Wert berücksichtigen: Kosten und Nutzen der Realisierung einer Anforderung
Adäquat spezifizieren: Die Anforderungsspezifikation dokumentiert genau das, was die
Betroffenen wollen/brauchen
Anforderungen messbar spezifizieren: Nur dann sind sie wirklich nützlich
Konsens finden: Verschiedene Betroffene haben unterschiedliche Vorstellungen und
Bedürfnisse
Validieren und Verifizieren: Das Richtige spezifiziert? Richtig spezifiziert?
Zusammenfassung
• Je früher ein Fehler entdeckt wird, desto kostengünstiger ist seine Beseitigung.
• Ziel ist es, qualitativ hochwertige Anforderungen zu schreiben. Auch die
Anforderungsspezifikation muss diesem Anspruch genügen.
• Viele Qualitätsstandards unterstreichen die Bedeutung des Anforderungs-Engineerings. Sie
geben allerdings selten konkrete Handlungsanweisungen, sondern beschreiben Ziele und
Richtlinien.
• Jedes zeitgemäße Vorgehensmodell zur SW-Entwicklung beinhaltet Praktiken zum
Anforderungs-Engineering
Forschung
• Automatische Formalisierung der in Prosa formulierten Anforderungen
• Domänenspezifische Formalismen zur Erfassung von Anforderungen
• …
Beispiele
Lastenheft Türsteuergerät
• Beschreibung der Komponente TSG
• Anforderungen auf unterschiedlichen
Ebenen
– Einbau des TSG sowie dessen
Schnittstellen
– Kommunikation des TSG über den
CAN–Bus
– Anforderungen an die Komponente
aus physikalischer Sicht (z.B.
elektromagnetische Verträglichkeit,
Umwelteinflüsse)
• Definition von Prüfungen, die die
Komponente bestehen muss
Übungsblatt
Übungsblatt - Pedelec
• Informationen z.B. unter
– http://gopedelec.de/
• 2 Aspekte für das Übungsblatt
– Funktionsweise eines einzelnen
Pedelecs (Motorsteuerung,
Batteriemanagement, etc.)
– Verleihstation (Positionierung,
Kommunikation, Verwaltung, etc.)
http://gopedelec.de/
Werkzeuge
Übersicht
• Word/Excel 
• CaliberRM von Borland
• CaseComplete von Serlio Software
• DOORS von IBM/Rational
• Teamcenter Requirements Management von Siemens
• HP Requirements Management von Hewlett-Packard
• in-Step RED von microTOOL
• Jama von Jama Software
• Polarion Requirements von Polarion
• PTC Integrity von PTC
• ReVantage von TZM (Steinbeis Transferzentrum Mikroelektronik)
• unter der Ägide von Eclipse gibt es das RMF (Requirements Modeling Framework) mit der
•
•
•
•
•
Anwender-Oberfläche ProR
TestTrack RM von Seapine Software
Serena Requirements Manager
TopTeam Analyst von Techno Solutions
TOSCA Testsuite von TRICENTIS
Visure Requirements von Visure
Polarion
Contact
Jaroslav Svacina
Fraunhofer FOKUS
Kaiserin-Augusta Allee 31
10589 Berlin, Germany
Tel. +49 30 3463 7514
www.fokus.fraunhofer.de

similar documents