Balancing benefits and risks when designing software systems
Dependable Software Systems: Designing Software Systems
By Sathish Gopalakrishnan, Associate Professor in the Department of Electrical and Computer Engineering and Program Director of the MEL in Dependable Software Systems
The increasing prevalence of autonomous systems in all facets of our lives brings with it fascinating challenges to ensure their accuracy, reliability, safety and security.
These autonomous systems are driven by machine learning, which raises even more questions: Is there enough data available for training the algorithm? If so, is the system learning the right things at the right point of time? And how do we know?
For some autonomous applications, safety is paramount and can literally have life-or death implications. Whereas mechanical engineers, for example, have a long professional history of developing, implementing and working within standards for ensuring safety, that’s a relatively new concept in software engineering.
This, too, raises critical issues: what is a reasonable level of safety for any given system? How do you balance a focus on safety with other strategic drivers?
You can invest a lot of money to create an extraordinarily reliable and safe system, but this might not make for a reliable project from a financial point of view. Privacy and security are other top-of-mind concerns, and with so much of our data and so many software services residing online, this is a growing vulnerability. Sustainability is another issue to consider with the proliferation of energy-consuming data centres.
Today’s software engineers must have a broad understanding of all these interconnected issues when developing software systems, while also balancing crucial financial, social and operational perspectives.
The Master of Engineering Leadership in Dependable Software Systems is positioned within this context. Our 12-month program offers software engineers a framework within which to deepen their understanding of core technical issues related to software testing and verification and developing dependable and secure systems. And given that these challenges are very much of our world – with financial, social and sustainability implications – the business and leadership courses that make up about half of the curriculum provide students with crucial knowledge. The program involves a capstone project, often supported by industry, enabling students to apply the tools they are learning to a software engineering challenge. Historically, some of these projects have been in the field of machine learning. In one project, students looked at issues with steering controllers for self-driving cars; in another, they compared different machine learning models to identify appropriate applications. They’ve also reviewed automotive safety standards and explored whether machine learning approaches could meet these standards. The complex, interconnected issues of reliability, security and privacy must be top-of-mind for professionals working in this field.
The MEL in Dependable Software Systems was designed specifically for junior and senior developers who want to learn the foundations of how to develop reliable systems work at scale.
We’re equipping our graduates to develop the skills that will enable them to take the next step and build dependable software for a range of systems – from scalable distributed systems handling millions of users per second to embedded safety-critical systems.