Nata


Nata Stulova

Nata Stulova

PhD in Computer Science


Contact

nata [at] stulova [dot] me


Links

GitHub://s0nata

LinkedIn://nata-stulova

dblp://Stulova:Nataliia

ResearchGate://Nataliia_Stulova

Academia.Edu://NataliiaStulova

ACM DL://Nataliia Stulova

Google Scholar://Nataliia Stulova


Languages

Ukrainian

English

Spanish

German

French

Hebrew




Before we continue: on February 24, 2022 russia invaded Ukraine. Here are all the ways to support Ukraine now!

About me

I'm Nata and since 2013 I have been doing software engineering research on all kinds of formal and informal program specifications:

  • source code comments
  • formal contracts/assertions
  • business requirements
I am developing and extending tools that make sure that (a) the specification docs stay up to date, (b) the software really does what its specifiations say, and (c) developers have easier time dealing with software specifcations. In 2022 I've switched from academia to industry, and I'm active looking for projects that could benefit both of these worlds.

This is my most recent CV.

My scientific life

[MacPaw / TR&D] I am currently enjoying my time as a senior research scientist in the Technological R&D team at MacPaw. I wish I could add "in Kyiv, Ukraine", but due to the aforementioned full-scale russian invasion it's oftentimes remote work from a safe(ish) place. While surviving russian terrorist attacks, we manage to get some research done, focusing on:

  • fundametnal and applied research in software analysis/distribution/engineering, human-computer interaction, security and machine learning,
  • Apple mobile and desktop app ecosystems
My forever thanks to the Armed Forces of Ukraine, who provide us security to do science ❤

[UniBe / SCG] Before, I have worked as a senior postdoctoral researcher at the Software Composition Group (SCG) led by Oscar Nierstrasz, a part of the University of Bern, Switzerland. During this time I've led and managed teams working these three main research lines:

  • tools for low-code requirements engineering
  • tools for inconsistent documentation detection
  • empirical studies on comment quality evaluation

[EPFL / LARA] Prior to that I had the pleasure to work with Viktor Kuncak at the Lab for Automated Reasoning and Analysis (LARA), École Polytechnique Fédérale de Lausanne (EPFL), Switzerland. I have moved from the formal specifications to informal ones, such as comments, and I have worked on:

  • automatic source code documentation: inference and generation
  • uses of NLP techniques for inconsistent documentation detection

[IMDEA / CLIP lab] Even before I have obtained my PhD in Software, Systems and Computing from the Technical University of Madrid (UPM), Spain. During this time I had been working under the supervison of Manuel Hermenegildo and José F. Morales at the IMDEA Software Institute. My research at IMDEA focused on software specifications and improving efficiency of the tools working with them. I had also been a member of the Computational logic, Languages, Implementation, and Parallelism Laboratory (CLIP) and one of the Ciao System developers. I have mostly worked on the verification framework of Ciao:

  • creating new formal specification language and integrating its support into the existng program analysis and verification frameworks (= source code translation and instrumentation)
  • optimizing dynamic program analysis and unit (+regression) testing capabilities of the verification framework

[UPM] Prior to that I had obtained my Master of Sciences in Artificial Intelligence also from UPM in 2013. During this time I had made an internship at the Intelligent Systems & Knowledge Engineering Group (I&K) there.

[KPI] Before that I had obtained a degree of Bachelor of Sciences in Applied System Analysis at the Educational-Scientific Complex "Institute for Applied System Analysis" (IASA) of the National Technical University of Ukraine "Igor Sikorsky Kyiv Polytechnic Institute" (NTUU "KPI").

Also, here's the Wikipedia article about my home city, Dnipro, we make space rockets there. I could have just followed the tradition of two last family generations and become a rocket engineer, but no :-)


Projects

Empirical Research on Apple App Ecosystem

Most of the projects I work on with MacPaw TR&D team are covered by an NDA, but we still publish some of our results.

Publications

R+R: State of the Application Sandboxing on macOS: A Differentiated Replication (PDF)

Iryna Pastukhova, Ivan Synytsia, Nataliia Stulova,

In submision.

Position Paper: Think Globally, React Locally — Bringing Real-time Reference-based Website Phishing Detection on macOS (DOI, PDF).

Ivan Petrukha, Nataliia Stulova, Sergii Kryvoblotskyi

14th International Workshop on Socio-Technical Aspects in Security (STAST 2024) of the 9th IEEE European Symposium on Security and Privacy (Euro S&P 2024).



Low-code Requirements Engineering

