Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Technologies and Trends in Developing Complex Software Systems

Technologies and Trends in Developing Complex Software Systems

The Software-Centric Systems Conference explored new technologies, trends, and experiences in developing complex software systems. It took place on Wednesday May 25 at the High Tech Campus in Eindhoven, The Netherlands.

InfoQ spoke with Rob Howe and Martijn Rutten, two members of the program committee.

InfoQ: In your opinion what are the main challenges that software development is facing nowadays?

Howe: The terms "Smart", "Intelligent" or "Autonomous" appear with increasing frequency in the media and refer to products of all types. These words are actually synonymous with software – it is software that makes systems Smart, Intelligent or Autonomous. The world in which we live is becoming increasingly software centric. And yet software is still built using relatively primitive and expensive means. The biggest challenge facing software "development" is to evolve into a true engineering discipline capable of delivering trustworthy results, predictably and economically. This is absolutely key to our ability to realise the kinds of highly integrated and complex systems that are implied by the words "Smart" or "Autonomous", etc.

Rutten: Nowadays software is the system. Software defines the key functionality and benefits. With internet connectivity in an IoT and industry 4.0 setup, the software content also grows rapidly. Embedded devices that hold over 10 million lines of software are becoming commonplace. As an embedded device has a direct impact on the real world, reliability and security are key to ensure nobody gets hurt. Traditional OEMs are now discovering they have in fact turned into a software company. The challenges lie in managing the overwhelming complexity of developing reliable and secure software for companies that come from a hardware engineering background.

InfoQ: Which recent technology developments have you seen, and how do they influence the development of complex software intensive systems?

Rutten: To manage the complexity of large software all angles are being addressed. This goes from tools like static and dynamic analysis to verify software, new languages that have inherently less risk of creating vulnerable, all the way to model-driven development where software is generated correct-by-construction from a higher-level model. Where to date software development teams could get away with a more cowbow-style of development, they now need to pay more attention to the development process and tools to manage the complexity.

Howe: For years, "Early Adopter" companies have been pioneering the development, adoption and deployment of new techniques for engineering software systems with some success. But "Early Majority" companies with less resources and a more pragmatic approach to software engineering have remained faithful to conventional development practices. However, in the last year this has begun to change. There is an increasing level of confidence in the market in techniques such as Model Driven Software Engineering (MDSE), leading to their adoption by the wider software engineering community.

InfoQ: Can you give examples how new technology can be used to drive innovation?

Rutten: Companies are deploying continuous integration to detect bugs and performance issues before the software hits the field. This has enabled continuous deployment where software is released multiple times per day instead of traditional quarterly releases. This in turn only became possible in embedded software by having every release fully checked by for instance static analysis tools or generated in a model-driven development setup. Clearly such a rapid pace of introducing new features in the market drives innovation by experimenting right there in the market.

Howe: An increased level of confidence in applying new software engineering techniques frees engineering teams to try out innovative system architectures. For example, through the adoption of MDSE tools with built in formal verification, one company has felt able to re-engineer one of their products, removing an out-dated PLC based safety controller and replacing it with a verified, distributed safety controller within the body of the main application software.

InfoQ: What are the main topics covered at the software-centric systems conference?

Rutten: The key topics of the conference are "software confessionals", learning from each other how we cope with the tremendous challenges of developing large and sophisticated software-centric systems. How we ensure reliability, security, privacy, maintainability, performance, etc.

Howe: A major goal of the conference is to catalyse interaction and the exchange of knowledge and experiences between attendees. Our view is that in general the most useful thing that one takes home from a conference is the information gained through conversations with speakers and other attendees. Therefore, this conference has been designed to maximise these kinds of interactions. Further, all of the speakers have been chosen on the basis that they will share real world experiences from which others can learn.

InfoQ: How can organizations deploy agile if they want to improve the reliability of their software development process and at the same time be able to deliver value quickly?

Rutten: Continuous integration and continuous deployment go hand in hand with agile software development. Reserving both time and budget to set up best in class environment and tools is key to detect errors early where fixing issues is still cheap. If a model-driven approach applies to the domain, generating code from a higher level model can greatly increase both reliability and time to market.

In more specific domains such as automotive engine control this is harder. Here, significant resources must be devoted to a system where new technology can be safely deployed with graceful degradation to a known working system. Only once such an environment is in place can an agile incremental delivery make sense.

InfoQ is covering the Software-Centric Systems Conference with Q&As, summaries, and articles.

Rate this Article