Podcast
Questions and Answers
Was beschreibt Kohäsion in einem Softwaresystem?
Was beschreibt Kohäsion in einem Softwaresystem?
- Die Art der verwendeten Programmiersprache
- Die Geschwindigkeit, mit der das System läuft
- Wie stark die Teile einer Komponente zusammenpassen (correct)
- Die Anzahl der Komponenten in einem System
Hohe Kohäsion ist vorteilhaft für die Verständlichkeit und Wartbarkeit einer Softwarekomponente.
Hohe Kohäsion ist vorteilhaft für die Verständlichkeit und Wartbarkeit einer Softwarekomponente.
True (A)
Nenne mindestens zwei Kriterien für einen guten Software-Entwurf.
Nenne mindestens zwei Kriterien für einen guten Software-Entwurf.
Korrektheit, Anpassbarkeit
Eine __________ beschreibt einen Baustein für ein Softwaresystem.
Eine __________ beschreibt einen Baustein für ein Softwaresystem.
Ordne die Arten von Kohäsion den jeweiligen Beschreibungen zu:
Ordne die Arten von Kohäsion den jeweiligen Beschreibungen zu:
Welcher Begriff beschreibt die Idee, bereits vorhandene Lösungen und Komponenten wiederzuverwenden?
Welcher Begriff beschreibt die Idee, bereits vorhandene Lösungen und Komponenten wiederzuverwenden?
Ein guter Software-Entwurf erfordert starke Kopplung zwischen den Komponenten.
Ein guter Software-Entwurf erfordert starke Kopplung zwischen den Komponenten.
Was versteht man unter Grobentwurf in der Softwareentwicklung?
Was versteht man unter Grobentwurf in der Softwareentwicklung?
Welche der folgenden Aussagen beschreibt am zutreffendsten einen Subsystem?
Welche der folgenden Aussagen beschreibt am zutreffendsten einen Subsystem?
Welche Art von Kohäsion liegt vor, wenn alle Teile einer Komponente mit denselben Daten arbeiten?
Welche Art von Kohäsion liegt vor, wenn alle Teile einer Komponente mit denselben Daten arbeiten?
Welcher der folgenden Punkte ist KEIN Kriterium für einen guten Software-Entwurf?
Welcher der folgenden Punkte ist KEIN Kriterium für einen guten Software-Entwurf?
Welche Art von Kohäsion liegt vor, wenn Teile der Komponente eine feste Reihenfolge in ihrer Ausführung haben?
Welche Art von Kohäsion liegt vor, wenn Teile der Komponente eine feste Reihenfolge in ihrer Ausführung haben?
Welche Aussage über Grobentwurf und Feinentwurf ist korrekt?
Welche Aussage über Grobentwurf und Feinentwurf ist korrekt?
Welche der folgenden Aussagen über Kohäsion ist korrekt?
Welche der folgenden Aussagen über Kohäsion ist korrekt?
Was versteht man im Kontext der Softwareentwicklung unter "Komponente"?
Was versteht man im Kontext der Softwareentwicklung unter "Komponente"?
Welche Art von Kohäsion liegt vor, wenn Teile der Komponente in ähnlicher Weise zusammenarbeiten, sich aber nicht unbedingt auf dieselbe Weise nutzen?
Welche Art von Kohäsion liegt vor, wenn Teile der Komponente in ähnlicher Weise zusammenarbeiten, sich aber nicht unbedingt auf dieselbe Weise nutzen?
Was beschreibt die Strukturkopplung in einem Softwaresystem?
Was beschreibt die Strukturkopplung in einem Softwaresystem?
Wie kann man die Datenkopplung in einem System verringern?
Wie kann man die Datenkopplung in einem System verringern?
Welcher Vorteil ergibt sich aus der Wiederverwendung von Softwarekomponenten?
Welcher Vorteil ergibt sich aus der Wiederverwendung von Softwarekomponenten?
Was ist der Unterschied zwischen einem Referenzmodell und einer Referenzarchitektur?
Was ist der Unterschied zwischen einem Referenzmodell und einer Referenzarchitektur?
Warum ist hohe Kohäsion in einem Softwaresystem wichtig?
Warum ist hohe Kohäsion in einem Softwaresystem wichtig?
Welche Methode ist empfehlenswert, um den Zugriff auf Attribute zu steuern?
Welche Methode ist empfehlenswert, um den Zugriff auf Attribute zu steuern?
Welche der folgenden Aussagen trifft auf Frameworks in der Softwareentwicklung zu?
Welche der folgenden Aussagen trifft auf Frameworks in der Softwareentwicklung zu?
Welche negative Konsequenz kann aus einer hohen Wiederverwendung von Komponenten resultieren?
Welche negative Konsequenz kann aus einer hohen Wiederverwendung von Komponenten resultieren?
Was beschreibt die Kopplung in einem Softwarekontext?
Was beschreibt die Kopplung in einem Softwarekontext?
Welches der folgenden Konzepte reduziert effektiv die Kopplung zwischen Komponenten?
Welches der folgenden Konzepte reduziert effektiv die Kopplung zwischen Komponenten?
Ein Subsystem kann aus mehreren Komponenten bestehen.
Ein Subsystem kann aus mehreren Komponenten bestehen.
Die ______ beschreibt, wie stark die Teile einer Komponente zusammenpassen.
Die ______ beschreibt, wie stark die Teile einer Komponente zusammenpassen.
Welche der folgenden Aussagen ist NICHT ein Kriterium für einen guten Software-Entwurf?
Welche der folgenden Aussagen ist NICHT ein Kriterium für einen guten Software-Entwurf?
Nennen Sie zwei Arten von Kohäsion, die im Text beschrieben werden.
Nennen Sie zwei Arten von Kohäsion, die im Text beschrieben werden.
Ordnen Sie die folgenden Kohäsionsarten ihren Beschreibungen zu:
Ordnen Sie die folgenden Kohäsionsarten ihren Beschreibungen zu:
Welcher der folgenden Punkte ist KEIN Vorteil von hoher Kohäsion in einem Software-Entwurf?
Welcher der folgenden Punkte ist KEIN Vorteil von hoher Kohäsion in einem Software-Entwurf?
Der Feinentwurf eines Softwaresystems ist stark von der Implementierungssprache abhängig.
Der Feinentwurf eines Softwaresystems ist stark von der Implementierungssprache abhängig.
Der ______ ist weitgehend unabhängig von der Implementierungssprache.
Der ______ ist weitgehend unabhängig von der Implementierungssprache.
Welche der folgenden Aussagen beschreibt die Vorteile einer hohen Kohäsion am besten?
Welche der folgenden Aussagen beschreibt die Vorteile einer hohen Kohäsion am besten?
Weniger Kopplung bedeutet schlechtere Wartbarkeit und Flexibilität.
Weniger Kopplung bedeutet schlechtere Wartbarkeit und Flexibilität.
Definiere Wiederverwendung in der Softwareentwicklung.
Definiere Wiederverwendung in der Softwareentwicklung.
Die __________ beschreibt, wie stark Komponenten voneinander abhängen.
Die __________ beschreibt, wie stark Komponenten voneinander abhängen.
Welche Art der Kopplung kommuniziert über definierte Schnittstellen?
Welche Art der Kopplung kommuniziert über definierte Schnittstellen?
Ordne die Kopplungsarten ihren Beschreibungen zu:
Ordne die Kopplungsarten ihren Beschreibungen zu:
Wiederverwendung ist immer positiv und verursacht niemals Probleme.
Wiederverwendung ist immer positiv und verursacht niemals Probleme.
Wie kann man die Kopplung in einem System reduzieren?
Wie kann man die Kopplung in einem System reduzieren?
Ein __________ ist eine Software, die durch Callback-Methoden erweiterbar ist.
Ein __________ ist eine Software, die durch Callback-Methoden erweiterbar ist.
Welcher Vorteil ergibt sich aus der Nutzung von Frameworks?
Welcher Vorteil ergibt sich aus der Nutzung von Frameworks?
Flashcards
Kopplung
Kopplung
Beschreibt, wie stark Komponenten voneinander abhängen. Weniger Abhängigkeit bedeutet einfachere Wartung und höhere Stabilität.
Datenkopplung
Datenkopplung
Teile von Software, die denselben Datenbereich nutzen (z.B. globale Variablen). Änderungen wirken sich auf viele Teile aus.
Schnittstellenkopplung
Schnittstellenkopplung
Teile kommunizieren über definierte Schnittstellen, was flexibilität in objektorientierten Systemen ermöglicht.
Strukturkopplung
Strukturkopplung
Signup and view all the flashcards
Wiederverwendung
Wiederverwendung
Signup and view all the flashcards
Nachteil der Wiederverwendung
Nachteil der Wiederverwendung
Signup and view all the flashcards
Framework
Framework
Signup and view all the flashcards
Referenzmodell
Referenzmodell
Signup and view all the flashcards
Referenzarchitektur
Referenzarchitektur
Signup and view all the flashcards
Subsystem
Subsystem
Signup and view all the flashcards
Komponente
Komponente
Signup and view all the flashcards
Grobentwurf
Grobentwurf
Signup and view all the flashcards
Feinentwurf
Feinentwurf
Signup and view all the flashcards
Korrektheit
Korrektheit
Signup and view all the flashcards
Verständlichkeit
Verständlichkeit
Signup and view all the flashcards
Anpassbarkeit
Anpassbarkeit
Signup and view all the flashcards
Hohe Kohäsion
Hohe Kohäsion
Signup and view all the flashcards
Was ist ein Subsystem?
Was ist ein Subsystem?
Signup and view all the flashcards
Was sind Komponenten?
Was sind Komponenten?
Signup and view all the flashcards
Was ist ein Grobentwurf?
Was ist ein Grobentwurf?
Signup and view all the flashcards
Was ist ein Feinentwurf?
Was ist ein Feinentwurf?
Signup and view all the flashcards
Was ist Korrektheit?
Was ist Korrektheit?
Signup and view all the flashcards
Was ist Verständlichkeit?
Was ist Verständlichkeit?
Signup and view all the flashcards
Was ist Anpassbarkeit?
Was ist Anpassbarkeit?
Signup and view all the flashcards
Was ist hohe Kohäsion?
Was ist hohe Kohäsion?
Signup and view all the flashcards
Funktionale Kohäsion
Funktionale Kohäsion
Signup and view all the flashcards
Study Notes
Software- und Systementwurf - Grundlagen
-
Subsystem: Ein in sich geschlossenes, eigenständiges Teil eines größeren Systems mit definierten Schnittstellen, funktionsfähig und bestehend aus Komponenten. Es ist ein autonomer, funktionsfähiger Teil eines Systems.
-
Komponente: Ein eigenständiger Baustein (Modul, Klasse, Paket) eines Softwaresystems, der andere Komponenten nutzt und von ihnen genutzt wird. Kann aus Unterkomponenten bestehen. Es ist ein selbstständiger Baustein, der andere Komponenten nutzen und von ihnen genutzt wird.
-
Grobentwurf: Architektur, Subsysteme und Schnittstellen, weitgehend implementierungssprachenunabhängig. Es fokussiert auf die Architektur, die Subsysteme und Schnittstellen.
-
Feinentwurf: Komponenten, Datenstrukturen, Algorithmen, an Implementierungssprache und Plattform angepasst. Es beschreibt die konkreten Komponenten, Datenstrukturen und Algorithmen, angepasst an Programmiersprache und Plattform.
Kriterien für guten Software-Entwurf
- Korrektheit: Die Software erfüllt ihre funktionalen Anforderungen und weitere wichtige Anforderungen (z.B. Leistung, Sicherheit). Sie funktioniert wie erwartet und erfüllt alle Anforderungen.
- Verständlichkeit & Präzision: Gute Dokumentation für einfache Verständlichkeit und Präzision. Klar strukturierte und präzise Dokumentation.
- Anpassbarkeit: Einfache Änderung und Erweiterung der Software. Die Software ist leicht veränderbar und erweiterbar.
- Hohe Kohäsion (Zusammenhalt): Die Teile einer Komponente gehören logisch zusammen, mit wenigen unnötigen Abhängigkeiten. Die Komponenten sind logisch und sinnvoll aufgebaut.
- Schwache Kopplung (geringe Abhängigkeiten): Komponenten sind weniger voneinander abhängig für bessere Wartbarkeit und Erweiterbarkeit. Geringe Abhängigkeiten für bessere Wartbarkeit.
- Wiederverwendung: Nutzung bereits vorhandener Lösungen und Komponenten, um Zeit und Arbeit zu sparen. Zeit- und Kostenersparnis durch Wiederverwendung.
- Gültigkeit für das gesamte System: Die oben genannten Kriterien gelten für die gesamte Architektur, alle Subsysteme und alle Komponenten. Alle Bestandteile des Systems sollten den Kriterien entsprechen.
Kohäsion (Zusammenhalt)
- Definition: Kohäsion beschreibt die Stärke des Zusammenhalts zwischen den Teilen einer Komponente. Hohe Kohäsion = besser verständlich und wartbar. Der Grad des Zusammenhalts zwischen Komponenten.
- Erreichung hoher Kohäsion: Gutes Zusammenhalten von Daten und Methoden (Objektorientierung), saubere Strukturierung in Pakete und Verwendung bewährter Designmuster. Hohe Kohäsion durch logische Gruppierung und Objektorientierung.
- Strukturen einer Klasse: Keine unnötigen Unterteilungen; alle Teile sollten logisch zusammenarbeiten. Die interne Struktur soll logisch aufgebaut sein.
- Arten der Kohäsion (von schlecht bis gut): Zufällig, logisch, zeitlich, Ablauf, sequentiell, kommunikativ, funktional. Funktionale Kohäsion ist die höchste Form. Zusätzliche Arten: Zufällig, logisch, zeitlich, Ablauf-, sequentielle, kommunikative und funktionale Kohäsion. Die funktionale Kohäsion ist die beste Ausführung.
Kopplung (Abhängigkeiten)
- Definition: Kopplung beschreibt die Abhängigkeit zwischen Komponenten. Weniger Abhängigkeiten = bessere Wartbarkeit und Stabilität. Grad der Abhängigkeit zwischen Komponenten.
- Arten der Kopplung: Datenkopplung (globale Variablen), Schnittstellenkopplung (flexibel in objektorientierten Systemen), Strukturkopplung (gemeinsame Attribute/Methoden). Daten- , Schnittstellen- und Strukturkopplungen.
- Reduktion der Kopplung: Minimierung direkter Verbindungen, Verwendung von Schnittstellen statt direkter Verbindungen, Vermeidung von globalen/public Attributen und Vererbungen über Paketgrenzen hinweg. Reduzierung durch Schnittstellen, Vermeidung von globalen Variablen und Vermeidung übermäßiger Vererbung.
- Beispiele für weniger Kopplung:
get
/set
Methoden statt direkter Attribute-Zugriffe. Vermeidung von globalen Variablen. Nutzung von Methoden für Zugriff.
Wiederverwendung (Reuse)
- Definition: Wiederverwendung bedeutet, bestehende Software-Teile erneut zu nutzen, anstatt sie komplett neu zu entwickeln. Wiederverwendung von bestehenden Codestrukturen.
- Vorteile: Zeitersparnis, höhere Qualität, einfachere Wartung. Zeit- und Kostenersparnis, verbesserte Qualität und Wartung.
- Erreichung von Wiederverwendung: In objektorientierter Programmierung: Vererbung und Parametrisierung von Modulen/Klassen. In der modularen Programmierung: Module und Schnittstellen. Vererbung und Parametrisierung in objektorientierter Programmierung und Module mit Schnittstellen in der modularen Programmierung.
- Achtung: Wiederverwendung kann Abhängigkeiten erhöhen; eine kluge Anwendung ist entscheidend. Vorsicht vor erhöhten Abhängigkeiten.
Frameworks
- Definition: Erweiterbare Software mit Callback-Methoden. Das Framework stellt eine Struktur bereit, in die eigene Funktionen eingebunden werden. Strukturierte Software mit Callback-Methoden.
- Nutzung: Subklassen bilden, das Framework ruft Callback-Methoden auf, sobald Ereignisse eintreten. Mit Subklassen wird das Framework erweitert.
- Erweiterbarkeit: Hinzufügen von Logik ohne Änderung des Frameworks. Einfaches Hinzufügen von Logik.
Referenzmodell und -architektur
- Referenzmodell: Zerlegung eines Systems in Subsysteme, Verbindungen und Kommunikationskanäle, zur Analyse und Strukturierung. Zerlegung in Subsysteme.
- Referenzarchitektur: Umsetzung des Referenzmodells in Software, inklusive Datenfluss, Kommunikation und technischer Details. Mehrere Komponenten können ein Subsystem bilden. Umsetzung in Software.
- Zusammenhang: Referenzmodell beschreibt was das System tun soll, die Referenzarchitektur wie es das tun soll. Entwurf (Was?) und Implementierung (Wie?).
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Description
Dieses Quiz behandelt die grundlegenden Konzepte des Software- und Systementwurfs, einschließlich Subsystemen, Komponenten und den groben sowie feinen Entwurfsansatz. Testen Sie Ihr Wissen über die Kriterien für einen guten Software-Entwurf, darunter Korrektheit, Verständlichkeit und Anpassbarkeit.