Einführung in das Software Engineering

Kapitel 2: Prinzipien des objektiven Designs

Fragen

Neue Frage manuell anlegen
Welche Aussage beschreibt das Open-Closed Principle (OCP) korrekt?
Frage-ID: 53
  • Software-Entitäten sollten offen für Erweiterungen, aber geschlossen für Modifikationen sein.
  • Eine Klasse darf mehrere Verantwortlichkeiten übernehmen, solange sie in einem Modul gekapselt sind.
  • Module höherer Ebenen sollten direkt von Implementierungsdetails niedrigerer Ebenen abhängen.
  • Clients sollten gezwungen werden, alle Methoden eines Interfaces zu implementieren, um Konsistenz zu gewährleisten.
Bearbeiten Löschen
Was besagt das Single Responsibility Principle (SRP) im Kontext der objektorientierten Programmierung?
Frage-ID: 54
  • Eine Klasse oder ein Modul sollte nur einen einzigen Grund haben, sich zu ändern.
  • Klassen sollten keine Abhängigkeiten zu anderen Modulen besitzen.
  • Code sollte so geschrieben sein, dass er keine Schnittstellen (Interfaces) benötigt.
  • Methoden sollten ihre Funktionalität über mehrere Klassen hinweg verteilen.
Bearbeiten Löschen
Welches der SOLID-Prinzipien besagt, dass Module höherer Ebenen nicht von Modulen niedrigerer Ebenen abhängen sollten, sondern beide von Abstraktionen?
Frage-ID: 55
  • Dependency Inversion Principle (DIP)
  • Interface Segregation Principle (ISP)
  • Liskov Substitution Principle (LSP)
  • Single Responsibility Principle (SRP)
Bearbeiten Löschen
Was ist das Hauptziel des Interface Segregation Principle (ISP)?
Frage-ID: 56
  • Die Aufteilung einer großen Schnittstelle in viele kleine, spezifische Interfaces, um unnötige Abhängigkeiten zu vermeiden.
  • Die Sicherstellung, dass Subtypen jederzeit durch ihre Basistypen ersetzt werden können.
  • Die strikte Trennung von Datenmodell und Benutzeroberfläche in einer Klasse.
  • Das Verbot, dass abstrakte Klassen von konkreten Implementierungen abhängen.
Bearbeiten Löschen
Was besagt das Liskov Substitution Principle (LSP) im Kontext der objektorientierten Programmierung?
Frage-ID: 57
  • Subtypen müssen sich so verhalten, dass sie jederzeit durch ihre Basistypen ersetzt werden können, ohne das Programmverhalten zu korrumpieren.
  • Eine Klasse darf nur Methoden enthalten, die ausschließlich auf ihren eigenen Attributen operieren.
  • Abstrakte Klassen sollten bevorzugt gegenüber Interfaces verwendet werden, um die Wiederverwendbarkeit zu maximieren.
  • Methoden innerhalb einer Klasse müssen zwingend alle ihre Instanzvariablen nutzen, um die Kopplung zu minimieren.
Bearbeiten Löschen