IGIS
Grundlagen der industriellen Softwaretechnik
Grundlagen der industriellen Softwaretechnik
-
- 1 / 135
-
Flashcards
Möglichkeiten zur Erstellung des Programmcodes?
- Schreiben von Code
- Wiederverwendung von bestehendem Code (Frameworks / Bibliotheken)
- Code automatisch generieren
Wichtigste Funktionen von Entwicklungsumgebungen?
- Ünterstützung beim Schreiben von Code
- Einbindung von Bibliotheken & Frameworks
- Generierung von Code für triviale Aufgaben
- Unterstützung der Versionsverwaltung
- Erzeugen einer lauffähigen Version aus dem Code
Arten von Programmiersprachen?
- imperative (C)
- objektorientierte (Java)
- Web-Anwendungssprachen (JavaScript)
- Datenbanksprachen (SQL)
- Beschreibungssprachen (HTML, CSS)
Faktoren für die Auswahl einer Programmiersprache?
- Ausführungsumgebung
- zur Verfügung stehende Entwickler
- Anwendungslandschaft
- vorhandene Frameworks / Bibliotheken
- Erfahrungen mit der Sprache
- vorhandenes Fachwissen
- Unterstützung für zukünftige Systemplattformen
Systemtechniker
Ziel: Bereitstellen & Gewährleisten von technischen Ressourcen
Aufgaben - Evaluation, Installation und Wartung (Hardware und Software)
- Bereitstellung von Ressourcen
- Überwachung der genutzten Ressourcen
- Sicherstellung der Verfügbarkeit
Softwarequalität?
-wird auf Basis der Spezifikation bestimmt
- für den Kunden ist entscheidend, dass er mit dem System arbeiten kann
Qualitätsmanagement?
Zusammenfassung aller organisierten Maßnahmen, die der Verbesserung der Qualität von Produkten, Prozessen oder Leistungen dienen.
konstruktives Qualitätsmanagement?
Maßnahmen des Qualitätsmanagements die vor der Erstellung des Produkts stattfinden:
- technische Maßnahmen
- organisatorische Maßnahmen
- sozio-psychologische Maßnahmen
analytisches Qualitätsmanagement?
Maßnahmen zur Prüfung und Bewertung des aktuellen Qualitätsniveaus:
- statische & dynamische Testverfahren
statische Test?
Reviews oder Audits
Auswertung durch Kennzahlen oder Metriken
dynamische Tests
Ausführung mit konkreten Eingabewerten und anschließende Bewertung der Ausführung
Testgegenstand?
- erzeugter Programmcode
- fachliche Anforderungen
- technische Spezifikation
- Architekturbeschreibungen
- Testfälle
Teststufen?
- Komponententest
- Integrationstest
- Systemtest
- Abnahmetest
Releaseplan?
legt Termine fest zu denen Änderungswünsche und Anpassungen in Betrieb genommen werden.
Continiuous Integration?
durch Automatisierung und Werkzeugunterstützung tägliche und wöchentliche Releases von Softwaresystemen und automatische Tests.
Continuous Delivery?
Aufbau eines automatische Deployments der angepassten Anwendung.
- kurze Zyklen ohne konkrete Termine
IT-Service-Portfolio?
- Katalog über verfügbare Services eines IT-Betriebs
(z.B. Bereitstellung von Datennetzen, Serversystemen, Betriebssystemen, Speichersystemen und Backuplösungen)
Herausforderungen bei der Weiterentwicklung?
- Degenerierung der internen Struktur mit jeder Veränderung
- neue Anforderungen werden durch verwendete Technologien nicht ünterstützt
- mangelnde Dokumentation
- Fehlendes Wissen über Architektur und Programmiersprache
- Bestandswahrung bei funktionierenden Teilen des Systems
Architektur- & Dokumentationsdisziplin?
Es ist bedeutsam auch unter Zeitdruck die Dokumentation zu beachten und diese zu pflegen.
Rolle?
wird Personen zugeordnet und ist gekennzeichnet durch spezifische Aufgaben und Zielsetzungen
Projektmanager?
Ziel: erfolgreiche Durchführung des Projekts
Aufgaben:
- Planung, Organisation und Kostenschätzung
- Steuerung und Koordination von Aktivitäten und Personen
- Kontrolle und Verfolgung der erzielten Ergebnisse
- Überwachung von Projektplan und Produktivität
Risikomanager?
Ziel: Risikominimierung des Projekts
Aufgaben:
- Indentifikation aller Risiken
- Risikoanalyse & Beurteilung
- Risikoauflösung / -abschwächung
- Risikoüberwachung
Qualitätsmanager?
Ziel: hohe Qualität des Produkts
Aufgaben:
- Definition der Systemqualität
- Erstellung einer überprüfbaren Plans zur Qualitätssicherung
- Koordination der Maßnahmen zur Qualitätsicherung
- Verabschiedung von Qualitätsrichtlinien
- Sicherstellen der Kundenzufriedenheit
Requirements Engineer?
Ziel: Lieferung der fachlichen Aufgabenstellung
Aufgaben:
- Quellenbestimmung für Anforderungen++
- Ermittlung der Anforderungen & Dokumentation
- Übereinstimmung der Stakeholder erreichen
- Prüfen & Abstimmen der Anforderungen
- Verwaltung & NAchverfolgung der Anforderungen
Spezifizierer
Ziel: Erstellung einer detaillierten technischen Spezifikation
Aufgaben:
- Beschreibung des Verhaltens von Daten & Funktionen
- Definition überprüfbarer Qualitätsanforderungen
- Vorbereitung der Qualitätssicherung durch Definition von Testfällen
Architekt?
Ziel: erfolgreiche technische Umsetzung der fachlichen Anforderungen
Aufgaben:
- Gestaltung & Beschreibung der Architektur
- Sicherstellung der Einhaltung der Qualitätsanforderungen & technischen Randbedingungen
- Überwachung der Architektur während der Implementierung
Vorbereitung der Systemintegration
Entwickler?
Ziele: Erstellung funktionierenden Programmcodes
Aufgaben:
- Programmierung einzelner Module
- Definition von Algorithmen
- Modultests
- Integration einzelner Module
Tester?
Ziel: Auffinden von Fehlern
Aufgaben:
- Auswahl der Testverfahren
- Testplan, Testfälle, Testdaten, Testverfahrensspezifikation
- Durchführung der Teststufen
- Dokumentation der Testbedingungen & Ergebnisse
Integrator?
Ziel:Einpassung des Systems in die bestehende Systemlandschaft
Aufgaben:
- Prüfung der Integrierbarkeit
- Ausprobieren der Integration
- Prognose des Ressourcenbedarfs
- Integration des fertigen Systems
- Herstellung von technischen Verbindungsstellen
Vom Prozessparadigma zumd Softwareprozess?
Prozessparadigma
Softwareprozessmodell Rahmenwerk
Individuelles Softwareprozessmodell
Softwareprozess
Prozessparadigma?
sehr allgemeine Vorgehensmodelle ohne Rollen, Zuständigkeiten oder detaillierte Abläufe
Softwareprozessmodell Rahmenwerk?
detaillierte Beschreibungen zu Rollen, Zuständigkeiten, konkreten Aktivitäten & deren Abhängigkeiten
Individuelles Softwareprozessmodell?
legt fest:
- Welche Akitvitäten durchzuführen sind
- deren Reihenfolge
- zugeordnete Rollen & Organisationseinheiten
- Werkzeuge und Methoden zur Unterstützung
Typen der Objekte die erzeugt werden sollen
Softwareprozess?
- ein konkretes Softwareprojekt, die Ausprägung eines Softwareprozessmodells
- Welche Aktivitäten werden wann von wem ausgeführt
- Welche Objekte wann erzeugt, bzw. verarbeitet werden
Wasserfallmodell?
schrittweise, jeweils vollständige Bearbeitung einzelner Phasen in festgelegter Reihenfolge ohne Überschneidung. Rückkopplung ist möglich.
V-Modell
ähnlich dem Wasserfallmodell, jedoch wird jeder Phase der Konstruktion eine Teststufe zugeordnet.
Nachdem die konstruktiven Phasen abgeschlossen sind, durchläuft das System die Teststufen
Evolutionäre Entwicklung?
- basiert auf Idee ein Softwaresystem in mehreren Zyklen entstehen zu lassen
- System steht stärker im Fokus als die Dokumentation
- Typischer Zyklus:
1. Festlegen der Funktionen
2. Umsetzen
3. integration in bestehendes System
4. Testen & Bewerten
- erscheint aus Managementsicht unstrukturiert und ohne definiertes Ziel
V-Modell XT?
-deutsches Softwareprozessmodell Rahmenwerk, welches verbindlich für viele öffentliche IT-Projekte ist
Hauptelemente:
- Projekttypen
- Entscheidungspunkte & Projektdurchführungsstrategien
- Vorgehensbausteine
- Referenzen
Projekttypen im V-Modell XT
Projekt eines Auftraggebers
Projekt eines Auftragnehmers
Projekt eines Auftraggebers mit Auftragnehmer in der gleichen Organisation
Einführung & Pflege eines organisationsspezifischen Vorgehensmodells
-> Für jeden Projekttyp wird beschrieben welche Vorgehensbausteine vorkommen müssen und welche optional sind
Entscheidungspunkte & Projektdurchführungsstrategien im V-Modell XT?
An diesen Punkten wird entschieden ob eine bestimme Projektfortschrittsstufe erreich wird
Die Reihenfolge der Punkte wird in der Projektdurchführungstrategie festgelegt und leitet sich aus Projekttyp & spezifischen Projektmerkmalen ab