Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Using formal methods to write better requirements (run.app)
6 points by fallingmeat on June 18, 2022 | hide | past | favorite | 3 comments



Good morning all, creator here- I made this demo for you to explore a requirements engineering technique. Defects in the requirements engineering process have outsized cost in the overall product development cycle, especially in safety critical applications. Adding just a dash of formal methods in authoring tools can catch defects as they are introduced and provide timely feedback to engineers. This is a quick example of how to use a context-free grammar and an SMT solver (Z3 in this case) to automatically find logical contradictions, redundant conditions and inconsistency of entity names. Enjoy!


I like the visual output for the prepopulated examples, but I tried to interact with it myself by making up this string:

> If payload = bad, server shall email someone on blue team.

and I get this error:

> Error at position 32 ("load")

One improvement might be making this error message more clear. Character 32 is around "shall", but the quoted word is near the beginning of the text. I tried changing "payload" to "var" and "=" to "==" and I'm just getting less and less helpful errors before giving up.


Seems pretty cool but what the heck is the syntax?

"User shall send login message to server"

seems almost exactly like

"Server shall send req_resolution to ctrl_entity"

yet the former throws an unhelpful error. Your parser might want to just internally slap a `_` between unexpected tokens and try reparsing. Humans tend to use spaces between things.




Consider applying for YC's Summer 2025 batch! Applications are open till May 13

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: