Felienne is assistant professor at Delft University of Technology, where she makes programming for non-programmers more awesome. She built an IDE for spreadsheets in the form of smell detection, refactoring and unit testing tools for Excel, and she has researched code smells and clone detection in the Scratch programming language for kids.
She is also one of the founders of Joy of Coding, a one day developer conference in Rotterdam, celebrating the love for programming. When not building programs that play board games or card games, she is probably dancing Lindy Hop or killing creeps in a tower defense game.
Despite what your boss thinks, programs don’t just appear straight out of specifications. But…what if they did?
In this workshop we are going to derive programs rather than just come up with them! I will show you how to systematically and step-by-step derive a program from a specification. We will explore the notion of an "invariant": a property that always holds in a loop or a class, or a domain model!
This sounds theoretical, but you will be surprised to know that you already know and apply many techniques for derivation, like Introduce Parameter as supported by Resharper. Did you know that is actually program derivation technique called generalization?