Abstract
Little guidance and few methods are available for the refinement of software requirements into an architecture satisfying those requirements. Part of the challenge stems from the fact that requirements and architectures use different terms and concepts to capture the model elements relevant to each. In this paper we will present CBSP, a lightweight approach intended to provide a systematic way of reconciling requirements and architectures using intermediate models. CBSP leverages a simple set of architectural concepts (components, connectors, overall systems, and their properties) to recast and refine the requirements into an intermediate model facilitating their mapping to architectures. Furthermore, the intermediate CBSP model eases capturing and maintaining arbitrarily complex relationships between requirements and architectural model elements, as well as among CBSP model elements. We have applied CBSP within the context of different requirements and architecture definition techniques. We leverage that experience in this paper to demonstrate the CBSP method and tool support using a large-scale example.
Similar content being viewed by others
References
Batory D, O’Malley S (1992) The Design and Implementation of Hierarchical Software Systems with Reusable Components. ACM Transactions on Software Engineering and Methodology (TOSEM) 1(4): 355–398
Bauer FL, Moller B, Partsch H, Pepper P (1989) Formal Program Construction by Transformations-Computer-Aided, Intuition-Guided Programming. IEEE Transactions on Software Engineering 15(2): 165–180
Boehm BW, Egyed A, Kwan J, Port D, Shah A, Madachy R (1998) Using the WinWin Spiral Model: A Case Study. IEEE Computer 7: 33–44
Boehm BW, Grünbacher P, Briggs RO (2001) Developing Groupware for Requirements Negotiation: Lessons Learned. IEEE Software 18(3): 46–55
Brandozzi M, Perry DE (2001) Transforming Goal-Oriented Requirement Specifications into Architecture Prescriptions. In: Workshop “From Software Requirements to Architectures” (STRAW’01) at ICSE 2001
Briggs RO, Grünbacher P (2002) EasyWinWin: Managing Complexity in Requirements Negotiation with GSS. In: 35th Annual Hawaii International Conference on System Sciences (HICSS’02) – Volume 1. Big Island, Hawaii
de Bruin H, van Vliet H, Baida Z (2002) Documenting and Analyzing a Context-Sensitive Design Space. In: Working IFIP/IEEE Conference on Software Architecture (WICSA 3). Montreal
Chung L, Gross D, Yu E (1999) Architectural Design to Meet Stakeholder Requirements. In: Donohue P (ed.): Software Architecture, Kluwer Academic Publishers, pp. 545–564
Chung L, Nixon BA, Yu E, Mylopoulos J (2000) Non-Functional Requirements in Software Engineering. Kluwer
Dardenne A, Fickas S, van Lamsweerde A (1993) Goal-Directed Concept Acquisition in Requirement Elicitation. In: 6th Int. Workshop on Software Specification and Design (IWSSD 6)
Egyed A, Grünbacher P (2002) Automating Requirements Traceability: Beyond the Record & Replay Paradigm. In: 17th Int’l Conf. Automated Software Engineering. IEEE CS, Edinburgh
Egyed A, Medvidovic N, Gacek C (2000) A Component-Based Perspective of Software Mismatch Detection and Resolution. IEE Software Engineering 147(6): 225–236
Egyed AF, Boehm BW (1999) Comparing Software System Requirements Negotiation Patterns. Systems Engineering Journal 6(1): 1–14
Fielding RT (2000) Architectural Styles and the Design of Network-based Software Architectures. University of California, Irvine
Franch X, Maiden NAM (2003) Modeling Component Dependencies to Inform their Selection. In: 2nd International Conference on COTS-Based Software Systems, Springer
Gacek C (1998) Detecting Architectural Mismatches During Systems Composition. In: Center for Software Engineering, University of Southern California, Los Angeles, CA 90089
Gieszl LR (1992) Traceability for Integration. In: 2nd International Conference on Systems Integration (ICSI 92)
Gotel O, Finkelstein A (1995) Contribution structures. In: Second IEEE International Symposium on Requirements Engineering, York, England
Gotel OCZ, Finkelstein ACW (1994) An Analysis of the Requirements Traceability Problem. In: 1st International Conference on Requirements Engineering
Grünbacher P, Briggs RO (2001) Surfacing Tacit Knowledge in Requirements Negotiation: Experiences using EasyWinWin. In: 34th Hawaii International Conference on System Sciences
Grünbacher P, Egyed A, Medvidovic N (2001) Reconciling Software Requirements and Architectures: The CBSP Approach. In: 5th IEEE International Symposium on Requirements Engineering, IEEE CS
Hall JG, Jackson M, Laney RC, Nuseibeh B, Rapanotti L (2002) Relating Software Requirements and Architectures using Problem Frames. In: IEEE International Requirements Engineering Conference (RE’02), Essen, Germany
IEEE-610 (1990) IEEE Standard Glossary of Software Engineering Terminology. The Institute of Electrical and Electronics Engineers
IEEE-1320 (1999) IEEE Standards Software Engineering: IEEE Standard for Functional Modeling Language – Syntax and Semantics for IDEF0. The Institute of Electrical and Electronics Engineers
Kazman R, Barbacci M, Klein M, Carrière SJ, Woods SG (1999) Experience with Performing Architecture Tradeoff Analysis. In: International Conference on Software Engineering. Los Angeles, CA
Kunz W, Rittel H (1970) Issues as elements of information systems. Center for Planning and Development Research, Univ. of California, Berkeley
Lamsweerde Av, Darimont R, Letier E (1998) Managing Conflicts in Goal-Driven Requirements Engineering. IEEE Transactions on Software Engineering 24(11): 908–926
Liu J, Traynor O, Krieg-Bruckner B (1992) Knowledge-Based Transformational Programming. In: 4th International Conference on Software Engineering and Knowledge Engineering
Medvidovic N, Egyed AF, Grünbacher P (2003) Stemming Architectural Erosion by Coupling Architectural Discovery and Recovery. In: STRAW’03: Second International SofTware Requirements to Architectures Workshop at ICSE 2003 Portland, Oregon. http://se.uwaterloo.ca/∼straw03/
Medvidovic N, Rosenblum DS, Taylor RN (1999) A Language and Environment for Architecture-Based Software Development and Evolution. In: International Conference on Software Engineering. Los Angeles, CA
Medvidovic N, Taylor RN (2000) A Classification and Comparison Framework for Software Architecture Description Languages. IEEE Transactions on Software Engineering 26(1): 70–93
Mehta N, Medvidovic N (2003) Composing Architectural Styles from Architectural Primitives: Proceedings. In: ESEC/FSE, Helsinki
Mehta NR, Medvidovic N, Phadke S (2000) Towards a Taxonomy of Software Connectors. In: 22nd International Conference on Software Engineering, Limerick, Ireland
Mikic-Rakic M, Mehta NR, Medvidovic N (2002) Architectural style requirements for self-healing systems. In: Proceedings of the Workshop on Self-Healing Systems, Charleston, South Carolina
Mullery G (1979) CORE: A Method for Controlled Requirements Specification. In: 4th International Conference on Software Engineering, Munich, Germany
Nuseibeh B (2001) Weaving Together Requirements and Architectures. IEEE Computer 34(3): 115–117
Nuseibeh B, Easterbrook S (2000) Requirements Engineering: A Roadmap. In: The Future of Software Engineering, Special Issue 22nd International Conference on Software Engineering, ACM-IEEE
Nuseibeh B, Kramer J, Finkelstein A (1994) A Framework for Expressing the Relationships Between Multiple Views in Requirements Specification. IEEE Transactions on Software Engineering 20(10): 760–773
Partsch H, Steinbruggen R (1983) Program Transformation Systems. ACM Computing Surveys 15(3): 199–236
Perry DE, Wolf AL (1992) Foundations for the Study of Software Architectures. Software Engineering Notes
Potts C, Burns G (1988) Recording the reasons for design decisions. In 10th International Conference on Software Engineering, IEEE Comp. Soc. Press
Radice R, Roth N, O’Hara A Jr, Ciarfella W (1985) A Programming Process Architecture. IBM Systems Journal 24(2): 79–90
Ramesh B, Jarke M (2001) Toward Reference Models for Requirements Traceability. IEEE Transactions on Software Engineering 27(4): 58–93
Robertson S, Robertson J (1999) Mastering the Requirements Process, Addison-Wesley
Shaw M, Clements P (1997) A Field Guide to Boxology: Preliminary Classification of Architectural Styles for Software Systems. In: COMPSAC, 21st Int’l Computer Software and Applications Conference
Shaw M, Garlan D (1996) Software Architecture: Perspectives on an Emerging Discipline, Prentice Hall
Siegel S, Castellan NJ (1988) Nonparametric Statistics for the Behavioral Sciences, McGraw-Hill, New York
Sommerville I, Sawyer P, Viller S (1998) Viewpoints for requirements elicitation: A practical approach. In: Third IEEE Internation Conference on Requirements Engineering (ICRE 98), Colorado Springs, IEEE CS Press
Tracz W (1995) DSSA (Domain-Specific Software Architecture) Pedagogical Example. ACM SIGSOFT Software Engineering Notes
Author information
Authors and Affiliations
Corresponding authors
Rights and permissions
About this article
Cite this article
Grünbacher, P., Egyed, A. & Medvidovic, N. Reconciling software requirements and architectures with intermediate models. Softw Syst Model 3, 235–253 (2004). https://doi.org/10.1007/s10270-003-0038-6
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10270-003-0038-6