40 likes | 179 Views
Übersicht. Quelltextanalyse mit regulären Ausdrücken Compilertechniken Prozessanalyse Dynamische Analyse Datenanalyse Design Pattern Erkennung Analyse- und Visualisierungstechniken Clustering Plagiatserkennung Refactoring Hot Spots Designmetriken. Ziele Heute. Slicing Completion.
E N D
Übersicht • Quelltextanalyse mit regulären Ausdrücken • Compilertechniken • Prozessanalyse • Dynamische Analyse • Datenanalyse • Design Pattern Erkennung • Analyse- und Visualisierungstechniken • Clustering • Plagiatserkennung • Refactoring • Hot Spots • Designmetriken • ...
Ziele Heute • Slicing • Completion
Slicing • Backward Slicing: • was trägt zur aktuellen Zeile bei? • Forward Slicing • wo werden die Ergebnisse der aktuellen Zeile weiter verwendet • Eigentlich toll • Probleme: • Fallunterscheidungen / Schleifen • Vererbung • Points-To-Analysis • praktisch bisher nur selten verwendbar • Hauptsächlich für C verbreitet
Completion Aufgabe: • erweitert Method parseNameExpr um Typausgabe für Teilausdrücke • this => A • this.b => B • this.b.mb() => C • merkt euch in parseNameExpr den aktuellen Typ in contextTyp • gebt für den aktuellen Typ jeweils die Liste der Features aus: A: b, c, d, a, ma(), mx() • startet mit contextTyp A und gebt für this.b.c.d.m die möglichen Completions aus. • StudentPackage5 zur eigenen Installation hinzufügen