Architectural support in industry: a reflection using C-POSH

Software architecture plays a vital role in the development (and hence maintenance) of large complex systems (containing millions of lines of code) with a long lifetime. It is therefore required that the software architecture is also maintained, i.e., sufficiently documented, clearly communicated, and explicitly controlled during its life-cycle. In our experience, these requirements cannot be met without appropriate support. Commercial-off-the-shelf support for architectural maintenance is still scarcely available, if at all, implying the need to develop appropriate proprietary means. In this paper, we reflect upon software architecture maintenance taken within three organizations within Philips that develop professional systems. We extensively describe the experience gained with introducing and embedding of architectural support in these three organizations. We focus on architectural support in the area of software architecture recovery, visualization, analysis, and verification. In our experience, the support must be carried by a number of pillars of software development, and all of these pillars have to go through a change process to ensure sustainable embedding. Managing these changes requires several key roles to be fulfilled in the organization: a champion, a company angel, a change agent, and a target. We call our reflection model C-POSH, which is an acronym for Change management of the four identified pillars of software development: Process, Organization, Software development environment, and Humans. Our experiences will be presented in terms of the C-POSH model. Copyright © 2005 John Wiley & Sons, Ltd.

[1]  René L. Krikhaar,et al.  Maintaining a legacy: towards support at the architectural level , 2000, J. Softw. Maintenance Res. Pract..

[2]  Hausi A. Müller,et al.  Rigi: a system for programming-in-the-large , 1988, Proceedings. [1989] 11th International Conference on Software Engineering.

[3]  René L. Krikhaar,et al.  Reverse architecting approach for complex systems , 1997, 1997 Proceedings International Conference on Software Maintenance.

[4]  Paul Clements,et al.  Software Architecture in Practice: Addison-Wesley , 1998 .

[5]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[6]  Johannes Sametinger,et al.  Software Engineering with Reusable Components , 1997, Springer Berlin Heidelberg.

[7]  René L. Krikhaar,et al.  A relational approach to support software architecture analysis , 1998, Softw. Pract. Exp..

[8]  Philippe Kruchten,et al.  The 4+1 View Model of Architecture , 1995, IEEE Softw..

[9]  René L. Krikhaar,et al.  Languages for formalizing, visualizing and verifying software architectures , 2001, Comput. Lang..

[10]  Watts S. Humphrey,et al.  Managing the software process , 1989, The SEI series in software engineering.

[11]  René L. Krikhaar,et al.  Embedding architectural support in industry , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[12]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach , 1982 .

[13]  Loe M. G. Feijs,et al.  Relation Partition Algebra - Mathematical Aspects of Uses and Part-Of Relations , 1999, Sci. Comput. Program..

[14]  Pierre America,et al.  Requirements Modeling for Families of Complex Systems , 2000, IW-SAPF.

[15]  René L. Krikhaar,et al.  Multi-view architecture trend analysis for medical imaging , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[16]  Arie van Deursen,et al.  Software architecture reconstruction , 2004, Proceedings. 26th International Conference on Software Engineering.

[17]  B. J. Pronk An Interface-based platform approach , 2000, SPLC.

[18]  Ivar Jacobson,et al.  Software Reuse: Architecture, Process And Organization For Business Success , 1998, Proceedings. Technology of Object-Oriented Languages. TOOLS 26 (Cat. No.98EX176).

[19]  Jan Gerben Wijnstra Supporting diversity with component frameworks as architectural elements , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[20]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[21]  Alan M. Christie A Practical Guide to the Technology and Adoption of Software Process Automation , 1994 .

[22]  René L. Krikhaar,et al.  Relation algebra with multi-relations , 1998, Int. J. Comput. Math..

[23]  André Postma A method for module architecture verification and its application on a large component-based system , 2003, Inf. Softw. Technol..

[24]  Paul Clements,et al.  Software Architecture: An Executive Overview , 1996 .

[25]  René L. Krikhaar,et al.  Hiding expressed using relation algebra with multi-relations-oblique lifting and lowering for unbalanced systems , 2000, Proceedings of the Fourth European Conference on Software Maintenance and Reengineering.

[26]  Robert L. Nord,et al.  Software Architecture in Industrial Applications , 1995, 1995 17th International Conference on Software Engineering.

[27]  René L. Krikhaar,et al.  Architecture comprehension tools for a PBX system , 1999, Proceedings of the Third European Conference on Software Maintenance and Reengineering (Cat. No. PR00090).

[28]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[29]  René L. Krikhaar,et al.  Architecture analysis tools to support evolution of large industrial systems , 2002, International Conference on Software Maintenance, 2002. Proceedings..