...
Software complexity is increasing at an alarming rate. Today, a large part of this complexity is caused by shortened product cycles, requirements for drastically increased functionality, and an increasing
number of variations of the same product (e.g. different hardware and operating systems). These trends have caused software costs to become a larger percentage of almost any manufacturer'smanufacturer’s
development cost.
For an organisation it is now typical for software development to largely consist of adapting existing functionality to perform in a new environment. In the last 20 years, a large number of standard building blocks have become available and they are heavily used in today's today’s products. A prime example is the success of open software. However, the use of these libraries is not without problems. Integrating many different libraries can be daunting because many libraries have become complex and require their own libraries to function, even if that functionality is never needed for the product. This trend requires monolithic software products to undergo a heavy testing cycle. Add unsynchronized evolution of the different libraries and it becomes clearer why software development is so costly today.
A key issue is that today's today’s software environments focus on writing new software, instead of integrating existing software into new systems. In reality, integrating existing code has become a large part of
the work of software developers. Therefore, there is a need for tools that standardise the integration aspects of software so that reusing existing components becomes reliable, robust and cheap.
...