An Environment for Comprehending the Behavior of Software Systems Maher Salah Department of Computer...

Preview:

Citation preview

An Environment for Comprehending the Behavior of Software Systems

Maher Salah

Department of Computer ScienceDrexel University

July 25, 2005

July 25, 2005

Maher Salah 2

Overview

• Problem: Software maintenance• Modern software systems

– Large, distributed, multi-language and developed using pre-built components

– Difficult and expensive, especially if the source code is not available Effective SC tools can greatly simplify and reduce maintenance effort

• Solution: Software Comprehension Environment• Profiling and analysis of distributed systems• Analysis of program features• Common data repository• Software views

• Evaluation: Case study• Mozilla: Web browser• Jext: Programmers’ Text Editor• TechReport: Publication database

July 25, 2005

Maher Salah 3

Outline

Motivation

• Software Comprehension

• Architecture of Software Comprehension Environment

• Software views / Case Study

• Related Work

• Conclusions

July 25, 2005

Maher Salah 4

Software maintenance: Relative Cost

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

1970s Early 1980s Late 1980s Early 1990s

New Development Software maintenance

[Maod-1990]

July 25, 2005

Maher Salah 5

Software maintenance: Cost Distribution

20%

25%

55%

Corrective maintenance

Adaptive maintenance

Perfective maintenance

Approximately 80% of the maintenance effort is spent on non-corrective tasks

[Swanson-1990]

July 25, 2005

Maher Salah 6

Software maintenance: Cost Reduction

Rigorous design and thorough testing– Corrective maintenance

Limiting non-corrective changes– Enhancements– Adapting to hardware/software infrastructure

changes– Not an option: System evolution depends on

these changes to meet its user’s needs.

July 25, 2005

Maher Salah 7

Software maintenance: Cost Reduction

Reducing amount of effort spent on maintenance

½ the maintenance effort is spent on understanding the system’s logic and behavior. [Pigoski-1994]

Effective software comprehension tools

July 25, 2005

Maher Salah 8

Outline

• MotivationSoftware Comprehension

• Architecture of Software Comprehension Environment

• Software views / Case Study

• Related Work

• Conclusions

July 25, 2005

Maher Salah 9

Software Comprehension

Program Entities

ProgramRelationships

Program

Source codeExtractor

Profiler

Source code

Compiled binaries Filt

eri

ng

& q

ue

ryto

ols

AnalyzersSoftware

views

Program Gather dataStore data into

repositoryFilter and analyze data Software views

July 25, 2005

Maher Salah 10

Outline

Software ComprehensionArchitecture of Software

Comprehension Environment

• Software Views / Case Study

• Related Work

• Conclusions

July 25, 2005

Maher Salah 11

Architecture of the Software Comprehension Environment

Languages models&

Program schema

SQL(JDBC)

SMQL

Analysis/VisualizationSubsystemRepository Subsystem

Trace Marker(Features)

Feature-implementation view Feature interaction view Feature-similarity view Module-interaction view Class-interaction view Remote-interaction view Class protocol view

Modeling(Analyzers)

Visualization(Presentation/Navigation)

Software Programs Static analyzers

Dynamic analyzers(Profilers)

Sourcecode

ExecutionTraces

Data GatheringSubsystem

July 25, 2005

Maher Salah 12

Data Gathering Subsystem

Languages models&

Program schema

SQL(JDBC)

SMQL

Analysis/VisualizationSubsystemRepository Subsystem

Trace Marker(Features)

Feature-implementation view Feature interaction view Feature-similarity view Module-interaction view Class-interaction view Remote-interaction view Class protocol view

Modeling(Analyzers)

Visualization(Presentation/Navigation)

Software Programs Static analyzers

Dynamic analyzers(Profilers)

Sourcecode

ExecutionTraces

Data GatheringSubsystem

July 25, 2005

Maher Salah 13

Data Gathering Subsystem

• Program Facts/Data– Static: Entities and Relations– Dynamic: Entities, Relations and Events

• Distributed Profiler– Local Profiler– Logical Time Server

• Remote Interactions– Network interceptorEndpoint

July 25, 2005

Maher Salah 14

Data Gathering

• Endpoint entity– Local and Remote host– Local and Remote port numbers– Time-stamp

• Connects Relation

Local Host Remote Host Local Port Remote Port Time

