Presentation at MPS Community MeetUp about NSD Tool

We gave a talk "Communicating Complex logic with ease" at the 2023 MPS Community MeetUp in Munich.

F1RE bug interpreter

Communicating complex logic through prose is difficult, and so is explaining code to people who are not software developers.

The Nassi-Shneiderman Diagram(NSD) successfully captures a simple and intuitive way to express complex logic, in a way that is understandable by both a developer and a domain expert without need for a lot of external knowledge. It is designed in a way that:

  • Keeps the developers' code in check - if the NSD is not straightforward to understand then there is a problem in the expressed procedure.

  • Allows for path analysis - because of its top-down structure we can easily identify potential problems in the logic of a program.

  • Ensures language independence

We have developed a solution, using an existing renderer library, that can produce NSDs inside MPS based on KernelF or BaseLanguage code. The implementation allows diagrams to be derived from code, is extensible and features code coverage for KernelF.

In this presentation, I introduce Nassi-Shneiderman Diagrams (NSDs) and explain their usefulness during the software development cycle. I then do a demo of my implementation of our tool using KernelF and BaseLanguage. At the end I present some of the challenges I faced during the implementation and mention potential future directions for the project.

Links from the presentation: