AKAD


Set of flashcards Details

Flashcards 112
Language Deutsch
Category Computer Science
Level University
Created / Updated 29.05.2017 / 01.09.2018
Weblink
https://card2brain.ch/box/20170529_mip40_methoden_der_softwaredokumentation
Embed
<iframe src="https://card2brain.ch/box/20170529_mip40_methoden_der_softwaredokumentation/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

Nennen Sie fünf Kategorien der Dokumentation, die hinsichtlich Inhalt, Zielsetzung und Adressaten unterschieden werden. [MIP403 S.68]

Wir unterscheiden bei der Softwaredokumentation die Projekt-, die System-, die Qualitäts-, Entwicklungs- und die Benutzerdokumentation.

Welche Aufgaben hat das Software-Artefakt-Management (SAM) zu erfüllen? [MIP403 S.68]

Das SAM übernimmt die geordnete Speicherung der Programme und Artefakte. Es unterstützt die Versionsverwaltung sowie die Wiederauffindbarkeit und gemeinschaftliche Nutzung aller Artefakte.

Nennen Sie Zielsetzung und Aufgaben eines Software Produkt-Repository. [MIP403 S.68]

Das Software-Produkt-Repository soll die Entwicklungswerkzeuge und die Dokumentation zusammenführen und für Entwickler, Nutzer und das Management während des gesamten SW-Lebenszyklus des Produkts über das Intranet oder ein Unternehmensportal zur Verfügung stehen.

Mit welchen Maßnahmen kann man die SW-Qualität prüfen? Wie lauten die Teststufen des V-Modells? [MIP403 S.78]

Die Möglichkeiten der Prüfung sind die Verifikation, die Validierung und das Testen der Software. Beim V-Modell erfolgt das Testen in den Stufen Modultest, Integrationstest, Systemtest und Abnahmetest.

Geben Sie einen kurzen Überblick über die Klassifikation und Charakteristik der Test- und Prüfverfahren. [MIP403 S.78]

Wir unterscheiden statische und dynamische Tests, die ohne oder mit einer Programmausführung durchgeführt werden. Es können, abhängig von der Kenntnis der Programmstruktur, Whitebox- oder Blackbox-Tests genutzt werden. Bei den dynamischen Testverfahren können Funktions- oder Strukturtests eingesetzt werden. Mit Regressionstests können die Funktionen und die Struktur und somit beide Aspekte getestet werden.

Skizzieren Sie den Ablauf eines Reviews. [MIP403 S.78]

Ein Review ist eine Gruppenprüfung der Software. Sie umfasst den Programmcode und die Dokumentation und wird in einer Review-Sitzung von max. 2 Stunden durchgeführt. Neben dem Autor ist ein Moderator, ein Gutachter (Prüfer) und ein Vorleser beteiligt der den Code präsentiert (vorliest). Am Ende der Sitzung wird über Akzeptanz, Ablehnung oder Nachbesserung entschieden (akzeptieren ohne Änderung, akzeptieren mit Änderung, nicht akzeptieren).

Wie wichtig und aufwendig ist beim Testen die Phase des Programmverstehens? [MIP403 S.78]

Das Programmverstehen ist die Grundlage der Fehlersuche, der Testplanung und der Testdurchführung. Das Programmverstehen beansprucht ca. die Hälfte der Zeit, um einen Testfall zu bearbeiten und abzuschließen.

Beschreiben Sie die Durchführung und die Bedeutung von Regressionstests. [MIP403 S.78]

Regressionstests sind dynamische Tests. Die Vorgabe von Sollwerten basiert auf vorangehenden Tests. Diese werden mit den Ergebnissen des Testlaufs verglichen. Bei kleinen Änderungen können die Tests inkrementell durchgeführt werden. Bei der Durchführung und für den Ergebnisvergleich kann eine Testautomatisierung genutzt werden. Falls erforderlich, muss durch Wrapping eine Testumgebung für die Tests der Module geschaffen werden.

Welche Rolle übernehmen Wrapper (wrappers), Testtreiber (drivers) und Testplatzhalter (stubs) beim Modultest oder beim Testen von Komponenten? [MIP403 S.78]

Wrapper dienen der Isolierung von Komponenten beim Modultest. Die Module werden in einen Wrapper verpackt und damit gegenüber der Programmumgebung kontrolliert abgeschottet, sodass alle Auswirkungen und evtl. Nebenwirkungen kontrollierbar sind. Die Testtreiber übernehmen die Funktion der rufenden Komponenten. Die Stubs dienen als Platzhalter, sie simulieren die Funktionen und die Schnittstellen der Prozeduren.

Welche Interpretationsprobleme sehen Sie bei der Volumenangabe LOC? [MIP403 S.89]

