ABSTRACT
In any IT-intensive organization, it is useful to have a model to associate a value with software and system architecture decisions. More generally, any effort---a project undertaken by a team---needs to have an associated value to offset its labor and capital costs. Unfortunately, it is extremely difficult to precisely evaluate the benefit of "architecture projects"---those that aim to improve one or more quality attributes of a system via a structural transformation without (generally) changing its behavior. We often resort to anecdotal and informal "hand-waving" arguments of risk reduction or increased developer productivity. These arguments are typically unsatisfying to the management of organizations accustomed to decision-making based on concrete metrics. This paper will discuss research done to address this long-standing dilemma. Specifically, we will present a model derived from analyzing actual projects undertaken at Vistaprint Corporation. The model presented is derived from an analysis of effort tracked against modifications to specific software components before and after a significant architectural transformation to the subsystem housing those components. In this paper, we will discuss the development, implementation, and iteration of the model and the results that we have obtained.
- Albrecht, A. J. and Gaffney, J. R. 1983. Software Function, Source Lines of Code, and Development Effort Prediction: A Software Science Validation. IEEE Transactions on Software Engineering 9, 6, 639--648. Google ScholarDigital Library
- Bachman, F., Bass, L., and Nord, R. 2007. Modifiability Tactics. Technical Report CMU/SEI-2007-TR-002 September 2007. Carnegie Mellon Software Engineering Institute. http://www.sei.cmu.edu/library/abstracts/reports/07tr002.cfmGoogle Scholar
- Baldwin, C. Y. and Clark, K. B. 2000. Design Rules: The Power of Modularity. MIT Press. Google ScholarCross Ref
- Bass, L., Clements, P., and Kazman, R. 2003. Software Architecture in Practice 2nd Edition. Addison-Wesley. Google ScholarDigital Library
- Biffl, S., Aurum, A., Boehm, B., Erdogmus, H., & Grunbacher, P. (eds.) 1998. Value-Based Software Engineering, Springer-Verlag. Google ScholarDigital Library
- Boehm, B. & Turner, R. 2004. Balancing Agility and Discipline: A Guide for the Perplexed. Addison-Wesley. Google ScholarDigital Library
- Briand, L. C., Daly, J., and Wüst, J. 1999. A Unified Framework for Coupling Measurement in Object Oriented Systems. IEEE Transactions on Software Engineering, 25, 1, 91--121. Google ScholarDigital Library
- Chidamber, S. R. and Kemerer, C. F. 1994. A Metrics Suite for Object Oriented Design. IEEE Transactions on Software Engineering. 20, 6, 476--493. Google ScholarDigital Library
- Constructive Cost Model, http://sunset.usc.edu/csse/research/COCOMOII/cocomo_main.html, Last accessed February 2010.Google Scholar
- Kazman, R., Asundi, J., and Klein, M. 2002. Making Architecture Design Decisions: An Economic Approach. Technical Report. CMU/SEI-2002-TR-035, ADA408740. Carnegie Mellon Software Engineering Institute. http://www.sei.cmu.edu/pub/documents/02.reports/pdf/02tr035.pdf.Google Scholar
- Lattix -- Software for Architecture Management. http://www.lattix.com/, Last accessed February 2010.Google Scholar
- Lopes, C. V. and Bajracharya, S. 2005. An Analysis of Modularity in Aspect-Oriented Design. In Proceedings of Aspect-Oriented Software Development (AOSD). Chicago, IL, March 14--18, 2005. ACM. Google ScholarDigital Library
- MacCormack, A., Rusnak, J., and Baldwin, C. 2008. Exploring the Duality between Product and Organizational Architectures: A Test of the Mirroring Hypothesis. Harvard Business School Working Paper. http://hbswk.hbs.edu/item/5894.html.Google Scholar
- Meredith, J. R. and Mantel, S. J. 2006. Project Management: A Managerial Approach, 6th edition. Wiley & Sons.Google Scholar
- Moore, M., Kazman, R., Klein, M., and Asundi, J. 2003. Quantifying the Value of Architecture Design Decisions: Lessons from the Field. In Proceedings of ICSE 25, Portland, OR. 557--562. Google ScholarDigital Library
- Ozkaya, I., Kazman, R. and Klein, M. 2007. Quality-Attribute-Based Economic Valuation of Architectural Patterns. Technical Report. CMU/SEI-2007-TR-003. Carnegie Mellon Software Engineering Institute. http://www.sei.cmu.edu/pub/documents/07.reports/07tr003.pdf.Google Scholar
- Schneider, G. & Winters, J. P. 1998. Applying Use Cases: A Practical Guide. Addison-Wesley. Google ScholarDigital Library
- Shepperd M. and Schofield, C. 1997. Estimating Software Project Effort Using Analogies. IEEE Transactions on Software Engineering 23, 12, 732--743. Google ScholarDigital Library
- SonarJ, http://www.hello2morrow.com/products/sonarj/whitepapers, Last accessed February 2010.Google Scholar
- Sullivan, K. J., Griswold, W., Cai, Y., and Hallen, B. 2001. The Structure and Value of Modularity in Software Design. In Proceedings of the 9th ACM SIGSOFT Symposium on the Foundations of Software Engineering. Vienna, Austria. 99--108. ACM. Google ScholarDigital Library
- Sullivan K. J., Griswold, W. G., Song, Y., Cai, Y., Shonle, M., Tewari, N., and Rajan, H. 2005. Information Hiding Interfaces for Aspect-Oriented Design, 166--175. In Proceedings of the Joint 10th European Software Engineering Conference and 13th ACM SIGSOFT Symposium on the Foundations of Software Engineering. Lisbon, Portugal, September 5--9. Google ScholarDigital Library
Index Terms
- A cost-benefit framework for making architectural decisions in a business context
Recommendations
Simulation-Based Architectural Evaluation for Collaborative Systems
SCCC '02: Proceedings of the XII International Conference of the Chilean Computer Science SocietySoftware quality can be expressed through various attributes, many of which depend on the architecture by nature. Therefore an architecture-focused development process, with an integrated self-evaluation, must be selected. Since there is no known ...
Software Architecture-Centric Methods and Agile Development
Including architecture-centric design and analysis methods in the Extreme Programming framework can help software developers address quality attributes in an explicit, methodical, engineering-principled way. Properly managed, architecture-centric ...
An Empirical Evaluation model for Software Architecture Maintainability for Object oriented Design
ICIA-16: Proceedings of the International Conference on Informatics and AnalyticsThe success of any software depends on the achievement of the quality requirements of the system. For this reason, the evaluation of software architecture to meet its quality demands is necessary. With regard to a set of desired quality attribute, ...
Comments