Systementwicklung
Aufgabe, bestehend aus vielen Teilaufgaben, welche arbeitsteilig durchgeführt werden hohe Komplexität der Gesamtaufgabe Sachziel: Entwicklung eines rechnergestützten Informationssystems, das vorgegebene Anforderungen an das zu entwickelnde Informationssystem erfüllt (funktionale Anforderungen: Wass soll das System leisten?) Formalziel: Wirtschaftlichkeits-, Zeit- und Qualitätsziele (nicht-funktionale Anforderungen: In welcher Güte sollen die Ziele realisiert werden?) fachliche Anforderungen: aus Perspektive von Fachexperten formuliert Systemanforderungen: aus Perspektive von IT-Experten formuliert Nicht-funktionale Anforderungen: Unterstützung des Handlungssystems, Systemnutzung der Anwender, Systemleistung, Zuverlässigkeit des Systems, Investitionsschutz
Softwarelebenszyklus
Zeitraum zwischen der Planung, Erstellung und der Inbetriebnahme
Planungsaktivitäten
Projektvorschlag Lastenheft: auf hohem Abstraktionsgrad werden alle entscheidungsrelevanten fachlichen Anforderungen aufgeführt (Hard- und Software, Machbarkeit; Wirkung des Vorhabens; Wirtschaftlichkeitsbeurteilung; zeitlicher, personeller Aufwand)
Analyseaktivitäten:
Entwickeln eines gemeinsamen Verständnisses der beteiligten Akteure Voraussetzung: Zusammenarbeit Fach- und IT-Experte Analyseaktivitäten in einem Pflichtenheft dokumentieren
Entwurfsaktivitäten
fachliche Anforderungen in Systemanforderungen überführen Softwaresystem aufbauen Entwurfsentscheidungen fällen, dokumentieren Spezifikation der Architektur
Implementierungsaktivitäten
Realisieren der Systemanforderungen auf Grundlage des Entwurfs Spezifikation von Programmen, Programmiersprache Fehlertest, Fehlerbehebung Integration getesteter Programme mit anderen Subsystemen Implementierung der Datenhaltung
Systemeinführung und Systemabnahme
Produktivbetrieb des Systems vorbereiten, Systemabnahme erreichen evaluieren, überprüfen - Anforderungen eingehalten? Anwenderschulungen, Migration von Daten aus Altsystemen
Gründe für das Scheitern der Softwareentwicklung
hoher Zeitdruck bei begrenzten Ressourcen (Sorgfalt?) technische Risiken schlechte Prognosen im Hinblick auf Kosten und Zeit Umgang mit Anforderungen
Vorgehensmodell
Spezifiziert zeitlich, sachlogische Anordnung von Aufgaben der Systementwicklungsaufgaben + Zuordnung von Rollen und Rollenverantwortlichkeiten (sequentielle ud nicht-sequentielle Vorgehensmodelle)
Sequentielle Vorgehensmodelle
Aktivitäten der Systementwicklungsafgabe sequentiell nacheinander, genau einmal ausgeführt -> Einteilung in Phasen (Phasenmodell) Wasserfallmodell: Aktivitäten werden strikt nacheinander ausgeführt, Erstellung von Dokumenten (Plichten- und Lastenheft) am Ende jeder Phase, Fortschritt kontrollierbar, hohe Planbarkeit, sich ändernde Anforderungen können berücksichtigt werden Analyse Entwurf Implementierung Testen Betrieb
Prototyping
Vorabversion eines Softwaresystems evolutionäres Prototyping:Prototyp schrittweise verbessern - bis angemessenes Softwareprodukt vorliegt explorative Prototyping: Erstellen von Prototypen in kurzer Zeit mit Hilfe von darauf ausgerichteten Softwarewerkzeugen Experimentelles Prototyping: Testen von Entwurfs- und Implementierungsalternatven, Realisierbarkeit %MCEPASTEBIN%
V-Modell XT
Vorgehensmodell zur Durchführung der Softwareentwicklungsaufgabe Ziel: Anpassbarkeit an konkrete Entwicklungsaufgaben und deren Spezifika
Aufwandschätzung
Ziel: vor und während der Projektdurchführung möglichst genaue, zuverlässige Schätzwerte prognostizieren Prognose des personellen und zeitlichen Aufwand sowie der Kosten Herausforderung: Prognosequalität, Prognosegenauigkeit
Softwaremetrik
Abbildung auf eine skalare Größe, die quantitativ eine bestimmte Eigenschaft von Softwaresystemen oder Realisierungen der Systementwicklungsaufgabe abbildet. Anforderungen: Validität Vergleichbarkeit Objektivität Reproduzierbarkeit Wirtschaftlichkeit Prozess- und Produktmetriken, dynamische und statische Metriken