Experiences in assessing product family software architecture for evolution

Software architecture assessments are a means to detect architectural problems before the bulk of development work is done. They facilitate planning of improvement activities early in the lifecycle and allow limiting the changes on any existing software. This is particularly beneficial when the architecture has been planned to (or already does) support a whole product family, or a set of products that share common requirements, architecture, components or code. As the family requirements evolve and new products are added, the need to assess the evolvability of the existing architecture is vital. I illustrate two assessment case studies I have recently worked on in the mobile telephone software domain: the Symbian operating system platform and the network resource access control software system. The former assessment has been carried out as a task within the European project ESAPS, while the latter has been performed solely by Nokia. By means of simple experimental data, I show evidence of the usefulness of architectural assessment as rated by the participating stakeholders. Both assessments have led to the identification of previously unknown architectural defects, and to the consequent planning of improvement initiatives. In both cases, stakeholders noted that a number of side benefits, including improvement of communication and architectural documentation, were also of considerable importance. I illustrate the lessons we have learned, and outline suggestions for future research and experimentation.

[1]  Jan Bosch,et al.  Analyzing Software Architectures for Modifiability. , 2000 .

[2]  Paul Clements,et al.  ATAM: Method for Architecture Evaluation , 2000 .

[3]  Jan Bosch,et al.  Assessing optimal software architecture maintainability , 2001, Proceedings Fifth European Conference on Software Maintenance and Reengineering.

[4]  Jan Bosch,et al.  Assessing optimal software architecture maintainability , 2001, Proceedings Fifth European Conference on Software Maintenance and Reengineering.

[5]  Claudio Riva,et al.  Reverse architecting: an industrial experience report , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[6]  Peter Heidl,et al.  Reviewing Product Line Architectures: Experience Report of ATAM in an Automotive Context , 2001, PFE.

[7]  Mark Klein,et al.  Evaluating software architectures for real-time systems , 1999, Ann. Softw. Eng..

[8]  Galal Hassan Galal A Note on Scenarios in Software Architecting , 1999 .

[9]  Jan Bosch,et al.  Design and use of software architectures - adopting and evolving a product-line approach , 2000 .

[10]  Rick Kazman,et al.  Toward a discipline of scenario‐based architectural engineering , 2000, Ann. Softw. Eng..

[11]  Leonard J. Bass,et al.  Scenario-Based Analysis of Software Architecture , 1996, IEEE Softw..

[12]  Rick Kazman,et al.  Evaluating Software Architectures: Methods and Case Studies , 2001 .

[13]  Mehdi Jazayeri,et al.  Software Architecture for Product Families: Principles and Practice , 2000 .