TE120__Entwurfsprinzipien_und_Konstruktionskonzepte_Z Flashcards

1
Q

Was versteht man unter der Entkopplung von Softwareteilen?

A

Entkopplung von Softwareteilen bedeutet die Reduzierung der Abhängigkeiten zwischen Softwaremodulen. Dadurch wird erreicht, dass sich Änderungen in einem Modul nicht auf andere Module auswirken. Diese Praxis fördert die Wartbarkeit, Flexibilität und Testbarkeit des Systems. Entkopplung kann durch Techniken wie lose Kopplung und die Verwendung von Schnittstellen erreicht werden.

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

Warum sind Einfachheit und Verständlichkeit in der Softwareentwicklung wichtig?

A

Einfachheit und Verständlichkeit sind wichtig, um die Struktur eines Softwaresystems klar und intuitiv zu gestalten. Dies erleichtert das Verständnis und die Nutzung des Systems durch Entwickler und Benutzer. Ein einfaches und verständliches Design führt zu weniger Fehlern, schnelleren Entwicklungszyklen und erleichtert die Wartung und Erweiterung des Systems.

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

Welche Vorteile bietet die Modularisierung von Softwaresystemen?

A

Die Modularisierung bietet mehrere Vorteile: - Beherrschbarkeit komplexer Systeme: Durch die Aufteilung in kleinere, überschaubare Module wird die Entwicklung, das Testen und die Wartung erleichtert. - Erhöhung der Flexibilität: Änderungen betreffen idealerweise nur ein Modul, was die Anpassung und Erweiterung des Systems vereinfacht. - Wiederverwendbarkeit und Wartbarkeit: Module können separat entwickelt, getestet und wiederverwendet werden, was die Effizienz und Konsistenz verbessert.

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

Was ist das Prinzip der “Single Responsibility”?

A

Das Prinzip der “Single Responsibility” besagt, dass jedes Modul oder jede Klasse nur eine Verantwortlichkeit haben sollte. Dies erleichtert die Wartung und Weiterentwicklung, da Änderungen in einem Modul nur eine spezifizierte Funktionalität betreffen. Es fördert die Nachvollziehbarkeit und reduziert die Komplexität des Systems.

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

Wie hilft das Konzept des “Information Hiding” bei der Modularisierung?

A

“Information Hiding” bedeutet die Kapselung der inneren Struktur eines Moduls, sodass nur notwendige Informationen nach außen sichtbar sind. Dies schützt die internen Details vor Änderungen und verhindert, dass andere Module von diesen Details abhängig werden. Es erhöht die Robustheit und Sicherheit des Systems und erleichtert die Wartung.

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

Was sind statische Abhängigkeiten in einem Softwaresystem?

A

Statische Abhängigkeiten sind Beziehungen zwischen Klassen, die zur Kompilierzeit bestehen, wie z.B. Assoziation, Generalisierung und Realisierung. Diese Abhängigkeiten sind im Quellcode fest definiert und ändern sich nicht zur Laufzeit.

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

Was versteht man unter dynamischen Abhängigkeiten?

A

Dynamische Abhängigkeiten sind Beziehungen, die zur Laufzeit bestehen und sich ändern können, wie z.B. aus Datenbanken geladene Objekte oder Implementierungen von Schnittstellen, die zur Laufzeit durch Muster wie das Strategie-Muster ausgetauscht werden. Diese Abhängigkeiten bieten eine größere Flexibilität, erfordern jedoch Mechanismen zur Verwaltung zur Laufzeit.

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

Welche Methoden gibt es zur Abschwächung von Abhängigkeiten in einem Softwaresystem?

A

Methoden zur Abschwächung von Abhängigkeiten umfassen: - Lose Kopplung: Förderung der Unabhängigkeit der Module untereinander. - Architektur- und Entwurfsmuster: Verwendung bewährter Muster wie Dependency Injection und Service Locator. - Dependency Lookup: Suche nach und Bindung an Objekte zur Laufzeit durch ein Framework. - Dependency Injection: Umkehrung der Kontrolle durch Injektion benötigter Objekte zur Laufzeit (Inversion of Control).

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

Was ist Dependency Injection und wie hilft es bei der Reduzierung von Abhängigkeiten?

A

Dependency Injection ist ein Designmuster, bei dem Objekte ihre Abhängigkeiten anstatt selbst zu erstellen, durch ein externes System (z.B. ein Framework) zur Laufzeit zugewiesen bekommen. Dies fördert die lose Kopplung und erleichtert das Testen und die Wartbarkeit des Systems, da Abhängigkeiten einfach ausgetauscht und konfiguriert werden können.

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

Welche Rolle spielen Design Patterns und UML im Software Engineering?

A

Design Patterns bieten bewährte Lösungen für wiederkehrende Probleme im Softwaredesign und fördern Best Practices. UML (Unified Modeling Language) dient zur visuellen Modellierung und Dokumentation von Softwaresystemen, was das Verständnis und die Kommunikation der Systemarchitektur erleichtert. Beide Werkzeuge tragen zur Erstellung stabiler und wartbarer Softwaresysteme bei.

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