Information about attending a tutorial
- To attend a tutorial, please register using the following link: Registration to tutorials
- On the registration page, please refer to the tutorial nickname.
Here are the ASE ’23 tutorials and a brief description of each:
Powerful graph solver algorithm for the generation and analysis of consistent models.

Nickname: Refinery
Authors: Oszkár Semeráth*, Kristóf Marussy* and Dániel Varró**
Institutions: *Budapest University of Technology and **Economics and **Linköping University
Duration: 1.5 hour
Abstract: Graph-based models are widely used in software and system engineering. Consequently, several testing, benchmarking, and optimization problem relies on the systematic construction of consistent graph models. However, automatically generating a diverse set of consistent graph models for industrial domains is challenging. First, engineers must specify the graph generation problem with mathematical precision, requiring specialized tools. Second, graph generation is a computationally complex task requiring specialized logic solvers. The Refinery framework is a novel open-source software tool automatically synthesizes consistent and diverse domain-specific graph models. The framework offers an expressive high-level language using partial models to succinctly formulate a wide range of graph generation challenges. Application scenarios include system-level architecture synthesis, test generation for modeling tools or traffic scenario synthesis for autonomous vehicles. The framework uses a scalable graph solver algorithm that uses logic reasoning rules to efficiently synthesize a diverse set of solutions to graph generation problems by combining partial model refinement with logic reasoning. In our tutorial, we present our graph generation tool to the software engineering community and show how to automate various problems with automated graph generation.
Social, Legal, Ethical, Empathetic and Cultural Requirements: from Elicitation to Verification

Nickname: Requirements
Authors: Sinem Getir Yaman*, Ana Cavalcanti*, Radu Calinescu*, Beverly Townsend**
Institutions: *Department of Computer Science and **Law School, University of York, UK
Duration: 3 hours
Abstract: A new class of requirements is of growing importance for many software systems. In applications ranging from assistive care to emergency management, software systems perform operations and make decisions that must comply with the social, legal, ethical, empathetic and cultural (SLEEC) norms of their users. For example, the control software of an assistive-care robot must consider its users' well-being, privacy and autonomy needs. As another example, a software personal assistant must exhibit cultural sensitivity when addressing its users, and must seek user consent prior to sharing certain types of personal information. In this tutorial, we will present a tool-supported methodology for the elicitation, formalisation, consistency validation, and verification of these SLEEC requirements, using interactive exercises to demonstrate its application to software systems from domains such as assistive care and emergency management.
Collaborative Analysis and Verification of C Programs with Frama-C

Nickname: Frama-C
Authors: Frédéric Loulergue
Institution: University of Orléans, France
Duration: half-day
Abstract: While ensuring the correctness of an implementation based on a formal functional specification provides the strongest guarantee, it can be prohibitively expensive to achieve. In practice, a combination of formal methods is commonly employed to attain an appropriate level of assurance. This includes static analyses to ensure the absence of runtime errors, deductive verification for functional correctness, and dynamic verification for components that cannot be proven through deductive verification. Frama-C is a source code analysis platform designed for the verification of large-scale programs written in ISO C source code. It offers comprehensive support for the integration of formal methods, offering users a set of plug-ins that facilitate static and dynamic analysis of safety-critical and security-critical software. Furthermore, the collaborative verification capabilities are achieved through the integration of these plug-ins on a shared kernel and their adherence to a standardized specification language known as ACSL (ANSI/ISO C Specification Language). This tutorial is an introduction, including hands-on sessions, to the analysis and verification of C programs using Frama-C. The main plug-ins of Frama-C are presented, as well as their combination in a verification project. We illustrate these plug-ins on several examples taken from Contiki, a lightweight operating system for the Internet of Things.
AI for SE

