classification of languages interactions

23
Technische Universität München Languages interaction classification Joint work with Federico Tomassetti, Marco Torchiano Politecnico di Torino, Italy Antonio Vetro’ Technische Universität München Germany ESEM 2013 Baltimore, MD, USA 11 October 2013 @phisaz

Upload: antonio-vetro

Post on 06-May-2015

270 views

Category:

Technology


0 download

DESCRIPTION

Context: the presence of several languages interacting each other within the same project is an almost universal feature in software development. Earlier work shows that this interaction might be source of problems. Goal: we aim at identifying and characterizing the crosslanguage interactions at semantic level. Method: we took the commits of an open source project and analyzed the cross-language pairs of files occurring in the same commit to identify possible semantic interactions. We both defined a taxonomy and applied it. Result: we identify 6 categories of semantic interactions. The most common category is the one based on shared ids, the next is when an artifact provides a description of another artifact. Conclusions: the deeper knowledge of cross-language interactions represents the basis for implementing a tool supporting the management of this kind of interactions and the detection of related problems at compile time.

TRANSCRIPT

Page 1: Classification of languages interactions

Technische Universität München

Languages interaction classification

Joint work withFederico Tomassetti, Marco TorchianoPolitecnico di Torino, Italy

Antonio Vetro’Technische Universität

MünchenGermany

ESEM 2013 Baltimore, MD, USA 11 October 2013

@phisaz

Page 2: Classification of languages interactions

Technische Universität München

ESEM 2012

MISE 2013

ESEM 2013

A proposal to handle languages integration

Can language interaction be source of problems ?

What type of language interactions we need to detect ?

Page 3: Classification of languages interactions

Technische Universität München

Problem

Page 4: Classification of languages interactions

Technische Universität München

Problem

Page 5: Classification of languages interactions

Technische Universität München

Problem

Page 6: Classification of languages interactions

Technische Universität München

Language A (.extA)

Language B (.extB)

Cross-Language Commit (CLC)

Intra-Language Commit (ILC)

Commit types

Page 7: Classification of languages interactions

Technische Universität München

Cross-Language Fix Commit

1. Screening

2. Selection

Page 8: Classification of languages interactions

Technische Universität München

Page 9: Classification of languages interactions

Technische Universität München

3. Manual verification

Page 10: Classification of languages interactions

Technische Universität München

4. Semantic interaction manual confirmation and classification

Page 11: Classification of languages interactions

Technische Universität München

Classification

Page 12: Classification of languages interactions

Technische Universität München

Share ID

src/java/core-default.xml

src/java/or/apache/hadoop/fs/s3/S3FileSystem.java

The same ID is used among the artifacts involved in the interaction.

Commit 1058343

Page 13: Classification of languages interactions

Technische Universität München

Shared dataA piece of data have to hold exactly the same value among the different artifacts involved.

ivy/hadoop-common-template.xml

ivy/libraries.properties

Commit 1134857

Page 14: Classification of languages interactions

Technische Universität München

Data loading

src/test/test-fake-default

src/test/core/org/apache/hadoop/conf/Test/ConfigurationDeprecation.java

A data from one of the file involved is loaded by the code in another file involved.

Commit 1126719

Page 15: Classification of languages interactions

Technische Universität München

Generation

Commit 1190035

src/main/packages/hadoop-setup-conf.sh

One or more files are completely or partially generated by the execution of one file. Also the modification of part of a file is accepted.

.../mapred-site.xml

Page 16: Classification of languages interactions

Technische Universität München

Description

Commit 998001

One of the file involved contained a description of the content of another file (a part or the whole file).

src/docs/src/documentation/content/xdocs/cluster_setup.xml

src/java/org/apache/hadoop/security/authorize/AccessControlList.java

Page 17: Classification of languages interactions

Technische Universität München

Execution

Commit 1195817

One file executes the code contained in another file

pom.xml

src/java/org/apache/hadoop/classification/tools/IncludePublicAnnotationsStandardDoclet.java

Page 18: Classification of languages interactions

Technische Universität München

Classification

Shared ID

Shared data

Data loading

Generation

Description

Execution

Page 19: Classification of languages interactions

Technische Universität München

Page 20: Classification of languages interactions

Technische Universität München

Page 21: Classification of languages interactions

Technische Universität München

ESEM 2012

MISE 2013

ESEM 2013

A proposal to handle languages integration

Can language interaction be source of problems ?

What type of language interaction we need to detect ?

Automatic interaction detection

Tool support for developers

Page 22: Classification of languages interactions

Technische Universität München

Languages interaction classification

Joint work withFederico Tomassetti, Marco TorchianoPolitecnico di Torino, Italy

Antonio Vetro’Technische Universität

MünchenGermany

ESEM 2013 Baltimore, MD, USA 11 October 2013

@phisaz

Questions?

Page 23: Classification of languages interactions

Technische Universität München

Thank you