Entwicklung von Software Flashcards

1
Q

Definition Softwareentwicklung

A

Auf Grundlage des Entwurfs wird ein Softwaresystem in einer Programmiersprache entwickelt

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

Ziele der Softwarewiederverwendung

A
  • Herstellkosten verringern
  • Wartungskosten verringern
  • Projektdauer verkürzen
  • Qualität erhöhen

–> Wiederverwendung von ganzen Anwendungen, Klassen, Komponenten

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

Kriterien für Entscheidung über Wiederverwendung

A
  • Entwicklungszeit der Software
  • Nutzungsdauer der Software
  • Erfahrungen und Kenntnisse des Entwicklungsteams
  • Kompromissbereitschaft der Kunden
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Softwarewiederverwendung mithilfe von..

A
  • Schnittstellen (APIs)

- Code-Generatoren

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

Komponentenbasiertes Softwareengineering

A
  • unabhängig konzipierte Komponenten werden zu einem Anwendungssystem integriert
  • Standardsoftware oft nicht flexibel genug
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

UML-Komponentendiagramm

A

zeigt die von einer Komponente benötigten und die von einer Komponente angebotenen Schnittstellen

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

Komponenten vs. Klassen

A
  • werden bereits kompiliert auf Komponentenplattform installiert
  • definieren keine Objekte
  • nur über Schnittstellen ansprechbar (Blackbox)
  • entwickelt gemäß Komponentenmodell (standardisiert)
  • größere Funktionalität als Klassen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Inkompatibilität zwischen Komponenten

A
  • Bezeichnung von Operationen unterscheiden sich

- unterschiedliche Parameter

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

Prinzipien verlässlicher Entwicklung

A
  • getter/setter-Methoden
  • keine ungefangenen Exceptions
  • Vermeidung von Fließkommazahlen, Pointern, Nebenläufigkeit
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Defensive programming

A
  • Überprüfungen im Code, die für Algorithmus nicht notwendig wären
  • Fehler in Spezifikation werden damit nicht entdeckt
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Weiterentwicklung von Software

A

nach Go-live:

  • Fehlerbehebung
  • Softwareanpassung oder Plattformanpassung
  • Hinzufügen oder Ändern von Funktionen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Weiterentwicklung von Software: Wartbarkeit

A
  • teuer, daher: während Entwicklung darauf achten
  • Experten für Technik (werden weniger)
  • Struktur und Architektur wird mit der Zeit aufwendiger
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Weiterentwicklung von Software: Reengineering

A
  • Neuimplementierung von Legacy-Systemen
  • geringeres Risiko und Kosten als Neuentwicklung
  • Funktionalität ändert sich nicht
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Strategien zur Weiterentwicklung von Legacy-Systemen

A
  • Abschalten des Systems bei großer Änderung der Geschäftsprozesse seit Einführung
  • regelmäßige Wartung bei akzeptablen Kosten (bleibt in Betrieb)
  • System unstrukturiert + schlecht wartbar, aber geschäftskritisch: Software Reengineering
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Revision Control System (RCS)

A
  • Software zu Versionsverwaltung von Dateien und Dokumentation von Änderungen
  • verwaltet einzelne Dateien, keine Projekte
  • keine Checksumme, daher anfälliger für Fehler
  • mittlerweile von CVS abgelöst
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Concurrent Versions Systems (CVS)

A
  • Software zur Versionsverwaltung von Dateien (meist Quelltext)
  • alle Dateien in zentralem Repository (einzelne Dateien können dennoch verändert o. wiederhergestellt werden)
  • Überblick über Versionen und Koordination größerer Projekte
  • von Git abgelöst
17
Q

Git

A
  • Software zur verteilten Versionsverwaltung von Dateien
  • kein zentraler Server (jeder Nutzer eigene Kopie)
  • branching und merging
  • kryptographische Versionsverwaltung der Projektgeschichte durch Hash-Werte
18
Q

GNU Bazaar

A
  • Versionsverwaltung Quellcode für Open-Source-Projekte
  • einfache Bedienung, Zuverlässigkeit, Flexibilität
  • Verwaltung von Entwicklungszweigen (Branching & Merging)
  • lokal oder für Zusammenarbeit über Netzwerk