CatchML - A Language for Modeling and Verification of Context-Aware Exception Handling Behaviour
The context-aware exception handling (CAEH) is an error recovery technique employed to improve the ubiquitous software robustness. The design of CAEH is a difficult and error-prone task. The erroneous specification of such conditions represents a critical design fault that can lead the CAEH mechanism to behave erroneously or improperly at runtime. To deal with this problem, we propose a domain-specific language for modeling CAEH, called CatchML, using a high-level interface to make the design of CAEH models simpler and more intuitive. The CatchML language is integrated into a tool to allow designers to perform automatic model verifications by looking at the errors directly in the specification code. We conducted a case study on a sample system called UbiParking with nine volunteers. The results showed that the CatchML language is easy to model the context-aware exception handling and also allowed the participants to quickly locate the injected design faults.
Beder, D. M. and de Araújo, R. B. (2011). Towards the definition of a context-aware exception handling mechanism. In Dependable Computing Workshops (LADCW), 2011 Fifth Latin-American Symposium on, pages 25–28. IEEE.
Cacho, N., César, T., Filipe, T., Soares, E., Cassio, A., Souza, R., Garcia, I., Barbosa, E. A., and Garcia, A. (2014). Trading robustness for maintainability: An empirical study of evolving c# programs. In Proc. of the ICSE’14, pages 584–595.
Chetan, S., Ranganathan, A., and Campbell, R. (2005). Towards fault tolerance pervasive computing. Technology and Society Magazine, IEEE, 24(1):38–44.
Cho, E.-S. and Helal, S. (2011). A situation-based exception detection mechanism for safety in pervasive systems. In 2011 IEEE/IPSJ 11th International Symposium on Applications and the Internet (SAINT), pages 196 –201. IEEE.
Cho, E.-S. and Helal, S. (2012). Toward efficient detection of semantic exceptions in context-aware systems. In Proc. of the 9th International Conference on Ubiquitous Intelligence Computing and 9th International Conference on Autonomic Trusted Computing (UIC-ATC), pages 826 –831.
Damasceno, K., Cacho, N., Garcia, A., Romanovsky, A., and Lucena, C. (2006). Contextaware exception handling in mobile agent systems: the moca case. In Proc. of the International workshop on software engineering for large-scale multi-agent systems, pages 37–44. ACM.
Filho, C. A. B. d. Q., Andrade, R. M. C., Rocha, L. S., Braga, R. B., and Oliveira, C. T. d. (2014). Conext-u: A context-aware exception handling mechanism for task-based ubiquitous systems. In Proc. of 28th International Conference on Advanced Information Networking and Applications Workshops, WAINA ’14, pages 127–132, Washington, DC, USA. IEEE Computer Society.
Kienzle, J. (2008). On exceptions and the software development life cycle. In Proceedings of the 4th International Workshop on Exception Handling, WEH’08, pages 32–38, New York, NY, USA. ACM Press.
Knudsen, J. L. (1987). Better exception-handling in block-structured systems. IEEE Software, 4(3):40–49.
Kulkarni, D. and Tripathi, A. (2010). A framework for programming robust context-aware applications. IEEE Transaction Software Engineering, 36(2):184–197.
Loke, S. W. (2009). Building taskable spaces over ubiquitous services. IEEE Pervasive Computing, 8(4):72–78.
Mercadal, J., Enard, Q., Consel, C., and Loriant, N. (2010). A domain-specific approach to architecturing error handling in pervasive computing. In Proceedings of OOPSLA ’10, pages 47–61, New York, NY, USA. ACM.
Parnas, D. L. and Würges, H. (1976). Response to undesired events in software systems. In Proc. of ICSE’76, pages 437–446, Los Alamitos, CA, USA. IEEE Computer Society.
Patikirikorala, T., Colman, A., Han, J., and Wang, L. (2012). A systematic survey on the design of self-adaptive software systems using control engineering approaches. In Proceedings of the SEAMS’12, pages 33–42, Piscataway, NJ, USA. IEEE Press.
Pryss, R. and Reichert, M. (2017). Context-based prevention and handling of exceptions for human-centric mobile services. In 2017 IEEE International Conference on AI Mobile Services (AIMS), pages 100–104.
Rocha, L., Andrade, R., and Garcia, A. (2013). A method for model checking context-aware exception handling. In Software Engineering (SBES), 2013 27th Brazilian Symposium on, pages 59–68.
Rocha, L. S. and Andrade, R. M. C. (2012). Towards a formal model to reason about context-aware exception handling. In Exception Handling (WEH), 2012 5th International Workshop on, pages 27 –33.
Sacramento, V., Endler, M., Rubinsztejn, H. K., Lima, L. S., Goncalves, K., Nascimento, F. N., and Bueno, G. A. (2004). Moca: A middleware for developing collaborative applications for mobile users. Distributed Systems Online, IEEE, 5(10):2–2.
Voelter, M., Benz, S., Dietrich, C., Engelmann, B., Kats, L., Helander, M., Visser, E., and Wachsmuth, G. (2013). DSL Engineering - Designing, Implementing and Using Domain-Specific Languages. dslbook.org.
Weiser, M. (1991). The computer for the 21st century. Scientific American, 265(3):94–104.