Local Host Remote Host Local Port Remote Port Time+Delta

Delta < Threshold

Endpoint-A

Endpoint-B

July 25, 2005

Maher Salah 15

Example: Sequence Diagram

UserClassjava.netSokect-

OutputStream

write()

Java.net.Sokect-

InputStream

read()

Java Program

Lo

gic

al T

ime

C/C++ Win32 Program

UserModule(Winsock)

Ws2_32.DLL

recv()

send()

EP(B)

EPTime(B)

EP(A)EPTime(A)

July 25, 2005

Maher Salah 16

TechReport: Remote-interaction view

Search-by-author feature

July 25, 2005

Maher Salah 17

Distributed Profiler

Distributed Profiling

Program-B

JDBC CompliantDatabase

(SQL Server)

SQL(JDBC)

SMQL

Analysis/VisualizationSubsystemRepository Subsystem

Trace Marker

Analyzers

Visualization(Presentation)

Profiling Win32 Program(Using Wdbg)

Profiling Java Program(Using JvProf)

LogicalTimeServer

Runtime events(XML Format)

Runtime events(XML Format)

Import(dbimport)

Logical-TimeDistributed Marked-Trace

Logical-TimeDistributed Marked-Trace

Trace Marker

Program-A

Data Collection

Import(dbimport)

July 25, 2005

Maher Salah 18

Data Repository

Languages models&

Program schema

SQL(JDBC)

SMQL

Analysis/VisualizationSubsystemRepository Subsystem

Trace Marker(Features)

Feature-implementation view Feature interaction view Feature-similarity view Module-interaction view Class-interaction view Remote-interaction view Class protocol view

Modeling(Analyzers)

Visualization(Presentation/Navigation)

Software Programs Static analyzers

Dynamic analyzers(Profilers)

Sourcecode

ExecutionTraces

Data GatheringSubsystem

July 25, 2005

Maher Salah 19

Data Repository

• Logical Models– Language definitions– Program data

• Implementation– Relational database

• Query/Manipulation Language– Manipulation: SQL– Query/retrieval: SMQL

July 25, 2005

Maher Salah 20

Language Definitions

• Model(General) = Graph(Eg , Rg)Eg: Set of entity types

Rg: Set of relation types

• Java, example:• Model(Java) = Graph(Ejava , Rjava)

Ejava Eg : Entity types supported by Java

Rjava Rg : Relation types supported by Java

Such that the source and destination entity Ejava

• C++, definingModel(C++) = Graph(Ec++, Rc++)

Ec++ = Ejava {template, struct, typedef, function}

- {interface, package}

July 25, 2005

Maher Salah 21

SMQL: Software Modeling Query Language

• Set-based:– Typed Set (SMQL Objects)

• Entity Set• Relation Set• Event Set

– Composite set– Generic Set

• Operations– Union, intersection, Difference

• Functions– SMQL Filters implement in Java– Closure, Composition, …, etc.

July 25, 2005

Maher Salah 22

/** MOZILLA — Dynamic analysis (C/C++) All interactions from/to MIME.DLL module of Mozilla**/

RelationSet JPEGRelations{include (project) = {"mozilla"} ;EntitySet AllEntities

{type = {"method", "function"} ;}

EntitySet JPEGEntities{type = {"method", "function"} ;include (container) = {"imgjpeg.dll"} ;}

include (invoke) = {AllEntities -> JPEGEntities, JPEGEntities -> AllEntities } ;

}

/** JETTY - Static analysis (Java) Inheritance forest rooted at HttpListener or http.HttpHandler**/

EntitySet InheritanceRoots{type = {"interface", "class"} ;include (name) = { "org.mortbay.http.HttpListener",

"org.mortbay.http.HttpHandler" } ;include (project) = { "jetty-static" } ;}

InheritanceForest = closure(null, InheritanceRoots,{ "implement", "subclass"} ) ;

/** KWIC — Dynamic analysis (Java)**/

EventSet KwicEvents{type = { "method-entry",

"method-exit","thread-start","thread-end"} ;

include (project) = {"kwic-rt"} ;}

// Convert EventSet to RelationSet (call-graph) KwicCallgraph = Callgraph(KwicEvents) ;

// Attach the SequenceDiagram Visualizer to the clone event setKwicEvents["sf.visualizer"] = "serg.sc.sd.ui.SceEventSequVisualizer" ;

