Vorgehensmodelle Wie erstellt man hochwertige Software?
Qualitätssicherung im Software- Entwicklungsprozess Quelle: Kühnel B.: Praxis einer integrierten Software-Qualitätssicherung. In: Softwaretechnik-Trends, Feb. 1993, S. 38. Stand: 04.10.2007 BA Heidenheim, Wirtschaftsinformatik 2
Softwaretest-Verfahren Programm- Verifikation nach: http://www.informatik.hu-berlin.de/~hanft/ Stand: 04.10.2007 BA Heidenheim, Wirtschaftsinformatik 3
Problem: Qualität ist subjektiv DIN 55350, Teil 11: Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Tätigkeit, die sich auf deren Eignung zur Erfüllung gegebener Erfordernisse bezieht BGB: Qualität = Abwesenheit von Mängeln. 434 BGB Abs. 1 Ziff. 2: Mangel: Sache eignet sich nicht für gewöhnliche Verwendung und weist keine übliche und vom Käufer zu erwartende Beschaffenheit auf. Qualität ist subjektiv: Erfordernisse = f(bedürfnisse, Wissen) nicht statisch (trotz objektiv identischer Merkmale): Wandel in den Anforderungen (z.b. durch Werbung) Stand: 04.10.2007 BA Heidenheim, Wirtschaftsinformatik 4
Software-Qualitätsfaktoren Software-Qualitätsmerkmale nach ISO/IEC 9126 Funktionalität Zuverlässigkeit Benutzbarkeit Effizienz Änderbarkeit Übertragbarkeit Angemessenheit Richtigkeit Interoperabilität Reife Fehlertoleranz Erlernbarkeit Bedienbarkeit Zeitverhalten Wiederherstellbarkeit Verständlichkeit Verbrauchsverhalten Analysierbarkeit Modifizierbarkeit Stabilität Anpassbarkeit Installierbarkeit Konformität Ordnungsmäßigkeit Prüfbarkeit Austauschbarkeit Sicherheit Stand: 04.10.2007 BA Heidenheim, Wirtschaftsinformatik 5
Phasen der Softwareentwicklung Analyse (Was soll entwickelt werden?) Architektur (Aufteilung in Komponenten,...) Design (Wie werden Anforderungen umgesetzt?) Implementierung Test Betrieb Stand: 04.10.2007 BA Heidenheim, Wirtschaftsinformatik 6
Formale Vorgehensmodelle Ad hoc Entwicklung Wasserfall-Modell V-Modell Prototypenmodell inkrementelles Modell objektorientiertes Modell Spiralmodell Rational Unified Process (RUP) Stand: 04.10.2007 BA Heidenheim, Wirtschaftsinformatik 7
Ad hoc Entwicklung "code and fix" Keine Softwareentwicklung, hinsetzen und programmieren möglich, wenn Problemstellung einfach und klar Lösungsweg klar ein (oder sehr wenige) Entwickler Projektdauer kurz (einige Tage bis Wochen) üblich bei Miniprojekten, Übungsaufgaben, Run-Once-Programmen,... Softwareentwicklung findet im Kopf statt Stand: 04.10.2007 BA Heidenheim, Wirtschaftsinformatik 8
Wasserfallmodell Definition (Analyse) Entwurf (Design) Implementierung Test Betrieb Stand: 04.10.2007 BA Heidenheim, Wirtschaftsinformatik 9
Wasserfallmodell mit Rückkopplung (Böhm) Definition (Analyse) Entwurf (Design) Implementierung Test Betrieb Stand: 04.10.2007 BA Heidenheim, Wirtschaftsinformatik 10
Wasserfall-Modell Top-Down-Methodik Einteilung in Phasen Phasen werden nacheinander und jeweils vollständig durchgeführt Ergebnis jeder Phase ist ein Dokument Phase ist abgeschlossen, wenn das jeweilige Dokument erstellt ist Ergebnis einer Phase ist Input für die nächste eine Iteration Anwender ist nur an der Definitionsphase beteiligt Rückkopplung (wenn überhaupt) nur auf die unmittelbar verhergehende Phase Stand: 04.10.2007 BA Heidenheim, Wirtschaftsinformatik 11
Wasserfallmodell: Bewertung Vorteile einfach verständlich kaum Management-Aufwand weit verbreitet Nachteile Phasen müssen vollständig durchgeführt werden (nicht immer möglich/sinnvoll) Phasen müssen sequentiell durchgeführt werden (nicht immer sinnvoll) Zyklus wird nur einmal durchlaufen Was passiert bei Änderungen? Dokumentation überproportional repräsentiert Stand: 04.10.2007 BA Heidenheim, Wirtschaftsinformatik 12
V-Modell Anforderungs- Definition Anwendungsszenarien Abnahmetest Validierung Grobentwurf Testfälle Systemtest Feinentwurf Testfälle Integrationstest Modulimplementation Testfälle Modultest Verifikation Stand: 04.10.2007 BA Heidenheim, Wirtschaftsinformatik 13
V-Modell: Systementwicklung als Teilmodul des IT-Managements Projektmanagement Systementwicklung Qualitätssicherung Quelle: www.stahlknecht-hasenkamp.de/ Konfigurationsmanagement Stand: 04.10.2007 BA Heidenheim, Wirtschaftsinformatik 14
Projekthandbuch Projektplan Qualitätsmanagement nach dem V-Modell QS 1.1 QS 1.2 QS 1 QS-Initialisierung QS-Plan QS-Plan erstellen Prüfplan erstellen Prüfplan Produkte, die die Qualitätsforderungen enthalten QS 2.1 QS 2.2 QS 2.3 QS 2.4 Prüfplan QS 2 Prüfungsvorbereitung Prüfmethoden und -kriterien festlegen Prüfumgebung definieren Prüffälle festlegen Prüfprozedur erstellen Prüfspezifikation Prüfgegenstand Prüfprozedur QS 3 Prozeßprüfung von Aktivitäten Vorgängerprodukte Prüfgegenstand QS 4 Produktprüfung QS 4.1 QS 4.2 Prüfbarkeit feststellen Produkt inhaltlich prüfen Prüfprotokoll Prüfprotokoll QS 5 QS-Berichtswesen Berichtsdokumente Stand: 04.10.2007 BA Heidenheim, Wirtschaftsinformatik 15
V-Modell Erweiterung des Wasserfall-Modells Verifikation = Übereinstimmung des Produkts mit der Spezifikation Wird ein korrektes Produkt entwickelt? Validierung = Eignung des Produkts für den Einsatz Wird das richtige Produkt entwickelt? Erweiterung für Bundeswehr und Behörden, dort Standard (auch teilw. In Industrie) ( Vorgehensmodell ) Stand: 04.10.2007 BA Heidenheim, Wirtschaftsinformatik 16
Vorgehensmodell Ursprüngl. für Embedded Systems Submodelle Systemerstellung (SE) z.b. SE1: Anforderungsanalyse, SE1.1: Ist-Analyse durchführen Qualitätssicherung (QS) Konfigurationsmanagement (KM) Projektmanagement (PM) Aktivitäten und Produkte Rollen (Manager, Verantwortliche, Durchführende) Allgemeingültig Anpassbar (Tailoring) Stand: 04.10.2007 BA Heidenheim, Wirtschaftsinformatik 17
Vorgehensmodell: Bewertung Vorteile Integration von Systemerstellung, Qualitätssicherung, Konfigurationsmanagement, Projektmanagement Detailliertes, generisches Modell mit Möglichkeit zur Anpassung (Tailoring) Geeignet für große Projekte Nachteile Geeignet für große Projekte konzipiert für embedded systems komplex (ohne CASE-Unterstützung schwierig) zu bürokratisch für kleine Projekte Tailoring notwendig Stand: 04.10.2007 BA Heidenheim, Wirtschaftsinformatik 18
Prototypen z.b. Schichtenarchitektur vertikaler Prototyp User Interface Applikationslogik horizontaler Prototyp Datenbank Betriebssystem Stand: 04.10.2007 BA Heidenheim, Wirtschaftsinformatik 19
Prototypen contd. (Demonstrations-) Prototyp Kommunikation zwischen Kunde und Entwickler i.a. horizontal Labormuster Technische Machbarkeit horizontal/vertikal Pilotsystem Kernstück des fertigen Produkts vertikal Plan to throw one away (Brooks) Gefährlich (Wartung,...), wenn Prototyp Teil/Basis des Systems wird Stand: 04.10.2007 BA Heidenheim, Wirtschaftsinformatik 20
Inkrementelles/evolutionäres Vorgehen I can t tell you what I want, but I ll know it when I see it Zuerst wird Hauptschleife/Menü/Maske,... entwickelt (mit dummy-funktionen) danach wird Modul für Modul bzw. Funktion für Funktion implementiert und verfeinert Immer funktionsfähiges System Z.B. Betriebssystem (siehe Windows NT), Textverarbeitung geeignet, wenn die (vielen) Funktionen orthogonal sind nicht alle Anforderungen müssen bei Beginn der Entwicklung bekannt sein Stand: 04.10.2007 BA Heidenheim, Wirtschaftsinformatik 21
Objektorientierte Modelle Bottom up Wiederverwendung, Klassenbibliotheken Patterns Komponenten (z.b. Beans,...) Kombination mit inkrementellem Modell Hohe Produktivität Technische Probleme (Kombination von Klassenbibliotheken) keine Gewähr für Erfüllung der Anforderungen, d.h. Kombination mit anderen Modellen (Prototyping, Inkrementell,...) nötig Stand: 04.10.2007 BA Heidenheim, Wirtschaftsinformatik 22
Spiralmodell aus Boehm, A spiral model for software development and enhancement, IEEE Computer, May 1988 Stand: 04.10.2007 BA Heidenheim, Wirtschaftsinformatik 23
Spiralmodell Metamodell 4 Schritte, die zyklisch wiederholt werden Ziele, Alternativen, Schnittstellen spezifizieren Evaluierung der Alternativen, Risikoabschätzung und Minimierung (z.b. Prototypen, Simulationen,...) Prozeßmodell (Prototyp, Wasserfall,...) Risikominimierung durch zyklische Evaluierung und Risikoabschätzungen Flexibel, mehrere Prozeßmodelle möglich Hoher Managementaufwand, eher für große Projekte Stand: 04.10.2007 BA Heidenheim, Wirtschaftsinformatik 24
RUP (Rational unified process) Stand: 04.10.2007 BA Heidenheim, Wirtschaftsinformatik 25
RUP contd. Prozess von Rational Hersteller von (UML-) CASE Tools, beschäftigt einige SE Gurus (u.a. Booch, Jacobson, Rumbaugh) iterativ, je 4 Phasen Inception Elaboration Construction Transition Use case gesteuert 4 Elemente Workers Activities Artifatcs Workflows Stand: 04.10.2007 BA Heidenheim, Wirtschaftsinformatik 26
Vergleich der Modelle Modell Ziel treibendes Moment Nutzer beteiligung ad hoc minimaler Aufwand Code (Fehler)? Wasserfall minimaler Management Aufwand Dokumente gering V-Modell maximale Qualität Dokumente gering Prototypen Risikominimierung Code hoch Inkrementell fast-to-market Risikominimierung Code mittel Spiralmodell Risikominimierung Risiko mittel RUP Risikominimierung Dokumente mittel-hoch nach [Balzert96] Stand: 04.10.2007 BA Heidenheim, Wirtschaftsinformatik 27
Pflichtenheft-Beispiel: elearning-system der BA Heidenheim 1. Aufgabenstellung Es ist für die BA Heidenheim ein serverbasiertes System zu entwickeln,... 2. Glossar Rollen: Benutzer des Systems (Wer?) Subscriber: Download von Vorlesungsmaterial... Weitere Rollenbezeichnungen: Student, Kursteilnehmer.... Assets: Material, das auf dem Server verwaltet wird (Was?) Vorlesungsbezogene Assets: Gliederung mit Lernziel und... 3. zu unterstützende rollenbezogene Aufgaben: Administrator: trägt Kurssemester ein,... Publisher: Upload und Beschreibung von vorlesungsbezogenen Assets,... 4. Arbeitsabläufe: Administrator einrichten: 1. Sekretärin/Fachleiter ruft Anmeldeformular im System auf 2.... 5. GUI-Aufbau: Orientierung am Corporate Design der Homepage der BA Heidenheim; Framestruktur mit Dachframe,... Beispiel: Einstiegsseite: 6. Sicherheitstechnische Anforderungen: Prüfung sämtlicher Formulareingaben auf SQL-Injection-Versuche,... 7. Anwendungsinfrastruktur: Server: BA-Webserver (Apache, Linux) (Kontakt: Prof. Dr. Assfalg, 0731-38-1893,... Programmierung: PHP/HTML, Benutzung der BA-Homepage-Stylesheets Datenbanksystem: MySQL 8. Projektrahmen: Auftraggeber: BA Heidenheim, Kontakt:... Projektdauer: 13.4. - 17.6.2004; Präsentation: 17.6.2004 Projektgruppe: Müller, Huber,... Stand: 04.10.2007 BA Heidenheim, Wirtschaftsinformatik 28
Modellierung Ein Ausflug in die Systemtheorie
System Menge von Komponenten von der Umgebung abgegrenzt durch Beziehungen miteinander verbunden offenes/geschlossenes System Beispiel : menschl. Körper Komponenten = Organe verbunden durch Nerven, Gefäße,... abgegrenzt durch Haut Je nach Sichtweise abgeschlossen oder offen Beispiel: Unternehmen Komponenten = Produkte, Maschinen, Mitarbeiter,... Herstellungsbeziehungen, Materialflüsse Stand: 04.10.2007 BA Heidenheim, Wirtschaftsinformatik 30
Komponenten differenzierbare Objekte reale Systeme: Komponenten physisch abgegrenzt (Mensch) formale Systeme: Komponenten immateriell (Mathematik: Zahlen, Sätze, Definitionen,...) (Computerprogramm: Module, Prozeduren, Variablen) soziotechnische Systeme: Komponenten sind Menschen und Maschinen (Unternehmen) formale Systeme als Modell für reale Systeme (Sprache, Mathematik?) Stand: 04.10.2007 BA Heidenheim, Wirtschaftsinformatik 31
Struktur Komponente kann wiederum als System betrachtet werden--> Reduktion der Komplexität Mensch Gehirn Herz Lunge l. Ventrikel r. Ventrikel Muskelfaser Zelle Zellmembran Kanal Stand: 04.10.2007 BA Heidenheim, Wirtschaftsinformatik 32
Beziehungen Austauschbeziehungen: Fluß von Material Energie Informationen Anordnungsbeziehungen über/unter, vor/nach, neben,... Wirkungsbeziehungen aktive Komponenten (Prozedur ändert Inhalt einer Variablen) passive Komponenen (Variable) vernetzte Systeme Stand: 04.10.2007 BA Heidenheim, Wirtschaftsinformatik 33
Systembeschreibung Attribute eine Eigenschaft beschreibendes Merkmal z.b. Komponente Mitarbeiter hat Attribut Gehalt stetig (Temperatur) oder diskret (Geschlecht) Veränderbarkeit (konstant, änderbar) Vorhersagbarkeit (deterministisch, stochastisch, zufällig) Aktivitäten: ändern den Zustand des Systems endogen/exogen zeitstetig/zeitdiskret Kopplung einfache Kopplung Rückkopplung lineare Systeme (u.a. keine Rückkopplungen) Stand: 04.10.2007 BA Heidenheim, Wirtschaftsinformatik 34
Gleichgewicht Systemzustand stabil über der Zeit statisches Gleichgewicht Systemzustand ändert sich tatsächlich nicht (geschlossene, lineare Systeme) dynamisches Gleichgewicht bei (kleinen) Änderungen der Umgebung kehrt das System immer wieder in die Gleichgewichtslage zurück (z.b. Radfahren) chaotisches System Attraktoren : Punkte im dynamischen Gleichgewicht sonst: chaotische Reaktion Stand: 04.10.2007 BA Heidenheim, Wirtschaftsinformatik 35
Systemlenkung Auslösung Impuls löst Aktivität aus Steuerung gerichtete Einwirkung auf das System Regelung System steuert Aktivität nach Zielvorgaben selbständig Anpassung adaptives System: System paßt sich selbst der Umgebung an Stand: 04.10.2007 BA Heidenheim, Wirtschaftsinformatik 36
Modell Formales System zur Beschreibung eines Ausschnitts/einer Auswahl an Eigenschaften eines realen Systems (Beispiel: (Festkörper-) Physik) Abbildung der Realität durch Abstraktion und Vereinfachung Datenmodell : Abbildung von Unternehmensstrukturen Nur ein Teil der Informationen wird erfaßt, z.b. bildet ein Datensatz einen Mitarbeiter ab Problem: Gemeinsames Modell (Was passiert, wenn der Softwareentwickler und der Kunde ein unterschiedliches Modell verwenden?) Stand: 04.10.2007 BA Heidenheim, Wirtschaftsinformatik 37
Modellbildung Das Vorgehen des Verstandes, wodurch er sich einfacher Vorstellungen bemächtigt, ist im wesentlichen solcher Art: Kombinieren von mehreren einfachen Vorstellungen zu einer zusammengesetzten; so werden alle komplexen Vorstellungen gemacht Zwei Vorstellungen, einfach oder komplex, zusammenbringen und sie so gegeneinander setzen, dass sie gleichzeitig betrachtet werden können, ohne dass sie eins werden, wodurch er alle seine Vorstellungen von Beziehungen erhält sie von allen anderen Vorstellungen zu lösen, die sie in der Wirklichkeit begleiten; Dies nennt man Abstraktion, und so werden alle seine allgemeinen Vorstellungen gemacht John Locke, Ein Essay über das menschliche Verständnis, 1690 Stand: 04.10.2007 BA Heidenheim, Wirtschaftsinformatik 38
Beispiel: Datenmodell Schiedsrichter Ergebnis Position (0,*) Spiel (0,*) bestreitet (1,1) nimmt teil (2,2) (1,*) Name Mannschaft (0,1) (1,*) hat Spieler besteht aus (1,1) (0,*) Ereignis (0,*) v erursacht durch Art Wann Stand: 04.10.2007 BA Heidenheim, Wirtschaftsinformatik 39