In 2007 an internal survey of more than 50 of ABB’s robotics software applications revealed a substantial functional overlap in many of these applications. Similar functionality had been developed more than seven times for different applications by independent teams. The lack of systematic reuse causes high development and maintenance costs and delays time to market for new products.
On this behalf, we analyzed three different robotics software applications developed by locally distributed development teams. We proposed the design for a software product line architecture (PLA) based on the identified core assets and variation points. The presentation describes our key design principles and describes the lessons learned from introducing a PLA based on existing products.
The goal of our project was to increase reuse among the software applications, lower maintenance costs, and ensure faster time to market for new applications within the robotics domain. Therefore, we first separated concerns in the analyzed robotics applications, as they partially bundled distinct features. The PLA design was constrained by the expectation of retaining existing functionality and providing a common look and feel among the applications. Furthermore, multiple extension mechanisms within the PLA were desired to support user customizations.
During the project, we interacted with many stakeholders of the architecture (including product managers, development teams, and customers) for requirements gathering and iterative confirmation of the product line architecture.
As a result, we have designed a PLA bottom-up from existing ABB robotics software. Stakeholder commitment is essential for a successful product line adoption and must be ensured proactively.