I've managed a team of 3 members studying tool support for behavior-driven development (BDD).

The goal of the project was to provide a low-code solution to produce Gherkin scenarios allowing non-technical stakeholders to participate in product behavior specification and review while directly interacting with the MVP.

My team has also studied how our tool solution would improve the traceability between requirements and the actual implementation code within different stages of the SDLC.

Publications

First-class Artifacts as Building Blocks for Live in-IDE Documentation (DOI, PDF)

Nitish Patkar, Andrei Chiş, Nataliia Stulova, Oscar Nierstrasz

29th IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER 2022).


Interactive Behavior-driven Development: a Low-code Perspective (DOI, PDF)

Nitish Patkar, Andrei Chiş, Nataliia Stulova, Oscar Nierstrasz

2nd LowCode Workshop of the MODELS'21 conference, focusing on Modeling in Low-Code Development Platforms.


Code Commenting Quality

I have been a member of two teams analyzing source code documentation quality from different perspectives.

In one of the projects I co-managed a collaboration of 6 people performing a literature review of the academic publications of the last decade on comment quality assessment.

In another project our team was studying whether software developers actually follow commenting guidelines, and which guidelines are more confusing than helpful in producing quality project documentaiton.

Publications

A Decade of Code Comment Quality Assessment: A Systematic Literature Review (DOI, PDF)

Pooja Rani, Arianna Blasi, Nataliia Stulova, Sebastiano Panichella, Alessandra Gorla, Oscar Nierstrasz

Preprint is under review at the Journal of Systems and Software (JSS).


Do Comments follow Commenting Conventions? A Case Study in Java and Python (DOI, PDF)

Pooja Rani, Suada Abukar, Nataliia Stulova, Alexander Bergel, Oscar Nierstrasz

21st IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM 2021).


NLP for Comment Inconsistency Detection

I have been working on two different projects on detecting comments inconsistent with the source code. Both use a combination of NLP and program analysis for it.

[upDoc] In the first project I was leading tool development for automatically detecting outdated comments during code change. At the moment the initial prototype, implementing the code-comment mapping tool component, is available on GitHub, and the full implementation with automatic change extraction and analysis is coming in June 2022!

[RepliComment] In the second project I worked in a team focused on detecting cloned comments and discerning between valid copies and those that are resulting in misleading documentation. The original RepliComment implementation, detecting comment clones, is available on GitHub, and there is also a dedicated repository for the upDoc+RepliComment pipeline that allows to classify the detected clones.

Publications

RepliComment: Identifying Clones in Code Comments (DOI, PDF)

Arianna Blasi, Nataliia Stulova, Alessandra Gorla, Oscar Nierstrasz

Journal of Systems and Software (JSS), Volume 182, December 2021, 111069.


upDoc: Towards Detecting Inconsistent Comments in Java Source Code Automatically (DOI, PDF, on-line supplement, video)

Nataliia Stulova, Arianna Blasi, Alessandra Gorla, Oscar Nierstrasz

20th IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM 2020).

Runtime Program Verification

My research in this area focused on specification-based software verification in dynamic programming languages:

  • how to write specifications of program behavior - expanding the formal specification language of program assertions/contracts to include new properties
  • how to check these specs - translating formal contracts into checkable code snippets
  • and how to do this efficiently - decreasing the run-time overhead added by the checks without compromising the program behavior safety and correctness guarantees

Most of the ideas were prototyped and tested in Ciao and its dedicated tools (see the GitHub mirror).

Publications

Static Performance Guarantees for Programs with Run-time Checks (DOI, PDF)

Maximiliano Klemen, Nataliia Stulova, Pedro Lopez-Garcia, José F. Morales, Manuel Hermenegildo

20th International ACM SIGPLAN Symposium on Principles and Practice of Declarative Programming (PPDP 2018).


Exploiting Term Hiding to Reduce Run-time Checking Overhead (DOI, PDF)

Nataliia Stulova, José F. Morales, Manuel Hermenegildo

20th International Symposium on Practical Aspects of Declarative Languages (PADL 2018).


On Improving Run-time Checking in Dynamic Languages (PDF)

Nataliia Stulova

OASIcs, Technical Communications of the 33rd International Conference on Logic Programming (ICLP 2017), Vol. 58, 10 pages, August 2017; CP/ICLP/SAT Doctoral Program 2017 (CP-ICLP-SAT-DP-17) entry.


Towards Run-time Checks Simplification via Term Hiding (Extended Abstract) (PDF)

