Software & Systems Modeling

, Volume 3, Issue 3, pp 235–253 | Cite as

Reconciling software requirements and architectures with intermediate models

Regular Paper

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.

Keywords

Requirements elicitation and negotiation Architecture modeling Intermediate models Traceability  

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    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–398CrossRefGoogle Scholar
  2. 2.
    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–180CrossRefGoogle Scholar
  3. 3.
    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–44CrossRefGoogle Scholar
  4. 4.
    Boehm BW, Grünbacher P, Briggs RO (2001) Developing Groupware for Requirements Negotiation: Lessons Learned. IEEE Software 18(3): 46–55CrossRefGoogle Scholar
  5. 5.
    Brandozzi M, Perry DE (2001) Transforming Goal-Oriented Requirement Specifications into Architecture Prescriptions. In: Workshop “From Software Requirements to Architectures” (STRAW’01) at ICSE 2001Google Scholar
  6. 6.
    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, HawaiiGoogle Scholar
  7. 7.
    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). MontrealGoogle Scholar
  8. 8.
    Chung L, Gross D, Yu E (1999) Architectural Design to Meet Stakeholder Requirements. In: Donohue P (ed.): Software Architecture, Kluwer Academic Publishers, pp. 545–564Google Scholar
  9. 9.
    Chung L, Nixon BA, Yu E, Mylopoulos J (2000) Non-Functional Requirements in Software Engineering. KluwerGoogle Scholar
  10. 10.
    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)Google Scholar
  11. 11.
    Egyed A, Grünbacher P (2002) Automating Requirements Traceability: Beyond the Record & Replay Paradigm. In: 17th Int’l Conf. Automated Software Engineering. IEEE CS, EdinburghGoogle Scholar
  12. 12.
    Egyed A, Medvidovic N, Gacek C (2000) A Component-Based Perspective of Software Mismatch Detection and Resolution. IEE Software Engineering 147(6): 225–236CrossRefGoogle Scholar
  13. 13.
    Egyed AF, Boehm BW (1999) Comparing Software System Requirements Negotiation Patterns. Systems Engineering Journal 6(1): 1–14CrossRefGoogle Scholar
  14. 14.
    Fielding RT (2000) Architectural Styles and the Design of Network-based Software Architectures. University of California, IrvineGoogle Scholar
  15. 15.
    Franch X, Maiden NAM (2003) Modeling Component Dependencies to Inform their Selection. In: 2nd International Conference on COTS-Based Software Systems, SpringerGoogle Scholar
  16. 16.
    Gacek C (1998) Detecting Architectural Mismatches During Systems Composition. In: Center for Software Engineering, University of Southern California, Los Angeles, CA 90089Google Scholar
  17. 17.
    Gieszl LR (1992) Traceability for Integration. In: 2nd International Conference on Systems Integration (ICSI 92)Google Scholar
  18. 18.
    Gotel O, Finkelstein A (1995) Contribution structures. In: Second IEEE International Symposium on Requirements Engineering, York, EnglandGoogle Scholar
  19. 19.
    Gotel OCZ, Finkelstein ACW (1994) An Analysis of the Requirements Traceability Problem. In: 1st International Conference on Requirements EngineeringGoogle Scholar
  20. 20.
    Grünbacher P, Briggs RO (2001) Surfacing Tacit Knowledge in Requirements Negotiation: Experiences using EasyWinWin. In: 34th Hawaii International Conference on System SciencesGoogle Scholar
  21. 21.
    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 CSGoogle Scholar
  22. 22.
    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, GermanyGoogle Scholar
  23. 23.
    IEEE-610 (1990) IEEE Standard Glossary of Software Engineering Terminology. The Institute of Electrical and Electronics EngineersGoogle Scholar
  24. 24.
    IEEE-1320 (1999) IEEE Standards Software Engineering: IEEE Standard for Functional Modeling Language – Syntax and Semantics for IDEF0. The Institute of Electrical and Electronics EngineersGoogle Scholar
  25. 25.
    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, CAGoogle Scholar
  26. 26.
    Kunz W, Rittel H (1970) Issues as elements of information systems. Center for Planning and Development Research, Univ. of California, BerkeleyGoogle Scholar
  27. 27.
    Lamsweerde Av, Darimont R, Letier E (1998) Managing Conflicts in Goal-Driven Requirements Engineering. IEEE Transactions on Software Engineering 24(11): 908–926CrossRefGoogle Scholar
  28. 28.
    Liu J, Traynor O, Krieg-Bruckner B (1992) Knowledge-Based Transformational Programming. In: 4th International Conference on Software Engineering and Knowledge EngineeringGoogle Scholar
  29. 29.
    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/Google Scholar
  30. 30.
    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, CAGoogle Scholar
  31. 31.
    Medvidovic N, Taylor RN (2000) A Classification and Comparison Framework for Software Architecture Description Languages. IEEE Transactions on Software Engineering 26(1): 70–93CrossRefGoogle Scholar
  32. 32.
    Mehta N, Medvidovic N (2003) Composing Architectural Styles from Architectural Primitives: Proceedings. In: ESEC/FSE, HelsinkiGoogle Scholar
  33. 33.
    Mehta NR, Medvidovic N, Phadke S (2000) Towards a Taxonomy of Software Connectors. In: 22nd International Conference on Software Engineering, Limerick, IrelandGoogle Scholar
  34. 34.
    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 CarolinaGoogle Scholar
  35. 35.
    Mullery G (1979) CORE: A Method for Controlled Requirements Specification. In: 4th International Conference on Software Engineering, Munich, GermanyGoogle Scholar
  36. 36.
    Nuseibeh B (2001) Weaving Together Requirements and Architectures. IEEE Computer 34(3): 115–117CrossRefGoogle Scholar
  37. 37.
    Nuseibeh B, Easterbrook S (2000) Requirements Engineering: A Roadmap. In: The Future of Software Engineering, Special Issue 22nd International Conference on Software Engineering, ACM-IEEEGoogle Scholar
  38. 38.
    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–773CrossRefGoogle Scholar
  39. 39.
    Partsch H, Steinbruggen R (1983) Program Transformation Systems. ACM Computing Surveys 15(3): 199–236MathSciNetCrossRefGoogle Scholar
  40. 40.
    Perry DE, Wolf AL (1992) Foundations for the Study of Software Architectures. Software Engineering NotesGoogle Scholar
  41. 41.
    Potts C, Burns G (1988) Recording the reasons for design decisions. In 10th International Conference on Software Engineering, IEEE Comp. Soc. PressGoogle Scholar
  42. 42.
    Radice R, Roth N, O’Hara A Jr, Ciarfella W (1985) A Programming Process Architecture. IBM Systems Journal 24(2): 79–90CrossRefGoogle Scholar
  43. 43.
    Ramesh B, Jarke M (2001) Toward Reference Models for Requirements Traceability. IEEE Transactions on Software Engineering 27(4): 58–93CrossRefGoogle Scholar
  44. 44.
    Robertson S, Robertson J (1999) Mastering the Requirements Process, Addison-WesleyGoogle Scholar
  45. 45.
    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 ConferenceGoogle Scholar
  46. 46.
    Shaw M, Garlan D (1996) Software Architecture: Perspectives on an Emerging Discipline, Prentice HallGoogle Scholar
  47. 47.
    Siegel S, Castellan NJ (1988) Nonparametric Statistics for the Behavioral Sciences, McGraw-Hill, New YorkGoogle Scholar
  48. 48.
    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 PressGoogle Scholar
  49. 49.
    Tracz W (1995) DSSA (Domain-Specific Software Architecture) Pedagogical Example. ACM SIGSOFT Software Engineering NotesGoogle Scholar

Copyright information

© Springer-Verlag 2003

Authors and Affiliations

  1. 1.Systems Engineering and AutomationJohannes Kepler UniversityLinzAustria
  2. 2.Teknowledge CorporationMarina Del ReyUSA
  3. 3.Computer Science Dept.Univ. of Southern CaliforniaLos AngelesUSA

Personalised recommendations