IGIS
Grundlagen der industriellen Softwaretechnik
Grundlagen der industriellen Softwaretechnik
-
- 1 / 135
-
Cartes-fiches
Make-or-Buy Entscheidung
Existieren verfügbare Softwarelösungen für den Bedarf gibts Standardprodukte oder muss ein neues System entwickelt werden?
Planung eines Softwareprojekts?
-Bedarfsermittlung
-Make-or-Buy Entscheidung
-Zeit- & Ressourcenplanung
-Auftragsvergabe
Zeit- & Ressourcenplanung in der Planung?
Erstellung eines ersten Projektsplans bis zur Einführung
-Einplanung der benötigten Ressourcen
Auftragsvergabe eines Softwareprojekts?
-externer Dienstleister oder eigene IT-Abteilung?
-Bei Vergabe an einen Dienstleister müssen bei Auftragsvergabe die Anforderungen bereits dokumentiert vorliegen
Phasen der Entwicklung?
-Requirements Engineerin & Spezifikation
-Architektur & Implementierung
-Qualitätssicherung
Phasen des Betriebs?
-Bereitstellung der Ausführungsumgebung
-Integration
-Inbetriebnahme
Sicherzustellende Qualitätsanforderungen im Betrieb?
-Sicherheit
-Verfügbarkeit
-Skalierbarkeit
Typische Elemente der IT-Infrastruktur?
-Server
-Schnittstellen
-Softwaresysteme
-Speichersysteme
-Sicherheitssysteme
Zielkonflikte zwischen Anwendungsentwicklung & Betrieb?
Schnell auf fachliche Anpassungen reagieren zu können andererseits ein sicher & zuverlässig arbeitendes System zu haben
typische Aktivitäten in der Weiterentwicklung?
Aktivitäten aus der Phase Erstellung (RE, Spezifikation, Architektur, Implementierung & Qualitätssicherung)
Ergänzung neuer Fachfunktionen
Typische Aktivitäten der Phase Wartung?
Korrektur von Fehlern & Verbesserungen (Laufzeitverhalten & Performance)
Wichtige Aktivitäten in der Phase Abschaltung?
-Herauslösung aus der Anwendungslandschaft
-Migration von Daten
-Verträge kündigen
-Personal weiterqualifizieren
Typische Gründe für eine Abschaltung?
-Ablösung durch neue Systeme
-Zusammenführung / Vereinheitlichung bzw. Konsolidierung der Anwendungslandschaft
-Aufgabe von Geschäftsfeldern oder Auslagern von Aktivitäten
Risiken beim Herauslösen von Altsystemen aus der Anwendungslandschaft?
-schwer zu erkennende Abhängigkeiten an Schnittstellen aufgrund von mangelnder Dokumentation / Kenntnissen der genutzten Technologien
-Abbildung vom alten auf das neue Datenschema
-Vergessen von Küdnigung von Verträgen im Zusammenhang mit dem Altsystem
Requirements Engineering?
Aktivitäten zum methodischen & strukturierten Ermittlen von Anforderungen an ein System
Eigenschaften des Requirements Engineering?
koorperativ, iterativ, inkrementell
Drei Kernaktivitäten des Requirements Engineering?
-Ermittlung von Anforderungen
-Dokumentation von Anforderungen
-Prüfen & Abstimmen von Anforderungen
systematisch Ermittlung von Anforderungen?
1. Systemkontext bestimmen
-> Stakeholder & Systemabhängigkeiten bestimmen
2. Quellen für Anforderungen ermitteln
-> z.B. Stakeholder, Dokumente oder andere Systeme
3. Geeignete Ermittlungstechniken auswählen
-> Befragung, Beobachtung, Prototypen
Zu gewährleistende Ziele des Requirements Engineering?
-relevante Anforderungen bekannt und genügend verstanden
-konform dokumentiert & spezifiziert
-ausreichende Übereinstimmung über bekannte Anforderungen bei allen involvierten Stakeholdern
Systematische Dokumentation von Anforderungen?
1. Zweck & Zielgruppe der Dokumentation bestimmen
2.Detailebene & Darstellungsart wählen
3.Anforderungen dokumentieren
4.Prüfen: Passt die Dokumenation noch zu Zweck und Zielgruppe
Vier Schritte zum Prüfen & Abstimmen von Anforderungen?
1. Prüfkriterien festlegen
2. Prüfprinzipien & Prüftechniken auswählen
3. Prüfung durchführen & Ergebnisse dokumentieren
4. Abstimmen der Anforderungen und Konfliktmanagement
Konfliktmanagement?
das methodische identifizieren, analysieren und auflösen von Konflikten
Formen der Dokumentation?
- Beschreibung in Textform
- graphische Modelle
Ziel der Spezifikation?
Erstellung einer technischen Dokumentation der nach außen relevanten Anforderungen
Verwendung der Spezifikation?
Basis für Systemdesign, Implementierung und Erstellung von Testfällen
Elemente einer Spezifikation?
fachliches Verhalten:
-Datenmodelle (Geschäftsobjekte)
-Fachfunktionen
-Geschäftsregeln
technische Systemschnittstellen:
Zweck der Schnittstelle
-technische Protokolle (FTP, HTTP, SMTP)
-Datenstruktur
-GUI
sowie:
Qualitätseigenschaften und Randbedingungen
Spezifikation von Benutzerschnittstellen (GUI)?
-Inhalt und Aufbau einzelnder Dialogmasken
-Validierung von Daten
-Dialogfluss
textuell & visuell spezifiziert
Spezifikation von Aufbau und Abläufen des Systems?
- Komponenten
->deren Abgrenzung, Funktion und Zusammenspiel
- Fachliche Datenmodelle
-> Modell zur Spezifikation von fachlichen Entitäten und deren Zusammenhänge
- Geschäftsregeln
-> Aussagen die fachliche Aspekte definiert / bedingt
Spezifikation von Qualitätseigenschaften
"Gesamtheit der Merkmale & Merkmalswerte eines Softwareprodukts, die sich auf dessen Eignung zur Erfüllung gegebener Erfordernisse bezieht."
-gute Usability, Datensicherheit, Erreichbarkeit
Architektur im Software Engineering?
alle Festlegungen und Entscheidunggen über das System die vor der Implementierung getroffen werden
Überführung von Problemraum in Lösungsraum?
Problemraum (RE / Spezifikation)
Prozess / Ergebnis (IT-Architektur)
Lösungsraum (Implementierung)
Architekturbeschreibung
- Vorlage und Rahmenwerk für die Aktivitäten der Implementierung
- Ergebnis von Entscheidungen und Gestaltungsaktivitäten auf Basis der Ergebnisse des Requirements Engineering und der Spezifikation
Kernaktivitäten der Architekturerstellung?
1. Erfassung der Anforderungen & Interessen der Stakeholder
-> abwägen und entscheiden zwischen Kosten und Funktionalität / erste Aufwandschätzung
2. Entwerfen einer Architektur zur Erfüllung dieser Anforderungen
3. Beschreiben und Dokumentieren der Architektur
Verhältnis von Architektur und System?
Architektur ist systemimmanent
-> es kann zwar ein System ohne bestehende Architekturbeschreibung implementiert werden, dennoch weist das fertige System eine Architektur auf.
Dokumentation von IT-Architekturen?
- Skizzen / Grafiken
- Strukturierte Softwaremodelle (z.B. UML)
- spezifische Architekturbeschreibungssprachen (finden vor allem in der Forschung Verwendung)
- Beschreibung direkt im Programmcode
A priori Dokumentation?
Erstellung der Dokumentation vor der Implementierung
Ex Post Dokumentation
Erstellung der Dokumentation nach der Implementierung
Ebenen von IT-Architekturen
- Facharchitektur
- Softwarearchitektur
- IT-Unternehmensarchitektur
Beziehung zwischen Architektur und Implementierung?
Architekt ist Ansprechpartner für Entwickler bei Rückfragen / Entscheidungen die sich auf mehrere Teile des Systems ausüben. Desweiteren dient die Architekturbeschreibung als Rahmenwerk für die Implementierung.
Manifestatione eines Softwaresystems?
- durch Entwickler erzeugter Quellcode
- ausführbare, kompilierte Binärversion