- This year SATToSE will feature 10 presentations, three keynotes, a tutorial, a hackathon, a field-trip to GRNET's data center and, last but not least, an Open Mic session.
- Speakers of work in progress papers, tool demos and paper summaries will have 20 minutes for presentation and 10 minutes for discussions.
Wednesday 04/07/18 |
|
---|---|
08:30 — 09:00 | Registration |
09:00 — 09:15 | Welcome |
09:15 — 10:30 | Invited keynote: Diomidis Spinellis, Unix Architecture Evolution: Milestones and Lessons Learned |
10:30 — 11:00 | Coffee break |
11:00 — 12:00 | Hackathon: Introduction |
12:00 — 13:00 | Session 1: Testing |
13:00 — 14:00 | Lunch break |
14:00 — 15:00 | Invited keynote: Vadim Zaytsev, The Secret Evolution of Bad Languages |
15:00 — 15:30 | Coffee break |
15:30 — 16:30 | Session 2: Mining Software Repositories |
17:00 — 20:00 | City Tour |
Thursday 05/07/18 |
|
09:15 — 10:30 | Invited keynote: Yannis Smaragdakis, Declarative Static Program Analysis: An Intelligent System over Programs |
10:30 — 11:00 | Coffee break |
11:00 — 12:00 | Session 3: Software Ecosystems |
12:00 — 13:00 | Session 4: Security |
13:00 — 14:00 | Lunch break |
14:00 — 17:00 | Field-trip to GRNET's Data Center and Super-computing Facility |
17:00 — 19:00 | Visit to the Acropolis |
19:00 — 22:00 | Conference dinner |
Friday 06/07/18 |
|
09:00 — 11:00 | Invited tutorial Panos Louridas, Python Bites Software Evolution |
11:00 — 11:30 | Coffee break |
11:30 — 12:30 | Session 5: Data & Model |
12:30 — 14:00 | Lunch break |
14:00 — 15:00 | Invited keynote Diomidis Spinellis, The Antikythera Mechanism: Hacking with Gears |
15:00 — 15:30 | Coffee break |
15:30 — 17:00 | Hackathon results, Open MIC, and Awards |
17:00 — 19:00 | Archeological Museum |
Saturday 07/07/18 |
|
07:00 — 19:00 | Day-trip to Aegina island |
Detailed Sessions and Talks
Wednesday
09:15 - 10:30
Keynote 1: Unix Architecture Evolution: Milestones and Lessons Learned
Diomidis Spinellis, Athens University of Economics and Business, Greece
Session Chair: Alexandre Bergel
The Unix operating system has had a profound influence on the development of open source software and associated communities. Many of today's systems trace their code or design to a 1970 unnamed operating system kernel, implemented in 2489 lines of PDP-7 assembly language. This evolved into the Unix operating system, whose direct descendants include today's BSD systems and intellectual heirs form the various GNU/Linux distributions.
How did the architecture of Unix evolve over the past half-century? Based on a GitHub repository recording the system's history from 1970 until today, a database recording the evolution of provided facilities, and the reconstruction of the Third and Fourth Edition Unix manuals, we will examine the most significant milestones of this development and the lessons we can learn. Many architectural features, such as layering, system calls, devices as files, an interpreter, and process management, were already visible in the 1970 version. Other ideas followed quickly: the tree directory structure, user-contributed code, I/O redirection, the shell as a user program, groups, pipes, and scripting. Later versions added domain-specific languages, environment variables, a documented file system hierarchy, software packages, virtual memory support, optimized screen handling, networking, storage pools, dynamic tracing, and a packet capture library. Based on a record of facilities documented over the years we will see areas in which evolution continues at an unchanged pace and areas where it appears stalled. We will also see how one measure of code complexity has followed a self-correcting path. Lessons we can derive from this amazing ride include the durability of early architectural features, the value of establishing conventions over the imposition of rigid mechanisms, the importance of additions made after the system's gestation, and the increasing difficulty of bringing about ground-breaking changes as Unix ages.
11:00 - 12:00
Hackathon: Introduction
By Michel Chaudron and Truong Ho-Quang, Chalmers and Gothenburg University, Sweden
What can you do with more than 15,000 UML diagrams collected from 5000 OSS projects? The hackathon is challenging you to use this dataset and answer some interesting research questions. You may find the detailed document about hackathon online.
You may find the hackathon presentation by Michel Chaudron online.
12:00 - 13:00
Session 1: Testing
Session Chair: Alexandre Bergel
Unit test generation using machine learning by Laurence Saes, Joop Snijder and Ana Oprescu. (Work in Progress)
Download the paper
Correctness Testing of Loop Optimizations in C and C++ Compilers by Remi van Veen, Marcel Beemster, Clemens Grelck
Download the paper
14:00 - 15:00
Keynote 2: The Secret Evolution of Bad Languages
Dr. Vadim Zaytsev
Session Chair: Gregorio Robles
People have not always known how to develop domain-specific languages. In fact, first examples of them date back all the way to the 1960s, almost half a century before disciplined software language engineering became a thing. Some of these languages - surprisingly many of them, actually - are still alive today in one form or another, and there are many companies that depend on them with their existence. These languages fall short on each of the aspects that make proper domain-specific languages shine, like notations appropriate for the domain or operating on a higher abstraction level. Their main claim to fame - improved development time - has slowly faded away as well, since an improvement with respect to the COBOL of the 1960s does not even guarantee any advantage against the modern COBOL, let alone properly designed software languages we have today, both in the general-purpose and domain-specific departments. These languages need to retire, but how?
In this lecture we will look very closely at some real "fourth generation programming languages" used either currently or until very recently by our customers, and consider several retirement strategies for them, those that work and those that do not work. The examples will be based on the projects Raincode Labs has been involved in the past and present.
15:30 - 16:30
Session 2: Mining Software Repositories
Session Chair: Tom Mens
On the Effect of Python Style Guide’s Line Length Limit: Does Code Become Less Readable? by Kevin Oliva-Muñoz and Gregorio Robles
Download the paper
Mining Productivity Influencing Factors — Explore and Visualise Software Repositories by Simon Schneider (Work in progress)
Thursday
09:15 - 10:30
Keynote 3: Declarative Static Program Analysis: An Intelligent System over Programs
Prof. Yannis Smaragdakis
Session Chair: Michel Chaudron
It's the dream of most every programmer: a smart system that "knows more about my code than I do". How do we go about building it? I will argue for the benefits of using logic-based declarative languages as a means to specify static program analysis algorithms. Every aspect of complex program behavior (e.g., regular language features, reflection, exceptions, code generation) is captured by separate logical rules that cooperate to produce a model of what the code does. The result is "holistic" analysis: although every sub-analysis has its own concerns, everything is connected. Concretely, the focus will be on the Doop framework for analysis of Java programs, and especially on its latest developments. Doop encodes multiple analysis algorithms for Java declaratively, using Datalog: a logic-based language for defining (recursive) relations. With an aggressive optimization methodology, Doop also achieves very high performance—often an order of magnitude faster than comparable frameworks.
11:00 - 12:00
Session 3: Software Ecosystems
Session Chair: Vadim Zaytsev
What does the community think about Pythonic code? by Jose Javier Merchante Picazo and Gregorio Robles
Perils of Identity Merging (work in progress) by Damien Legay, Eleni Constantinou, Tom Mens, Gregorio Robles and Jesús González-Barahona. (Work in progress)
12:00 - 13:00
Session 4: Security
Session Chair: Alexander Bergel
On the impact of security vulnerabilities in the npm package dependency network by Alexandre Decan, Eleni Constantinou and Tom Mens.
Download the paper
MHEye: A Hybrid Android Security Assessment Tool for Ordinary Users by Mohammadreza Hazhirpasand
14:00 - 17:00
Field-trip to GRNET's Data Center and Super-computing Facility
GRNET (Greek Research and Technology Network) has a data center and super-computing facility in Athens. The HPC (High Performance Computing) Infrastructure, known as ARIS, has been ranked among the 500 most powerful computers in the world. We will visit the facility during this field-trip.
Don't forget to bring your hat and sunglasses.
Friday
09:00 - 11:00
Tutorial: Python Bites Software Evolution
Prof. Panos Louridas
Session Chair: Tom Mens
To study the evolution of software, we need to study data of various forms; extract them, transform them, analyse them, visualise them. Python comes to the rescue with a rich trove of tools and libraries that we can use, covering from data processing and presentation, to querying and advanced machine learning. This allows to carry out our tasks using a single language, instead of jumping through different hoops for different tasks. Moreover, the available tools offer very high-performance implementations of best of breed algorithms, typically written in C, but wrapped in Python so that we do not have to sacrifice convenience for speed. We will walk through these tools, gently introducing them yet without shying away from showing how we can use them to investigate software engineering data.
11:30 - 12:30
Session 5: Data & Model
Session Chair: Diomidis Spinellis
Software Analysis using Natural Language Queries by Pooja Rani
Towards Executable Domain Models by Nitish Patkar
14:00 - 15:00
'A pinch of history' talk: The Antikythera Mechanism: Hacking with Gears
Prof. Diomidis Spinellis
The Mechanism of Antikythera is an astronomical calculator dated in the first century B.C. Its currently agreed-on model consists of 35 gears. Its back face contains four dials tracing a luni-solar calendar and an eclipse prediction table. A number of interlocked gears calculate the ratios required for moving the four dials. The front face shows Sun's and Moon's position in the zodiac. The elliptical anomaly of the Moon is calculated by advancing one gear eccentrically through another, and by mounting that assembly on a gear rotating by the Moon’s long axis precession period. The mechanism’s design eerily foreshadows a number of modern computing concepts from the fields of digital design, programming, and software engineering.
The talk will briefly go over the mechanism's provenance and the modern history of its study, focusing on recent findings that an international cross-disciplinary team of scientists obtained through surface imaging and high-resolution X-ray tomography. The talk will offer a detailed explanation of the mechanism's operation by presenting a Squeak EToys-based emulator that is built and operates entirely on mechanical principles.
Saturday
Aegina is one of the Saronic Islands of Greece in the Saronic Gulf, 27 kilometers from Athens. We recommend you to come with hat, sunglasses, sunscreen, and swimming suit.