Fakultät Mathematik & Naturwissenschaften, Psychologie - HPSTS, Seminar Applied Cognitive Research Woher weiß ich, was der Kunde will? Lasten- und Pflichtenhefte in der Softwareentwicklung Marc Kandler Marc.Kandler@tu-dresden.de Dresden, 14.01.2016
Gliederung 1. Einführung und Grundlagen 2. Probleme bei der Anforderungsermittlung 3. Anwendungsfall: Pflichtenheft Pizzaservice Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 2 von 49
1. EINFÜHRUNG UND GRUNDLAGEN Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 3 von 49
1. Einführung und Grundlagen Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 4 von 49
1. Einführung und Grundlagen Murphys acht eherne Kundengesetze: (1) Es kommt einem Kunden nie darauf an, was ein Projekt kostet, sondern wie viel er dabei einspart. (2) Wenn Du ein Programm erfolgreich ergänzt hast, wird es der Kunde nicht mehr haben wollen. (3)Kein Kunde weiß, was er eigentlich will. (4) Jeder Kunde weiß, was er nicht will. (5) Kein Kunde will das, was Du bereits fertiggestellt hast. (6) Er weiß auch nicht, was er statt dessen möchte. (7) Der Kunde, der am wenigsten zahlt, meckert am meisten. (8) Größere Änderungen wird der Kunde immer dann verlangen, wenn ein Produkt eben ausgeliefert wurde. Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 5 von 49
1. Einführung und Grundlagen Definition Projekt DIN 69901: "Vorhaben, das im Wesentlichen durch die Einmaligkeit aber auch Konstante der Bedingungen in ihrer Gesamtheit gekennzeichnet ist, wie z. B. Zielvorgabe, zeitliche, finanzielle, personelle und andere Begrenzungen; Abgrenzung gegenüber anderen Vorhaben; projektspezifische Organisation Anhand verschiedener Kriterien einmalig Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 6 von 49
1. Einführung und Grundlagen Definition Lastenheft Gemäß DIN 69901-5 beschreibt das Lastenheft die vom Auftraggeber festgelegte Gesamtheit der Forderungen an die Lieferungen und Leistungen eines Auftragnehmers innerhalb eines Auftrages Anforderungen des Kunden, WAS? Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 7 von 49
1. Einführung und Grundlagen Nutzen und Inhalte des Lastenheftes: Anforderungen, Erwartungen, Wünsche, IST-Zustand Grundlage zur Einholung von Angeboten (Ausschreibung) Roter Faden für den Auftragnehmer (Softwareentwickler) Technische, wirtschaftliche, organisatorische Erwartungen des Kunden Darlegung des Umfangs des Projektes Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 8 von 49
1. Einführung und Grundlagen Definition Pflichtenheft Gemäß DIN 69901-5 beschreibt das Pflichtenheft die vom Auftragnehmer erarbeiteten Realisierungsvorgaben aufgrund der Umsetzung des vom Auftraggeber vorgegebenen Lastenhefts Umsetzungsvorstellung des Auftragnehmers, WIE und WOMIT? Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 9 von 49
1. Einführung und Grundlagen Nutzen und Inhalte des Pflichtenheftes: Darstellung, wie der Auftragnehmer das Projekt umzusetzen gedenkt Grundlage für Kosten-, Personal- und Terminkalkulation Konkrete, widerspruchsfreie und möglichst formale Anforderungsbeschreibungen Bestandteil des Vertrages! Prüfung ob darin definierte Kriterien zum Ende des Projektes erfüllt sind (Abnahmebedingungen) Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 10 von 49
1. Einführung und Grundlagen Optimaler Ablauf vor Beginn eines Projektes Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 11 von 49
1. Einführung und Grundlagen Das V-Modell in der Softwareentwicklung Quelle: http://wiki.freepascal.org/images/9/93/v-modell.jpg Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 12 von 49
1. Einführung und Grundlagen Was aber, wenn der Kunde nur eine grobe Vorstellung seines Wunsches hat? der Kunde nicht das nötige Personal mit Fachwissen für die Erstellung eines Lastenheftes besitzt? die Anforderungsbeschreibung inkonsistent oder widersprüchlich ist? (Interessenskonflikte verschiedener Abteilungen des Kunden) Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 13 von 49
1. Einführung und Grundlagen Was aber, wenn? Spezifizierung der Anforderungswünsche notwendig Unklare Anforderungen können ein Projekt schnell zum Scheitern führen Erstellung des Lastenheftes evtl. zusammen mit Auftragnehmer Vorprojekt (Analyseprojekt) vor der eigentlichen Arbeit an der gewünschten Software Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 14 von 49
1. Einführung und Grundlagen Mögliche Gliederung eines Lastenheftes: 1. Zielbestimmung Welche Ziele sollen durch das Produkt erreicht werden? 2. Produkteinsatz Welche Anwendungsbereiche und Zielgruppen sind relevant? 3. Produktübersicht Grafische Darstellung der Umgebung des Produktes (z.b. Verbindung zu anderen Systemen) 4. Produktfunktionen Welche Funktionalitäten muss das Produkt aufweisen (möglichst formal beschrieben und detailreich) 5. Produktdaten Mit welchen Daten arbeitet die Anwendung/Welche Daten müssen gespeichert werden? 6. Produktleistungen Nicht funktionale Anforderungen (z.b. Reaktionszeit, Genauigkeit, ) 7. Qualitätsanforderungen Zuverlässigkeit, Effizienz, Geschwindigkeit, 8. Ergänzungen Alle bisher nicht aufgeführten Punkte, Klärung wichtiger Begriffe, evtl. Glossar Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 15 von 49
2. PROBLEME BEI DER ANFORDERUNGSERMITTLUNG Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 16 von 49
2. Probleme bei der Anforderungsermittlung Anforderungen können nicht einfach beim Kunden abgeholt werden Vollständige, schöne und eindeutige Liste existiert äußerst selten Selbst ausgeschriebenes Lastenheft kann viele Unklarheiten beinhalten Reger Austausch zwischen Stakeholdern notwendig Ein Stakeholder (Beteiligter, Interessensgruppe, Nutzer) ist ein Beteiligter, jemand, der Einfluss auf Anforderungen hat: Natürliche, juristische, auch abstrakte Personen (Gesetzgeber, Standards), die für ganze Gruppe von Personen stehen, auch Hacker, Saboteure. Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 17 von 49
2. Probleme bei der Anforderungsermittlung Menschen Implizites Wissen Mehrdeutigkeit Gefühle Meinungen zu bestimmten Abläufen Niemand weiß, was er möchte, bis er es vor sich hat Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 18 von 49
2. Probleme bei der Anforderungsermittlung Psychologische Erkenntnisse können entscheidend sein um Fehler zu vermeiden z.b. Erkennen von Anführern und Mitläufern Eine Dominante Person übernimmt Führung und andere folgen nur noch der (eventuell falschen) Meinung/Ansicht/Interpretation Möglichst geringe Hierarchieunterschiede (Sonst Ausschluss einiger Mitarbeiter unterer Stufen, Informationsverlust!) Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 19 von 49
2. Probleme bei der Anforderungsermittlung Vier fundamentale Barrieren[1]: 1. Kognitive Beschränktheit 2. Beschränkte Aufnahmefähigkeit des Ingenieurs/Analysten (Dazu zählt auch implizites Wissen, welches alle Beteiligten auf Auftraggeberseite als selbstverständlich hinnehmen) 3. Erhebungsprobleme: Nicht gestellte Fragen, falsche Methoden, 4. Falscher Transfer: Bekannte Problemlösungen werden falsch auf andere Probleme übertragen Designer nutzt (implizites) Wissen zur Erstellung von Entwürfen, erwähnt dieses Wissen aber nicht Verständnisproblem [1] Dutoit, Allen H.: Rationale Management in Software Engineering. 1. Auflage. Springer, 2006. ISBN 3 540 30997 7,978 3 540 30997 0 4, 5, 15 Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 20 von 49
3. ANWENDUNGSFALL: PFLICHTENHEFT PIZZASERVICE Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 21 von 49
3. Anwendungsfall: Pflichtenheft Pizzaservice ACHTUNG: Studentische Arbeit fehlerhaft und unvollständig! Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 22 von 49
3. Anwendungsfall: Pflichtenheft Pizzaservice Aufgabenstellung Pizza-Service: Der Pizza-Service Papa Pizza liefert Pizzas und Getränke an seine Kunden auf telefonische Bestellung frei Haus. Da man bei Papa Pizza schlechte Erfahrungen mit "Telefonscherzen" gemacht hat, laufen die Bestellungen wie folgt: [ ] Die Kunden können sich ihre Pizzas aus dem reichhaltigen Angebot an Zutaten individuell zusammenstellen. Getränke und Salate werden bei Papa Pizza natürlich ebenfalls angeboten. Bei einem Bestellwert von über 30 EUR erhält der Kunde ein Gratisgetränk. Pizzas werden in den verfügbaren Öfen im 5-Minuten-Takt gebacken, d.h. alle 5 Minuten kann eine weitere Pizza in einen der Öfen geschoben werden. Da die Anzahl der benötigten Öfen und Pizzabäcker vom Kundenandrang abhängt, wird sie vierteljährlich an die aktuellen Bestellungszahlen angepasst. [ ] Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 23 von 49
3. Anwendungsfall: Pflichtenheft Pizzaservice Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 24 von 49
3. Anwendungsfall: Pflichtenheft Pizzaservice Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 25 von 49
3. Anwendungsfall: Pflichtenheft Pizzaservice Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 26 von 49
3. Anwendungsfall: Pflichtenheft Pizzaservice Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 27 von 49
Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 28 von 49
Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 29 von 49
3. Anwendungsfall: Pflichtenheft Pizzaservice Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 30 von 49
3. Anwendungsfall: Pflichtenheft Pizzaservice Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 31 von 49
3. Anwendungsfall: Pflichtenheft Pizzaservice Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 32 von 49
3. Anwendungsfall: Pflichtenheft Pizzaservice Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 33 von 49
3. Anwendungsfall: Pflichtenheft Pizzaservice (Sequenzdiagramm) Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 34 von 49
3. Anwendungsfall: Pflichtenheft Pizzaservice Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 35 von 49
3. Anwendungsfall: Pflichtenheft Pizzaservice Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 36 von 49
3. Anwendungsfall: Pflichtenheft Pizzaservice Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 37 von 49
3. Anwendungsfall: Pflichtenheft Pizzaservice Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 38 von 49
3. Anwendungsfall: Pflichtenheft Pizzaservice 8.3 Abgrenzungskriterien Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 39 von 49
3. Anwendungsfall: Pflichtenheft Pizzaservice Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 40 von 49
3. Anwendungsfall: Pflichtenheft Pizzaservice Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 41 von 49
3. Anwendungsfall: Pflichtenheft Pizzaservice Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 42 von 49
3. Anwendungsfall: Pflichtenheft Pizzaservice Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 43 von 49
3. Anwendungsfall: Pflichtenheft Pizzaservice Quelle: http://help.innovator.de/12.3/de_de/personal/content/resources/images/grafik/wpf-grafiken/sampleclclassdia.png Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 44 von 49
3. Anwendungsfall: Pflichtenheft Pizzaservice Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 45 von 49
3. Anwendungsfall: Pflichtenheft Pizzaservice Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 46 von 49
3. Anwendungsfall: Pflichtenheft Pizzaservice Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 47 von 49
3. Anwendungsfall: Pflichtenheft Pizzaservice Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 48 von 49
VIELEN DANK FÜR IHRE AUFMERKSAMKEIT Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 49 von 49
Zusatzaufgabe: Entwerfen Sie eine Ansicht für einen Dienstplan (Webanwendung) und formulieren Sie stichpunktartig (Muss-Kriterien) die Anforderungen, die erfüllt werden müssen. Dabei ist folgendes bekannt: Der Dienstplan umfasst stets einen ganzen Monat des Jahres. Jeder Tag ist in 4 Schichten aufgeteilt (Frühschicht, Spätschicht, Mittagsschicht, Nachtschicht). Jede Schicht umfasst 6 Stunden. In jeder Schicht arbeiten bis zu 4 Personen, wobei es je zwei Techniker, einen Mediziner und einen Koordinator gibt. Eine Ausnahme bildet jedoch die Nachtschicht, in welcher nur ein Techniker und ein Mediziner arbeiten. Der Schichtrhythmus wechselt wöchentlich. Beispielsweise sind in der aktuellen Woche die Schichten 0-6 Uhr und 12-18 Uhr aktiv. Die beiden anderen Schichten sind nicht besetzt. In der folgenden Woche sind die beiden anderen Schichten aktiv. Dieser Rhythmus ändert sich nie und muss entsprechend wöchentlich alternieren. Lasten- & Pflichtenheft in der Softwareentwicklung Folie Nr. 50 von 49