BT

New Early adopter or innovator? InfoQ has been working on some new features for you. Learn more

Technologies and Trends in Developing Complex Software Systems

| by Ben Linders Follow 7 Followers on May 26, 2016. Estimated reading time: 4 minutes |

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

Adoption Stage
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Content Sharing by Lavoisier Farias

Hi, would the Software-Centric Systems Conference content be made available publicacly ?

Re: Content Sharing by Ben Linders

Conference presentation will be published next week, if made available by the presenter(s), on the conference website.

Re: Content Sharing by Lavoisier Farias

Thank you for answering.

Yeah, right by Jason Carreira

As long as I've been in the industry there has been talk of model driven development. It's never worked because to make a model robust enough to handle all of the cases you have to make it as complex as the code you're trying to replace.

Re: Yeah, right by Lavoisier Farias

You are right. @ telecom market currently there is a hype about YANG language. The idea is to describe telecom products management interfaces using this language. However, maintainibility is always a concern. Therefore, I would like very much to understand how is the industry evolving in terms Model driven development adoption, and also regarding other techniques.

Re: Yeah, right by Robert Howe

Hi Jason, regarding your statement, my view is that it depends on what you consider to be a model. If you think of a model as being a pretty picture based on UML or SysML or some other informal description then I would tend to agree with you. But in my view a model is a (textual) DSL with formal semantics that can be mathematically verified and from which robust and reliable code can be generated. Such models can be used to completely and correctly describe the behaviour of complex, real world software systems. They contain more information than source code and the fact that they are based on formal semantics means that one can form and objective view about their quality and fitness for purpose.

To jump to the end of the argument, our customers have millions of lines of code in the field that have been generated from these kinds of models. One of our customers is evolved enough that their build cycle involves firstly checking models out from their archive, generating code from them, compiling the code to an executable and then deleting the code, leaving only the models and their resultant executables. Code is treated an an intermediate product, much like we used to treat assembler in the days when high level languages were first making their appearance.

The important point here is that in general the technology that enables models to be verified and, to a certain extent validated, is available, practicable and in increasing use for the development of real world systems. The challenge is now convincing the wider market that this is actually the case.

Conference presentations are online by Ben Linders

The presentations of the Software-Centric Systems Conference are available on the conference website. See softwarecentricsystems.com/program/.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

7 Discuss

Login to InfoQ to interact with what matters most to you.


Recover your password...

Follow

Follow your favorite topics and editors

Quick overview of most important highlights in the industry and on the site.

Like

More signal, less noise

Build your own feed by choosing topics you want to read about and editors you want to hear from.

Notifications

Stay up-to-date

Set up your notifications and don't miss out on content that matters to you

BT