This presentation was created for the SATURN conference series and does not necessarily reflect the positions and views of the Software Engineering Institute.
ABB business relies on industrial software systems in all divisions. Although the domains differ (power, automation, robotics), these systems share certain characteristics, both in functionality and in quality attributes. The sustainable software systems are tightly coupled with hardware systems, have to provide high reliability, are split into engineering and operations parts, and typically live over a long period of time. Maintaining and extending such systems pose an interesting challenge, as they include responding to changes in business goals, the technical environment, stakeholders’ concerns, and the organization. The presentation deals with the experiences of identifying and prioritizing the primary concerns for two existing software systems within ABB business units. This covers the gathering of use cases and quality attribute scenarios for the existing systems and for their planned extensions. The first project extended the remote interface of a Robotic software application with new functionality and requirements on integration with higher and lower level systems. The latter was documented with prioritized deployment scenarios. The second project concerned a product line approach for three gauge systems. The software engineers collected use cases from a set of workshops with the key stakeholders and completed the identification of primary concerns in an SEI Quality Attribute Workshop. Commonalities and variation points were extracted from the use cases. We made the following observations during the first project: * ABB’s global business structure generally requires a distributed approach to gathering use cases and quality attribute scenarios, mandating an effecting strategy for running these distributed interviews (both in location and time) and merging the information. * Combining use cases and quality attribute scenarios provides an excellent methodology for capturing system characteristics and for discussing the system’s primary concerns with the different stakeholders. * Some system characteristics were not covered by use cases and quality attribute scenarios. Therefore, we added project and domain-specific mechanisms to get a complete picture of the system for making sound architecture and design decisions. The second project made the following observations: * Stakeholders voted with a specific mind-set in the QAW. Instead of voting on the legacy primary scenarios, e.g., “Implement same performance as today,” they voted on what new functionality they considered to be the most important for the next-generation products based on the common platform. * The QAW did not cover all primary concerns with positive impact on the prioritized business goal. Therefore, the ABB-developed IF method was used to prioritize these concerns based on use cases, QAW, and interviews. * The identification of commonalities and variation points according to the SEI methodology simplified the first sketch of the architecture. The result of these activities was the identification of a methodology to drive system development projects for industrial software systems. The application of use cases and QAWs enables the deriving of system architectures and service interfaces. Augmenting this approach with the IF method allows identifying the systems’ primary concerns and prioritizing them inline with the business goal. Finally, idiosyncrasies of the application domain have to be taken care of with specific techniques.