Research

Tools

WorldDynamics.jl

The World Dynamics project aims to provide a modern framework to investigate integrated assessment models of sustainable development, based on current software engineering and scientific machine learning techniques. Our group is developing a Julia library to allow scientists to easily use and adapt different world models, from Meadows et al.'s World3 to recent proposals. By enabling an open, interdisciplinary, and consistent comparative approach to scientific model development, our goal is to inform global policy makers on environmental and economic issues.

Full description and tools available at: https://github.com/worlddynamics/WorldDynamics.jl


Lazy-CSeq

Lazy-CSeq is a context-bounded verification tool (developed within the CSeq framework) for sequentially consistent C programs using POSIX threads. It handles an extensive fragment of the C language and the main parts of the POSIX thread API, such as dynamic thread creation and deletion, and synchronization via thread join, locks, and condition variables. It supports assertion checking and deadlock detection, and returns counterexamples in case of errors. Lazy-CSeq has won several times the concurrency category of SV-COMP.

Full description and tools available at: https://github.com/omainv/cseq/releases


ChorGram

ChorGram is a tool chain to support choreographic development of message-oriented applications. The tool kit started originally to support the experimental work related to the theory introduced in From Communicating Machines to Graphical Choreographies (J. Lange, E. Tuosto, and N. Yoshida, POPL 2015). New features have been added since the initial prototype; in particular, the chain now supports the semantics of choregraphies defined in An abstract semantics of the global view of choreographies (R. Guanciale and E. Tuosto, ICE 2016) and its journal version Semantics of global view of choreographies (J. Log. Algebr. Meth. Program. 95: 17-40, 2018; available here), as well as the monitor-based reversibility introduced in Reversible Choreographies via Monitoring in Erlang (A. Francalanza, C. A. Mezzina, and E. Tuosto, DAIS 2018). A tutorial is also in Chapter 6 of Behavioural Types: from Theory to Tools, a book published by River Publishers.

Full description and tools available at: https://bitbucket.org/eMgssi/stable_chorgram/wiki/Home

Edelta

Tool based on a DSL for specifying reusable libraries of metamodel refactorings. Edelta is implemented with Xtext and Xbase, thus is provides a fully-fledge Eclipse editor with syntax highlighting, code completion, error reporting and incremental building, not to mention debugging. Thanks to Xbase, it is completely interoperable with Java and its type system, allowing the developer to access any existing Java libraries. Edelta allows the developer to have an immediate view of the evolving metamodel before actually changing it, since it interprets the refactoring specifications on the fly, while the developer is typing in the editor.

[Reference paper]

Further details and download at https://github.com/LorenzoBettini/edelta

PADprof

Tool that detects software performance antipatterns from load testing and profiling data. It takes as input the profiler results provided by YourKit that show features to profile CPU, memory, and threads. It provides as output a report including, for each detected antipattern, statistics on the antipattern detection analysis and the involved suspicious methods.

[Reference paper]

Further details and download at https://github.com/diagnoseIT/padprof

Performance Antipatterns aNd FeeDback in software Architectures

Tool for addressing the results interpretation and the feedback generation problems by means of performance antipatterns, that are recurring solutions to common mistakes (i.e. bad practices) in the software development.

[Reference paper]

Further details and download at https://github.com/catiatrubiani/panda-aemilia

SoEfTraceAnalyzer

Tool that automates the traceability between software architectural models and extra-functional analysis results by investigating the uncertainty while bridging these two domains. It makes use of patterns and antipatterns to deduce the logical consequences between the architectural elements and analysis results and automatically build a graph of traces to identify the system criticisms.

[Reference paper]

Further details and download at http://isse.jku.at/tools/TraZer/SoEfTraceAnalyzer.zip

Chaining of SR-aware and SR-unaware Service Functions

Segment Routing (SR) is a source routing paradigm that can benefit from both MPLS and IPv6 data planes to steer traffic through a set of nodes. It provides a simple and scalable way to support Service Function Chaining (SFC). In this demo, we propose an NFV architecture based on SR and implemented in Linux environment. It allows chaining of both SR-aware and SR-unaware Service Functions (SFs). In order to include SR-unaware SFs into SR SFC, we use our SR proxy implementation: srext, a Linux kernel module that handles the processing of SR information in behalf of the SR-unaware SFs. As SR-aware SFs, we use two of our implementation; SERA and SR-aware snort. SERA is a SEgment Routing Aware Firewall, which extends the Linux iptables firewall, and capable of applying the iptables rules to the inner packet of SR encapsulated traffic. SR-aware snort is an extended version of snort that can apply snort rules directly to inner packet of SR encapsulated traffic. We show the interoperability between SR-aware and SR-unaware SFs by including both of them within the same SFC.

Full description and tools available at: https://github.com/SRouting/SR-sfc-demo