Software-Entwicklungstechnologie • • • • • Software: Begriff, Qualitätskriterien, Lebenszyklus Problem-Analyse, Problem-Definition Problemlösung, Software-Entwurf Implementierung, Nutzung Dokumentation von Software Informatik 2006 Softwaretechnologie Seite 1 Klöditz Hochschule Anhalt (FH) Software Definition • = Programme + Datenbestände • "Von Software-Produktion kann man sprechen, wenn mehr als eine Person in die Entwicklung und Nutzung einbezogen ist, mehr als eine Version produziert werden soll." (PARNAS) • Software = Qualitätsanspruch erfordert systematisches Vorgehen, also eine Software-Entwicklungstechnologie Klöditz Hochschule Anhalt (FH) Informatik 2006 Softwaretechnologie Seite 2 Software Qualitätsfaktoren Korrektheit korrekte Erfüllung der Aufgabenstellung Zuverlässigkeit robust gegenüber Fehlersituationen Effizienz sparsamer Umgang mit Ressourcen Benutzbarkeit leichte und intuitive Nutzung Wartbarkeit leicht anzupassen und weiterzuentwickeln Testbarkeit Funktionstüchtigkeit leicht und vollständig prüfbar Flexibilität anpassbar an unterschiedliche Nutzungsbedingungen Wiederverwendbarkeit (in Teilen) in anderen Anwendungen einsetzbar Portabilität übertragbar auf unterschiedliche Hard- und Software-Plattformen Informatik 2006 Softwaretechnologie Seite 3 Klöditz Hochschule Anhalt (FH) Software-Qualitätsmerkmale und deren Wirkung auf Kosten und Zeit Merkmal wirkt auf 1 2 3 4 5 6 7 8 9 10 A B C D E F + o o + o o o o o - + - + + o o + o o o - o - + - + + o + o o o o + - - o - + + - o o o o - o - o - + o o o + - o - + - + + o + + - + + + + o + + + - + - + + o + + - + + + + o + + - - + - + + - - + - - - + 1 Korrektheit 2 Zuverlässigkeit o 3 Adäquatheit o o 4 Erlernbarkeit o o o 5 Robustheit o + + o 6 Lesbarkeit + + o o + 7 Änder-/Erweiterbarkeit + + o o + o 8 Testbarkeit + + o o + o + 9 Effizienz - - + - - - - - 10 Portierbarkeit o o - o o o + o o o - Legende: + positive Wirkung, - negative Wirkung, o keine Wirkung A - Entwicklungszeit, B - Lebenszeit, C - Entwicklungskosten, D - Betriebskosten, E - Wartungskosten, F - Portierungskosten Klöditz Hochschule Anhalt (FH) Informatik 2006 Softwaretechnologie Seite 4 Software-Entwicklungsprozess Einteilung in Phasen • je Phase: – bestimmte Tätigkeiten (Aktivitäten) – bestimmte Ergebnisse (Dokumente) • Hauptphasen: – – – – Problem-Definition Problemlösung Implementierung (Realisierung der Lösung) Nutzung • kein linearer Ablauf, Bearbeitung iterativ • Wartung / Pflege = Rückkehr aus der Nutzung in frühere Lebenszyklus-Phasen Informatik 2006 Softwaretechnologie Seite 5 Klöditz Hochschule Anhalt (FH) Software-Lebenszyklus Initialisierung / Auftrag Problem-Definition Studie / Grobkonzept Problemlösung Systementwurf / Komponenten-Entwurf / Programmierung / Funktionstest Implementierung Übergabe Nutzung Klöditz Hochschule Anhalt (FH) Wartung / Pflege Vernichtung / Entsorgung Informatik 2006 Softwaretechnologie Seite 6 Phasen des Software-Lebenszyklus (Quelle: Hering u.a.: Informatik für Ingenieure) 1 2 3 4 5 6 Phase Problemanalyse / Festlegen der Anforderungen Entwurf Implementierung Test Installation Nutzung Tätigkeiten Mengen- und Zeitgerüst Durchführbarkeit Projektrichtlinien Pflichtenheft Systementwurf KomponentenEntwurf Modulentwurf Datenstrukturen Schnittstellen Codierung System Komponente Modul Daten Abnahme Einführung Schulung Zeitaufwand 15% 35% - 40% 15% - 20% 15% - 20% 10% - 15% Kosten 10% 30% 20% 20% 20% 0,2 0,5 1 2 5 Fehlerkosten Fehlerentdeckung Statistik Wartung Pflege 10 - 20 40% - 50% 50% - 40% Entwicklung der Software Nutzung Informatik 2006 Softwaretechnologie Seite 7 Klöditz Hochschule Anhalt (FH) Problem-Definition Teilphase Tätigkeiten Ergebnisse Studie / Voruntersuchung Bedarf analysieren Ziele festlegen Aufgabenstellung Bewertungskriterien Problembeschreibung / Grobkonzept Systemanalyse Analyse der Machbarkeit Sollkonzeption Ressourcenplanung Anforderungskatalog Projekt-Richtlinien Ablaufplan Klöditz Hochschule Anhalt (FH) Informatik 2006 Softwaretechnologie Seite 8 Problem-Definition Problembeschreibung / Grobkonzept • Aufgabenstellung präzisieren, Lösungskonzept entwerfen – Eingangs- und Ergebnisdaten definieren: • • • • Datenquellen Wertebereiche Maßeinheiten Ergebnisdarstellung – Verarbeitungsvorschriften festlegen: • Berechnungsvorschriften • Lösungsverfahren • Verarbeitungsalgorithmen – Zerlegung in Teilaufgaben, evtl. wiederholt • Machbarkeit und Ressourcenbedarf prüfen • Bewertungskriterien festlegen • Ressourcen planen Informatik 2006 Softwaretechnologie Seite 9 Klöditz Hochschule Anhalt (FH) Problemlösung Teilphase Tätigkeiten Ergebnisse Systementwurf / Sachlogisches Konzept Systementwurf (Hard- und Software) Modularisierung (Zerlegung in Komponenten) Abnahmebedingungen festlegen Konfigurationsbeschreibung Benutzungsschnittstellen Projekt- und Terminplan Abnahmetest-Bedingungen Komponenten-Entwurf Komponenten entwerfen Komponenten-Beschreibung / Beziehungen Datenstrukturen Programmkonventionen Komponenten-Testpläne Programmierung Codierung, Test Teil-Integration ausgetesteter Code, Dokumentation Testdaten Funktionsnachweis Vorbereitung der Nutzung Benutzerschulung ausgetestetes System Benutzer-Handbuch, Dokumentation Informatik 2006 BenutzungshilfsmittelSoftwaretechnologie Seite 10 (Formulare, ...) Klöditz Hochschule Anhalt (FH) Problemlösung Modularisierung • Vorgehensweise: – Zergliederung in eine Anzahl relativ unabhängiger Teilaufgaben – Lösung der Teilaufgaben – Synthese der Einzellösungen zur Gesamtlösung • Zerlegungsgesichtspunkte: – Funktionseinheit – Testeinheit – Aktionseinheit • Zerlegungsmethoden: – top-down (von oben nach unten) – bottom-up (Zusammensetzung aus vorhandenen Bausteinen) – in der Regel: Kombination von beiden Informatik 2006 Softwaretechnologie Seite 11 Klöditz Hochschule Anhalt (FH) Problemlösung Modularisierung • Qualitative Zerlegungskriterien: – minimale Abhängigkeit zwischen den Teilen – maximaler innerer Zusammenhang • Quantitative Zerlegungskriterien: – Faustregel: Teilaufgabe passt auf eine A4-Seite Klöditz Hochschule Anhalt (FH) Informatik 2006 Softwaretechnologie Seite 12 Problemlösung Programmierung • Auswahl der Programmiersprache: – – – – – – Eignung für das Problem Verfügbarkeit eines Compilers Kenntnisse der Programmierer Lernaufwand Stabilität der Sprache, Standardisierung Portabilität • Codierung • Test Informatik 2006 Softwaretechnologie Seite 13 Klöditz Hochschule Anhalt (FH) Problemlösung Funktionsnachweis (Test) • Ziel des Tests – Funktionsnachweis gemäß Aufgabenstellung • Vorgehensweise – Entwurf von Testfällen – Übereinstimmung von erwartetem und erhaltenem Ergebnis nachweisen • Methodik – Grenzwertanalyse – Modultest – Debugging, Fehlerbehebung • Testwerkzeuge – Debugger – Generatoren für Testdaten Literatur: MYERS, G.J.: Methodisches Testen von Programmen Klöditz Hochschule Anhalt (FH) Informatik 2006 Softwaretechnologie Seite 14 Phase: Implementierung Teilphase Tätigkeiten Ergebnisse Übergabe Abnahme Inbetriebnahme Probebetrieb Installation Abnahmeprotokoll Erfahrungsbericht Informatik 2006 Softwaretechnologie Seite 15 Klöditz Hochschule Anhalt (FH) Software-Nutzung Teilphase Tätigkeiten Ergebnisse Nutzung Messungen, Überwachung Benutzungsstatistik Sammlung von Nutzerwünschen Fehler-Notversorgung Reports Fehlerprotokolle Nutzerwünsche Klöditz Hochschule Anhalt (FH) Informatik 2006 Softwaretechnologie Seite 16 Software-Lebenszyklus Initialisierung / Auftrag Problem-Definition Studie / Grobkonzept Problemlösung Systementwurf / Komponenten-Entwurf / Programmierung / Funktionstest Implementierung Übergabe Nutzung Klöditz Hochschule Anhalt (FH) Wartung / Pflege Vernichtung / Entsorgung Informatik 2006 Softwaretechnologie Seite 17 Beispiel: Studenten-Datenbank Systemanalyse • Eingangsdaten: – Datensatz je Student mit den Angaben: • Person, Heimatanschrift, Anschrift am Hochschulort, erlernte Berufe, spezielle Kenntnisse, belegter Studiengang, abgelegte Prüfungen, ... – Auswahlkriterien für spezielle Recherchen • Ergebnisdaten: – Listen nach unterschiedlichen Kriterien sortiert (Gruppenlisten, Prüfungslisten, ...) – Adress-Etiketten – Statistische Auswertungen Klöditz Hochschule Anhalt (FH) Informatik 2006 Softwaretechnologie Seite 18 Studenten-Datenbank Systemanalyse • Verarbeitungsvorschriften / Geschäftsprozesse: – – – – – – – – – – – neuen Studenten einrichten Studentendaten ändern (Heirat, Umzug, ...) Rückmeldungen erfassen Exmatrikulation Prüfungslisten erstellen Prüfungsergebnisse erfassen Leistungsnachweise erstellen Zeugnisse erstellen Gruppenlisten erstellen Statistiken erstellen ... Informatik 2006 Softwaretechnologie Seite 19 Klöditz Hochschule Anhalt (FH) Studenten-Datenbank Systemanalyse • Zerlegung in Teilaufgaben: – entspr. Geschäftsprozessen, evtl. weitere Zerlegung • Ressourcenbedarf: – 10.000 Datensätze mit je 2 KByte (etwa 20 MByte) – Diskette für Daten nicht ausreichend; PC als gerätetechnische Basis denkbar – Client-/Server-Architektur gewünscht oder Teilung nach Fachbereichen / Studiengängen ? • Bewertungskriterien: – – – – – – Nutzungskonzept Speicherbedarf Verarbeitungsgeschwindigkeit Robustheit, Benutzerfreundlichkeit Anpassbarkeit Kosten Klöditz Hochschule Anhalt (FH) Informatik 2006 Softwaretechnologie Seite 20 Studenten-Datenbank Modularisierung neuen Studenten einrichten Datensatz suchen Studentendaten ändern Datensatz anzeigen Exmatrikulation Datensatz ändern Prüfungsliste erstellen Datensatz speichern Steuerprogramm Gruppenliste erstellen Leistungsnachweis erstellen Zeugnis erstellen Prüfungsstatistik Absolventenstatistik ... Informatik 2006 Softwaretechnologie Seite 21 Klöditz Hochschule Anhalt (FH) Studenten-Datenbank Programmierung • Programmiersprache ? – C, C++, Java, ... – Datenbanksprache SQL • Datenverwaltungssystem ? – selbst programmiert – MS-Access – Oracle, MS-SQL-Server, MySQL, ... • Entscheidung für SQL wegen – – – – – Problemangemessenheit Verfügbarkeit Standardisierung Skalierbarkeit Portabilität Klöditz Hochschule Anhalt (FH) Informatik 2006 Softwaretechnologie Seite 22 Ergebnis-Darstellung Text • natürliche Sprache • formale Sprachen • Metasprachen • Datentyp-Beschreibungen • Relationen-Strukturen • Pseudocode Informatik 2006 Softwaretechnologie Seite 23 Klöditz Hochschule Anhalt (FH) Darstellung von Prozess- und Systemstrukturen Hierarchien / Bäume A B2 B1 C11 B3 C12 C31 C32 C33 Vernetzung D311 Klöditz Hochschule Anhalt (FH) D312 Informatik 2006 Softwaretechnologie Seite 24 Darstellung von Objekten und deren Beziehungen Entity-Relationship-Diagramm Buchhandel # ISBN * Autor * Titel ° Preis Buch ist im Katalog Katalogeintrag ist Buch Katalog # BuchNr # ExemplarNr Katalog-Buch wird von Leser ausgeliehen Rückg.Datum (RDatum) Leser leiht Katalog-Buch aus Einfache Verwaltung einer Bibliothek • Bibliotheksbestand steht im Katalog • Buchdaten stehen im Buchhandel • Leserdaten in Leser Leser # LeserNr * Name * Vorname ° Straße ° PLZ ° Ort Informatik 2006 Softwaretechnologie Seite 25 Klöditz Hochschule Anhalt (FH) Darstellung des Datenflusses Datenflussplan • Regel: entlang von Flusslinien (Pfeilen) folgen abwechselnd Aktionen und Daten / Dateien Aktion Daten / Dateien Klöditz Hochschule Anhalt (FH) Platte Lochkarte Magnetband Lochband Beleg Druckliste Informatik 2006 Softwaretechnologie Seite 26 Datenflussplan Programmentwicklung Quelltext Editor Quellmodul Compiler Compilerliste Objektmodul Fehlerliste Systembibliotheken Linker Linkerliste Lademodul Fehlerliste Informatik 2006 Softwaretechnologie Seite 27 Klöditz Hochschule Anhalt (FH) Darstellung des Steuerflusses Programmablaufplan (PAP) Anweisung Unterprogramm-Aufruf Eingabe / Ausgabe Alternative nein ja Klöditz Hochschule Anhalt (FH) Informatik 2006 Softwaretechnologie Seite 28 Programm-Ablaufplan BubbleSort Start sortiert=true i=1 Lies N W[i]>W[i+1] ? i=1 nein Lies W[i] vertausche i=i+1 sortiert=false Schreib W[i] i=i+1 nein i>N ? nein i>N ? i>N-1 ? Stopp nein sortiert ? Eingabe Verarbeitung Ausgabe Informatik 2006 Softwaretechnologie Seite 29 Klöditz Hochschule Anhalt (FH) Darstellung des Steuerflusses Struktogramm nach Nassi-Shneiderman Sequenz LIES (anz); Alternative Bedingung ? ja ... nein ... für i von 1 bis anz Iteration SCHREIBE (zahl[i]); Klöditz Hochschule Anhalt (FH) Informatik 2006 Softwaretechnologie Seite 30 Struktogramm SelectionSort LIES (anz); für i von 1 bis anz LIES (zahl[i]); für j von 1 bis (anzahl-1) min=zahl[j]; pos=j; für i von (j+1) bis anz zahl[i]<min ? ja nein min=zahl[i]; pos=i; zahl[pos]=zahl[j]; zahl[j]=min; für i von 1 bis anz SCHREIBE (zahl[i]); Informatik 2006 Softwaretechnologie Seite 31 Klöditz Hochschule Anhalt (FH) Ergebnis-Darstellung Standards für Dokumentationen • DIN-Normen für Dokumentationen: – – – – – DIN 44 300 DIN 66 001 DIN 66 230 DIN 66 231 DIN 66 232 Klöditz Hochschule Anhalt (FH) Informationsverarbeitung; Begriffe Datenfluss- und Programmablaufpläne Programmdokumentation Programmentwicklungsdokumentation Datendokumentation Informatik 2006 Softwaretechnologie Seite 32 Programmentwicklungsdokumentation Gliederung nach DIN 66231 • Auftrag – Aufgabenstellung, Zielvorstellungen, Auftragsbegründung, Auftraggeber, Auftragsempfänger, Unterlagen, Auflagen • Systemunterlagen – Systembezeichnung, Systemziele – Vorgabe: Fachaufgabe, Daten, Kennwerte, Auflagen, Begriffe – Lösung: Programmorganisation, Datenorganisation, Sachmittel, Personal, Organisationseinheiten – Prüfung: Prüfziele, Prüfverfahren, Prüffälle – Einführung: Einführungs-, Umstellungsverfahren, Schulung, Einführungserfahrung Informatik 2006 Softwaretechnologie Seite 33 Klöditz Hochschule Anhalt (FH) Programmentwicklungsdokumentation Gliederung nach DIN 66231 • Bewertungsunterlagen – – – – Kosten / Nutzen Stärken / Schwächen Bewertungskriterien / -methoden Bewertungsergebnis • Entscheidungsprotokoll – Entscheidung – Entscheidungsbegründung – Entscheidungsträger Klöditz Hochschule Anhalt (FH) Informatik 2006 Softwaretechnologie Seite 34 Programmdokumentation Gliederung nach DIN 66230 • Programmkenndaten – Programmbezeichnung, Deskriptoren, Aufgabe, Gerätebedarf, Programmgröße, Programmbedarf, Programmiersprachen, Betriebsarten, Dateien, Konventionen, Zuständigkeiten, Unterlagen, Sonstige Angaben • Funktion und Aufbau des Programms – Aufgabenstellung, Aufgabenlösung, Programmaufbau, Programmablauf, Daten, Anwendungsgrenzen, Datensicherung, Anwendungsbeispiel • Installierung des Programms – Installierung, Test • Betrieb des Programms – Gerätebedarf, Bedienung, Unterbrechungen im Programmablauf, Wiederanlauf, Leistungsmerkmale Informatik 2006 Softwaretechnologie Seite 35 Klöditz Hochschule Anhalt (FH) Kontrollfragen 1. Welche Faktoren beschreiben die Qualität von Software aus Nutzersicht? 2. Nennen Sie Beispiele (aus Ihrer Erfahrung), in denen Software gegen die geforderten Qualitätsfaktoren verstößt. 3. Worin bestehen Unterschiede zur Entwicklersicht? 4. Welcher Zusammenhang besteht zwischen der Entdeckung von Entwicklungsfehlern und dem Aufwand zu deren Behebung? 5. Beschreiben Sie den Lebenszyklus eines Softwareproduktes. 6. Nach welchen Gesichtspunkten entscheiden Sie, welche Entwicklungswerkzeuge benutzt werden sollen? 7. Welcher Zweck wird beim Testen verfolgt? 8. Welche Rolle spielt der Auftraggeber im SoftwareEntwicklungsprozess? 9. Welche formalen Methoden zur Dokumentation von Software kennen Sie? 10. In wiefern ist Software-Entwicklung mehr als Programmieren? Klöditz Hochschule Anhalt (FH) Informatik 2006 Softwaretechnologie Seite 36