Software- und Systementwurf - Grundlagen
44 Questions
1 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

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.

True (A)

Nenne mindestens zwei Kriterien für einen guten Software-Entwurf.

Korrektheit, Anpassbarkeit

Eine __________ beschreibt einen Baustein für ein Softwaresystem.

<p>Komponente</p> Signup and view all the answers

Ordne die Arten von Kohäsion den jeweiligen Beschreibungen zu:

<p>Zufällige Kohäsion = Teile ohne Zusammenhang Logische Kohäsion = Ähnliche Funktionen zusammen Zeitliche Kohäsion = Teile laufen zur gleichen Zeit Sequentielle Kohäsion = Ein Teil gibt Daten an den nächsten weiter</p> Signup and view all the answers

Welcher Begriff beschreibt die Idee, bereits vorhandene Lösungen und Komponenten wiederzuverwenden?

<p>Wiederverwendung (B)</p> Signup and view all the answers

Ein guter Software-Entwurf erfordert starke Kopplung zwischen den Komponenten.

<p>False (B)</p> Signup and view all the answers

Was versteht man unter Grobentwurf in der Softwareentwicklung?

<p>Architektur, Subsysteme, Schnittstellen</p> Signup and view all the answers

Welche der folgenden Aussagen beschreibt am zutreffendsten einen Subsystem?

<p>Ein Subsystem ist eine Gruppe von Komponenten, die zusammenarbeiten, um eine spezifische Funktion zu erfüllen. (C)</p> Signup and view all the answers

Welche Art von Kohäsion liegt vor, wenn alle Teile einer Komponente mit denselben Daten arbeiten?

<p>Kommunikative Kohäsion (D)</p> Signup and view all the answers

Welcher der folgenden Punkte ist KEIN Kriterium für einen guten Software-Entwurf?

<p>Komplexität (D)</p> Signup and view all the answers

Welche Art von Kohäsion liegt vor, wenn Teile der Komponente eine feste Reihenfolge in ihrer Ausführung haben?

<p>Ablauf-Kohäsion (B)</p> Signup and view all the answers

Welche Aussage über Grobentwurf und Feinentwurf ist korrekt?

<p>Der Feinentwurf umfasst die Implementierungsdetails, der Grobentwurf die Architektur. (D)</p> Signup and view all the answers

Welche der folgenden Aussagen über Kohäsion ist korrekt?

<p>Hohe Kohäsion ist vorteilhaft, da dies die Verständlichkeit und Wartbarkeit von Komponenten verbessert. (B)</p> Signup and view all the answers

Was versteht man im Kontext der Softwareentwicklung unter "Komponente"?

<p>Eine Einheit eines Softwaresystems, die aus mehreren Klassen oder Modulen besteht. (D)</p> Signup and view all the answers

Welche Art von Kohäsion liegt vor, wenn Teile der Komponente in ähnlicher Weise zusammenarbeiten, sich aber nicht unbedingt auf dieselbe Weise nutzen?

<p>Logische Kohäsion (A)</p> Signup and view all the answers

Was beschreibt die Strukturkopplung in einem Softwaresystem?

<p>Teile nutzen dieselben Attribute oder Methoden. (B)</p> Signup and view all the answers

Wie kann man die Datenkopplung in einem System verringern?

<p>Durch die Verwendung von Schnittstellen. (C)</p> Signup and view all the answers

Welcher Vorteil ergibt sich aus der Wiederverwendung von Softwarekomponenten?

<p>Verringerung des doppelten Codes. (D)</p> Signup and view all the answers

Was ist der Unterschied zwischen einem Referenzmodell und einer Referenzarchitektur?

<p>Referenzmodelle beschreiben die Analyse und Strukturierung, Referenzarchitekturen setzen dies in Software um. (B)</p> Signup and view all the answers

Warum ist hohe Kohäsion in einem Softwaresystem wichtig?

<p>Sie erleichtert das Verständnis, die Wartung und die Erweiterung. (D)</p> Signup and view all the answers

Welche Methode ist empfehlenswert, um den Zugriff auf Attribute zu steuern?

<p>Get/Set-Methoden nutzen. (C)</p> Signup and view all the answers

Welche der folgenden Aussagen trifft auf Frameworks in der Softwareentwicklung zu?

<p>Man kann eigene Klassen erstellen, die von Framework-Klassen erben. (C)</p> Signup and view all the answers

Welche negative Konsequenz kann aus einer hohen Wiederverwendung von Komponenten resultieren?

<p>Erhöhtes Risiko von Bugs. (A)</p> Signup and view all the answers

Was beschreibt die Kopplung in einem Softwarekontext?

