With software being injected into everything from medical devices to cars, mitigating tech fails becomes increasingly important. Enter Dr Rosemary Monahan from Maynooth University.
Dr Rosemary Monahan has been working at Maynooth University since 1999. Following a revelation during her undergraduate degree studies in University College Dublin, her focus and her passion has been centred on computer science for all this time.
With a PhD from the Dublin City University School of Computing, she has become an associate professor in Maynooth’s Department of Computer Science and an affiliate of the university’s Hamilton Institute. This multidisciplinary research centre is dedicated to providing a bridge between mathematics and its applications in ICT, biology and other disciplines.
In her time at Maynooth, Monahan has conducted software research in collaboration with major tech businesses such as Hewlett-Packard and Microsoft, as well as the United Technologies Research Center and INRIA, the French national institute for research in digital science and technology.
‘The past year has shown the huge role that technology plays in each of our lives, and it’s more important than ever that we can guarantee its dependability’
– DR ROSEMARY MONAHAN
What inspired you to become a researcher?
As a child, I was always interested in maths, chemistry and, in particular, how things worked. I went to university to study chemistry but discovered computer science as a subject within my degree programme.
I vividly remember having a light-bulb moment in my first year of university, while reviewing my computer science lecture notes. Suddenly everything just clicked. I began to realise the power of computer programming, the logic behind it, and the potentially devastating consequences if software was poorly designed and implemented incorrectly.
What research are you currently working on?
There are two main strands to my research.
The first is software verification which focuses on ensuring software is implemented correctly. Here, we work with software developers to build tools and techniques to ensure the ‘correctness’ and dependability of software.
The second strand focuses on computational thinking where, together with members of the PACT team in Maynooth University, we work with primary and secondary schools to develop resources which teachers can use to advance problem-solving skills in the classroom. Our resources guide children to develop computational thinking skills such as abstraction, decomposition and pattern recognition, allowing them to learn elements of computer science, without necessarily labelling it so.
Two postdoctorates, a research assistant and two PhD students are currently working with us on these research projects.
In your opinion, why is your research important?
It’s crucial to develop good problem-solving skills at an early age, so our work with primary and secondary school students is vital. It allows them to explore these skills without being overwhelmed by the technical aspect of what they are doing and it helps them to become good problem-solvers.
When exploring software verification, we are examining problem solutions to ensure that everything is correct and dependable. Our research is about building tools and techniques that make software development processes better, and to incorporate them into software engineering to make sure software is reliable. This is essential in technology in all areas of our lives, from medical devices to driverless cars. The past year in particular has shown the huge role that technology plays in each of our lives, and it’s more important than ever that we can guarantee its dependability.
What commercial applications do you foresee for your research?
When it comes to software verification, we are seeing more global companies like Apple, Amazon, Microsoft and Facebook using techniques to ensure there are no repercussions if their software encounters errors. They are ensuring that verification techniques are built into the systems they develop. I hope, and expect, that verification techniques will become an even larger part of mainstream software development as our reliance on technology increases.
What are some of the biggest challenges you face as a software researcher?
Like any researcher, securing funding can often be an issue. But specifically for my research field, the biggest challenge we face is often that with software verification, it has to be an all-or-nothing approach. In reality, we focus in on verifying the safety-critical components of the software systems and integrate these components with those developed in a more traditional and less formal approach.
Are there any common misconceptions about software research?
People often think that you have to be very mathematically minded to use techniques in this area. Although a deep understanding of maths is important, the tools and techniques have developed in such a way that many of the program verifications can be automated and built into tools that are used directly by software developers, without a disproportionately large mathematical overhead.
What are some of the areas of research you’d like to see tackled in the years ahead?
As society increases reliance on AI-based automated devices, such as driverless cars and IoT connected devices, the need for scalable techniques guaranteeing software dependability becomes urgent, both in terms of human life and the economic cost of software failure. Combining approaches from software engineering and artificial intelligence to produce software development techniques that provide such guarantees is an area I would like to see progress.
Are you a researcher with an interesting project to share? Let us know by emailing editorial@siliconrepublic.com with the subject line ‘Science Uncovered’.