SATToSE is the Seminar Series on Advanced Techniques & Tools for Software Evolution. Its 11th edition takes place in Athens (Greece) on 4–6 July 2018. Past editions of SATToSE saw presentations on software visualisation techniques, tools for co-evolving various software artefacts, their consistency management, runtime adaptability and context-awareness, as well as empirical results about software evolution.
The goal of SATToSE is to gather both undergraduate and graduate students to showcase their research, exchange ideas, improve their communication skills, attend and contribute technology showdown and hackathons.
Important Dates
Submission deadline: |
April 17, 2018 |
Notification of acceptance: |
May 9, 2018 |
Registration deadline: |
June 15, 2018 |
Camera-ready deadline |
June 15, 2018 |
Seminar: |
July 4 - 6, 2018 |
Keynotes and Tutorial
- July 4, 2018:
Unix Architecture Evolution: Milestones and Lessons Learned
by Prof. Diomidis Spinellis
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.
- July 4, 2018:
The Secret Evolution of Bad Languages
by Dr. Vadim Zaytsev
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.
- July 5, 2018:
Declarative Static Program Analysis: An Intelligent System over Programs
by Prof. Yannis Smaragdakis
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.
- July 6, 2018:
Python Bites Software Evolution
by Prof. Panos Louridas
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.
- July 6, 2018:
The Antikythera Mechanism: Hacking with Gears
by 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.
Hackathon
by Prof. Michel Chaudron and Truong Ho-Quang
Submission
Contributions are managed through EasyChair. Please submit your paper using the following link:
https://easychair.org/conferences/?conf=sattose2018
See CfP specific page for details (including format).
Scholarships
We have some budget to cover registration fee of visiting students who lack funding. We expect to award 2–3 such scholarships.
To apply for it, please send an email to Tushar Sharma (gro.eeei|amrahsrahsut#gro.eeei|amrahsrahsut) and Vasiliki Efstathiou (rg.beua|uoihtatsfev#rg.beua|uoihtatsfev) containing the following information before May 30, 2018.
- Name
- University
- Program/Degree
- Supervisor's name
- Research interests
- Title of paper (if there is any) accepted at SATToSE 2018
- Expectations from the seminar
Venue
SATToSE 2018 will be held in the beautiful and historic Athens, Greece. It will be organized in the "Ioannis Drakopoulos" Amphitheatre (Address: Panepistimiou 30, Athens) which is situated in the center of the Athens city. The venue is very near to the metro station "Panepistimiou" on the red line.
Here is a comprehensive travel guide for Athens - Taksidiotis - Athens Travel Guide by the Greeks compiled by crowdsourcing the knowledge of 34 software engineering students thought Git and GitHub. Also, some practical Information for Athens visitors.
If you want to escape from the technical things, you may choose to go to a wide variety of extra-curricular events (dance, music, theatre, etc.) organized by Athens and Epidaurus Festival.
Social Events
- July 4, evening: A walking tour in the city center of Athens
- July 5, evening: Visit to the Acropolis + conference dinner
- July 6, evening: Visit to the archeological museum where the Antikythera mechanism is hosted
- July 7: A day-trip to Aegina island; bring your swim-suit with you:-)
Organisation
Organized by
Department of Management Science and Technology, Athens University of Economics and Business, Athens, Greece and University of Athens, Athens, Greece.