<p>Die Abhängigkeit zwischen verschiedenen Komponenten. (A)</p> Signup and view all the answers

Welches der folgenden Konzepte reduziert effektiv die Kopplung zwischen Komponenten?

<p>Nutzung von Schnittstellen statt direkter Verbindungen. (A)</p> Signup and view all the answers

Ein Subsystem kann aus mehreren Komponenten bestehen.

<p>True (A)</p> Signup and view all the answers

Die ______ beschreibt, wie stark die Teile einer Komponente zusammenpassen.

<p>Kohäsion</p> Signup and view all the answers

Welche der folgenden Aussagen ist NICHT ein Kriterium für einen guten Software-Entwurf?

<p>Geringe Redundanz (D)</p> Signup and view all the answers

Nennen Sie zwei Arten von Kohäsion, die im Text beschrieben werden.

<p>Logische Kohäsion, Zeitliche Kohäsion</p> Signup and view all the answers

Ordnen Sie die folgenden Kohäsionsarten ihren Beschreibungen zu:

<p>Zufällige Kohäsion = Teile ohne Zusammenhang Kommunikative Kohäsion = Alle Teile arbeiten mit denselben Daten Sequentielle Kohäsion = Ein Teil gibt Daten an den nächsten weiter Logische Kohäsion = Ähnliche Funktionen zusammen Ablauf-Kohäsion = Teile arbeiten in einer festen Reihenfolge Zeitliche Kohäsion = Teile laufen zur gleichen Zeit Funktionale Kohäsion = Ein Teil realisiert eine bestimmte Funktion</p> Signup and view all the answers

Welcher der folgenden Punkte ist KEIN Vorteil von hoher Kohäsion in einem Software-Entwurf?

<p>Erhöhte Komplexität (B)</p> Signup and view all the answers

Der Feinentwurf eines Softwaresystems ist stark von der Implementierungssprache abhängig.

<p>True (A)</p> Signup and view all the answers

Der ______ ist weitgehend unabhängig von der Implementierungssprache.

<p>Grobentwurf</p> Signup and view all the answers

Welche der folgenden Aussagen beschreibt die Vorteile einer hohen Kohäsion am besten?

<p>Leichte Verständlichkeit und Wartbarkeit (B)</p> Signup and view all the answers

Weniger Kopplung bedeutet schlechtere Wartbarkeit und Flexibilität.

<p>False (B)</p> Signup and view all the answers

Definiere Wiederverwendung in der Softwareentwicklung.

<p>Wiederverwendung bedeutet, bestehende Teile von Software erneut zu nutzen, anstatt alles neu zu schreiben.</p> Signup and view all the answers

Die __________ beschreibt, wie stark Komponenten voneinander abhängen.

<p>Kopplung</p> Signup and view all the answers

Welche Art der Kopplung kommuniziert über definierte Schnittstellen?

<p>Schnittstellenkopplung (C)</p> Signup and view all the answers

Ordne die Kopplungsarten ihren Beschreibungen zu:

<p>Datenkopplung = Teile nutzen die gleichen Daten Schnittstellenkopplung = Teile kommunizieren über Schnittstellen Strukturkopplung = Teile nutzen dieselben Attribute oder Methoden Globalkopplung = Abhängigkeit von globalen Variablen</p> Signup and view all the answers

Wiederverwendung ist immer positiv und verursacht niemals Probleme.

<p>False (B)</p> Signup and view all the answers

Wie kann man die Kopplung in einem System reduzieren?

<p>Durch Nutzung von Schnittstellen und Vermeidung direkter Verbindungen.</p> Signup and view all the answers

Ein __________ ist eine Software, die durch Callback-Methoden erweiterbar ist.

<p>Framework</p> Signup and view all the answers

Welcher Vorteil ergibt sich aus der Nutzung von Frameworks?

<p>Vordefinierte Struktur für Erweiterungen (D)</p> Signup and view all the answers

Flashcards

Kopplung

Beschreibt, wie stark Komponenten voneinander abhängen. Weniger Abhängigkeit bedeutet einfachere Wartung und höhere Stabilität.

Datenkopplung

Teile von Software, die denselben Datenbereich nutzen (z.B. globale Variablen). Änderungen wirken sich auf viele Teile aus.

Schnittstellenkopplung

Teile kommunizieren über definierte Schnittstellen, was flexibilität in objektorientierten Systemen ermöglicht.

Strukturkopplung

Module nutzen dieselben Attribute oder Methoden. Veränderungen oder Wiederverwendung werden erschwert.

Signup and view all the flashcards

Wiederverwendung