Es gibt unterschiedliche Zählweisen bei der Bestimmung der LOC. Hierbei könnten auch Leerzeilen, Kommentarzeilen oder Deklarationen gezählt werden. Vorsorglich sollte man die Maße ELOC oder NOS benutzen. Ferner sollte bei dieser Größenangabe die Mächtigkeit und Kompaktheit des Codes der verwendeten Programmiersprache beachtet werden.

Mit welcher Metrik kann man die Wartbarkeit einer Software beurteilen? Welche Einflussgrößen werden hierbei berücksichtigt? [MIP403 S.89]

Für die Beurteilung der Wartbarkeit kann man den Wartungsindex bestimmen, der eine Klassifikation des Schwierigkeitsgrades erlaubt. Diese Metrik benutzt als Einflussgrößen die (durchschnittlichen Maße) der LOC, der Halstead-Metrik und der zyklomatischen Komplexität und berücksichtigt zusätzlich noch den Umfang der Kommentierung.

Wie kann man die Unzuverlässigkeit einer Software ausdrücken und quantifizieren? [MIP403 S.89]

Die Unzuverlässigkeit kann als EUR-Betrag ausgedrückt werden. Sie gibt die durchschnittliche Höhe der Fehlerkosten pro Betriebstag an.

Welches Maß würden Sie bei einem objektorientiert konzipierten System zur Messung der Komplexität und der Wartbarkeit heranziehen? [MIP403 S.89]

Die DIT-Metrik (Depth Inheritance Tree of Class) misst die Tiefe der Vererbung und liefert eine Aussage über Testbarkeit und Wartbarkeit, die umso schwieriger ist, je läääänger der maximale Weg in der Vererbungshierarchie ist.

Wie und mit welcher Metrik lassen sich der Kopplungsgrad und die Modularisierung eines Systems messen? [MIP403 S.89]

Die Fan-In-/Fan-Out-Metrik dokumentiert die Anzahl der Aufrufbeziehungen einzelner Komponenten (Module, Prozeduren) als Eingang oder als Ausgang. Sie erfasst damit die Kohäsion und die Abhängigkeiten zwischen den Komponenten und ist ein Indikator für den Kopplungsgrad und die Modularisierung.

Erklären Sie das Prinzip Lock Modify Write bei einer zentralen Versionsverwaltung. Welche Vor- und Nachteile hat diese Arbeitsweise? [MIP403 S.98]

(vgl. Check-In/Check-Out)
Dateien müssen vor einer Änderung durch den Benutzer gesperrt und nach Abschluss der Änderung zurückgeschrieben und/oder wieder freigegeben werden. Während sie gesperrt sind, verhindert das System Änderungen durch andere Benutzer. Der Vorteil dieses Konzeptes liegt darin, dass kein Zusammenführen von Versionen erforderlich ist, da nur immer ein Entwickler die Datei exklusiv bearbeiten kann. Lange Wartezeiten bis zur Freigabe einer gesperrten Version sind für die anderen Benutzer allerdings von Nachteil.

Welches Open-Source-Versionsmanagement würden Sie für ein Open-Source-Projekt mit zahlreichen Entwicklern einsetzen? [MIP403 S.98]

Das System Git ist ein bekanntes verteiltes Open-Source-Versionsmanagementsystem, das beispielsweise auch für das Linux-Projekt eingesetzt wird.

Nennen sie einige wichtige Komponenten und Funktionen, die in einer Testumgebung angeboten werden sollten. [MIP403 S.98]

Zu einer komfortablen Testumgebung gehören beispielsweise Testplanungs- und Testfalleditoren, eine Testfalldatenbank, ein Testdateneditor und Testtreiber, Werkzeuge für die Datenprüfung sowie dynamische und statische Analysatoren für die Codeanalyse.

Welche Vorteile bietet der Einsatz eines Bug-Tracking-Systems? [MIP403 S.98]

Ein Bug-Tracking-System unterstützt die Kommunikation zwischen Benutzern, Tes- tern, Entwicklern und dem Management. Es hilft bei der Aufdeckung von Fehlern und Schwachstellen. Es verbessert die Transparenz der Wartungsprozesse und unterstützt damit das Konfigurationsmanagement.

Wie lauten die drei Phasen der Visualisierungs-Pipeline von DIEHL? [MIP404 S.8]

Datengewinnung, Analyse und Visualisierung.

Worin besteht in Bezug auf die Erstellung einer Softwarevisualisierung der Unterschied zwischen statischen und dynamischen Eigenschaften der Software? [MIP404 S.8]

Statische Eigenschaften können erfasst werden, ohne das Programm auszuführen, dyna- mische Eigenschaften dagegen nicht.

Welchen Nutzen kann Peter Flink von der Softwarevisualisierung für sein Projekt erwarten, bei welchen Tätigkeiten? [MIP404 S.12]