KwicEvents["description"] = "Kwic Event Sequence Diagram";

/** Mixing Relationships**/

MixedRelations = InheritanceForest + JPEGRelations ;

SMQL: ExampleMozilla – Dynamic (C/C++)Jetty – Static (Java)KWIC – Dynamic (Java)Union of relations from Mozilla and Jetty

July 25, 2005

Maher Salah 23

SMQL Filters

• SMQL filters = Analyzers– Java implementation of IFilter interface

• Implemented filters– Closure (Source, Target, RelationTypes)– Composition (E1, E2, …)– Callgraph (E1, E2, …)– AnalyzeEvents (E1, E2, …)– FeatureSimilarity (E1, E2, …)– MethodSequences (E1, E2, …)– Clone (EntitySet || RelationSet || EventSet)– Output_Dot ( RelationSet )– Output_xml( EntitySet || RelationSet || EventSet)

July 25, 2005

Maher Salah 24

Analysis and Visualization

Languages models&

Program schema

SQL(JDBC)

SMQL

Analysis/VisualizationSubsystemRepository Subsystem

Trace Marker(Features)

Feature-implementation view Feature interaction view Feature-similarity view Module-interaction view Class-interaction view Remote-interaction view Class protocol view

Modeling(Analyzers)

Visualization(Presentation/Navigation)

Software Programs Static analyzers

Dynamic analyzers(Profilers)

Sourcecode

ExecutionTraces

Data GatheringSubsystem

July 25, 2005

Maher Salah 25

Analysis and Visualization

SMQLAnalysis(IFilter)

Visualization(ISoftView)

Vis

ua

l Sty

le

Na

vig

atio

na

lS

tyle

Software ViewModelRevisedModel

ProgramData

Setting the “drill-in” property for a node/edge of a relationSet

Performed manually – By applying a different Analyzer or modifying the SMQL code

July 25, 2005

Maher Salah 26

Visualization process flow

Type?Default Visualizer

Has User-defined Visual-

style?

User-defined Visualizer

Graph Visualization

Containment Tree

Drill-in on Node and Edges

VisualizeSMQL Object

Realtionshipset

EntitySet

Clustering

No

Yes Custom Visualization

Drill-in

July 25, 2005

Maher Salah 27

Illustration Example

/** MOZILLA — Dynamic analysis (C/C++) All interactions from/to MIME.DLL module of Mozilla**/

RelationSet JPEGRelations{include (project) = {"mozilla"} ;EntitySet AllEntities

{type = {"method", "function"} ;}

EntitySet JPEGEntities{type = {"method", "function"} ;include (container) = {"imgjpeg.dll"} ;}

include (invoke) = {AllEntities -> JPEGEntities, JPEGEntities -> AllEntities } ;

}

/** JETTY - Static analysis (Java) Inheritance forest rooted at HttpListener or http.HttpHandler**/

EntitySet InheritanceRoots{type = {"interface", "class"} ;include (name) = { "org.mortbay.http.HttpListener",

"org.mortbay.http.HttpHandler" } ;include (project) = { "jetty-static" } ;}

InheritanceForest = closure(null, InheritanceRoots,{ "implement", "subclass"} ) ;

/** KWIC — Dynamic analysis (Java)**/

EventSet KwicEvents{type = { "method-entry",

"method-exit","thread-start","thread-end"} ;

include (project) = {"kwic-rt"} ;}

// Convert EventSet to RelationSet (call-graph) KwicCallgraph = Callgraph(KwicEvents) ;

// Attach the SequenceDiagram Visualizer to the clone event setKwicEvents["sf.visualizer"] = "serg.sc.sd.ui.SceEventSequVisualizer" ;

KwicEvents["description"] = "Kwic Event Sequence Diagram";

/** Mixing Relationships**/

MixedRelations = InheritanceForest + JPEGRelations ;

July 25, 2005

Maher Salah 28

SceTool

SMQL Editor

Visualized as Graph

Visualized asSequenceDiagram

Visualized as Graphs

Views:• Inheritance forest• Call-graph• Class-interaction• Module-interaction• Event sequence diagram

July 25, 2005

Maher Salah 29

RelationSet: InheritanceForestJe

tty

– Ja

va s

tatic

ana

lysi

s

July 25, 2005

Maher Salah 30

RelationSet: JPEGRelationsM