Vorgang, bei dem bestehende Softwarekomponenten wiederverwendet werden, statt alles neu zu schreiben.

Signup and view all the flashcards

Nachteil der Wiederverwendung

Wiederverwendung kann Abhängigkeiten erhöhen. Wenn viele Teile miteinander verbunden sind, wird die Software schwieriger zu ändern.

Signup and view all the flashcards

Framework

Software, die durch Callback-Methoden erweiterbar ist. Frameworks vorgeben eine Struktur, in die eigene Funktionen eingebunden werden können.

Signup and view all the flashcards

Referenzmodell

Zerlegt ein System in Subsysteme, Verbindungen und Kommunikationskanäle. Dient zur Analyse und Strukturierung.

Signup and view all the flashcards

Referenzarchitektur

Setzt das Referenzmodell in Software um. Beinhaltet Datenfluss, Kommunikation und technische Details.

Signup and view all the flashcards

Subsystem

Mehrere Softwarekomponenten können ein Subsystem bilden.

Signup and view all the flashcards

Komponente

Ein Baustein eines Softwaresystems, der Funktionen bereitstellt und von anderen Komponenten genutzt werden kann. Beispiele sind Module, Klassen und Pakete.

Signup and view all the flashcards

Grobentwurf

Dieser Entwurf fokussiert auf die Architektur, die Subsysteme und deren Schnittstellen. Er ist unabhängig von einer bestimmten Programmiersprache.

Signup and view all the flashcards

Feinentwurf

Der Feinentwurf spezifiziert genau, wie die Software mit bestimmten Komponenten, Datenstrukturen und Algorithmen implementiert werden soll. Er ist an die gewählte Programmiersprache und Plattform angepasst.

Signup and view all the flashcards

Korrektheit

Die Software erfüllt ihre funktionalen Anforderungen und weitere wichtige Kriterien wie Leistung und Sicherheit.

Signup and view all the flashcards

Verständlichkeit

Die Software ist verständlich für alle und gut dokumentiert, was Änderungen und Erweiterungen erleichtert.

Signup and view all the flashcards

Anpassbarkeit

Die Software ist so aufgebaut, dass Teile leicht geändert werden können. Neue Funktionen können hinzugefügt werden, ohne das ganze System zu verändern.

Signup and view all the flashcards

Hohe Kohäsion

Alle Teile einer Komponente gehören logisch zusammen und es gibt keine unnötigen Abhängigkeiten innerhalb der Komponente.

Signup and view all the flashcards

Was ist ein Subsystem?

Ein Subsystem ist ein in sich geschlossener Teil eines Softwaresystems, der eigenständig funktioniert und über definierte Schnittstellen mit anderen Subsystemen kommuniziert.

Signup and view all the flashcards

Was sind Komponenten?

Komponenten sind Bausteine eines Softwaresystems, die Funktionen bereitstellen und von anderen Komponenten genutzt werden können. Beispiele sind Module, Klassen und Pakete.

Signup and view all the flashcards

Was ist ein Grobentwurf?

Der Grobentwurf konzentriert sich auf die Architektur, die Subsysteme und deren Schnittstellen. Er ist unabhängig von einer bestimmten Programmiersprache.

Signup and view all the flashcards

Was ist ein Feinentwurf?

Der Feinentwurf beschreibt detailliert die Implementierung des Systems mit spezifischen Komponenten, Datenstrukturen und Algorithmen. Er ist an die gewählte Programmiersprache und Plattform angepasst.

Signup and view all the flashcards

Was ist Korrektheit?

Korrektheit bedeutet, dass die Software genau das tut, was sie soll, und dass sie auch zusätzlich wichtige Anforderungen wie Leistung und Sicherheit erfüllt.

Signup and view all the flashcards

Was ist Verständlichkeit?

Verständlichkeit bedeutet, dass die Software für alle verständlich ist und gut dokumentiert ist, was Änderungen und Erweiterungen erleichtert.

Signup and view all the flashcards

Was ist Anpassbarkeit?

Anpassbarkeit bedeutet, dass die Software so aufgebaut ist, dass Teile leicht geändert werden können, ohne dass das ganze System neu geschrieben werden muss.

Signup and view all the flashcards

Was ist hohe Kohäsion?

Hohe Kohäsion bedeutet, dass alle Teile einer Komponente logisch zusammen gehören und es keine unnötigen Abhängigkeiten innerhalb der Komponente gibt.

Signup and view all the flashcards

Funktionale Kohäsion

Alle Teile dienen einem einzigen Zweck.

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.

Quiz Team

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.

More Like This

Use Quizgecko on...
Browser
Browser