Ramy Shahin

dblp:132/2259 · DBLP profile ↗
← Back
11ranked-venue papers
8as first author
8since 2021 · last 2026
0000-0001-8724-3934ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 10 · 7 first-author · 7 since 2021Security and privacy · 1 · 1 first-author · 1 since 2021
YearPublicationVenuePosition
2026 A Shallow Embedding of Datalog in Lean
abstract
Datalog is a lightweight logic programming language, based on the logic of Horn clauses. Lean, on the other hand, is a proof assistant system and language based on the Calculus of Inductive Constructions (CIC). Datalog is more constrained and less expressive than Lean but has a long history of established deduction algorithms. Writing definitions and queries in the Datalog fragment of Lean would be more succinct and understandable than writing them in Lean itself.
Ramy Shahin
SLE1
2023 Applying declarative analysis to industrial automotive software product line models
Ramy Shahin, Rafael F. Toledo, Robert Hackman, S. Ramesh 0002, Joanne M. Atlee, Marsha Chechik
Empir. Softw. Eng.1
2023 The ForeMoSt approach to building valid model-based safety arguments
Torin Viger, Logan Murphy, Alessio Di Sandro, Claudio Menghi, Ramy Shahin, Marsha Chechik
Softw. Syst. Model.5
2023 Annotative Software Product Line Analysis Using Variability-Aware Datalog
abstract
Applying program analyses to Software Product Lines (SPLs) has been a fundamental research problem at the intersection of Product Line Engineering and software analysis. Different attempts have been made to “lift” particular product-level analyses to run on the entire product line. In this paper, we tackle the class of Datalog-based analyses (e.g., pointer and taint analyses), study the theoretical aspects of lifting Datalog inference, and implement a lifted inference algorithm inside the Soufflé Datalog engine. We evaluate our implementation on a set of Java and C-language benchmark annotative software product lines. We show significant savings in processing time and fact database size (billions of times faster on one of the benchmarks) compared to brute-force analysis of each product individually.
Ramy Shahin, Murad Akhundov, Marsha Chechik
IEEE Trans. Software Eng.1
2021 Applying Declarative Analysis to Software Product Line Models: An Industrial Study
abstract
Software Product Lines (SPLs) are families of related software products developed from a common set of artifacts. Most existing analysis tools can be applied to a single product at a time, but not to an entire SPL. Some tools have been redesigned/re-implemented to support the kind of variability exhibited in SPLs, but this usually takes a lot of effort, and is error-prone. Declarative analyses written in languages like Datalog have been collectively lifted to SPLs in prior work [1], which makes the process of applying an existing declarative analysis to a product line more straightforward. In this paper, we take an existing declarative analysis (behaviour alteration) and apply it to a set of automotive software product lines from General Motors. We discuss the design of the analysis pipeline used in this process, present its scalability results, and provide a means to visualize the analysis results for a subset of products filtered by feature expression. We also reflect on some of the lessons learned throughout this project.
Ramy Shahin, Robert Hackman, Rafael F. Toledo, S. Ramesh 0002, Joanne M. Atlee, Marsha Chechik
MoDELS1
2021 A Lean Approach to Building Valid Model-Based Safety Arguments
abstract
In recent decades, cyber-physical systems developed using Model-Driven Engineering (MDE) techniques have become ubiquitous in safety-critical domains. Safety assurance cases (ACs) are structured arguments designed to comprehensively show that such systems are safe; however, the reasoning steps, or strategies, used in AC arguments are often informal and difficult to rigorously evaluate. Consequently, AC arguments are prone to fallacies, and unsafe systems have been deployed as a result of fallacious ACs. To mitigate this problem, prior work [32] created a set of provably valid AC strategy templates to guide developers in building rigorous ACs. Yet instantiations of these templates remain error-prone and still need to be reviewed manually. In this paper, we report on using the interactive theorem prover Lean to bridge the gap between safety arguments and rigorous model-based reasoning. We generate formal, modelbased machine-checked AC arguments, taking advantage of the traceability between model and safety artifacts, and mitigating errors that could arise from manual argument assessment. The approach is implemented in an extended version of the MMINT-A model management tool [10]. Implementation includes a conversion of informal claims into formal Lean properties, decomposition into formal sub-properties and generation of correctness proofs. We demonstrate the applicability of the approach on two safety case studies from the literature.
Torin Viger, Logan Murphy, Alessio Di Sandro, Ramy Shahin, Marsha Chechik
MoDELS4
2021 Towards Certified Analysis of Software Product Line Safety Cases
Ramy Shahin, Sahar Kokaly, Marsha Chechik
SAFECOMP1
2021 Validating Safety Arguments with Lean
Logan Murphy, Torin Viger, Alessio Di Sandro, Ramy Shahin, Marsha Chechik
SEFM4
2020 Variability-Aware Datalog
Ramy Shahin, Marsha Chechik
PADL1
2020 Automatic and efficient variability-aware lifting of functional programs
abstract
A software analysis is a computer program that takes some representation of a software product as input and produces some useful information about that product as output. A software product line encompasses many software product variants, and thus existing analyses can be applied to each of the product variations individually, but not to the entire product line as a whole. Enumerating all product variants and analyzing them one by one is usually intractable due to the combinatorial explosion of the number of product variants with respect to product line features. Several software analyses (e.g., type checkers, model checkers, data flow analyses) have been redesigned/re-implemented to support variability. This usually requires a lot of time and effort, and the variability-aware version of the analysis might have new errors/bugs that do not exist in the original one. Given an analysis program written in a functional language based on PCF, in this paper we present two approaches to transforming (lifting) it into a semantically equivalent variability-aware analysis. A light-weight approach (referred to as shallow lifting ) wraps the analysis program into a variability-aware version, exploring all combinations of its input arguments. Deep lifting, on the other hand, is a program rewriting mechanism where the syntactic constructs of the input program are rewritten into their variability-aware counterparts. Compositionally this results in an efficient program semantically equivalent to the input program, modulo variability. We present the correctness criteria for functional program lifting, together with correctness proof sketches of shallow lifting. We evaluate our approach on a set of program analyses applied to the BusyBox C-language product line.
Ramy Shahin, Marsha Chechik
Proc. ACM Program. Lang.1
2019 Lifting Datalog-based analyses to software product lines
abstract
Applying program analyses to Software Product Lines (SPLs) has been a fundamental research problem at the intersection of Product Line Engineering and software analysis. Different attempts have been made to ”lift” particular product-level analyses to run on the entire product line. In this paper, we tackle the class of Datalog-based analyses (e.g., pointer and taint analyses), study the theoretical aspects of lifting Datalog inference, and implement a lifted inference algorithm inside the Soufflé Datalog engine. We evaluate our implementation on a set of benchmark product lines. We show significant savings in processing time and fact database size (billions of times faster on one of the benchmarks) compared to brute-force analysis of each product individually.
Ramy Shahin, Marsha Chechik, Rick Salay
ESEC/SIGSOFT FSE1