2 Entwicklung von Softwaresystemen Flashcards
Was ist Software Engineering?
Software Engineering ist das systematische, disziplinierte und quantifizierbare Vorgehen zur Entwicklung, zum Betrieb und zur Wartung von Software, nach Ingenieurprinzipien.
Gründe Nicht-Erfolg von Softwareprojekten?
- nicht erfolgreich eingeschätzt, überschritten geplante Zeit, das Budget oder konnten nicht die erwartete Funktionalität bieten
- Diese Problematik zeigt die Relevanz eines stringenten Vorgehens bei der Entwicklung von Softwaresystemen.
Vorgehen Anfangszeit der Computertechnik geprägt von Einzelakteuren, wenig geordneter Prozess
> Herausforderungen, Software nur von Ersteller vollständig verstanden
> steigende Komplexität, Programm mit viel Code nur mit Team möglich > erfordert geordnete Zusammenarbeit und systematisches Vorgehen
Was sind die Hauptaufgaben im Softwareentwicklungsprozess?
Aufgaben umfassen Anforderungsmanagement, Projektmanagement, Qualitätsmanagement, Testmanagement und Dokumentation der entwickelten Software.
Warum ist ein systematischer Entwicklungsprozess notwendig?
Die Entwicklung von Software ist zu komplex, um ohne systematischen Prozess durchgeführt zu werden, was zu hohen Scheiter-/Zeit-/Budgetüberschreitungsquoten führt.
Was sind Webanwendungen?
Webanwendungen sind Applikationen, die über das Internet bereitgestellt werden und über einen Browser aufgerufen werden.
Was sind die Vorteile von Webanwendungen gegenüber Desktopanwendungen?
- keine manuelle Installation und Updates notwendig
- müsse nicht aufwändig für unterschiedliche Betriebssysteme entwickelt werden
- Datenhaltung liegt zentral beim Anbieter der Webanwendung
o Datenausfall unwahrscheinlicher
o Zugriff von verschiedenen Endgeräten auf die Applikation mit den eigenen Daten
Datenverlust ist unwahrscheinlicher.
Was sind wichtige Aspekte bei der Entwicklung von Webanwendungen?
- Kompatibilität (Browser, Endgeräte, Bildschirmgrößen)
- Performance (Netzwerkverbindung, Datenübertragung & Latenz minimieren)
- Releasezyklus (Ohne eingreifen des Nutzers, Erwartungen hoch, Fehlerbehebung schnell > bei Entwicklung bedenken)
- Sicherheit und Datenschutz (Datenübertragung öffentlich im Internet)
Was sind wichtige Aspekte bei der Entwicklung von mobiler/nativer Apps?
- Betriebssystemwahl: Android und iOS, Meist für beide entwickelt
- verschiedene Herangehensweisen
o native Appentwicklung (einzeln für das jeweilige Betriebssystem optimiert entwickelt)
o hybride Appentwicklung (Kosten- und Zeitvorteile, aber nicht optimiert > schlechtere Performance oder weniger Funktionalität) - mobile Nutzung (Batterieverbrauch, instabile Internetverbindung > offline Nutzung planen)
- Endgerät Funktionalitäten Nutzern (Rotation, GPS, Kamera)
- Sicherheit & Datenschutz
- Vertrieb (Appstore erhält Provision)
Was sind die Unterschiede zwischen nativen Apps und Web-Apps?
Native Apps:
- Laufen direkt auf dem Betriebssystem des Endgeräts,
- Können einfach auf gerätespezifische Hardware zugreifen (z. B. Kamera, GPS, Beschleunigungssensor),
- Werden in einem App-Store angeboten,
- Können Offline-Funktionalitäten haben.
Web-Apps:
- Werden über den Browser aufgerufen,
- Können unabhängig vom Gerät und Betriebssystem genutzt werden, solange ein Browser ausgeführt werden kann,
- Können unabhängig vom Nutzer aktualisiert werden
Wann sind native Apps besser geeignet als Web-Apps?
Native Apps sind besser bei komplexen Anwendungsszenarien, die großen Rechenbedarf haben und auf Gerätehardware zugreifen müssen.
Was sind wichtige Entscheidungen bei der Entwicklung einer App?
- Entwicklungsmethodik: Auswahl eines geeigneten Vorgehensmodells für die App-Entwicklung.
- Teamzusammensetzung: Sicherstellung, dass alle erforderlichen Fähigkeiten im Team vertreten sind.
- Technologieauswahl: Entscheidung zwischen nativer App (für Qualität) oder hybrider App (für Geschwindigkeit und Plattformverfügbarkeit).
- User Experience und Testing: Sicherstellung einer positiven Benutzererfahrung und Testen der Bedienbarkeit durch frühe Nutzerrückmeldungen.
- Sicherheits- und Datenschutzaspekte: Berücksichtigung dieser Themen vor Markteintritt, um Risiken zu minimieren und Compliance zu gewährleisten.
Problematik bei Start-Up Entwicklung
Geschwindigkeit vs. Systematik: Start-ups setzen auf schnelle Prototypentwicklung, um Kunden und Investoren zu gewinnen, stehen dabei jedoch im Spannungsfeld zu den strukturierten Prinzipien des Software-Engineerings.
Welche Methoden gibt es, um die Kundenakzeptanz einer neuen Anwendung zu messen?
- Umfragen (schriftlich, in der Anwendung selbst, per Online-Fragebogen…),
- Interviews (Einzel, Gruppen),
- Beobachtung (Eye-Tracking, Nutzungsstatistiken, etc.).