Abstract
Tracing program actions back to the concerns that have caused them and blaming specific code artifacts for concern interference are known challenges of AOP and related advanced modularity paradigms. In this work, we address these challenges in the context of AspectLTL, a temporal-logic-based language for the specification and implementation of crosscutting concerns, which has a composition and synthesis-based weaving process whose output is a correct-by-construction executable artifact. When a specification is realizable, we provide two-way traceability information that links each allowed or forbidden transition in the generated program with the aspects that have justified its presence or elimination. When a specification is unrealizable, we provide an interactive game proof that demonstrates conflicts that should be fixed. The techniques are implemented and demonstrated using running examples.
Preliminary version appeared in AOSD’12 [19]. This research was supported by The John von Neumann Minerva Center for the Development of Reactive Systems at the Weizmann Institute of Science. In addition, part of this research was funded by an Advanced Research Grant awarded to David Harel of the Weizmann Institute from the European Research Council (ERC) under the European Community’s 7th Framework Programme (FP7/2007-2013).
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
AspectJ Development Tools, http://www.eclipse.org/ajdt/
AspectLTL website, http://aspectltl.ysaar.net/
Bloem, R., Jobstmann, B., Piterman, N., Pnueli, A., Sa’ar, Y.: Synthesis of reactive(1) designs. Journal of Computer and System Sciences 78(3), 911–938 (2012)
Borger, W.D., Lagaisse, B., Joosen, W.: A generic and reflective debugging architecture to support runtime visibility and traceability of aspects. In: Sullivan, K.J., Moreira, A., Schwanninger, C., Gray, J. (eds.) AOSD, pp. 173–184. ACM (2009)
Burch, J.R., Clarke, E.M., McMillan, K.L., Dill, D.L., Hwang, L.J.: Symbolic model checking: 1020 states and beyond. Inf. Comput. 98(2), 142–170 (1992)
Cimatti, A., Roveri, M., Schuppan, V., Tchaltsev, A.: Diagnostic Information for Realizability. In: Logozzo, F., Peled, D.A., Zuck, L.D. (eds.) VMCAI 2008. LNCS, vol. 4905, pp. 52–67. Springer, Heidelberg (2008)
Felty, A.P., Namjoshi, K.S.: Feature specification and automated conflict detection. ACM Trans. Softw. Eng. Methodol. 12(1), 3–27 (2003)
Goldman, M., Katz, E., Katz, S.: MAVEN: modular aspect verification and interference analysis. Formal Methods in System Design 37(1), 61–92 (2010)
Hay, J.D., Atlee, J.M.: Composing features and resolving interactions. In: SIGSOFT FSE, pp. 110–119. ACM (2000)
Jackson, M., Zave, P.: Distributed feature composition: A virtual architecture for telecommunications services. IEEE Trans. Software Eng. 24(10), 831–847 (1998)
Katz, E., Katz, S.: Incremental analysis of interference among aspects. In: Clifton, C. (ed.) FOAL, pp. 29–38. ACM (2008)
Katz, S.: Aspect Categories and Classes of Temporal Properties. In: Rashid, A., Akşit, M. (eds.) Transactions on Aspect-Oriented Software Development I. LNCS, vol. 3880, pp. 106–134. Springer, Heidelberg (2006)
Kesten, Y., Pnueli, A.: Verification by augmented finitary abstraction. Inf. Comput. 163, 203–243 (2000)
Könighofer, R., Hofferek, G., Bloem, R.: Debugging formal specifications using simple counterstrategies. In: FMCAD, pp. 152–159. IEEE (2009)
Krishnamurthi, S., Fisler, K.: Foundations of incremental aspect model-checking. ACM Trans. Softw. Eng. Methodol. 16(2) (2007)
Li, H.C., Krishnamurthi, S., Fisler, K.: Verifying cross-cutting features as open systems. In: SIGSOFT FSE, pp. 89–98. ACM (2002)
Manna, Z., Pnueli, A.: The temporal logic of concurrent and reactive systems: specification. Springer (1992)
Maoz, S., Sa’ar, Y.: AspectLTL: an aspect language for LTL specifications. In: Borba, P., Chiba, S. (eds.) AOSD, pp. 19–30. ACM (2011)
Maoz, S., Sa’ar, Y.: Two-way traceability and conflict debugging for AspectLTL programs. In: Hirschfeld, R., Tanter, É., Sullivan, K.J., Gabriel, R.P. (eds.) AOSD, pp. 35–46. ACM (2012)
Piterman, N., Pnueli, A.: Faster solutions of Rabin and Streett games. In: LICS, pp. 275–284. IEEE Computer Society (2006)
Piterman, N., Pnueli, A., Sa’ar, Y.: Synthesis of Reactive(1) Designs. In: Emerson, E.A., Namjoshi, K.S. (eds.) VMCAI 2006. LNCS, vol. 3855, pp. 364–380. Springer, Heidelberg (2006)
Pnueli, A.: The temporal logic of programs. In: FOCS, pp. 46–57. IEEE (1977)
Pnueli, A., Rosner, R.: On the synthesis of a reactive module. In: POPL, pp. 179–190 (1989)
Pnueli, A., Sa’ar, Y., Zuck, L.D.: JTLV: A Framework for Developing Verification Algorithms. In: Touili, T., Cook, B., Jackson, P. (eds.) CAV 2010. LNCS, vol. 6174, pp. 171–174. Springer, Heidelberg (2010)
SMV model checker, http://www.cs.cmu.edu/~modelcheck/smv.html
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Maoz, S., Sa’ar, Y. (2013). Two-Way Traceability and Conflict Debugging for AspectLTL Programs. In: Leavens, G.T., Chiba, S., Tanter, É. (eds) Transactions on Aspect-Oriented Software Development X. Lecture Notes in Computer Science, vol 7800. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-36964-3_2
Download citation
DOI: https://doi.org/10.1007/978-3-642-36964-3_2
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-36963-6
Online ISBN: 978-3-642-36964-3
eBook Packages: Computer ScienceComputer Science (R0)