Übungsaufgaben zum Software Engineering: Management Grundbegriffe: Aufgabe 1: Aus welchen Disziplinen setzt sich das Software Engineering zusammen? a. Informatik b. Physik c. Psychologie d. Chemie e. Geologie f. Philosophie g. Betriebswirtschaft h. Astronomie Lösung: Folie 1.8: a) Informatik, g) Betriebswirtschaft, c) Psychologie Aufgabe 2: Welche fünf Komponenten begründen den Ingenieursaspekt des Software Engineering? Lösung: Folie 1.9: Methoden, Werkzeuge, Standards und Erfahrungen, Maßsystem Aufgabe 3: Erläutern Sie die Bestandteile bzw. Artefakte eines Softwareprodukts an einem selbstimplementierten Programm. Lösung: Folie 1-12: Programme, Dokumentationen, Daten Aufgabe 4: Erläutern Sie den Unterschied zwischen Modell und Architektur. Lösung: Folie 1-14: Modellbeispiele: Funktionsbeschreibung (funktionale Anforderungen) Lösung: Folie 1-15: Architekturbeispiele: Modell auf konkrete Systemform angewandt Aufgabe 5: Geben Sie Modellbeispiele für die verschiedenen Softwaresystemarten an. Lösung: Folien 1.23 1.25: Datenbanken: ERM, eingebettet: Zustandsdiagramm, Zeitdiagramme Komm.systeme: Komm.diagramm, Sequenzdiagramm
Aufgabe 6: Wodurch sind Softwareprozesse charakterisiert? Lösung: Folie 1.34: Methoden, LifeCycle, Ressourcen, Management Aufgabe 7: Erläutern Sie Beispiele zu den Uppercase- und Lowercase-Tools. Lösung: aus eigener Erfahrung: Modelltools (ArgoUML), Implementationstools (Eclipse) Aufgabe 8: Charakterisieren Sie Probleme im Projektverlauf. Lösung: Folie.35: richtige Kundenwünsche, korrekter Verlauf, Zeitdruck Aufgabe 9: Erläutern Sie all vier Komponenten des OOSE-Paradigmas an konkreten Beispielen. Lösung: Folie 1.27 und 1.31: Problem: Objektkommunikation, Modell: UML. Implementation: Java, Test: JUnit Aufgabe 10: Welchen beiden Arten von Softwareressourcen kommen bei der Softwareentwicklung zum Einsatz? Lösung: Folie 1.37: CASE und COTS Aufgabe 11: Welche Phasen besitzt der Softwareanwendungsprozess? Lösung: Folie 1.41: (eigentlich Folie 2.30) Einführung, Anwendung, Umstellung, Ablösung Aufgabe 12: Welche vier Merkmale kennzeichnen den Softwareentwicklungsprozess? Lösung: Folie 1.34: Methoden, LifeCycle, Ressourcen, Management Aufgabe 13: Nennen Sie die fünf Wartungsaktivitäten und geben Sie die jeweiligen Gründe dafür an.
Lösung: Folie 1.42: Erweiterung: neue funktionale Anforderungen, Anpassung: neue systembezogene Anforderungen, Korrektur: ständige qualitative Anforderungen, Verbesserung: qualitative Effizienzanforderungen, Vorbeugung: neue systembezogene Anforderungen (neues Paradigma) Aufgabe 14: Was sind Softwareerfahrungen und welche Formen werden im Allgemeinen in der Praxis genutzt? Lösung: Folie 1.43: Anwendungserfahrungen, Fallstudien, Experimente Aufgabe 15: Welche drei Hauptformen unterscheiden wir beim Softwaremanagement? Lösung: Folie 1.44: Entwicklungs-, Wartungs-, Anwendungsmanagement Aufgabe 16: Was erhöht die Komplexität beim Softwaremanagement? Lösung: Folie 1.45: (u. a.) Vielfalt an Technologie, Methoden und Anwendungsbereichen SE-Methoden und Modelle: Aufgabe 17: Wiederholen Sie die Schritte und Inhalte einer objektorientierten Softwareentwicklung. Lösung: Folie 2.6: Probemdef./Anf.analyse: wie allgemein Spezifikation: UML-Diagramme, Use-Case, Sequenz, Zustands, Aktivitäts, Strukturdiagramm, Objektdiagramm Design: Klassendiagramm, Diagrammverfeinerungen Implementation und Test gemäß OO-Paradigma
Aufgabe 18: Nennen Gründe für eine sequentielle oder nicht sequentielle Softwareentwicklung. Lösung: Folie 2.17: sequentiell: Anforderungen klar definiert, nicht sequentiell: "irgendwelche" offenen Probleme Aufgabe 19: Ordnen Sie die Entwicklungsphasen der Verifikation und der Validation zu. Lösung: siehe auch Folie 1.40: Validation: Problemdef./ Anf.analyse, Erprobung Verifikation: (z.t.)anf.analyse, Spezifikation/Design/Implementation Aufgabe 20: Welche Aspekte erweitern/modifizieren das Wasserfallmodell zum V- Modell? Lösung: Folie 2.19 und 2.20: Wasserfallmodell: schrittweise und systematisch (geprüft), beschreibt MDA und Test-Driven-Ansätze bereits vollständig, V-Modell: Zergliederung in Komponenten bzw. Systemteile, Integration mit entsprechender Prüfung (Möglichkeiten der Arbeitsteilung bzw. Aufteilung) Aufgabe 21: Erläutern Sie den Unterschied zwischen evolutionärer und inkrementeller Entwicklungsmodellform. Lösung: Folie 2.21: evolutionär: stets neues (modifiziertes) Produkt Lösung: Folie 2.22: inkrmentell: stets neues (erweitertes) Produkt Aufgabe 22: Was intendiert ein Prototyping? Geben Sie den Unterschied zwischen einem horizontalen und vertikalen Prototyping an. Lösung: Folie 2.23: horizontal: alle/viele Funktionen angedeutet vertikal: eine/wenige Funktionen bis zur Implementation Aufgabe 23: Welche Qualitätsaspekte verdeutlicht die Vorgehensweise nach dem Spiralmodell?
Lösung: Folie 2.24: Phasenrealisierung genauer geprüft (Varianten) Aufgabe 24: Welche Spezifika begründen eine agile Softwareentwicklung? Lösung: Folie 2.25 ff.: ständiger Kontakt mit Kunden (partizipatorisches Design), kurze Entwicklungszeiten (folgt: kleine Programme) Aufgabe 25: Erläutern Sie zwei Managementtechniken der agilen Vorgehensweise. Lösung: Folie 2.26: "Kunde vor Ort": kontinuierliche Validation "Planungsspiel": ad hoc Anforderungsauswahl "kurze Releasezyklen": Produkterstellung in Sprints (ca. 3 Wochen) "Standup Meeting": ständige/tägliche Arbeitsstandskontrolle "Retrospektive": Kontrolle ausstehender Arbeiten siehe auch Folie 2.28 Aufgabe 26: Beschreiben Sie die orthogonalen Phasen zwischen der Softwarewartung und der Softwareanwendung. Lösung: Folien 2.29 und 2.30: Auslieferung Wartung = Einführung Anwendung Havarie Anwendung = Nothilfe Wartung