Reusing software snippets from previous projects or platforms can be simple and efficient – You will be faster, as if you would have to write each line by your own. This is obvious to everyone. But what’s far less obvious is: Not only the initial creation, but also the maintenance could be way more efficient by reusing code. And this is the topic I will cover here: how to manage your code in a way, that supports reusing your code, while also keeping the future maintenance as low as possible.

Let’s take the software of a car as an example. In case a customer wants a new car, he possibly wants the same features as the old one + more horsepower + the new feature „bluetooth“.

This means, that we could reuse the features cd, radio, navigation & cruise control completely. We could also reuse parts of the old engine software, but have to change it a bit. And we have to fully develop the bluetooth feature from scratch.

But there is not only a reuse potential. If you could reuse a feature completely (like cd, radio, navigation & cruise-control), you can fix a bug in all the cars, that contain this system, with only one bug-fix.

But the precondition, to also use the maintenance potential here is: the systems cd, radio, navigation and cruise-control are independent of the engine software.

This might seem logical in this case, but also the new bluetooth feature is not allowed to change one single line of code in the reused features. Because in that moment it becomes an independent branch, that has to be maintained by it’s own.

What does this mean for the development? This means, that each feature, that you want to reuse, must be reused as whole and treated like an independent system. With that you can also reuse the whole requirements-, tests- and other specifications of the systems.

On the other hand this means, that the reuse process can not be handled solely by a good tool, it’s also necessary to adapt the way, how the software is developed.

So if you want to use this approach to software development, the Polarion extension portal offers a great new template to manage this: https://extensions.polarion.com/extensions/364-system-of-systems-template

It’s called the „System of Systems“ project template. And it allows to efficiently and effectively manage your Systems and their Sub-Systems. It uses the branch and reference capabilities in a way, that your whole documentation of tests and requirements is done automatically, while you just have to manage the differences between versions.

So check it out.

Maximize Reuse / Minimize Maintenance in Software Development

Beitragsnavigation


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert