An Initial Wise Development Environment for Behavioral Models

David Harel, David Harel, Guy Katz, Guy Katz, Rami Marelly, Rami Marelly, Assaf Marron, Assaf Marron

Abstract

We present a development environment that proactively and interactively assists the software engineer in modeling complex reactive systems. Our framework repeatedly analyzes models of the system under development at various levels of abstraction, and then reasons about these models in order to detect possible errors and to derive emergent properties of interest. Upon request, the environment can then augment the system model in order to repair or avoid detected behavior that is undesired, or instrument it in order to monitor the execution for certain behaviors. Specialized automated and human-assisted techniques are incorporated to direct and prioritize the analysis and related tasks, based on the relevance of the observed properties and the expected impact of actions to be taken. Our development environment is an initial step in the direction of the very recent Wise Computing vision, which calls for turning the computer (namely, the development environment) into an equal member of the development team: knowledgeable, independent, concerned and proactively involved in the development process. Our tool is implemented within the context of behavioral programming (BP), a scenario-based modeling approach, where components are aligned with how humans often describe desired system behavior. Thus, our work further enhances the naturalness and incrementality of developing in BP.

References

  1. Alexandron, G., Armoni, M., Gordon, M., and Harel, D. (2014). Scenario-Based Programming: Reducing the Cognitive Load, Fostering Abstract Thinking. In Proc. 36th Int. Conf. on Software Engineering (ICSE), pages 311-320.
  2. Alur, R., Henzinger, T. A., and Vardi, M. Y. (2015). Theory in practice for system design and verification. ACM Siglog News, 2(1):46-51.
  3. Ammons, G., Bodik, R., and Larus, J. (2002). Mining Specifications. ACM Sigplan Notices, 37(1):4-16.
  4. Balachandran, V. (2013). Reducing Human Effort and Improving Quality in Peer Code Reviews using Automatic Static Analysis and Reviewer Recommendation. In Proc. 35th Int. Conf. on Software Engineering (ICSE), pages 931-940.
  5. Cantal de Sousa, F., Mendonca, N. C., Uchitel, S., and Kramer, J. (2007). Detecting Implied Scenarios from Execution Traces. In Proc. 14th Working Conf. on Reverse Engineering (WCRE), pages 50-59.
  6. Cerf, V. (2014). A Long Way to Have Come and Still to Go. Communications of the ACM, 1(58):7-7.
  7. Clarke, E., Grumberg, O., Hiraishi, H., Jha, S., Long, D., McMillan, K., and Ness, L. (1995). Verification of the Futurebus+ Cache Coherence Protocol. Formal Methods in System Design, 6(2):217-232.
  8. Cohen, H. and Maoz, S. (2015). Have We Seen Enough Traces? In Proc. 30th Int. Conf. on Automated Software Engineering (ASE).
  9. Cristiano, C., Distefano, D., Dubreil, J., Gabi, D., Hooimeijer, P., Luca, M., O'Hearn, P., Papakonstantinou, I., Purbrick, J., and Rodriguez, D. (2015). Moving Fast with Software Verification. InProc. 7th. Int. Conf. on NASA Formal Methods (NFM), pages 3-11.
  10. Damm, W. and Harel, D. (2001). LSCs: Breathing Life into Message Sequence Charts. J. on Formal Methods in System Design, 19(1):45-80.
  11. Gordon, M., Marron, A., and Meerbaum-Salant, O. (2012). Spaghetti for the Main Course? Observations on the Naturalness of Scenario-based Programming. In Proc. 17th Conf. on Innovation and Technology in Computer Science Education(ITICSE), pages 198-203.
  12. Harel, D., Kantor, A., and Katz, G. (2013a). Relaxing Synchronization Constraints in Behavioral Programs. In Proc. 19th Int. Conf. on Logic for Programming, Artificial Intelligence and Reasoning (LPAR) , pages 355- 372.
  13. Harel, D., Kantor, A., Katz, G., Marron, A., Mizrahi, L., and Weiss, G. (2013b). On Composing and Proving the Correctness of Reactive Behavior. In Proc. 13th Int. Conf. on Embedded Software(EMSOFT), pages 1- 10.
  14. Harel, D., Kantor, A., Katz, G., Marron, A., Weiss, G., and Wiener, G. (2015a). Towards Behavioral Programming in Distributed Architectures. Science of Computer Programming, 98(2):233-267.
  15. Harel, D. and Katz, G. (2014). Scaling-Up Behavioral Programming: Steps from Basic Principles to Application Architectures. In Proc. 4th Int. Workshop on Programming based on Actors, Agents, and Decentralized Control (AGERE!), pages 95-108.
  16. Harel, D., Katz, G., Lampert, R., Marron, A., and Weiss, G. (2015b). On the Succinctness of Idioms for Concurrent Programming. In Proc. 26th Int. Conf. on Concurrency Theory (CONCUR), pages 85-99.
  17. Harel, D., Katz, G., Marelly, R., and Marron, A. (2015c). Wise Computing: Towards Endowing System Development with True Wisdom. Technical Report. http://arxiv.org/abs/1501.05924.
  18. Harel, D., Katz, G., Marelly, R., and Marron, A. (2016). An Initial Wise Development Environment for Behavioral Models: Supplementary Material. http:// www.wisdom.weizmann.ac.il/~harel/Modelsward. wisecomputing.
  19. Harel, D., Katz, G., Marron, A., and Weiss, G. (2012a). Non-Intrusive Repair of Reactive Programs. In Proc. 17th IEEE Int. Conf. on Engineering of Complex Computer Systems (ICECCS), pages 3-12.
  20. Harel, D., Katz, G., Marron, A., and Weiss, G. (2014). NonIntrusive Repair of Safety and Liveness Violations in Reactive Programs. Transactions on Computational Collective Intelligence (TCCI), 16:1-33.
  21. Harel, D., Katz, G., Marron, A., and Weiss, G. (2015d). The Effect of Concurrent Programming Idioms on Verification. In Proc. 3rd Int. Conf. on Model-Driven Engineering and Software Development (MODELSWARD), pages 363-369.
  22. Harel, D., Lampert, R., Marron, A., and Weiss, G. (2011). Model-Checking Behavioral Programs. In Proc. 11th Int. Conf. on Embedded Software (EMSOFT), pages 279-288.
  23. Harel, D. and Marelly, R. (2003). Come, Let's Play: Scenario-Based Programming Using LSCs and the Play-Engine. Springer.
  24. Harel, D., Marron, A., and Weiss, G. (2012b). Behavioral Programming. Communications of the ACM, 55(7):90-100.
  25. Katz, G. (2013). On Module-Based Abstraction and Repair of Behavioral Programs. In Proc. 19th Int. Conf. on Logic for Programming, Artificial Intelligence and Reasoning (LPAR), pages 518-535.
  26. Katz, G., Barrett, C., and Harel, D. (2015). Theory-Aided Model Checking of Concurrent Transition Systems. In Proc. 15th Int. Conf. on Formal Methods in ComputerAided Design (FMCAD), pages 81-88.
  27. Lo, D. and Maoz, S. (2008). Mining Scenario-Based Triggers and Effects. In Proc. 23rd Int. Conf. on Automated Software Engineering (ASE), pages 109-118.
  28. Lo, D., Maoz, S., and Khoo, S.-C. (2007). Mining Modal Scenario-Based Specifications from Execution Traces of Reactive Systems. In Proc. 22nd Int. Conf. on Automated Software Engineering (ASE), pages 465-468.
  29. Nimmer, J. W. and Ernst, M. D. (2001). Static Verification of Dynamically Detected Program Invariants: Integrating Daikon and ESC/Java. Electronic Notes in Theoretical Computer Science, 55(2):255-276.
  30. Reubenstein, H. and Waters, R. (1991). The Requirements Apprentice: Automated Assistance for Requirements Acquisition. IEEE Transactions on Software Engineering, 17(3):226-240.
  31. Rich, C. and Waters, R. (1988). The Programmer's Apprentice: A Research Overview. Computer, 21(11):10-25.
  32. Sadowski, C., van Gogh, J., Jaspan, C., S öederberg, E., and Winter, C. (2015). Tricorder: Building a Program Analysis Ecosystem. In Proc. 37th Int. Conf. on Software Engineering (ICSE).
  33. Tsay, Y., Chen, Y., Tsai, M., Wu, K., and Chan, W. (2007). GOAL: A Graphical Tool for Manipulating Büchi Automata and Temporal Formulae. In Tools and Algorithms for the Construction and Analysis of Systems, pages 466-471. Springer.
  34. Zhang, L., Yang, G., Rungta, N., Person, S., and Khurshid, S. (2014). Feedback-Driven Dynamic Invariant Discovery. In Proc. Int. Symp. on Software Testing and Analysis (ISSTA), pages 362-372.
Download


Paper Citation


in Harvard Style

Harel D., Katz G., Marelly R. and Marron A. (2016). An Initial Wise Development Environment for Behavioral Models . In Proceedings of the 4th International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD, ISBN 978-989-758-168-7, pages 600-612. DOI: 10.5220/0005811806000612


in Bibtex Style

@conference{modelsward16,
author={David Harel and Guy Katz and Rami Marelly and Assaf Marron},
title={An Initial Wise Development Environment for Behavioral Models},
booktitle={Proceedings of the 4th International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD,},
year={2016},
pages={600-612},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0005811806000612},
isbn={978-989-758-168-7},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 4th International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD,
TI - An Initial Wise Development Environment for Behavioral Models
SN - 978-989-758-168-7
AU - Harel D.
AU - Katz G.
AU - Marelly R.
AU - Marron A.
PY - 2016
SP - 600
EP - 612
DO - 10.5220/0005811806000612