SCG News

Parsing Ruby with an Island Parser

Rathesan Iyadurai. Parsing Ruby with an Island Parser. Bachelor’s thesis, University of Bern, April 2016. Details.

Abstract

Ruby is a challenging language to parse because of a large and ambiguous grammar that is not only scarcely documented but subject to change on minor releases. Therefore, third-party Ruby parsers for software analysis tools either translate the standard implementation’s parser code rule for rule or deal with compatibility issues. In this thesis we propose an alternative approach by using the island grammar methodology. Island grammars only extract the structures of interest (islands) with precise rules while skipping over the rest (water). This makes them fitting for quick and robust data extraction for software development tools. We present a parsing expression grammar based island grammar for Ruby that is able to extract classes, modules and methods. As verification we measure precision, recall and error rate of our parser’s output to one generated by the jRuby parser.

Posted by scg at 18 April 2016, 3:13 pm comment link

The Death of Object-Oriented Programming

Oscar Nierstrasz. The Death of Object-Oriented Programming. In Perdita Stevens and Andrzej Wasowski (Ed.), FASE 2016, LNCS 9633, Springer-Verlag, 2016. Details.

Abstract

Modern software systems are increasingly long-lived. In order to gracefully evolve these systems as they address new requirements, developers need to navigate effectively between domain concepts and the code that addresses those domains. One of the original promises of object-orientation was that the same object-oriented models would be used throughout requirements analysis, design and implementation. Software systems today however are commonly constructed from a heterogeneous “language soup of mainstream code and dedicated DSLs addressing a variety of application and technical domains. Has object-oriented programming outlived its purpose? In this essay we argue that we need to rethink the original goals of object-orientation and their relevance for modern software development. We propose as a driving maxim, “Programming is Modeling, and explore what this implies for programming languages, tools and environments. In particular, we argue that: (1) source code should serve not only to specify an implementation of a software system, but should encode a queryable and manipulable model of the application and technical domains concerned; (2) IDEs should exploit these domain models to enable inexpensive browsing, querying and analysis by developers; and (3) barriers between the code base, the running application, and the software ecosystem at large need to be broken down, and their connections exploited and monitored to support developers in comprehension and evolution tasks.

Posted by scg at 21 March 2016, 2:46 pm comment link

A Unified Approach to Architecture Conformance Checking

Andrea Caracciolo. A Unified Approach to Architecture Conformance Checking. PhD thesis, University of Bern, March 2016. Details.

Abstract

Architectural decisions can be interpreted as structural and behavioral constraints that must be enforced in order to guarantee overarching qualities in a system. Enforcing those constraints in a fully automated way is often challenging and not well supported by current tools. Current approaches for checking architecture conformance either lack in usability or offer poor options for adaptation. To overcome this problem we analyze the current state of practice and propose an approach based on an extensible, declarative and empirically-grounded specification language. This solution aims at reducing the overall cost of setting up and maintaining an architectural conformance monitoring environment by decoupling the conceptual representation of a user-defined rule from its technical specification prescribed by the underlying analysis tools. By using a declarative language, we are able to write tool-agnostic rules that are simple enough to be understood by untrained stakeholders and, at the same time, can be can be automatically processed by a conformance checking validator. Besides addressing the issue of cost, we also investigate opportunities for increasing the value of conformance results by evaluating a technique which guides developers in removing package cycles. We perform various case studies to show how our approach can be successfully adopted to support truly diverse industrial projects. We also investi- gate the dynamics involved in choosing and adopting a new automated conformance checking solution within an industrial context.

Posted by scg at 20 March 2016, 8:15 pm comment link

TestView Plugin — A Nautilus Plugin to facilitate Unit Testing

Dominic Sina. TestView Plugin — A Nautilus Plugin to facilitate Unit Testing. Bachelor’s thesis, University of Bern, February 2016. Details.

Abstract

The purpose of this bachelor project is to improve the Pharo environment by making it more unit test friendly. Instead of writing a new system browser we chose to realize this as a Nautilus plugin since this builds on established parts of the Pharo environment. This plugin includes various functionalities that help with finding and writing unit tests. Furthermore it provides ways to check if a method is untested, to see all tests that have been written for a certain method, to add new tests for existing methods and the ability to view a method and a corresponding test side by side. Before explaining the plugin and its functionalities in more detail we will take a look at various terms surrounding unit testing and analyze the development environments Eclipse and Pharo. They will be compared to each other in how unit test friendly they are. We also discuss opportunities for improvement. The aim of this thesis is to take a closer look at unit testing and in the form of a Nautilus plugin provide an example of how unit testing can be facilitated.

Posted by scg at 16 February 2016, 5:15 pm comment link

A Unified Approach to Architecture Conformance Checking

Andrea Caracciolo. A Unified Approach to Architecture Conformance Checking. PhD thesis, University of Bern, March 2016. Details.

Abstract

Architectural decisions can be interpreted as structural and behavioral constraints that must be enforced in order to guarantee overarching qualities in a system. Enforcing those constraints in a fully automated way is often challenging and not well supported by current tools. Current approaches for checking architecture conformance either lack in usability or offer poor options for adaptation. To overcome this problem we analyze the current state of practice and propose an approach based on an extensible, declarative and empirically-grounded specification language. This solution aims at reducing the overall cost of setting up and maintaining an architectural conformance monitoring environment by decoupling the conceptual representation of a user-defined rule from its technical specification prescribed by the underlying analysis tools. By using a declarative language, we are able to write tool-agnostic rules that are simple enough to be understood by untrained stakeholders and, at the same time, can be can be automatically processed by a conformance checking validator. Besides addressing the issue of cost, we also investigate opportunities for increasing the value of conformance results by evaluating a technique which guides developers in removing package cycles. We perform various case studies to show how our approach can be successfully adopted to support truly diverse industrial projects. We also investi- gate the dynamics involved in choosing and adopting a new automated conformance checking solution within an industrial context.

Posted by scg at 22 January 2016, 4:04 pm comment link
<< 1 2 3 4 5 6 7 8 9 10 >>
Last changed by admin on 21 April 2009