While It’s Compiling is a continuing series of interviews with experts across a range of bleeding-edge technologies and practices, exclusive to Skills Matter. Be sure to subscribe to this blog for future interviews, or follow us on Twitter.
Find out who we’ll be interviewing next, and get a chance to put your questions forward with the hashtag #whileitscompiling.
This week we caught up with Melanie Diepenbeck, who is currently pursuing her PhD degree on “Behaviour Driven Development for System Design” at the University of Bremen in the Graduate School System Design (SyDe).
Melanie’s In The Brain talk at Skills Matter on Monday will discuss an improved Behaviour Driven Development (BDD), as she looks at current research ideas to answer questions such as – Did we think of everything important? Does our implementation behave as expected? Did we test everything? Can we make sure that our implementation behaves as expected in every case?
Spaces are limited and filling fast, so book your spot at this free event now!
You are currently researching BDD, particularly verification in the specific Electronic System Level (ESL). How did you discover BDD and what aspects have you found insightful when looking at BDD in ESL as opposed to software programming?
Since verification and correctness are two – still increasing – important factors in the hardware design, we looked outside of the hardware box to find better solutions to increase the correctness in the development flow. That’s how we found BDD.
For one thing, in hardware it is rather unusual to start with tests first. Although testing and verification takes up to 70% of the effort designing hardware systems, implementing and testing are two separate tasks. It’s also interesting to combine the requirements process with the design. But the important questions when considering BDD for hardware focus on the quality: Is it applicable? Can we guarantee correctness and completeness? On the contrary: Some of our findings are even applicable for software development.
Your upcoming In The Brain talk is going to look at the fact that you don’t have to be an advanced TDD practitioner to walk away with better understanding of BDD, due to the hardware focus of the talk. Do you think there is a culture in the BDD community of drawing from analogous fields?
I think both hardware and software development can learn from each other. While in the software industry people are more advanced in developing techniques, people in the hardware industry are more focused on correctness due to the fact that a lot of safety critical systems (such as airplanes and cars) depend on it. Therefore BDD is very interesting since it brings a new angle through which we can look at correctness in hardware development.
Since BDD has its roots in the Test-Driven-Development community, would you say there are some trends developing within BDD which may grow to be successfully separate fields of studies?
One interesting trend could be the use of natural language processing methods in BDD such that scenarios which can automatically be translated to corresponding code. This leads to BDD distancing itself from the original TDD flow since it explicitly includes the requirement engineering process in the implementation. This is one of the many research directions we’re evaluating right now.
The proliferation of best practices and methodologies has seen many theories quickly fall out of popularity. BDD has proven to be quite the opposite from a flash in the pan philosophy, what is it about the ideas and indeed the community around BDD which has made it such a successful field?
One of the important parts of BDD that made it so successful, is its ubiquitous language that directly interacts with the code. Since requirements are written in natural language every stakeholder of the system can participate in the development flow. But I think we could explore this natural language connection further by investigating the requirement engineering process and using natural language processing tools.
And as we’re discussing community, and as you’ll be here soon to talk at Skills Matter, is there anything you think people should be looking at or exploring more within BDD? And are there any burning questions you’ve seen arise recently that the BDD community should be attempting to answer right now?
It’s great that so many people are using BDD right now. There is an increasing amount of tools for all kinds of programming languages. But – as for research – there are only a few studies about the effectiveness of BDD and only very few open source projects that could be used for further analysis of the methodology. Particularly, industry studies that reveal some lessons learned would be of huge interest to us and also to the community.