ozill

a –

C/C

++

dyn

amic

ana

lysi

s

July 25, 2005

Maher Salah 31

RelationSet: MixedRelationsR

elat

ions

fro

m M

ozill

a &

Jet

ty

July 25, 2005

Maher Salah 32

RelationSet: KwicCallgraph (Call-graph)K

WIC

– J

ava

dyna

mic

ana

lysi

s

July 25, 2005

Maher Salah 33

EventSet : KwicEvents (Sequence Diagram)K

WIC

– J

ava

dyna

mic

ana

lysi

s

July 25, 2005

Maher Salah 34

Summary of Architecture

• Support– Analysis of distributed– Analysis of program features– Static and dynamic analysis– Multiple languages

• Extensible architecture– Analysis - IFilter– Visualization - ISoftView

July 25, 2005

Maher Salah 35

Software Views

Languages models&

Program schema

SQL(JDBC)

SMQL

Analysis/VisualizationSubsystemRepository Subsystem

Trace Marker(Features)

Feature-implementation view Feature interaction view Feature-similarity view Module-interaction view Class-interaction view Remote-interaction view Class protocol view

Modeling(Analyzers)

Visualization(Presentation/Navigation)

Software Programs Static analyzers

Dynamic analyzers(Profilers)

Sourcecode

ExecutionTraces

Data GatheringSubsystem

July 25, 2005

Maher Salah 36

Using Marked-Traces

Feature-interaction view

Runtime Events

Object-interaction view

Class-interaction view

Call-graphs

Feature-implementation view

Module-interaction view

Feature-similarity view

Method invocation sequence Class protocol view

Using Distributed Profiler

Remote-interaction view

Thread-interaction view

Taxonomy of Software Views

Requires information aboutruntime objects

July 25, 2005

Maher Salah 37

Software Views

• Feature views– Impact of changing one feature on other features– Feature implementation and dependencies

• Remote-interaction– Highlights interactions between components of

distributed systems

• Thread-interaction– Highlights potential concurrency issues

• Class usage protocol– Documenting usage scenarios

July 25, 2005

Maher Salah 38

Terminology

• Classification of objects Let F = { set of features }

– Local(Fk): objects created and used by Fk

– Import(Fk):objects used by Fk and created by Fj

– Export (Fk): objects created by Fk and used by Fj

• Relationships:– depends(Fk, Fj) = I(Fk) E(Fj)

– shares(Fk, Fj) = I(Fk) I(Fj)

July 25, 2005

Maher Salah 39

Feature-Interaction

• Feature Marked-Trace

• Construction Feature-interaction diagram– Identity Import (F) and Export(F) sets

– Compute depends(Fk, Fj) = I(Fk) E(Fj)

– Compute shares(Fk, Fj) = I(Fk) I(Fj)

– Draw a depends- edge if depends(Fk, Fj)

– Draw a shares- edge if shares(Fk, Fj)

July 25, 2005

Maher Salah 40

Feature-Interaction: Example

FeatureF1

FeatureF2

ObjectO4

ObjectO5

ObjectO1

ObjectO2

ObjectO2

FeatureF3

ObjectO4

ObjectO6

ObjectO1

Uses

Uses

uses

ObjectO3

ClassC1

ClassC2

ObjectO7

ClassC3

FeatureF4

ObjectO4

uses

Interactions within a given Feature are ignored

OK

Oj

The object is created by the corresponding feature

The object is used by the corresponding feature, but created by other feature

July 25, 2005

Maher Salah 41

Feature-Interaction: Example

• Import/Export sets:

• Depends/Shares:

• Feature-interaction view Import Export

Feature F1 {O1, O2} Feature F2 {O2} {O4} Feature F3 {O1, O4} Feature F4 {O4}

Depends (F2, F1) = E(F1) I(F2) = {O2} Depends (F3, F1) = E(F1) I(F3) = {O1} Depends (F3, F2) = E(F2) I(F3) = {O4} Depends (F4, F2) = E(F2) I(F4) = {O4} Shares (F3, F4) = I(F3) I(F4) = {O4}

Feature-2

Feature-3

Feature-1

Feature-4 C2: O4

C1: O2

C2: O4C2: O4

C1: O1

July 25, 2005

Maher Salah 42

Jext: Feature-interaction

July 25, 2005

Maher Salah 43