Nickname: AI for SE
Authors: Mohamad Khajezade, Iman Saberi, Fatemeh H. Fard
Institution: University of British Columbia
Duration: 3 hours
Abstract: Recently, many efforts have been made in the Software Engineering community to use language models (LM) such as CodeBERT or large language models (LLM) such as GPT3 to automate and improve the performance of SE tasks. Though fine-tuning the language models or providing a prompt to an LLM is a common way of using these models, the learned knowledge of these models can be transferred to a new language, task, or domain using other techniques such as few-shot learning and adapters. In this tutorial, we aim first to provide background knowledge about what language models are and how they work. Then, we will dive into different classes of few-shot learning and how they can be applied in the context of source code to the LMs when the training data samples are limited to only a few records. Finally, we will cover the theories required to use adapters and provide technical details about how they can transfer knowledge from other tasks and domains to new tasks and domains without fully fine-tuning or pre-training the models from scratch. The tutorial covers these concepts’ theories and practical aspects by providing interactive code on Google Colab. This tutorial provides the required background to use language models for knowledge transfer and better performance for low-resource languages.
Dynamically Analyzing Python Programs with DynaPyt

Nickname: DynaPyt
Authors: Aryaz Eghbali, Michael Pradel
Institution:
Duration: 3 hours (half day)
Abstract: Python is a popular language with applications covering a variety of domains, such as web applications, automation scripts, and especially machine learning and data analysis. Program analysis techniques provide the means to validate correctness, analyze performance, and check security properties. With Python being a dynamic language, performing program analysis at runtime is an obvious choice, as it allows for precisely observing the actual runtime behavior. However, implementing dynamic analyses with traditional approaches requires significant engineering effort. DynaPyt allows for implementing analyses with minimal effort, and provides the ability to not only observe but to also modify executions. For example, DynaPyt can be used to implement a dynamic taint analysis, for runtime verification of API protocols, to build a dynamic call graph, or to detect possibly incorrect program behavior. This tutorial will provide a hands-on introduction into dynamically analyzing Python programs with DynaPyt. We will guide participants through setting up the tool and implementing several program analyses. After the tutorial, participants will be able to build on DynaPyt for their own future research and tool development.
An Introduction to Quantum Software Engineering

Nickname: QuantumSE
Authors: Jianjun Zhao
Institution: Kyushu University
Duration: 1.5 hour
Abstract: Quantum computing has emerged as a disruptive technology with the potential to revolutionize various industries. However, because quantum software is different in nature from classical software, developing software for quantum computers requires a paradigm shift in traditional software engineering approaches. This tutorial addresses the challenges and opportunities in quantum software engineering and explores state-of-the-art methods and techniques. Participants will gain insights into developing reliable and robust quantum software systems, taking into account the unique characteristics of quantum systems. The tutorial fosters collaboration between researchers and practitioners, providing a platform to exchange ideas and experiences in quantum software engineering.
Language-Based Testing

