Composing architectures based on architectural patterns for problem frames

The use of patterns is a promising way of developing high-quality software in a systematic way. Patterns can be used in different phases of the software lifecycle. Problem frames are patterns for representing simple software development problems, and architectural patterns are patterns for representing the coarse-grained structure of a piece of software. In a recent paper, we have defined architectural patterns corresponding to Jackson’s problem frames. To make use of problem frames, complex problems have to be decomposed into simple ones. The corresponding architectural patterns then provide solution structures for these simple problems. Now the question arises how to combine the solutions structures of the simple subproblems to obtain a solution structure for the complex problem. The present paper addresses this question. Different subproblems of a complex problem can be related in various ways. They can be independent of each other, they can exclude each other, or they may have to be solved in a specific order. Such information can be used to combine the solutions structures of the subproblem to a solution structure of the overall problem. In this paper, we present a pattern-based software development process using problem frames and the corresponding architectural patterns. In decomposing a complex problem into simple subproblems, the relationships between the subproblems are recorded explicitly. Based on this information, we give guidelines how to derive the software architecture for the overall problem from the software architectures of the simple subproblems.

[1]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[2]  David Lorge Parnas,et al.  Functional Documents for Computer Systems , 1995, Sci. Comput. Program..

[3]  Pamela Zave,et al.  Deriving Specifications from Requirements: an Example , 1995, 1995 17th International Conference on Software Engineering.

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

[5]  Martin Fowler,et al.  Analysis patterns - reusable object models , 1996, Addison-Wesley series in object-oriented software engineering.

[6]  Michael Jackson,et al.  Four dark corners of requirements engineering , 1997, TSEM.

[7]  Neil A. M. Maiden,et al.  The Domain Theory for Requirements Engineering , 1998, IEEE Trans. Software Eng..

[8]  Christine Choppy,et al.  Using CASL to Specify the Requirements and the Design: A Problem Specific Approach , 1999, WADT.

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

[10]  Constance L. Heitmeyer,et al.  Hardware/Software Co-Design and Co-Validation Using the SCR Method , 1999 .

[11]  John Daniels,et al.  UML Components: A Simple Process for Specifying Component-Based Software , 2000 .

[12]  Nikolai Mansurov,et al.  Automatic synthesis of SDL from MSC and its applications in forward and reverse engineering , 2001, Comput. Lang..

[13]  Alistair G. Sutcliffe,et al.  The domain theory - patterns for knowledge and software reuse , 2002 .

[14]  Maritta Heisel,et al.  Use of Patterns in Formal Development: Systematic Transition from Problems to Architectural Designs , 2002, WADT.

[15]  Helen M. Edwards,et al.  Problem frames: analyzing and structuring software development problems , 2002, Softw. Test. Verification Reliab..

[16]  Bashar Nuseibeh,et al.  Relating software requirements and architectures using problem frames , 2002, Proceedings IEEE Joint International Conference on Requirements Engineering.

[17]  Luigi Lavazza,et al.  A UML-based Approach for Representing Problem Frames , 2004 .

[18]  Bashar Nuseibeh,et al.  Problem Frames: A Case for Coordination , 2004, COORDINATION.

[19]  Flavio Oquendo,et al.  Software Architecture , 2004, Lecture Notes in Computer Science.

[20]  Bashar Nuseibeh,et al.  Architecture-driven problem decomposition , 2004, Proceedings. 12th IEEE International Requirements Engineering Conference, 2004..

[21]  Maritta Heisel,et al.  Architectural patterns for problem frames , 2005, IEE Proc. Softw..