Integrating Aspects of Software Deployment in High-Level Executable Models

Software today is often developed for deployment on different architectures. In order to model and analyze the consequences of such deployment choices at an early stage in software development, it seems desirable to capture aspects of low-level deployment concerns in high-level models. In this paper, we propose an integration of a generic cost model for resource consumption with deployment components in timed ABS, an abstract behavioral specification language for executable object-oriented models. Deployment components reflect resource-restricted deployment scenarios, and are parametric in their allocated resources. The cost model may be adapted to specific resources such as concurrent processing capacities or memory. The approach is demonstrated on an example of a web shop with a cost model for concurrent processing resources. We use our simulation tool to analyze system response time for given usage scenarios, depending on the amount of resources allocated to the deployment components.

[1]  Gary T. Leavens,et al.  Beyond Assertions: Advanced Specification and Verification with JML and ESC/Java2 , 2005, FMCO.

[2]  Cliff B. Jones,et al.  Specifications are not (necessarily) executable , 1989 .

[3]  Thomas A. Henzinger,et al.  Resource Interfaces , 2003, EMSOFT.

[4]  Elvira Albert,et al.  Closed-Form Upper Bounds in Static Cost Analysis , 2011, Journal of Automated Reasoning.

[5]  Reiner Hähnle,et al.  ABS: A Core Language for Abstract Behavioral Specification , 2010, FMCO.

[6]  Einar Broch Johnsen,et al.  Simulating Concurrent Behaviors with Worst-Case Cost Bounds , 2011, FM.

[7]  Einar Broch Johnsen,et al.  Validating Timed Models of Deployment Components with Parametric Concurrency , 2010, FoVeOOS.

[8]  Suresh Jagannathan,et al.  Safe futures for Java , 2005, OOPSLA '05.

[9]  Paola Inverardi,et al.  Model-based performance prediction in software development: a survey , 2004, IEEE Transactions on Software Engineering.

[10]  Einar Broch Johnsen,et al.  Dynamic Resource Reallocation between Deployment Components , 2010, ICFEM.

[11]  Wang Yi,et al.  Task automata: Schedulability, decidability and undecidability , 2007, Inf. Comput..

[12]  Norbert E. Fuchs Specifications are (preferably) executable , 1992, Softw. Eng. J..

[13]  Kim G. Larsen,et al.  Testing Real-Time Systems Using UPPAAL , 2008, Formal Methods and Testing.

[14]  C. Murray Woodside,et al.  An intermediate metamodel with scenarios and resources for generating performance models from UML designs , 2007, Software & Systems Modeling.

[15]  Joe Armstrong,et al.  Programming Erlang: Software for a Concurrent World , 1993 .

[16]  Martin Odersky,et al.  Scala Actors: Unifying thread-based and event-based programming , 2009, Theor. Comput. Sci..

[17]  Narciso Martí-Oliet,et al.  All About Maude - A High-Performance Logical Framework, How to Specify, Program and Verify Systems in Rewriting Logic , 2007, All About Maude.

[18]  Frank S. de Boer,et al.  Schedulability of asynchronous real-time concurrent objects , 2009, J. Log. Algebraic Methods Program..

[19]  Carlo Ghezzi,et al.  Model evolution by run-time parameter adaptation , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[20]  Reiner Hähnle,et al.  Modeling Spatial and Temporal Variability with the HATS Abstract Behavioral Modeling Language , 2011, SFM.

[21]  Jozef Hooman,et al.  Modeling and Validating Distributed Embedded Real-Time Systems with VDM++ , 2006, FM.

[22]  Jeff Kramer,et al.  Is abstraction the key to computing? , 2007, CACM.