Nataliia Stulova, José F. Morales, Manuel Hermenegildo

OASIcs, Technical Communications of the 33rd International Conference on Logic Programming (ICLP 2017), Vol. 58, 3 pages, August 2017.


Some Trade-offs in Reducing the Overhead of Assertion Run-time Checks via Static Analysis (DOI, PDF)

Nataliia Stulova, José F. Morales, Manuel Hermenegildo

Science of Computer Programming (SCP), Vol. 155, pages 3-26. Selected and extended papers from the 2016 International Symposium on Principles and Practice of Declarative Programming (PPDP 2016).


Reducing the Overhead of Assertion Run-time Checks via Static Analysis (DOI, PDF)

Nataliia Stulova, José F. Morales, Manuel Hermenegildo

18th International ACM SIGPLAN Symposium on Principles and Practice of Declarative Programming (PPDP 2016).


Runtime Verification Challenges in the context of (Constraint) Logic Programming (PDF)

Microsoft Research PhD Summer School 2016, Cambridge, UK.


Higher-order Runtime Verification Challenges in (Constraint) Logic Programming (PDF)

2nd ACM-W Europe womENcourage Celebration of Women in Computing 2015, Uppsala, Sweden.


Practical Run-time Checking via Unobtrusive Property Caching (DOI, PDF)

Nataliia Stulova, José F. Morales, Manuel Hermenegildo

Theory and Practice of Logic Programming (TPLP), Vol. 15, Num. 04-05, pages 726-741. Special Issue of the 31st International Conference on Logic Programming (ICLP 2015).


Assertion-based Debugging of Higher-Order (C)LP Programs (DOI, PDF)

Nataliia Stulova, José F. Morales, Manuel Hermenegildo

16th International ACM SIGPLAN Symposium on Principles and Practice of Declarative Programming (PPDP 2014).


Towards Assertion-based Debugging of Higher-Order (C)LP Programs (Extended Abstract) (PDF)

Nataliia Stulova, José F. Morales, Manuel Hermenegildo

TPLP, Technical Communications of the 30th International Conference on Logic Programming (ICLP 2014) Special Issue, Vol. 14, Num 4-5, Electronic Appendix.


Service

Organizing Committees

  • Tool competition co-chair, 4th International Workshop on Natural Language-based Software Engineering (NLBSE 2025)
  • Co-organizer and co-chair, 15th International Colloquium on Implementation of Constraint and LOgic Programming Systems (CICLOPS 2017)

Reviewing

  • Reviewer, Journal of Empirical Software Engineering (EMSE 2021)
  • Reviewer, Journal of Open Source Software (JOSS 2020)
  • Reviewer, Fundamenta Informaticae journal special issue on the 26th International Symposium on Logic-Based Program Synthesis and Transformation (LOPSTR 2016).
  • Subreviewer, 27th International Symposium on Logic-based Program Synthesis and Transformation (LOPSTR 2017)
  • Subreviewer, 32nd International Conference on Logic Programming (ICLP 2016)

Theses

Improving Run-time Checking in Dynamic Programming Languages (PDF)

2018

PhD Thesis, Technical University of Madrid (UPM)

Thesis supervisors: José F. Morales, Manuel Hermenegildo


Dynamic Checking of Assertions for Higher-order Predicates (PDF)

2013

MSc Thesis, Technical University of Madrid (UPM)

Thesis supervisors: José F. Morales, Manuel Hermenegildo


Software Module of Pattern Recognition Using Genetic Algorithms (in Ukrainian, PDF summary in English)

2012

BSc Thesis, National Technical University of Ukraine "Igor Sikorsky Kyiv Polytechnic Institute" (NTUU "KPI")

Thesis supervisor: Oksana Timoschuk


Funding

My research has been supported by the following research projects:

  • ASA: Agile Software Assistance

  • TRACES: Technologies and tools for Resource-Aware, Correct, Efficient Software

  • N-GREENS: Next-Generation Energy-Efficient Secure Software

  • StrongSoft: Sound Technologies for Reliable, Open, New Generation Software

  • ENTRA: Whole-Systems ENergy TRAnsparency

  • PROMETIDOS-CM: PROgrama de METodos rIgurosos de DesarrollO de Software de la Comunidad de Madrid (Madrid Program in Rigorous Methods for the Development of Software)

  • DOVES: Development Of Verifiable and Efficient Software

  • CASSIOPEIA: Complex Adaptive Systems for Optimization of Performance in ATM (see also the PAAMS'14 paper)