Software Architecture Publications

Software architecture experience report

System builders have historically used informal software architecture models to understand options, make choices, and communicate with others. Research into software architecture over the past fifteen years has indicated that more precise architecture models may be beneficial. At a large financial firm, we applied precise software architecture techniques on four software projects and this experience has revealed a number of practical issues. We made the following observations across the projects:

  1. Architecture models can be used to bridge gaps between business requirements and technology
  2. A small collection of techniques and a detail knob are practical and useful in a variety of projects
  3. Architecture modeling techniques amplify the skills of the architects
  4. A model of domain concepts and relationships is helpful when building architecture models
  5. It is difficult to know when to stop adding detail to your architecture model

We believe that these observations motivate future research and can help practitioners make software architecture more effective in practice.

George Fairbanks, Kevin Bierhoff and Desmond D'Souza. Software Architecture at a Large Financial Firm. In Proceedings of ACM SIGPLAN Conference on Object Oriented Programs, Systems, Languages, and Applications (OOPSLA) 2006, Portland, OR, USA, 22-27 October 2006. CMU hosted copy bibtex

Organization and teaching issues with software architecture

A large financial company, struggling with legacy systems that did not interoperate, performed a pilot project to teach software architecture to an enthusiastic application development team. Experienced mentors, including the author, worked with the application team for seven months who completed their engineering goal successfully. However, the mentors were unsuccessful in their attempt to train any of the six members of application team to create architecture models on their own, though they were able to create them collaboratively with the mentors. This surprising result is due to the application team's strong preference for concrete artifacts over abstract ones. Even more surprising, an application developer from a different project, 'Developer X', read the architecture modeling documentation on an internal website and, without mentoring, created good architecture models within a few days. In light of this failure to teach software architecture, two short-term strategies are suggested for the use of software architecture in companies and long-term strategies are discussed.

George Fairbanks. Why Can't They Create Architecture Models Like Developer X? An Experience Report. In The 2003 International Conference on Software Engineering (ICSE'03), Portland, OR, 3-10 May 2003. CMU hosted copy bibtex