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.
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.
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.
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.
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