Event: 31st IEEE/ACM International Conference on Automated Software Engineering (ASE 2016)
Date: 4 September 2016

Event: 31st IEEE/ACM International Conference on Automated Software Engineering (ASE 2016)
Date: 4 September 2016
Artifacts containing natural language, like Q&A websites (e.g., Stack Overflow), tutorials, and development emails, are essential to support software development. They have become a popular subject for software engineering research. The analysis of such artifacts is particularly challenging because of their heterogeneity: These resources consist of natural language interleaved with fragments of multiple programming and markup languages. Our tutorial is aimed at overcoming the challenge, by first discussing the state of the art of methodologies to analyze unstructured data, and their current limitations and challenges. Then, it focuses on our efforts towards a systematic approach to model contents of such artifacts. This in turn enables novel holistic analyses that fully exploit their intrinsic heterogeneous nature. We describe the theoretical foundations of our StORMeD framework, how it can be used to extract a full-fledged model of a development artifacts, and how it can be leveraged to construct various types of analyses, such as summarization.
Our tutorial targets academics that consider heterogeneous development artifacts as their target subject for any kind of study. In particular, any analysis that would benefit from a holistic approach - i.e., an approach that considers the intrinsic heterogeneous nature of the artifacts - can potentially benefit from our approach. Thus, we believe that researchers in the mining software repositories community, the program comprehension community, and in general software maintenance and evolution, constitute the best match as a target audience for this tutorial.
We expect the audience to possess basic knowledge about parsing and grammars. We plan to use the Scala programming language for the tutorial, but without using any advanced feature: We expect the audience to be experienced about object-oriented programming and basic functional programming, like lambda expressions and simple higher-order functions (e.g., map, reduce).