|
|
# Logiscope
|
|
|
|
|
|
m CASE-Labor wird das Analyse- und Testtool Logiscope der Firma Telelogic eingesetzt. Logiscope unterstützt dynamische und statische Prüfungen von Software. Logiscope ist für die Sprachen C, C++, Ada und Java verfügbar.
|
|
|
Im CASE-Labor wird das Analyse- und Testtool Logiscope der Firma Kalimetrix eingesetzt. Logiscope unterstützt dynamische und statische Prüfungen von Software. Logiscope ist für die Sprachen C, C++, Ada und Java verfügbar.
|
|
|
|
|
|
Unter dynamischer Prüfung versteht man das klassische Testen durch Programmausführen. Der Source Code kann instrumentiert werden um so eine Aussage über die Vollständigkeit der durchgeführten Tests zu machen. Unter Instrumentieren versteht man die Modifikation eines Programms für den dynamischen Test, z. B. den Einbau von Zählern in jedem Programmzweig. Mit Hilfe dieser Zähler kann überprüft werden wie oft jeder Zweig ausgeführt wurde. Damit kann eine Aussage über die Vollständigkeit von Tests gemacht werden (Testabdeckung).
|
|
|
Unter *dynamischer Prüfung* versteht man das klassische Testen durch Programmausführen. Der Source Code kann instrumentiert werden um so eine Aussage über die Vollständigkeit der durchgeführten Tests zu machen. Unter Instrumentieren versteht man die Modifikation eines Programms für den dynamischen Test, z. B. den Einbau von Zählern in jedem Programmzweig. Mit Hilfe dieser Zähler kann überprüft werden wie oft jeder Zweig ausgeführt wurde. Damit kann eine Aussage über die Vollständigkeit von Tests gemacht werden (Testabdeckung).
|
|
|
|
|
|
Bei statischen Prüfungen wird der Source Code untersucht und vermessen. Er wird nicht ausgeführt. Die Codeanalyse erfolgt mit Hilfe von Metriken, die zu einem Qualitätsmodell zusammengefaßt sind. Für jedes Maß werden die zulässigen Minimal- und Maximalwerte definiert. Logiscope stellt eine große Anzahl an primitiven Maßen zur Verfügung. Aus diesen primitiven Maßen können komplexe Maße für eigene Qualitätsmodelle aufgebaut werden.
|
|
|
Bei *statischen Prüfungen* wird der Source Code untersucht und vermessen. Er wird nicht ausgeführt. Die Codeanalyse erfolgt mit Hilfe von Metriken, die zu einem Qualitätsmodell zusammengefaßt sind. Für jedes Maß werden die zulässigen Minimal- und Maximalwerte definiert. Logiscope stellt eine große Anzahl an primitiven Maßen zur Verfügung. Aus diesen primitiven Maßen können komplexe Maße für eigene Qualitätsmodelle aufgebaut werden.
|
|
|
|
|
|
Die am Source Code gemessenen Werte können in verschiedenen Diagrammarten visualisiert werden.
|
|
|
|
|
|
Logiscope besteht aus den Komponenten:
|
|
|
|
|
|
Der Code Checker analysiert eine Anwendung entsprechend dem zugrundeliegenden Qulitätsmodell. Er mißt alle dort definierten Maße und erzeugt eine Übersicht der Gesamtqualität der analysierten Anwendung. Die analysierten Komponenten werden in die berechneten Qualitätsklassen eingeordnet. Für jede Komponente kann die Ausprägung der untersuchten Qualitätseigenschaft und die Maße, die zur Berechnung der Qualitätseigenschaften benutzt werden dargestellt werden.
|
|
|
Der Test Checker führt die dynamischen Tests durch. Er instrumentiert den Code, führt ihn aus und speichert die Ergebnisse. Die Testfälle müssen vom Benutzer definiert werden.
|
|
|
Der Rule Checker überprüft den Programmierstil einer Anwendung. Die Programmierrichtlinien für ein Projektwerden als Regeln definiert. Der Rule Checker prüft ob der Programmierstil einer Anwendung den Regeln entspricht.
|
|
|
Mit Hilfe des Viewers können die Ergebnisse von Code Checker, Test Checker und Rule Checker visualisiert werden. Er stellt verschiedene Diagrammtypen zur Verfügung, die die Qualität des untersuchten Codes, bzw. die Testabdeckung dargestellen.
|
|
|
|
|
|
- Der *Code Checker* analysiert eine Anwendung entsprechend dem zugrundeliegenden Qulitätsmodell. Er mißt alle dort definierten Maße und erzeugt eine Übersicht der Gesamtqualität der analysierten Anwendung. Die analysierten Komponenten werden in die berechneten Qualitätsklassen eingeordnet. Für jede Komponente kann die Ausprägung der untersuchten Qualitätseigenschaft und die Maße, die zur Berechnung der Qualitätseigenschaften benutzt werden dargestellt werden.
|
|
|
- Der *Test Checker* führt die dynamischen Tests durch. Er instrumentiert den Code, führt ihn aus und speichert die Ergebnisse. Die Testfälle müssen vom Benutzer definiert werden.
|
|
|
- Der Rule Checker überprüft den Programmierstil einer Anwendung. Die Programmierrichtlinien für ein Projektwerden als Regeln definiert. Der Rule Checker prüft ob der Programmierstil einer Anwendung den Regeln entspricht.
|
|
|
- Mit Hilfe des *Viewers* können die Ergebnisse von Code Checker, Test Checker und Rule Checker visualisiert werden. Er stellt verschiedene Diagrammtypen zur Verfügung, die die Qualität des untersuchten Codes, bzw. die Testabdeckung dargestellen.
|
|
|
|
|
|
Das Logiscope Qualitätsmodell
|
|
|
## Das Logiscope Qualitätsmodell
|
|
|
|
|
|
Logiscope enthält ein eigenes Qualitätsmodell . Es kann an eigene Bedürfnisse angepaßt werden. Der Benutzer kann eigene Qualitätsmodelle erstellen, die nötigen Metriken definieren und diese alternativ zum Standardmodell verwenden. Die Qualitätseigenschaften ("factor") werden in Merkmale ("criteria") zerlegt, für die dann Maße ("metrics") definiert werden. Diese drei Abstraktionsebenen definieren die Qualität aus der Sicht
|
|
|
verschiedener Benutzergruppen von Software. 
|
|
|
Meßobjekte
|
|
|
|
|
|
|
|
|
Die Meßobjekte, die Logiscope überprüft sind die Quellcodedateien. Das Qualitätsmodell kann zur Überprüfung folgender Elemente verwendet werden:
|
|
|
## Meßobjekte
|
|
|
|
|
|
Applikation
|
|
|
Klassen
|
|
|
Module
|
|
|
Methoden
|
|
|
Funktionen
|
|
|
Die Meßobjekte, die Logiscope überprüft sind die Quellcodedateien. Das Qualitätsmodell kann zur Überprüfung folgender Elemente verwendet werden:
|
|
|
|
|
|
- Applikation
|
|
|
- Klassen
|
|
|
- Module
|
|
|
- Methoden
|
|
|
- Funktionen
|
|
|
|
|
|
Darstellung der Analyseergebnisse
|
|
|
## Darstellung der Analyseergebnisse
|
|
|
|
|
|
Aufrufgraphen zeigen alle Aufrufe zwischen den Komponenten (Funktionen, Modulen) einer Anwendung. Die Rechtecke stehen für eine Komponente, die Kanten für einen Aufruf.
|
|
|
*Aufrufgraphen* zeigen alle Aufrufe zwischen den Komponenten (Funktionen, Modulen) einer Anwendung. Die Rechtecke stehen für eine Komponente, die Kanten für einen Aufruf.
|
|
|
|
|
|

|
|
|
Kontrollflußgraphen zeigen die interne Struktur der Komponenten. Knoten repräsentieren (Blöcke von) Anweisungen, Kanten zeigen den möglichen Kontrollfluß durch die Komponente.
|
|
|
|
|
|
*Kontrollflußgraphen* zeigen die interne Struktur der Komponenten. Knoten repräsentieren (Blöcke von) Anweisungen, Kanten zeigen den möglichen Kontrollfluß durch die Komponente.
|
|
|
|
|
|

|
|
|
|
|
|
Kiviatdiagramme zeigen die Meßwerte für eine Komponente. Jeder Radius stellt ein Maß dar. Die beiden Kreise stehen für die zulässigen Minima und Maxima der Maße.
|
|
|
*Kiviatdiagramme* zeigen die Meßwerte für eine Komponente. Jeder Radius stellt ein Maß dar. Die beiden Kreise stehen für die zulässigen Minima und Maxima der Maße.
|
|
|
|
|
|
 |
|
|
\ No newline at end of file |