Nickname: Zeller
Authors: Andreas Zeller
Institutions: CISPA
Duration: 1.5 hour
Abstract: Common fuzzing techniques work by systematically mutating a set of given inputs, slowly covering more and more of the program code. But if your program has a complex input format, most of these mutations will be invalid, resulting in very few inputs reaching code beyond input processing. In this tutorial, we will explore techniques to generate input languages using grammars, generators, and constraint solvers and leverage these language specifications to create powerful test generators for complex input formats. On top, we can even use these language specifications to check outputs, addressing the oracle problem. Includes interactive coding!
Recommended reads fuzzingbook.org, notably the chapters “Fuzzing with Grammars”, “Fuzzing with Generators”, and “Fuzzing with Constraints”
Mon 11 SepDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
08:30 - 10:00 | |||
08:30 90mTalk | AI for SE: Neural Language Models, Few-Shot Learning, and Adapters for Source Code Tutorials Mohamad Khajezade , Iman Saberi University of British Columbia Okanagan, Fatemeh Hendijani Fard University of British Columbia |
10:30 - 12:00 | |||
10:30 90mTalk | Language-Based Testing Tutorials Andreas Zeller CISPA Helmholtz Center for Information Security |
10:30 - 12:00 | |||
10:30 90mTalk | AI for SE: Neural Language Models, Few-Shot Learning, and Adapters for Source Code Tutorials Mohamad Khajezade , Iman Saberi University of British Columbia Okanagan, Fatemeh Hendijani Fard University of British Columbia |
13:30 - 15:00 | |||
13:30 90mTalk | Dynamically Analyzing Python Programs with DynaPyt Tutorials |
13:30 - 15:00 | |||
13:30 90mTalk | An Introduction to Quantum Software Engineering Tutorials Jianjun Zhao Kyushu University |
15:30 - 17:00 | |||
15:30 90mTalk | Dynamically Analyzing Python Programs with DynaPyt Tutorials |
Fri 15 SepDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
08:30 - 10:00 | |||
08:30 90mTalk | Social, Legal, Ethical, Empathetic and Cultural Requirements: from Elicitation to Verification Tutorials Sinem Getir Yaman University of York, UK, Ana Cavalcanti University of York, Radu Calinescu University of York, UK, Beverley Townsend University of York File Attached |
08:30 - 10:00 | |||
08:30 90mTalk | Refinery: Model Generation with Refinement Tutorials Oszkár Semeráth Budapest University of Technology and Economics, Kristóf Marussy Budapest University of Technology and Economics, Daniel Varro Linköping University / McGill University |
10:30 - 12:00 | |||
10:30 90mTalk | Social, Legal, Ethical, Empathetic and Cultural Requirements: from Elicitation to Verification Tutorials Sinem Getir Yaman University of York, UK, Ana Cavalcanti University of York, Radu Calinescu University of York, UK, Beverley Townsend University of York File Attached |
13:30 - 15:00 | |||
13:30 90mTutorial | Collaborative Analysis and Verification of C Programs with Frama-C Tutorials Frederic Loulergue Université d'Orléans |
15:30 - 17:00 | |||
15:30 90mTutorial | Collaborative Analysis and Verification of C Programs with Frama-C Tutorials Frederic Loulergue Université d'Orléans |
Tutorials
Call for Proposals
Tutorials address a wide range of mature topics from theoretical foundations to practical techniques and tools for automated software engineering. The general chair and organizers will decide the exact dates after all proposals have been reviewed and accepted. Tutorials are intended to provide scientific background on themes relevant to ASE’s research audience.
Instructors are invited to submit proposals for 1.5h, half-day (3h) and full-day (6h) tutorials and, upon selection, are required to provide tutorial notes on the topic of presentation in PDF. Tutorial proposals are limited to 2 pages.
Submission
Proposal submissions should include the following information:
- Name and affiliation of the proposer/organizer (including e-mail address)
- Name and affiliation of each additional instructor
- Instructors’ experience in the area, including other tutorials, courses, etc.
- Title, objective, abstract, and duration
- Outline with approximate timings
- Target audience, including the indication of level (novice, intermediate, expert)
- Assumed background of attendees
- Brief biography of each instructor (for later inclusion in publicity materials)
- History of the tutorial (if it has been already presented; provide location, approximate attendance, etc.)
- Audio-visual and technical requirements
- Preferences for tutorial date, duration (1.5h, half-day or full-day), and any other scheduling constraints, with justification for full day (if a full day is proposed)
Proposals are due by June 2nd, 2023 and should be submitted at https://ase2023tutorials.hotcrp.com/.
All submissions must be in PDF format and conform, at time of submission, to the IEEE Conference Proceedings Formatting Guidelines (title in 24pt font and full text in 10pt type, LaTeX users must use \documentclass[10pt,conference]{IEEEtran}
without including the compsoc
or compsocconf
option).
Tutorial proposals will be reviewed by the ASE 2022 tutorial committee. Acceptance will be based on the timeliness and expected interest in the topic and the potential for attracting a sufficient number of participants. Note that tutorials with too few registered attendees may be cancelled.
Accepted Papers
After acceptance, the list of paper authors can not be changed under any circumstances and the list of authors on camera-ready papers must be identical to those on submitted papers. After acceptance paper titles can not be changed except by permission of the Track Chairs, and only then when referees recommended a change for clarity or accuracy with paper content.
Important dates
- Deadline: June 2th
- Proposal Notification: June 23th
- Advertisement Material: July 7th
- Final Notification: 1 August