Concern-Oriented Software Design

There exist many solutions to solve a given design problem, and it is difficult to capture the essence of a solution and make it reusable for future designs. Furthermore, many variations of a given solution may exist, and choosing the best alternative depends on application-specific high-level goals and non-functional requirements. This paper proposes Concern-Oriented Software Design, a modelling technique that focuses on concerns as units of reuse. A concern groups related models serving the same purpose, and provides three interfaces to facilitate reuse. The variation interface presents the design alternatives and their impact on non-functional requirements. The customization interface of the selected alternative details how to adapt the generic solution to a specific context. Finally, the usage interface specifies the provided behaviour. We illustrate our approach by presenting the concern models of variations of the Observer design pattern, which internally depends on the Association concern to link observers and subjects.

[1]  Laurence Tratt,et al.  Eco: A Language Composition Editor , 2014, SLE.

[2]  Hao Luo,et al.  Towards a Declarative, Constraint-Oriented Semantics with a Generic Evaluation Algorithm for GRL , 2011, iStar.

[3]  Eric Yu,et al.  Modeling Strategic Relationships for Process Reengineering , 1995, Social Modeling for Requirements Engineering.

[4]  Jochen Ludewig,et al.  Models in software engineering – an introduction , 2003, Software and Systems Modeling.

[5]  João Araújo,et al.  AoURN-based modeling and analysis of software product lines , 2011, Software Quality Journal.

[6]  Marek Hatala,et al.  Aspect-Oriented Feature Models , 2010, MoDELS.

[7]  Klaus Pohl,et al.  Software Product Line Engineering - Foundations, Principles, and Techniques , 2005 .

[8]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

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

[10]  Lianping Chen,et al.  A systematic review of evaluation of variability management approaches in software product lines , 2011, Inf. Softw. Technol..

[11]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[12]  Wisam Al Abed,et al.  TouchRAM: A Multitouch-Enabled Tool for Aspect-Oriented Software Design , 2012, SLE.

[13]  Krzysztof Czarnecki,et al.  Staged configuration through specialization and multilevel configuration of feature models , 2005, Softw. Process. Improv. Pract..

[14]  Guy L. Steele,et al.  Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley)) , 2005 .

[15]  Kevin Lano,et al.  Slicing of UML models using model transformations , 2010, MODELS'10.

[16]  Andreas Reuter,et al.  Transaction Processing: Concepts and Techniques , 1992 .

[17]  Uwe Aßmann,et al.  Concern-based (de)composition of model-driven software development processes , 2010, MODELS'10.

[18]  Klaus Pohl,et al.  Software Product Line Engineering , 2005 .

[19]  Klaus Pohl,et al.  Variability management in software product line engineering , 2006, ICSE.

[20]  Eric Yu,et al.  Evaluating goal models within the goal-oriented requirement language , 2010 .

[21]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[22]  Jacques Klein,et al.  Aspect-oriented multi-view modeling , 2009, AOSD '09.

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

[24]  Uwe Aßmann,et al.  Reuseware - Adding Modularity to Your Language of Choice , 2007, J. Object Technol..

[25]  Christopher G. Lasater,et al.  Design Patterns , 2008, Wiley Encyclopedia of Computer Science and Engineering.

[26]  Charles W. Krueger,et al.  Software reuse , 1992, CSUR.