Nata


Nata Stulova

Nata Stulova

PhD in Computer Science

Dnipro, Ukraine

Bern, BE, Switzerland

remote


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 start: 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.

This is my most recent CV.

My scientific life

[UniBe / SCG] 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 rockets (think Zenit, Elon Musk's second favourite one) there. I could have just followed the tradition of two last family generations and become a rocket engineer, but no :-)


Projects

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 (preprint PDF)

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

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


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

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

  • 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)