Transcript pptx

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 Interview – Fragebogen 2.

4.

– Dokumentation Prosa: Kurze Sätze, ungenaue Adjektive und Adverbien vermeiden (schneller, schöner, circa) – Styleguide – Anwendungsfalldiagramme / Aktivitätsdiagramme / Message Sequence Charts / Temporale Logik etc.

3.

– 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