Peter Flink wird den nicht von ihm selbst geschriebenen Code schneller verstehen und die relevanten Codestellen, an denen er Änderungen machen muss, schneller finden. Bei der Programmierung und beim Testen der Änderungen hilft ihm die Visualisierung, die Folgen dieser Änderungen zu sehen und die Ursache von eventuell beim Testen auftretenden Problemen schneller zu finden. Eventuell möchte er auch einen Kollegen oder Praktikanten einarbeiten in den Code, und hierbei hilft die Visualisierung ebenfalls, um wesentliche Eigenschaften des Programms zu erklären.

Warum ist die Qualität des Layouts von Visualisierungen entscheidend? Nennen Sie drei Gründe. [MIP404 S.12]

Die Qualität des Layouts ist entscheidend, weil
– die Effizienz des Benutzers beim Verstehen der visualisierten Inhalte davon abhängt,
– ein gutes Layout Anfängern hilft, zwischen wichtigen und unwichtigen Informationen zu unterscheiden,
– automatisches Layouten schwierig ist.

Wie entsteht beim Sehen ein Farbeindruck? [MIP404 S.17]

Ein Farbeindruck entsteht folgendermaßen: Auf der Netzhaut des Auges gibt es drei Arten von Rezeptoren, die jeweils auf Licht der drei Farben Magenta, Grün oder Orange ansprechen. Da Licht aus einer Mischung aus Licht verschiedener Wellenlängen bzw. Farben besteht, werden die Signale von den Rezeptoren vom Gehirn so kombiniert, dass ein Farbeindruck entsteht.

Welchen Vorteil hat eine Tree Map bei der Darstellung hierarchischer Beziehungen gegenüber einem Baum? [MIP404 S.28]

Eine Tree Map nutzt den Raum besser aus. Denn ein Baum verbraucht im Wurzelbereich so viel Platz für das einzelne Wurzelelement, wie auf der Blattebene für alle Blät- ter insgesamt zur Verfügung steht.

Worin besteht der Unterschied zwischen einer Informationspyramide und einer Information Landscape? [MIP404 S.28]

Zusätzliche Information gegenüber einer Informationspyramide: In der Information Landscape stellt die Höhe der Quader ein weiteres Attribut eines Elements dar.

Wie sind Kopplung und Kohäsion definiert? [MIP404 S.51]

Kopplung misst die Stärke der Wechselwirkung der Verbindung zwischen den Modulen, während Kohäsion den Grad der Abhängigkeit zwischen den Elementen innerhalb eines Moduls misst.

Wie erkennt man innerhalb eines Aufrufgraphen eine hohe Kopplung einer Klasse mit den übrigen Klassen? [MIP404 S.54]

Eine hohe Kopplung einer Klasse mit den übrigen Klassen erkennt man im Aufruf- graphen daran, dass diese Klasse viele andere Klassen aufruft und/oder von vielen ande- ren Klassen aufgerufen wird.

Abbildung 34 beschreibt einen Kontrollflussgraphen für das Zeiterfassungsbeispiel. a) Wie ist die zyklomatische Komplexität von McCabe definiert? b)Wie groß ist für das Beispiel in Abbildung 34 die zyklomatische Komplexität nach McCabe?
c) Wie groß soll nach McCabe die zyklomatische Komplexität maximal sein? [MIP404 S.54]

Zum Kontrollfussgraphen für das Zeiterfassungs-Beispiel: a) Die zyklomatische Komplexität von McCabe ist definiert als die Anzahl der binären Verzweigungen des Kontrollflussgraphen plus 1.
b) Für dieses Beispiel beträgt die zyklomatische Komplexität nach McCabe 3 + 1 = 4. c) Nach McCabe soll die zyklomatische Komplexität maximal 10 betragen.

Warum soll die Kopplung zwischen Klassen gering sein? [MIP404 S.61]

Ein hoher Grad an Kopplung zwischen Klassen bedeutet, dass der Code weniger leicht verständlich ist, außerdem Wiederverwendung, Änderungen und Fehlersuche erschwert.

Was ist instrumentation code? [MIP404 S.61]

Instrumentation code sind zusätzliche Anweisungen im Code, die für die Visualisierung gewünschte Daten ausgeben, z.B. in eine Protokolldatei.

An welchen Stellen wird instrumentation code in Java üblicherweise eingefügt, wenn man den Quellcode vorliegen hat? [MIP404 S.61]

Instrumentation code wird in Java üblicherweise eingefügt – vor und nach einem Methodenaufruf, um sie zu umschließen, – innerhalb einer Methode.

Welche drei Möglichkeiten hat man bei nicht vorliegendem Java-Quellcode, um dyna- mische Daten auszugeben? [MIP404 S.61]

Bei nicht vorliegendem Java-Quellcode kann man dynamische Daten folgendermaßen ausgeben: – Methoden-Stubs, – Byte-Code-Injektion, – erweiterte Java Virtual Machine.