Blatt 2 Flashcards
Entwicklung
Die Entwicklung ist die Phase, in der das Projekt in Softwaremodule aufteilen wird und die Voraussetzungen für die Software in Code umwandeln werden, um das fertige Produkt herstellen zu können
Wartung / Betrieb
Die Wartung und “Reparatur” der Software während ihres Betriebszyklus zielt darauf ab, sicherzustellen, dass die Software weiterhin den Anforderungen der Kunden entspricht.
Systemumgebung
Die Systemumgebung ist die Gesamtheit aller externen Faktoren, die ein Softwaresystem oder softwareintensives System umgeben und das Verhalten beeinflussen können.
Beispiele externe Faktoren
▪ Hardware (z.B. Computerhardware) und Software (z.B. Betriebssystem)
▪ Menschen (Human Factors später vertieft) und organisatorische Aspekte
▪ Daten und Netzwerke, insbesondere bei hochvernetzen Systemen
Normen / Standards
Normen und Standards beschreiben gewisse einheitliche Vorgaben, auf die zurückgegriffen werden kann/sollte, um Konflikte zu vermeiden.
Prinzipien
“Prinzipien” beschreiben innerhalb der Softwaretechnik gewisse Komponenten, die für den gesamten Entwicklungsverlauf der Software notwendig sind.
Komplexe Systeme
Komplexe Systeme sind hochgradig organisierte Einheiten mit vielfältigen Funktionen, deren Strukturen und Verbindungen komplex und veränderlich sind.
Prozessmodelle
Ein Prozessmodell oder Vorgehensmodell stellt in abstrahierter Form die zeitlich-sachlogische Reihenfolge von Aktivitäten dar, die notwendig sind, um ein System bzw. Produkt zu entwickeln. Eine Anpassung ist notwendig, um Prozessmodelle
an Randbedingungen von Entwicklungsteams bzw. Unternehmen zu adaptieren.
Wasserfallmodell
Das Wasserfallmodell beschreibt ein Vorgehensmodell, bei dem Software in sukzessiven Stufen entwickelt wird und die jeweiligen Arbeitsergebnisse nach einer Phase in die nächste fallen (Top-Down-Prinzip)
Horizontaler Prototyp
Beim sogenannten “horizontalen Prototyp” werden nur spezifische Ebenen des Systems und die betreffende Ebene möglichst vollständig realisiert
Warum professionelle Softwareentwicklung nicht nur die
Programme einschließt, die für Kunden entwickelt werden
Professionelle Softwareentwicklung umfasst noch die Implementierung bewährter Softwareentwicklungspraktiken, um qualitativ hochwertigen und wartbaren Code zu gewährleisten. Die Integration von Sicherheitsmaßnahmen ist auch wichtig, zudem erfordert die professionelle Softwareentwicklung effizientes Projektmanagement, um Zeitpläne einzuhalten und Ressourcen optimal zu nutzen.
Außerdem spielt die Wartung und Aktualisierung von Software eine wichtige Rolle, um Funktionalität, Sicherheit und Kompatibilität mit neuen Technologien zu gewährleisten.
Nennen Sie mögliche Konsequenzen einer fehlerhafte Anwenderdokumentation
Eine unzureichende Anwenderdokumentation beeinträchtigt die Benutzerfreundlichkeit und den effektiven Einsatz von Software wie WordPress, da Benutzer Schwierigkeiten beim Einrichten von Webseiten haben, grundlegende Funktionen nicht verstehen und Sicherheitsaspekte vernachlässigen könnten. Dies könnte zu unsicheren Websites, unzureichender Nutzung von Funktionen und erhöhtem Support-Aufwand führen, was das Vertrauen der Benutzer in die Software beeinträchtigt.
Inwiefern unterstützt ein strukturiertes Vorgehen die professionelle Softwareentwicklung, d.h. welche Gründe gibt es für die Nutzung von Vorgehensmodellen aus Ihrer Sicht?
Ein strukturiertes Vorgehen in der Softwareentwicklung, das durch die Nutzung von Vorgehensmodellen erfolgt, bietet
mehrere Vorteile für die professionelle Softwareentwicklung, darunter:
* Planung und Kontrolle
* Qualitätssicherung
* Risikomanagement
* Dokumentation
* Skalierbarkeit und Wiederverwendbarkeit
Insgesamt bieten Vorgehensmodelle einen Rahmen, der dazu beiträgt, die Komplexität der Softwareentwicklung zu bewältigen und die Wahrscheinlichkeit von Erfolg sowie die Qualität der erstellten Software zu erhöhen.
Relevanz von Systems Engineering für das Software Engineering
Fehler im Systems Engineering: Falsche Anforderungen, unvollständige Anforderungen, unzureichende Interessenvertretung
Kosten- und Anstrengungsschätzung von Software: Notwendigkeit der Anpassung an Praktiken der Systemtechnik, Entwicklung von Schätzmodellen für Systemtechnik
Integration von Systemen: Entwicklung von Modellen zur Kostenschätzung, Integration von Systemen von Systemen, Integration von kommerziellen Off-the-Shelf-Produkten Lücke in der IT-Profis-Ebene: Unterschiedliche Kompetenzen zwischen Fachleuten in Business-Workflows und IT-Bereich, Notwendigkeit einer ausgewogenen Fähigkeitsentwicklung in beiden Bereichen
Erläutern Sie 2 mögliche Gemeinsamkeiten (z.B. gemeinsame/ähnliche Aktivitäten bzw. Phasen), die alle klassischen Vorgehensmodelle prägen. Erläutern Sie zusätzlich kurz (2-3 Sätze) drei wesentliche Unterschiede zwischen den Prozessmodellen.
Gemeinsamkeiten aller klassischen Vorgehensmodelle:
- Anforderungsanalyse: Erfassung und Spezifikation von Kunden- und Systemanforderungen, um ein klares Verständnis für die zu entwickelnde Software sicherzustellen.
- Integration einer Testphase: Durchführung von Tests, um sicherzustellen, dass die entwickelte Software den Anforderungen entspricht und frei von Fehlern ist.
Wesentliche Unterschiede zwischen den Prozessmodellen:
Wasserfallmodell:
Sequenzieller Ansatz
Festgelegter Plan
Schwierige Änderungen
Agile Methoden (z. B. Scrum, Kanban):
Iterative und inkrementelle Ansätze
Flexibel auf Änderungen reagieren
Betonen Zusammenarbeit und Kommunikation im Team
V-Modell:
Betont parallele Natur von Entwicklung und Testaktivitäten
Strukturierte Phasen mit definierten Schnittstellen
Konzentriert sich auf die Verifikation und Validierung entlang des gesamten Entwicklungsprozesses
Schlagen Sie das am besten geeignete Vorgehensmodell (von den klassischen und agilen Prozessmodellen der Vorlesung) vor, das als Grundlage für die Entwicklung der folgenden Systeme dienen kann. Begründen Sie Ihre Entscheidungen:
(1) eine App für Smartphones, um einfache ToDo Listen anzulegen
App für Smartphones (z. B. ToDo-Liste):
* Empfohlenes Vorgehensmodell: Agiles Modell (z. B. Kanban)
* Begründung: Agile Modelle sind gut geeignet für Projekte mit sich schnell ändernden Anforderungen. In der App-Entwicklung können Kundenrückmeldungen während des Entwicklungsprozesses integriert werden. Kanban ermöglicht eine iterative
Entwicklung, ohne den organisatorischen Overhead von Scrum, was besonders für Anwendungen wie ToDo-Listen wichtig ist, bei denen die Benutzerfreundlichkeit im Fokus steht und sich rasch ändern kann.