Your SlideShare is downloading. ×
 Kombination von graphbasierten Redesign-Analysen
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Kombination von graphbasierten Redesign-Analysen

382
views

Published on

Talk at the Workshop Software Reengineering, 5-7 May 2008, Bad Honnef, Germany

Talk at the Workshop Software Reengineering, 5-7 May 2008, Bad Honnef, Germany


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
382
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. ECARES-Projekt: Kombination vongraphbasierten Redesign-Analysen 10. Workshop Software-Reengineering Bad Honnef, 2008 Tobias Walter, Christof Mosler 05.05.2008
  • 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 • ZusammenfassungE-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 TelekommunikationssystemsE-CARES Projekt Reengineering Analysen Kombination Zusammenfassung 3/17
  • 4. Kombination von graphbasierten Redesign-Analysen Tobias WalterReengineering 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 BlockE-CARES Projekt Reengineering Analysen Kombination Zusammenfassung 4/17
  • 5. Kombination von graphbasierten Redesign-Analysen Tobias WalterReengineering 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 CodeE-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 AnalysenE-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 ANASTATEE-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 TRACONE-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 StrukturgraphenE-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 wirdE-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 ANASTATEE-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 ANASTATEE-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 FunktionenE-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ührenE-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 ANASTATEE-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 ANASTATEE-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 DatenstrukturenE-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 1E-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 INITECDATAE-CARES Projekt Reengineering Analysen Kombination Zusammenfassung 15/17
  • 21. 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 Kombinierte Gewichtung Statem. Sequ. ANAIDLE Call (2/3) Subroutine INITECDATAE-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 GewichtungE-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 KantenE-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 ClusteringE-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 SimulatorE-CARES Projekt Reengineering Analysen Kombination Zusammenfassung 17/17