2. Entwicklung von Softwaresystemen Flashcards

1
Q

Was ist Software Engineering?

A

Software Engineering ist das systematische, disziplinierte und quantifizierbare Vorgehen zur Entwicklung, zum Betrieb und zur Wartung von Software, kurz: die Arbeit an Software nach Ingenieurprinzipien.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Warum scheitern Softwareprojekte und welche Herausforderungen gibt es in der Entwicklung?

A

Gründe für Misserfolg:
- Fehlende Erfolgsabschätzung.
- Überschreitung von Zeit und Budget.
- Erwartete Funktionalität nicht erreicht.

Herausforderungen in der Entwicklung:
- Anfangszeit: Software nur vom Ersteller vollständig verstanden.
- Steigende Komplexität erfordert Zusammenarbeit im Team.
- Notwendigkeit geordneter Prozesse und systematischer Vorgehensweisen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Vorgehensmodell in Softwareentwicklung

A

Definiert systematisch die Schritte und Zusammenarbeit der Entwickler und Stakeholder. Software Engineering umfasst zudem Bereiche wie Anforderungsmanagement, Projektmanagement, Qualitäts- und Testmanagement sowie die Dokumentation.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Besonderheiten des Softwareentwicklungsprozesses

A
  • Abstrakte Produkte: Software ist nicht greifbar, was Anforderungen und Tests komplexer macht.
  • Kostenstruktur: Keine Materialkosten, jedoch Lizenz- und Betriebskosten.
  • Entwicklungszyklen: Schnellere Zyklen im Vergleich zu klassischen Ingenieursdisziplinen.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was ist Software Entwicklung?

A

Eng gefasst als reine Programmierung verstanden; im weiteren Sinne umfasst es den gesamten Prozess von Anforderungsdefinition bis zum fertigen Produkt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Warum ist ein systematisches Entwicklungsprozess notwendig?

A

Softwareentwicklung ohne einen strukturierten Prozess führt oft zu hohen Ausfallquoten und deutlichen Überschreitungen von Budget und Zeit.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was sind Webanwendungen?

A

Webanwendungen sind Applikationen, die über das Internet bereitgestellt werden und über einen Browser aufgerufen werden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Welche Vorteile bieten Webanwendungen?

A
  • Keine Installation oder manuelle Updates notwendig.
  • Plattformunabhängig (ein Browser genügt).
  • Zentrale Datenhaltung ermöglicht Zugriff von verschiedenen Geräten und reduziert Datenausfallrisiken.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Was sind wichtige Aspekte bei der Entwicklung von Webanwendungen?

A
  • Kompatibilität (Browser, Endgeräte, Bildschirmgrößen) - Responsive Design
  • Performance (Netzwerkverbindung, Datenübertragung & Latenz minimieren)
  • Releasezyklus (Ohne eingreifen des Nutzers, Erwartungen hoch, Fehlerbehebung schnell > bei Entwicklung bedenken)
  • Sicherheit und Datenschutz (Datenübertragung im öffentlichen Netzwerk)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Was sind wichtige Aspekte bei der Entwicklung von mobiler/nativer Apps?

A
  • 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)
  • User Interface beachten (Apps für kleine Bildschirme und Touchbedienung)
  • mobile Nutzung (Batterieverbrauch, instabile Internetverbindung > offline Nutzung planen)
  • Endgerät Funktionalitäten Nutzern (Rotation, GPS, Kamera)
  • Sicherheit & Datenschutz
  • Vertrieb (Appstore erhält Provision)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Web Apps vs. Native Apps

A

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.

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Wann sind native Apps besser geeignet als Web-Apps?

A

Native Apps sind besser bei komplexen Anwendungsszenarien, die großen Rechenbedarf haben und auf Gerätehardware zugreifen müssen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was sind wichtige Entscheidungen bei der Entwicklung einer App?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Problematik bei Start-Up Entwicklung

A

Start-ups setzen auf schnelle Prototypentwicklung, um Kunden und Investoren zu gewinnen.

Dies steht im Spannungsfeld zu den strukturierten Prinzipien des Software-Engineerings.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Welche Methoden gibt es, um die Kundenakzeptanz neuer Anwendung zu messen?

A
  • Umfragen (schriftlich, in der Anwendung selbst, per Online-Fragebogen…),
  • Interviews (Einzel, Gruppen),
  • Beobachtung (Eye-Tracking, Nutzungsstatistiken, etc.).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly