Goal-Oriented Software Architecting

Designing software architectures to meet both functional and non-functional requirements (FRs and NFRs) is difficult as it oftentimes relies on the skill and experience of the architect, and the resulting architectures are rarely derived directly from the requirements models. As a result, the relationships between the two artifacts are not explicitly captured, making it difficult to reason more precisely whether an architecture indeed meets its requirements, and if yes, why. This chapter presents a goal-oriented software architecting approach, where FRs and NFRs are treated as goals to be achieved, which are refined and used to explore achievement alternatives. The chosen alternatives and the goal model are then used to derive, using the provided mapping rules, a logical architecture, which is further mapped to a final concrete architecture by applying an architectural style and architectural patterns chosen based on the NFRs. The approach has been applied in an empirical study based on the 1992 London ambulance dispatch system.

[1]  Jan Bosch,et al.  Scenario-based software architecture reengineering , 1998, Proceedings. Fifth International Conference on Software Reuse (Cat. No.98TB100203).

[2]  John Mylopoulos,et al.  Goal-Oriented Requirements Engineering, Part II , 2006, 14th IEEE International Requirements Engineering Conference (RE'06).

[3]  Axel van Lamsweerde,et al.  From System Goals to Software Architecture , 2003, SFM.

[4]  Robert L. Nord,et al.  Applied Software Architecture , 1999, Addison Wesley object technology series.

[5]  Jan Bosch,et al.  Software architecture design: evaluation and transformation , 1999, Proceedings ECBS'99. IEEE Conference and Workshop on Engineering of Computer-Based Systems.

[6]  Peter H. Feiler,et al.  Pattern-Based Analysis of an Embedded Real-Time System Architecture , 2004, IFIP-WADL.

[7]  Julio Cesar Sampaio do Prado Leite,et al.  On Non-Functional Requirements in Software Engineering , 2009, Conceptual Modeling: Foundations and Applications.

[8]  Julio Cesar Sampaio do Prado Leite,et al.  An NFR Pattern Approach to Dealing with NFRs , 2010, 2010 18th IEEE International Requirements Engineering Conference.

[9]  Sam Supakkul,et al.  Confirming and Reconfirming Architectural Decisions on Scalability: A Goal-Driven Simulation Approach , 2009, OTM Workshops.

[10]  B. Kitchenham,et al.  Case Studies for Method and Tool Evaluation , 1995, IEEE Softw..

[11]  Neil B. Harrison,et al.  Leveraging Architecture Patterns to Satisfy Quality Attributes , 2007, ECSA.

[12]  Jianjun Zhao Using Dependence Analysis to Support Software Architecture Understanding , 2001, ArXiv.

[13]  Stephen Fickas,et al.  Goal-Directed Requirements Acquisition , 1993, Sci. Comput. Program..

[14]  Robert L. Nord,et al.  A general model of software architecture design derived from five industrial approaches , 2007, J. Syst. Softw..

[15]  Eric Yu,et al.  Conceptual Modeling: Foundations and Applications , 2009 .

[16]  Leonard J. Bass,et al.  SAAM: a method for analyzing the properties of software architectures , 1994, Proceedings of 16th International Conference on Software Engineering.

[17]  Rick Kazman,et al.  Evaluating Software Architectures: Methods and Case Studies , 2001 .

[18]  John Mylopoulos,et al.  Representing and Using Nonfunctional Requirements: A Process-Oriented Approach , 1992, IEEE Trans. Software Eng..

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

[20]  Mehdi Jazayeri,et al.  Software Architecture for Product Families: Principles and Practice , 2000 .

[21]  Darren Dalcher,et al.  Abstract‐I , 2002 .

[22]  Sam Supakkul,et al.  A UML profile for goal-oriented and use case-driven representation of NFRs and FRs , 2005, Third ACIS Int'l Conference on Software Engineering Research, Management and Applications (SERA'05).

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

[24]  Paul Clements,et al.  Documenting Component and Connector Views with UML 2.0 , 2004 .

[25]  Philippe Kruchten,et al.  The Past, Present, and Future for Software Architecture , 2006, IEEE Software.

[26]  Alexander L. Wolf,et al.  Succeedings of the 8th international workshop on software specification and design , 1996, SOEN.

[27]  John Mylopoulos,et al.  Understanding "why" in software process modelling, analysis, and design , 1994, Proceedings of 16th International Conference on Software Engineering.

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