Grundlagen der industriellen Softwaretechnik
Grundlagen der industriellen Softwaretechnik
Grundlagen der industriellen Softwaretechnik
Fichier Détails
Cartes-fiches | 107 |
---|---|
Utilisateurs | 10 |
Langue | Deutsch |
Catégorie | Informatique |
Niveau | Université |
Crée / Actualisé | 15.08.2014 / 21.04.2023 |
Lien de web |
https://card2brain.ch/box/grundlagen_der_industriellen_softwaretechnik
|
Intégrer |
<iframe src="https://card2brain.ch/box/grundlagen_der_industriellen_softwaretechnik/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>
|
6.3 Weiterentwicklung
1. Worin unterscheiden sich Neuentwicklung und Weiterentwicklung von Softwaresystemen?
Ganz grundsätzlich umfassen die Aktivitäten der Weiterentwicklung dieselben Aufgaben und Aktivitäten, wie die initiale Erstellung eines Softwaresystems. Jedoch beziehen sich die Aktivitäten der Weiterentwicklung bereits auf ein produktiv eingesetztes System, an dem Änderungen vorzunehmen sind.
2. Nennen Sie drei Herausforderungen der Weiterentwicklung.
• Die interne Struktur (die Architektur) bestehender Systeme degeneriert mit jeder Änderung im Programmcode. Im Verlauf mehrerer Jahre verlieren Softwaresysteme die ursprünglich geplante Struktur, sodass oftmals die Auswirkungen selbst von kleinen Anpassungen nicht klar abschätzbar sind.
• Die Architektur und die eingesetzten Technologien des weiter zu entwickelnden Systems unterstützen die neuen Anforderungen nicht.
• Die Dokumentation des anzupassenden Systems ist unvollständig und nicht aktuell. Die konkreten Stellen im Programmcode, die geändert werden müssen, lassen sich nur sehr aufwendig (durch Reengineering) herausfinden.
• Fehlendes Wissen über die Architektur und Programmiersprache des Systems: Das Entwicklungsteam
ist nicht in der Lage zuverlässig Änderungen vorzunehmen.
• Bereits bestehende Funktionen, die unverändert bleiben, dürfen im Zuge der Weiterentwicklung nicht beeinträchtigt werden. Falls von einer Änderung aus Versehen doch eine Funktion geändert wurde, muss das vor dem Ausliefern der neuen Version erkannt und behoben werden. Insbesondere dürfen bereits behobene Fehler in der neuen Version nicht wieder eingebracht werden.
3. Warum sollten Architektur und Dokumentation auch in der Weiterentwicklung mit berücksichtigt werden?
Nur wenn es während der vielen kleineren Anpassungen im Zuge der Weiterentwicklung gelingt, die Softwarearchitektur kontinuierlich und strukturiert zu überwachen und zu pflegen, kann die Fähigkeit zur Weiterentwicklung über einen langen Zeitraum gewährleistet werden. Weiterhin ist ebenfalls für die kontinuierliche Aktualisierung der Systemdokumentation zu sorgen. Denn die Identifikation der Stellen, an denen Anpassungen vorgenommen werden, nehmen erfahrungsgemäß etwa leicht 40 Prozent der Zeit der Weiterentwicklungsaktivitäten ein.
Lektion 7. Rollen im Software Engineering
.
7.1 Idee der rollenbasierten Herangehensweise
1. Nennen Sie 2 Vorteile der rollenbasierten Herangehensweise
• Ermöglichen einer sinnvollen Aufteilung von Aktivitäten in großen Teams
• Spezialisierung und Expertenbildung
2. Welche Auswirkungen haben die Zielkonflikte zwischen den Rollen?
Insbesondere durch diese Zielkonflikte zwischen den Rollen müssen in jeder Phase des Software Engineerings kontinuierlich Interessenskonflikte zwischen den am Projekt beteiligten Personen verhandelt und aufgelöst werden. Damit ist die Qualität der Ergebnisse der einzelnen Aktivitäten stark abhängig von einer engen Interaktion und Kommunikation zwischen den beteiligten Personen. Insbesondere die persönlichen Beziehungen zwischen diesen Personen und die Wechselwirkungen zwischen den der Rollen zugeordneten Aufgaben sind maßgebliche Faktoren, die zum Erfolg oder Misserfolg eines Softwareprojektes beitragen.
3. Was ist die Grundannahme aller Überlegungen im Software Engineering?
Eine Grundannahme hinter allen Überlegungen im Software Engineering kann wie folgt beschrieben werden: Projekte funktionieren und können erfolgreich abgeschlossen werden, wenn die richtigen Personen unter Verwendung der geeigneten Methoden, (Modellierungs- und Programmier-) Sprachen und Werkzeuge vernünftig miteinander arbeiten. Die Sicherstellung dieser Rahmenbedingungen ist damit eine wesentliche Aufgabe im Software Engineering.
7.2 Typische Rollen
1. Nennen Sie 3 Typen von Rollen mit je einer konkreten Rolle als Beispiel.
• Rollen mit übergreifendem Einfluss, z. B. Projektmanager
• Konstruktive Rollen, z. B. Entwickler
• Betreibende Rollen, z. B. Systemtechniker
2. Worin unterscheiden sich konstruktive und betreibende Rollen?
• Konstruktive Rollen sind aktiv an der Entwicklung beteiligt.
• Betreibende Rollen sind im Anschluss an die Entwicklung für Integration und Betrieb zuständig.
3. Worin unterscheiden sich die Rollen Projektmanager und Qualitätsmanager insbesondere von den anderen Rollen?
Beide Rollen haben einen übergreifenden Einfluss. Sie geben Vorgaben und Rahmenbedingungen für andere Rollen vor und überprüfen deren Einhaltung.
Lektion 8. Organisation von Software-Projekten
.
8.1 Vom Prozessparadigma zum Softwareprozess
1. Worin unterscheiden sich Prozessparadigmen von Softwareprozessmodellen?
Prozessparadigmen sind sehr allgemeine Vorgehensmodelle. Sie geben die grobe Struktur von Softwareprozessen vor, jedoch ohne auf Details einzugehen. Um die organisationsspezifischen Besonderheiten in der Softwareentwicklung zu berücksichtigen, werden individuelle Softwareprozessmodelle erarbeitet. Anhand dieses detaillierten individuellen Prozessmodells ist für alle Beteiligten einer Organisation transparent beschrieben, wie ein Entwicklungsprozess ablaufen soll, d. h. welche Aktivitäten von welchen Rollen durchgeführt
und welche Ergebnisse dabei erzeugt werden.
2. Nennen Sie 2 Beispiele für Softwareprozessmodell-Rahmenwerke.
V-Modell XT, Rational Unified Process (RUP), Scrum
3. Wie hängen Softwareprozessmodell und Softwareprozess zusammen?
Ein einzelner Softwareprozess, also ein ganz konkretes Softwareprojekt, ist eine Ausprägung des individuellen Softwareprozessmodells. Zu einem Softwareprozessmodell gibt es damit eine Menge von Softwareprozessen, die nach den Vorgaben und Rahmenbedingungen des Prozessmodells ausgeführt werden.
8.2 Prozessparadigmen
1. Erläutern Sie die Grundidee hinter dem Wasserfallmodell.
Grundidee hinter dem Wasserfallmodell ist die schrittweise Bearbeitung der einzelnen Phasen Anforderungen, Analyse, Entwurf, Implementierung, Test und Betrieb in einer festgelegten Reihenfolge. Wie in einem Wasserfall „fällt“ ein Softwareprojekt der Reihe nach von „oben nach unten“. Jede einzelne Phase wird vollständig fertiggestellt, erst dann geht es zur nächsten Phase weiter.
2. Erläutern Sie die Grundidee der evolutionären Entwicklung und nennen Sie deren einzelnen Phasen.
Das Prozessparadigma „evolutionäre Entwicklung“ bezeichnet ein allgemeines Vorgehensmodell, dessen Grundidee die Erstellung des Softwaresystems in mehreren sich wiederholenden Zyklen ist. Mit jeder Version wächst der Funktionsumfang des zu erstellenden Softwaresystems. Erkenntnisse, die bei der Umsetzung und der Bewertung der aktuellen Version gewonnen werden, können in den folgenden Systemversionen berücksichtigt werden. Ein Zyklus läuft dabei wie folgt ab:
1. Festlegen, welche Funktionen in diesem Zyklen umgesetzt werden sollen,
2. Umsetzen der Funktionen,
3. Integration der neuen Funktionen in das bestehende System sowie
4. Testen und Bewerten der aktuellen Softwareversion.
3. Worin unterscheiden sich Wasserfallmodell und die evolutionäre Entwicklung?
Im Vergleich zum Wasserfallmodell gibt es bei der evolutionären Entwicklung keine ganz klar abgegrenzten Phasen mit vorher definierten Ergebnissen. Alle Software Engineering Kernaktivitäten wiederholen sich kleinteilig in kurzen Zyklen. Da zu Beginn des Softwareprozesses keine vollständige Spezifikation erstellt wird, wird der konkrete Funktionsumfang des Systems erst während der Entwicklung genau festgelegt. Daher erscheint die evolutionäre Entwicklung aus Sicht des Managements unstrukturiert und ohne klar definiertes Ergebnis.
Lektion 9. Softwareprozessmodell-Rahmenwerke
.
9.1 V-Modell XT
1. In welchen Projekten wird das V-Modell XT eingesetzt?
Mit dem V-Modell XT wurde in Deutschland ein Rahmenwerk für Softwareprozessmodelle geschaffen, das verbindlich für öffentliche IT-Projekte zum Beispiel in der Bundesverwaltung vorgeschrieben ist. Damit ist das V-Modell XT sehr stark im öffentlichen Bereich verbreitet.
2. Nennen Sie die Hauptelemente im V-Modell XT und deren Verwendungszweck.
• Projekttypen: Um den Einsatz des V-Modells XT möglichst vielen Projekten zu ermöglichen, werden verschiedene Projekttypen unterschieden. Für jeden der Projekttypen beschreibt das V-Modell XT, welche Vorgehensbausteine dort zum Einsatz kommen müssen und welche optional ausgewählt werden können.
• Entscheidungspunkte und Projektdurchführungsstrategien: In den sogenannten Entscheidungspunkten im V-Modell XT wird entschieden, ob eine bestimmte Projektfortschrittsstufe erreicht wird. Zu jedem Entscheidungspunkt ist definiert, welche Ergebnisse bzw. Produkte dort fertiggestellt worden sind. Die Reihenfolge der Entscheidungspunkte wird in der Projektdurchführungsstrategie festgelegt. Die konkrete Durchführungsstrategie zu einem Projekt leitet sich aus den Projekttypen und spezifischen Projektmerkmalen ab.
• Vorgehensbausteine: In den Vorgehensbausteinen werden im V-Modell XT konkrete Aufgaben, Aktivitäten, Ergebnisse und daran beteiligte Rollen innerhalb eines Softwareprojektes festgelegt.
• Referenzen: Liefern Vorgaben und Anhaltspunkte für die organisations- und projektspezifische Anpassung des V-Modells XT.
3. Was ist in den Referenzen des V-Modells XT beschrieben?
• Das Tailoring (deutsch: Zuschneiden) für eigene Softwareprozessmodelle
• Rollen im Softwareprozess, wobei zu jeder der 30 verschiedenen Rollen eine mit Beschreibung, Zuständigkeiten und Kategorie der Rolle vorliegt
• Produkte im Softwareprozess, wobei das V-Modell XT eine detaillierte Beschreibung zur Erstellung, Verwendung und Abhängigkeiten von 110 Produkt- bzw. Ergebnistypen enthält
• Aktivitäten, wobei zu jeder der 102 verschiedenen Aktivitäten mit dem Ablauf der einzelnen Arbeitsschritte eine detaillierte Anleitung zur Erstellung und Bearbeitung der Ergebnisse vorgegeben wird
• Konventionsabbildungen, in denen nationale und internationale Konventionen in Beziehung zu Elementen des V-Modells XT gesetzt werden
9.2 Rational Unified Process (RUP)
1. Nennen Sie die Phasen im RUP.
• Inception (deutsch: Konzeption)
• Elaboration (deutsch: Entwurf )
• Construction (deutsch: Konstruktion)
• Transition (deutsch: Übergabe)
2. Was wird im RUP mit „Disciplines“ bezeichnet?
Mit Disciplines (deutsch: Disziplinen) werden im RUP die Software Engineering Kernaktivitäten bezeichnet. Zu jeder Disziplin benennt der RUP spezifische Rollen, Artefakte (Ergebnisse, Produkte), Aktivitäten (Arbeitsschritte, Aufgaben) und Workflows (Reihenfolge von Aktivitäten in Verbindung mit Artefakten und Rollen). Anders als im Wasserfallmodell sind die Software Engineering Kernaktivitäten einer Phase nicht streng separiert, sondern finden teilweise parallel oder eng verzahnt statt. Allerdings unterscheiden sich die Phasen im RUP durch den Anteil
bzw. die Intensität, mit der die Aktivitäten durchgeführt werden.
3. Wie unterstützt RUP die evolutionäre Entwicklung?
Der Rational Unified Process unterstützt die evolutionäre Entwicklung durch die Möglichkeit, die einzelnen Phasen auch teilweise mehrfach hintereinander auszuführen. Ob und wie viele Zyklen durchgeführt werden, ist abhängig vom konkreten Softwareprojekt.
9.3 Scrum
1. Nennen Sie die Rollen in Scrum.
Product Owner, Scrum Master, Team
2. Welche Elemente zur Verwaltung und Steuerung gibt es in Scrum?
Die wichtigsten Konzepte, die in einem Scrum Prozess eingesetzt werden, sind das Product Backlog, das Sprint Backlog und die Velocity.
3. Aus welchen Elementen besteht ein Sprint?
Ein Sprint lässt sich in vier verschiedene Phasen aufteilen:
• dem Sprint Planning,
• der Sprint Durchführung,
• dem Sprint Review und
• der Sprint Retrospektive.