Folder zum Thema Codeanalyse - Software Competence Center

Werbung
In Software vorhandenes Wissen sichern!
Extraktion von Fachwissen aus Programmen
Motivation
In vielen Unternehmen – vor allem im verfahrenstechnischen oder Engineering Bereich –
manifestiert sich kritisches Know-How nicht nur in den Köpfen einzelner Personen, sondern steckt in wesentlichen Teilen auch in für Prozesse und Verfahren ge nutzten Softwaresystemen. Je nach Fachgebiet
manifestiert sich dieses Wissen als
Menge von Berechnungen, Zustandsdiagramme oder Entscheidungstabellen.
Dieses Wissen hat in der Regel langlebigen Charakter und wird in den Unternehmen über Jahre, wenn nicht Jahrzehnte, laufend weiter entwickelt, an
geänderte Rahmenbedingungen angepasst und überdauert somit den Lebenszyklus eines typischen Softwareprodukts oder der hinter dieser Software stehenden Technologie. Die laufende Wartung, sowie ein gegebenenfalls erforderliches Reengineering solcher Programme ist dann oft mit wesentlichen Schwierigkeiten verbunden.
Typischerweise kämpfen Reengineering-Projekte mit fehlender oder mangelhafter Dokumentation und Nachvollziehbarkeit der zugrundeliegenden Verfahren und Prozesse. Ve rstärkt werden diese Probleme durch die Tatsache, dass oftmals die menschl ichen KnowHow Träger im Unternehmen nicht mehr verfügbar sind und eine Nachvollziehba rkeit aus
dieser Quelle ebenfalls nicht mehr möglich ist . In diesen Fällen bilden die Quelltexte dieser Programme die einzige Grundlage für eine mögliche Wiede rherstellung des unternehmenskritischen Wissens.
Ziele und Durchführung
Ziel ist die möglichst automatisierte Extraktion oder auch Regenerierung von Fachwissen
aus vorhandenem Quellcode und darauf aufbauend die Erzeugung neuer, nutzbringender
Artefakte. Diese können von Dokumentation bis hin zu (neuem) Programmcode reichen.
Dabei geht es nicht nur um die bloße statische Analyse und die Auflösung von Abhängigkeiten. Es werden vielmehr die tatsächlichen Berechnungen aus den Quelltexten extr ahiert. Zusätzlich können z.B. durch symbolische Ausführung Korrektheitsprüfungen
durchgeführt werden (z.B. zur Ermittlung des Verlaufs physikalischer Einheiten in einer
Berechnung). Die Erzeugung neuer Artefakte läuft im Idealfall vollautomatisch ab. Zu-
sätzlich wird versucht, Inkonsistenzen und Lücken im vorliegenden Know-How zu erkennen oder aber auch abgebildete Prozesse und Verfahren zu optimieren.
Leistungsangebot
Als Leistungen können wir in diesem Zusammenhang anbieten:

Problemanalyse und Anforderungserhebung.

Abschätzung der Realisierbarkeit einer Lösung für Ihr konkretes Problem. Falls erfo rderlich, wird dies durch experimentelles Prototyping unterstütz t.

Abschätzung des Aufwands unter Berücksichtigung der bereits am SCCH vorhandenen Methoden.

Implementierung einer für Ihr Problem maßgeschneiderten Lösung: Beispielsweise
automatisierte Analyse Ihrer Codebasis, ggf. unter Adaptierung eines geeigneten
Parsers, Implementierung erforderlicher und/oder Adaptierung bestehender Analysemethoden, Generierung der gewünschten Zielartefakte.
Nutzen
Der wesentliche Nutzen liegt in der Sicherstellung des in Software abgebildeten Wissens,
das in der Regel einen unternehmenskritischen Aktivposten darstellt. Dieses kann in für
Menschen lesbare Dokumentation und maschinell
weiter verarbeitbare Spezifikationen abgebildet
werden. Durch die automatisierte Generierung kann
eine signifikante Zeit- und Kostenersparnis erzielt
werden. Das in expliziter Form vorliegende Wissen
ermöglicht das umfassende Verständnis der Software und erleichtert somit deren Wartbarkeit.
Soll die vorhandene Software neu gestaltet werden
(z.B. Migration auf eine neue Technologie), ergeben sich weitere Vorteile:

