2. Kombination von graphbasierten Redesign-Analysen Tobias Walter
Überblick
• Das E-CARES Projekt
• Reengineering von Telekommunikationssystemen
• Analysen
• Datenorientierte Analyse
• Funktionsorientierte Analyse
• Anwendungsspezifische Analyse
• Kombination der Analysen
• Zusammenfassung
E-CARES Projekt Reengineering Analysen Kombination Zusammenfassung 2/17
3. Kombination von graphbasierten Redesign-Analysen Tobias Walter
Das E-CARES Projekt
• Ericsson Communication ARchitecture for Embedded
Systems
• Kooperation seit 1999 zwischen
• Lehrstuhl für Informatik 3 (Softwaretechnik) der RWTH
• Ericsson Eurolab GmbH
• Ziele der Kooperation
• Methoden, Konzepte und Werkzeuge
• zur Unterstützung der Verständlichkeit und
Restrukturierung von Software
• unter Beachtung der Komplexität des Legacy
Telekommunikationssystems
E-CARES Projekt Reengineering Analysen Kombination Zusammenfassung 3/17
4. Kombination von graphbasierten Redesign-Analysen Tobias Walter
Reengineering von Telekommunikationssystemen
• Telekommunikationssystem
• GSM-Infrastruktur DOCUMENT Block_A;
• Kernstück ist das Mobile DECLARE;
VARIABLE NAME;
Switching Center VARIABLE BNUMBER;
• Stetige Erweiterung des Systems END DECLARE;
(SMS, GPRS etc.) PROGRAM ;
ENTER DIAL WITH BNUMBER;
• Degenerieren der Software GOTO DIAL01;
• Implementierung DIAL01);
NAME = „AXE10“
• Blöcke als Softwareeinheit
SEND SIGNAL
WITH NUMBER, NAME;
• Programmiersprache PLEX EXIT;
• Signalorientiertes Paradigma ...
• Bis zu 80.000 LoC pro Block
E-CARES Projekt Reengineering Analysen Kombination Zusammenfassung 4/17
5. Kombination von graphbasierten Redesign-Analysen Tobias Walter
Reengineering Ansatz
Modification
re-think
Concept Concept Forward
Reverse Engineering
Engineering re-specifiy (Refinement)
Specification Specification
(Abstraction)
re-design
Design Design
re-code
Implementation Implementation
Structure new
Graph Structure
Graph
PLEX Code new PLEX Code
E-CARES Projekt Reengineering Analysen Kombination Zusammenfassung 5/17
6. Kombination von graphbasierten Redesign-Analysen Tobias Walter
Szenario: Blockdekomposition
• Problem: Beschränkte Blockgröße durch Hardware
vorgegeben
• Lösung: Dekomposition von Blöcken
• Minimale Kopplung zwischen Teilblöcken
• Maximale Bindung innerhalb eines Blockes
• Verschiedene Analysen zur Dekomposition
• Datenorientiert
• Funktionsorientiert
• Anwendungsspezifisch
• Ergebnis:
• Nicht immer optimale Ergebnisse beim Anwenden einzelner
Analysen
• Daher: Kombination der Analysen
E-CARES Projekt Reengineering Analysen Kombination Zusammenfassung 6/17
7. Kombination von graphbasierten Redesign-Analysen Tobias Walter
Beispiel eines Strukturgraphen
Block
TRACON
Contains
Contains Contains
Signal Entry
CALLABORT Contains
Contains
Signal Entry Signal Entry
MSG STARTPREANA
Goto
Goto Goto
Goto
Statem. Sequ.
NOTCONNECTED Statem. Sequ.
ANAIDLE
Statem. Sequ. Record Record
CONNECTED TRACONDATA ECDATA
Contains Call Call
Contains
Contains Contains
Subroutine Subroutine Contains
INITECDATA READGLOROUTE
Modifies
Modifies
Modifies Reads
Modifies Reads Modifies
Reads
Variable
FLCONNFIDEC Modifies
Symbol Variable Variable
STATE INCOMEC
Variable Variable
IECLINK ANASTATE
E-CARES Projekt Reengineering Analysen Kombination Zusammenfassung 7/17
8. Kombination von graphbasierten Redesign-Analysen Tobias Walter
Beispiel eines Strukturgraphen
Block
TRACON
Main Module Contains EC Module
Contains Contains
Signal Entry
CALLABORT Contains
Contains
Signal Entry Signal Entry
MSG STARTPREANA
Goto
Goto Goto
Goto
Statem. Sequ.
NOTCONNECTED Statem. Sequ.
ANAIDLE
Statem. Sequ. Record Record
CONNECTED TRACONDATA ECDATA
Contains Call Call
Contains
Contains Contains
Subroutine Subroutine Contains
INITECDATA READGLOROUTE
Modifies
Modifies
Modifies Reads
Modifies Reads Modifies
Reads
Variable
FLCONNFIDEC Modifies
Symbol Variable Variable
STATE INCOMEC
Variable Variable
IECLINK ANASTATE
2 Module im Block TRACON
E-CARES Projekt Reengineering Analysen Kombination Zusammenfassung 7/17
9. Kombination von graphbasierten Redesign-Analysen Tobias Walter
Redesign-Analysen
• Bestimmung eines Zusammenhangsmaß Sim(a,b)
• Beschreibt Bindung zweier Knoten a und b
• Gewichtung der semantischen Kanten im Strukturgraph
• Wert: Rationale Zahl zwischen 0 und 1
• Nach den Redesign-Analysen:
• Verbindungsbasiertes Clustering
• Dekomposition durch Restrukturierung des
Strukturgraphen
E-CARES Projekt Reengineering Analysen Kombination Zusammenfassung 8/17
10. Kombination von graphbasierten Redesign-Analysen Tobias Walter
Datenorientierte Analyse
• Ziele
• Programmelemente mit starker datenorientierter
Bindung zusammenhalten
• Vermeiden von blockübergreifenden Datenzugriffen
nach einem Split
• Berechnungsvorschrift:
• Hilfsfunktion data(a):
• Liefert Menge von Datenelementen, auf die im Laufe
aller Kontrollflüsse ausgehend von a zugegriffen wird
E-CARES Projekt Reengineering Analysen Kombination Zusammenfassung 9/17
11. Kombination von graphbasierten Redesign-Analysen Tobias Walter
Datenorientierte Analyse
Block
TRACON
Contains
Contains Contains
Signal Entry
CALLABORT Contains
Contains
Signal Entry Signal Entry
MSG STARTPREANA
Goto (1/4)
Goto (1) Goto (1)
Goto (1)
Statem. Sequ.
NOTCONNECTED Statem. Sequ.
ANAIDLE
Statem. Sequ. Record Record
CONNECTED TRACONDATA ECDATA
Contains Call (1/3) Call (2/3)
Contains
Contains Contains
Subroutine Subroutine Contains
INITECDATA READGLOROUTE
Modifies (1/2)
Modifies (1/2)
Modifies (1) Reads (1/3)
Modifies (1/2) Reads (1/3) Modifies (1)
Reads (1/2)
Variable
FLCONNFIDEC Modifies (1/3)
Symbol Variable Variable
STATE INCOMEC
Variable Variable
IECLINK ANASTATE
E-CARES Projekt Reengineering Analysen Kombination Zusammenfassung 10/17
12. Kombination von graphbasierten Redesign-Analysen Tobias Walter
Datenorientierte Analyse
Block
TRACON
Contains
Contains Contains
Signal Entry
CALLABORT Contains
Contains
Signal Entry Signal Entry
MSG STARTPREANA
Goto (1/4)
Goto (1) Goto (1)
Goto (1)
Statem. Sequ.
NOTCONNECTED Statem. Sequ.
ANAIDLE
Statem. Sequ. Record Record
CONNECTED TRACONDATA ECDATA
Contains
Contains Call (1/3) Call (2/3)
Contains Contains
Subroutine Subroutine Contains
INITECDATA READGLOROUTE
Modifies (1/2)
Modifies (1/2)
Modifies (1) Reads (1/3)
Modifies (1/2) Reads (1/3) Modifies (1)
Reads (1/2)
Variable
FLCONNFIDEC Modifies (1/3)
Symbol Variable Variable
STATE INCOMEC
Variable Variable
IECLINK ANASTATE
E-CARES Projekt Reengineering Analysen Kombination Zusammenfassung 10/17
13. Kombination von graphbasierten Redesign-Analysen Tobias Walter
Datenorientierte Analyse
Block
TRACON
Contains
Contains Contains
Signal Entry
CALLABORT Contains
Contains
Signal Entry Signal Entry
MSG STARTPREANA
Goto (1/4)
Goto (1) Goto (1)
Goto (1)
Statem. Sequ.
NOTCONNECTED Statem. Sequ.
ANAIDLE
Statem. Sequ. Record Record
CONNECTED TRACONDATA ECDATA
Contains Call (1/3) Call (2/3)
Contains
Contains Contains
Subroutine Subroutine Contains
INITECDATA READGLOROUTE
Modifies (1/2)
Modifies (1/2)
Modifies (1) Reads (1/3)
Reads (1/2)
Modifies (1/2) Reads (1/3) Modifies (1)
Variable
FLCONNFIDEC Modifies (1/3)
Symbol Variable Variable
STATE INCOMEC
Variable Variable
IECLINK ANASTATE
• Mögliches Zerlegen von zusammenhängenden Funktionen
E-CARES Projekt Reengineering Analysen Kombination Zusammenfassung 10/17
14. Kombination von graphbasierten Redesign-Analysen Tobias Walter
Funktionsorientierte Analyse
• Ziele
• Programmelemente mit starker funktionsorientierter
Bindung zusammenhalten
• Erkennen von funktionalen Bereichen im Block
• Berechnungsvorschrift:
• Hilfsfunktion signal(a):
• Liefert Menge von Signaleingängen, von denen
Kontrollflüsse zum Knoten a führen
E-CARES Projekt Reengineering Analysen Kombination Zusammenfassung 11/17
15. Kombination von graphbasierten Redesign-Analysen Tobias Walter
Funktionsorientierte Analyse
Block
TRACON
Contains
Contains Contains
Signal Entry
CALLABORT Contains
Contains
Signal Entry Signal Entry
MSG STARTPREANA
Goto (1/2)
Goto (1/2) Goto (1)
Goto (1)
Statem. Sequ.
NOTCONNECTED Statem. Sequ.
ANAIDLE
Statem. Sequ. Record Record
CONNECTED TRACONDATA ECDATA
Contains Call (1) Call (1)
Contains
Contains Contains
Subroutine Subroutine Contains
INITECDATA READGLOROUTE
Modifies (1)
Modifies (1/2)
Modifies (1) Reads (1/3)
Modifies (1/3) Reads (1/3) Modifies (1)
Reads (2/3)
Variable Modifies (2/3)
FLCONNFIDEC
Symbol Variable Variable
STATE INCOMEC
Variable Variable
IECLINK ANASTATE
E-CARES Projekt Reengineering Analysen Kombination Zusammenfassung 12/17
16. Kombination von graphbasierten Redesign-Analysen Tobias Walter
Funktionsorientierte Analyse
Block
TRACON
Contains
Contains Contains
Signal Entry
CALLABORT Contains
Contains
Signal Entry Signal Entry
MSG STARTPREANA
Goto (1/2)
Goto (1/2) Goto (1)
Goto (1)
Statem. Sequ.
NOTCONNECTED Statem. Sequ.
ANAIDLE
Statem. Sequ. Record Record
CONNECTED TRACONDATA ECDATA
Contains Call (1) Call (1)
Contains
Contains Contains
Modifies (1/2) Subroutine Subroutine Contains
INITECDATA READGLOROUTE
Modifies (1)
Modifies (1) Reads (1/3)
Modifies (1/3) Reads (1/3) Modifies (1)
Reads (2/3)
Variable Modifies (2/3)
FLCONNFIDEC
Symbol Variable Variable
STATE INCOMEC
Variable Variable
IECLINK ANASTATE
E-CARES Projekt Reengineering Analysen Kombination Zusammenfassung 12/17
17. Kombination von graphbasierten Redesign-Analysen Tobias Walter
Funktionsorientierte Analyse
Block
TRACON
Contains
Contains Contains
Signal Entry
CALLABORT Contains
Contains
Signal Entry Signal Entry
MSG STARTPREANA
Goto (1/2)
Goto (1/2) Goto (1)
Goto (1)
Statem. Sequ.
NOTCONNECTED Statem. Sequ.
ANAIDLE
Statem. Sequ. Record Record
CONNECTED TRACONDATA ECDATA
Contains Call (1) Call (1)
Contains
Contains Contains
Subroutine Subroutine Contains
INITECDATA READGLOROUTE
Modifies (1)
Modifies (1/2)
Modifies (1) Reads (1/3)
Modifies (1/3) Reads (1/3) Modifies (1)
Reads (2/3)
Variable Modifies (2/3)
FLCONNFIDEC
Symbol Variable Variable
STATE INCOMEC
Variable Variable
IECLINK ANASTATE
• Zerlegen von zusammenhängenden Datenstrukturen
E-CARES Projekt Reengineering Analysen Kombination Zusammenfassung 12/17
18. Kombination von graphbasierten Redesign-Analysen Tobias Walter
Anwendungsspezifische Analyse
• Basiert auf anwendungsspezifischen Wissen in Form
von Mustern im Strukturgraph
• Restrukturierung von Mustern
• teilweise technisch nicht möglich
• hat Verschlechterung der Performance zur Folge
• Ziel:
• Muster mit Hilfe von Pattern Matching im
Strukturgraph erkennen
• Bindung der Muster stärken
• Gewichtung aller semantischen Kanten eines Musters
mit Wert 1
E-CARES Projekt Reengineering Analysen Kombination Zusammenfassung 13/17
19. Kombination von graphbasierten Redesign-Analysen Tobias Walter
Kombination der Analysen
• Ziel: Ausnutzen der Vorteile aller Analysen
• Kombination durch Verknüpfung der Ergebnisse
• Überlagerung der Gewichtung mit Hilfe eines Operators
zur Komposition
• Eingabe:
• 2 Zusammenhangsmaße, die die direkte Verbindung zwischen
Entitäten a und b beschreiben
• natürliche Zahl n, in der die Anzahl der Überlagerungen
gespeichert ist
• Ausgabe:
• Neues Zusammenhangsmaße für zwei Entitäten a und b
• Formal:
E-CARES Projekt Reengineering Analysen Kombination Zusammenfassung 14/17
20. Kombination von graphbasierten Redesign-Analysen Tobias Walter
Kombination der Analysen
Gewichtung 1 (datenorientiert): Gewichtung 2 (funktionsorientiert):
Statem. Sequ. Statem. Sequ.
ANAIDLE ANAIDLE
Call (1/3) Call (1)
Subroutine Subroutine
INITECDATA INITECDATA
E-CARES Projekt Reengineering Analysen Kombination Zusammenfassung 15/17
22. Kombination von graphbasierten Redesign-Analysen Tobias Walter
Kombination der Analysen
Block
TRACON
Contains
Contains Contains
Signal Entry
CALLABORT Contains
Contains
Signal Entry Signal Entry
MSG STARTPREANA
Goto (3/8)
Goto (3/4) Goto (1)
Goto (1)
Statem. Sequ.
NOTCONNECTED Statem. Sequ.
ANAIDLE
Statem. Sequ. Record Record
CONNECTED TRACONDATA ECDATA
Contains Call (2/3) Call (5/6)
Contains
Contains Contains
Subroutine Subroutine Contains
INITECDATA READGLOROUTE
Modifies (3/4)
Modifies (1/2)
Modifies (1) Reads (1/3)
Reads (1/3) Modifies (1)
Reads (7/12) Modifies (5/12)
Variable
FLCONNFIDEC Modifies (1/2)
Symbol Variable Variable
STATE INCOMEC
Variable Variable
IECLINK ANASTATE
• Überlagerung der daten- und funktionsorientierten Gewichtung
E-CARES Projekt Reengineering Analysen Kombination Zusammenfassung 16/17
23. Kombination von graphbasierten Redesign-Analysen Tobias Walter
Kombination der Analysen
Block
TRACON
Contains
Contains Contains
Signal Entry
CALLABORT Contains
Contains
Signal Entry Signal Entry
MSG STARTPREANA
Goto (3/8)
Goto (3/4) Goto (1)
Goto (1)
Statem. Sequ.
NOTCONNECTED Statem. Sequ.
ANAIDLE
Statem. Sequ. Record Record
CONNECTED TRACONDATA ECDATA
Contains Call (2/3) Call (5/6)
Contains
Contains Contains
Subroutine Subroutine Contains
INITECDATA READGLOROUTE
Modifies (3/4)
Modifies (1/2)
Modifies (1) Reads (1/3)
Reads (1/3) Modifies (1)
Reads (7/12) Modifies (5/12)
Variable
FLCONNFIDEC Modifies (1/2)
Symbol Variable Variable
STATE INCOMEC
Variable Variable
IECLINK ANASTATE
• Herabgewichtung der kritischen Kanten
E-CARES Projekt Reengineering Analysen Kombination Zusammenfassung 16/17
24. Kombination von graphbasierten Redesign-Analysen Tobias Walter
Kombination der Analysen
Block Cluster 2
TRACON
Cluster 1
Contains
Contains Contains
Signal Entry
CALLABORT Contains
Contains
Signal Entry Signal Entry
MSG STARTPREANA
Goto (3/8)
Goto (3/4) Goto (1)
Goto (1)
Statem. Sequ.
NOTCONNECTED Statem. Sequ.
ANAIDLE
Statem. Sequ. Record Record
CONNECTED TRACONDATA ECDATA
Contains Call (2/3) Call (5/6)
Contains
Contains Contains
Subroutine Subroutine Contains
INITECDATA READGLOROUTE
Modifies (3/4)
Modifies (1/2)
Modifies (1) Reads (1/3)
Reads (1/3) Modifies (1)
Reads (7/12) Modifies (5/12)
Variable
FLCONNFIDEC Modifies (1/2)
Symbol Variable Variable
STATE INCOMEC
Variable Variable
IECLINK ANASTATE
• Mögliches Ergebnis zur Dekomposition nach dem Clustering
E-CARES Projekt Reengineering Analysen Kombination Zusammenfassung 16/17
25. Kombination von graphbasierten Redesign-Analysen Tobias Walter
Zusammenfassung
• ECARES-Projekt
• Reengineering des Telekommunikationssystems AXE10
• Szenario: Blockdekomposition
• Daten-, funktionsorientiert und anwendungsspezifische
Gewichtungen
• Kombination der Analysen
• Kompositionsoperator zur Überlagerung der
Gewichtungen
• Fallstudie Block TRACON
• Validierung durch
• Erfahrung der Designern bei Ericsson
• Testen der Blockdekomposition im Simulator
E-CARES Projekt Reengineering Analysen Kombination Zusammenfassung 17/17