Feature-similarity view

• The similarity matrix is computed from the call-graphs– Fk = Gk (Vk, Ek)

• Using relations (edges)

|2E1E|

|2E1E|)2F,1F(Similarity

TechReport: Client-side feature similarity ad

d-p

ub

lica

tio

n

sear

ch-b

y-a

uth

or

sear

ch-b

y-t

itle

up

da

te-p

ub

lica

tio

n

add-publication 100 0 2 32

search-by-author 100 47 7

search-by-title 100 3

update-publication 100

July 25, 2005

Maher Salah 44

Class protocol view

• Terminology– Usage scenario: A description of how a class is used

by other classes– Method invocation sequence: The sequence of

invocations against an instance of a class (object).• Problem

– Determine the class-usage scenarios from its invocation sequences

• Approach– Compute the canonical set and canonical groups of

method sequences.– Approximate each canonical group as a regular

expression (Usage scenario)

July 25, 2005

Maher Salah 45

Class protocol view

• File class

• Symbols– R = Read– W = Write– O = Open– C = Close

• Method Sequences– ORC, – ORRC, – ORRRC, – ORRRRC, – OWC,– OWWWC, – ORWWWWWC,– OWWWWWWWWW

WC,– ORRRRRRRRRRWC

+Read()+Write()+Open()+Close()

File

July 25, 2005

Maher Salah 46

Class protocol view

• Canonical set– ORRC, OWWWRC

• Canonical groups– P1 = {ORC, ORRC, ORRRC, ORRRRC,

ORRRRRRRRRRWC }– P2 = {OWWWC, WWWWWWWWWWC,

ORWWWWWC, OWC}.

• Regular expressions– P1 = O (R)1,2,3,4,10 (W)0,1 C O (R)+ (W)? C– P2 = O (R)0,1 (W)1,3,5,10 C O (R)? (W)+ C

July 25, 2005

Maher Salah 47

P = {p1, p2, …, pn}

Method sequences

Kmin

Kmax

Canonical Set

Canonical Groups

Similarity function

Computing Canonical Set/Groups

Compute the similarity graph G(P) usingthe similarity function

Compute the canonical set that satisfies:

Compute the canonical groups

)IntraEdge(Weightmin

)CutEdge(Weightmax

Extra Edge

Cut EdgeIntra Edge

CanonicalSet

Compute Canonical groups

Formulate the BCS problem as an integerprogramming problem

Use semi-definite programming (SDP) tofind an approximate sooution

Canonical Set

July 25, 2005

Maher Salah 48

Similarity Measure

• Levenshtein edit-distance function– Distance d(si, sj) = Least number of operations

required to transform string si into string sj.

– Operations: deletion, insertion, substitution

• Adaptation of edit-distance– Associating a variable cost with each operation

• Frequency of a particular method invocation– Cost = exp (-frequency/length)

• Location of the particular method invocation– Cost = 1 if s[k] <> s[k-1]

– Cost = tiny if s[k] = s[k-1]

July 25, 2005

Maher Salah 49

Similarity Measure

• Examples:– InsertCost(“ORRC”, “R”, k) > InsertCost(“ORRRRRC”, “R”, k)

• ORRC has fewer Rs than ORRRRRC– InsertCost(“ORRWWC”, “R”, 5) > InsertCost(“ORRWWC”, “R”, 3)

• Similarity function

)s,s(d1

1)s,s(Similarity

jiji

July 25, 2005

Maher Salah 50

Computing Canonical Groups

• Let– P = {p1, p2, .., pn} - Method sequences– P` = {q1, q2, .., pm} - Canonical set

• For each pi, compute its similarity to all elements of P`

• Place pi in the group gk, where – similarity(pi, qk) > similarity(pi, ql), ql P`, k ≠ l

• In case of a tie in max-similarity, place pi in all corresponding groups

July 25, 2005

Maher Salah 51

Observations/Limitations

• MS can get long and complex• MS may contain subsequences that may not be

traceable to source code• Overlapping groups At this stage, our approach cannot produce a

simplified set class usage scenarios.• Analyzing closely related classes can produce

simpler MS than if each class is analyzed individually. – Example: Socket, SocketInputStreams, and

SocketOutputSteam

July 25, 2005

Maher Salah 52

Socket class example

A <init> B setImpl C getInputStream D getOutputStream E getLocalAddress F getLocalPort G getPort H getInetAddress J close I postAccept K setSoTimeout L setSoLinger M setTcpNoDelay N getSoTimeout O connect P isClosed

AEHDEFGHNC(EFGH)2(NEFGH) (N(EFGH)2N(EFGH)2N(EFGH)2(NEFGH))2

((EFGHN)(EFGH)2(NEFGH))2

···· (W)3(RW)2R(WR(W)2RWR)4

R java.net.SocketInputStream.read() W java.net.SocketOutputStream.write()

Socket, SocketInputStreams, and SocketOutputSteam

July 25, 2005

Maher Salah 53

Evaluation

Case study

July 25, 2005

Maher Salah 54

Case study

• Systems

System Platform Size (KLOC) Mozilla: Web browser (v1.0.1) Win32/C,C++ 4,410 Jext: Text Editor (v3.2) Java 98 TechReport: Publication database Java/EJB 2.3

July 25, 2005

Maher Salah 55

Tool Architecture for the Analysis of Mozilla

Build & Profiling of Mozilla

Mozilla Source codeMozilla Executable

(mozilla.exe)

Compile with debug informationand instrument the code withfunction-entry hooks (/Gh)

Data collection module(PEnterHandler.dll)

Method-Entry & Exit Events

Build Phase Profiling Phase

JDBC CompliantDatabase

(SQL Server)

SQL(JDBC)

SMQL

Analysis/VisualizationSubsystemRepository Subsystem

Import(dbimport)

Trace Marker(TraceMarker.dll) On Exit Save data

Marked-traces,Threads,

and Symbols files

Feature graph Feature-implementation view Feature module-interaction view Feature-similarity view Module-interaction view Class-interaction view

SMQL Filters

Visualization(Presentation)

Function-Entry Hooks(penter.lib)

July 25, 2005

Maher Salah 56

Tool Architecture for the Analysis of Jext

Jext Text Editor

JDBC CompliantDatabase

(SQL Server)

SQL(JDBC)

SMQL

Analysis/VisualizationSubsystemRepository Subsystem

Trace Marker Feature-implementation view Feature-interaction view Feature-similarity view Class-interaction Thread-interaction view Class protocol view

SMQL Filters

Visualization(Presentation)

Profiling Jext(Using JvProf)

Runtime events(XML Format)

Import(dbimport)

July 25, 2005

Maher Salah 57

Tool Architecture for the Analysis of TechReport

JDBC CompliantDatabase

(SQL Server)

SQL(JDBC)

SMQL

Analysis/VisualizationSubsystemRepository Subsystem

Trace Marker

Feature-implementation view Feature-interaction view Feature-similarity view Remote-interaction view Class-interaction view Thread-interaction view

SMQL Filters

Visualization(Presentation)

Profiling EJB Server(Using JvProf)

Profiling TechReport(Using JvProf)

LogicalTimeServer

Runtime events(XML Format)

Runtime events(XML Format)

Import(dbimport)

Import(dbimport)

Logical-TimeDistributed Marked-Trace

Logical-TimeDistributed Marked-Trace

EJB Server

TechReport Client

July 25, 2005

Maher Salah 58

Case study

• Views

Mozilla Jext TechReport Object-interaction √ √ Class-interaction √ √ √ Module-interaction √ Feature-implementation √ √ √ Feature-interaction √ √ Feature-similarity √ √ √ Remote-Interaction √ Thread-Interaction √ Class-usage protocol √

July 25, 2005

Maher Salah 59

Example of a maintenance scenario

• Change request– Modify send-page feature of the Mozilla web-browser

• Developer task– Study the change request– Locate source code portions related to the send-page:

• Option-1– Study the source code and documentation

• Option-2– Instrument the application’s code

– Exercise the feature using a profiler

– Analyze execution trace(s)

July 25, 2005

Maher Salah 60

Type feature name “send-page”

Exercise send-page feature

Mark start of send-page trace

Mark end of send-page trace

Run/profile Mozilla

Load and analyze runtime data

Mozilla: Send-page feature

July 25, 2005

Maher Salah 61

Mozilla: Send-page feature

Module-interaction (Clustered)

July 25, 2005

Maher Salah 62

Simplifying views

• The user can exercise enough features to identify common modules/classes

• Common modules are the application’s infrastructure and are used by most features

• Eliminating common modules/classes will result in simpler and manageable views per feature

July 25, 2005

Maher Salah 63

Send-page feature

Common modules are filtered out

Clustered

July 25, 2005

Maher Salah 64

Mozilla: “Msgbsutil” cluster

Module-interaction

July 25, 2005

Maher Salah 65

Mozilla: MIME.DLL class-interaction

July 25, 2005

Maher Salah 66

Mozilla: Feature implementation view

July 25, 2005

Maher Salah 67

Mozilla: Similarity Matrix

pri

nt-

pag

e

op

en-u

rl

bo

ok

ma

rk-

ad

d

op

en-l

ink

sta

rtu

p

bo

ok

ma

rk-

op

en

sh

utd

ow

n

sen

d-p

age

save-page 69 57 48 57 57 61 44 61

print-page 100 56 48 59 51 65 44 52

open-url 100 42 77 50 76 43 56

bookmark-add 100 43 40 48 42 36

open-link 100 45 84 46 49

startup 100 50 39 57

bookmark-open 100 47 53

shutdown 100 44

send-page 100

With all modules/classes

pri

nt-

pag

e

op

en-u

rl

bo

ok

mar

k-a

dd

op

en-l

ink

star

tup

bo

ok

mar

k-o

pen

shu

tdo

wn

sen

d-p

age

save-page 67 45 12 53 50 57 17 22

print-page 100 35 15 45 48 49 16 16

open-url 100 10 63 37 77 17 29

bookmark-add 100 10 10 11 9 3

open-link 100 36 81 16 20

startup 100 39 13 20

bookmark-open 100 20 21

shutdown 100 17

send-page 100

Without common modules/classes

July 25, 2005

Maher Salah 68

Outline

• Motivation

• Software Comprehension

• Architecture of Software Comprehension Environment

• Software Views / Case StudyRelated Work

• Conclusions

July 25, 2005

Maher Salah 69

Related work

• Analysis of Multi-language applications– Web applications [Hassan02]– Integrated conceptual model [Kullback98]

• Analysis of distributed systems– BEE++ system [Bruegge93]– X-Ray system [Mendoca99]

• Analysis of program features – Concept analysis [Eisenbarth01]– Abstract system dependency graph [Chen00]

July 25, 2005

Maher Salah 70

Outline

Software ComprehensionArchitecture of Software Comprehension

EnvironmentSoftware views / Case StudyRelated WorkConclusions

July 25, 2005

Maher Salah 71

Conclusions

• Contributions– Development of a software comprehension

environment that supports• Feature-driven profiling and analysis• Distributed profiling• Multiple languages (C, C++, Java)• SMQL language for retrieving and analyzing data

– Software views• Feature-interaction, implementation and similarity• Remote-interaction• Thread-interaction• Class protocol view• Module-interaction• Class-interaction

July 25, 2005

Maher Salah 72

Conclusions

• Opportunities for future work– Views

• Visualization• New views

– Data collection• Scripting languages• Profiling of popular frameworks: COM+ and .NET

– Integration with common IDEs

July 25, 2005

Maher Salah 73

Publications

• Class-usage protocol– Salah M., Denton T., Mancoridis S., Shokoufandeh A., Vokolos F.,

Scenariographer: A Tool for Reverse Engineering Class Usage Scenarios from Method Invocation Sequences, IEEE ICSM, Budapest, Hungary, 2005.

• Analysis of large systems: Mozilla– Salah M., Mancoridis S., Antoniol G. and Di Penta M. , Employing Use-cases and

Dynamic Analysis to Comprehend Mozilla, IEEE ICSM, Budapest, Hungary, 2005.• Feature analysis – Feature-interaction view

– Salah M., Mancoridis S. A Hierarchy of Dynamic Software Views: from object-interactions to feature-interactions, IEEE ICSM, Chicago, Illinois, 2004.

• Architecture and analysis of distributed systems– Salah M., Mancoridis S., Toward an Environment for Comprehending Distributed

Component-Based Systems, IEEE WCRE, Victoria, British Columbia, Canada, November 2003.

• Profiling and dynamic analysis– Souder, T., Mancoridis, S., Salah, M., Form: A Framework for Creating Views of

Program Executions, IEEE ICSM, Florence, Italy, 2001.

Questions

http://serg.cs.drexel.edu/~msalah/sce/

Recommended