Rationalisierung: Die Analyse hilft Altlasten zu identifizieren und zu beseitigen. Bei
einer manuellen Migration werden häufig Vereinfachungen, die sich aus Möglichkeiten der neuen Zieltechnologie ergeben können, nicht genutzt. Die Codeanalyse kann
helfen dieses Rationierungspotential zu heben .

Optimierung: Wird der Code verstanden, lassen sich Optimierungen fachlicher Natur
leichter entdecken.

Zeit- und Kostenersparnis beim Reengineering: Die automatische Generierung von
Code für das Zielsystem kann den Zeitaufwand für ein Reengineering wesentlich ve rringern und damit die damit verbundenen Kosten senken.
Ansprechpartner
Mag. Bernhard Dorninger
Project Development Models, Architectures and Tools
[email protected]
www.scch.at
Software Competence Center Hagenberg GmbH
T: +43 7236 3343 891
Softwarepark 21, 4232 Hagenberg
F: +43 7236 3342 888
Referenzprojekte
Die Art der Fragestellungen und Motive hinter einem Analyse - und Re-Engineering Projekt können mannigfaltiger Natur sein (siehe Referenzprojekte). Im Wesentlichen geht es
dabei aber immer um die Wartung oder Neugestaltung des fachlichen Aspekts der b etrachteten Software, das Reengineering der eigentlichen Softwarearchitektur spielt im
betrachteten Kontext meist keine oder nur eine untergeordnete Rolle.

Siemens Transformers Weiz
Ein wesentliches, unternehmenskritisches Asset von STW ist eine umfangreiche Cod ebasis für das Electrical Engineering, die mit Programmiersprachen wie C++ und Fortran
erstellt wurde. Hier handelt es sich nicht nur um über die Jahre entstandene n Code,
vielmehr wird fachlicher Code auch gänzlich neu geschrieben. Mit Hilfe statischer und
symbolischer Analysen wird die Erstellung der fachlichen Dokumentation weitestgehend
automatisiert. So wird die Synchronisation zwischen Programmcode und fachlich er Dokumentation und damit deren Konsistenz sichergestellt. Dabei kann die gesamte Programmdokumentation automatisch generiert werden, wobei bis zu 70% der Dokumente
ohne zusätzliche Änderungen im Code erzeugt werden können. Die restlichen Teile können durch Ergänzungen im Programmcode abgedeckt werden.

voestalpine AG
Das klassische Problem mit über die Jahre gewachsenem Programmcode ist der Gegenstand eines Projekts mit der voestalpine AG im Bereich der Stahlerzeugung. Für die E rstellung von Statistiken und Berichten wird eine hohe Anzahl von PL/SQL Skripte verwendet. Die Herausforderung manifestiert sich primär in der Tatsache, dass diese Skripte über die Jahre bereits mehrmals an eine veränderte IT -Infrastruktur angepasst werden
mussten. Beim Wechsel der Datenbanksysteme wurden die Skripte teils automatisch
migriert, mittlerweile ist dadurch nicht mehr 100%ig feststellbar aus welchen Datenque llen die Ergebnisse stammen und auf welchen Grundlagen sie berechnet wurden. Die
Komplexität der Gesamtheit der PL/SQL Skripte und ihrer Abhängigkeiten, sowie die
nicht mehr aktuelle Dokumentation verhindern die durchgängige Nachvollziehbarkeit der
Berechnungen. Somit ist auch eine Wartung der Software kaum mehr möglich. Mit Hilfe
verschiedener Analysemethoden auf Basis des PL/SQL Quellcode werden die Abhängigkeiten aufgelöst und die Zusammenhänge vereinfacht und dokumentiert.

ENGEL Maschinen Austria
Ein weiteres Projekt beschäftigt sich mit der Migration von Benutzerschnittstellen. E NGEL migriert eine Software zur Maschinenvisualisierung auf eine neue Plattform. Die
Analyse hat zum Ziel, die Struktur der grafischen Elemente der Benutzerschnittstelle,
sowie deren Varianten herauszufiltern und in einer abstrahierten Form bereitzustellen.
Dieses Modell kann in weiterer Folge zur Generierung von Benutzerschnittstellen für
neue Technologien im Bereich Visualisierung genutzt werden.
Herunterladen