Making Pattern- and Model-Based Software Development More Rigorous

Pattern-based and model-based software development approaches have a high potential to improve the quality of software. Patterns allow engineers to re-use established and proven development knowledge. Developing software by constructing a sequence of models provides engineers with various possibilities for validation, because the different development models are not independent of each other and hence can be checked for coherence. We present a UML profile equipped with numerous OCL constraints that supports a pattern- and model-based software development process. The basis of the UML profile is a representation of problem frames, which are patterns supporting requirements analysis. OCL constraints provide a formal underpinning of the development process and allow one to perform semantic checks every time a new model is set up. Our approach is supported by a tool, called UML4PF. The tool is based on the Eclipse development environment, extended by an EMF-based UML tool, in our case, Papyrus. In this paper, we specifically focus on ensuring that problem frames are instantiated correctly. We illustrate our approach by the case study of an automatic teller machine.

[1]  Sandy Friedenthal Systems Modeling Language (SysML) Specification , 2004 .

[2]  Gerard Meszaros,et al.  xUnit Test Patterns: Refactoring Test Code , 2007 .

[3]  Maritta Heisel,et al.  A Formal Metamodel for Problem Frames , 2008, MoDELS.

[4]  Michael Jackson,et al.  Problem frame semantics for software development , 2005, Software & Systems Modeling.

[5]  Maritta Heisel,et al.  A Pattern System for Security Requirements Engineering , 2007, The Second International Conference on Availability, Reliability and Security (ARES'07).

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

[7]  Mary Shaw,et al.  Software architecture: the next step for object technology (panel) , 1993, OOPSLA '93.

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

[9]  Maritta Heisel,et al.  Component composition through architectural patterns for problem frames , 2006, 2006 13th Asia Pacific Software Engineering Conference (APSEC'06).

[10]  Maritta Heisel,et al.  A UML Profile for Requirements Analysis of Dependable Software , 2010, SAFECOMP.

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

[12]  Luigi Lavazza,et al.  Towards the integration of sysml and problem frames , 2008, IWAAPF '08.

[13]  Axel van Lamsweerde From Worlds to Machines , 2009 .

[14]  R Day,et al.  The eclipse open-development platform , 2008 .

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

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

[17]  Daniel Jackson,et al.  Requirement progression in problem frames: deriving specifications from requirements , 2007, Requirements Engineering.

[18]  James Coplien,et al.  Advanced C++ Programming Styles and Idioms , 1991, Proceedings. Technology of Object-Oriented Languages and Systems, TOOLS 25 (Cat. No.97TB100239).

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

[20]  John Thomas Berry,et al.  Advanced C Programming , 1986 .

[21]  Maritta Heisel,et al.  A Systematic Account of Problem Frames , 2007, EuroPLoP.

[22]  Paul Kimmel Advanced C# Programming , 2002 .

[23]  Charles B. Haley Using problem frames with distributed architectures: a case for cardinality on interfaces , 2003 .