TEACHING PROGRAMMING WITH FORMAL MODELS IN GREENFOOT

Moritz Balz, Michael Goedicke

Abstract

Formal methods for software development are subject to teaching in computer science as a matter of course. However, it is difficult to relate the theories to the practical matter of program code creation. The reason for this is the complexity of model-driven software development approaches which would be needed to derive executable applications from formal models, but are usually not in the focus of the courses. We propose to teach formal methods by using “embedded models”, i.e. program code patterns that represent the semantics of formal methods inside arbitrary object-oriented programs. The approach is realized within the Greenfoot graphical simulation enginge. With this approach the technical barrier to the practical use of formal methods is lowered, so that students can easily experiment with such models in a game-oriented environment.

References

  1. Balz, M., Striewe, M., and Goedicke, M. (2008). Embedding State Machine Models in Object-Oriented Source Code. In Proceedings of the 3rd Workshop on Models@run.time at MODELS 2008, pages 6-15.
  2. Balz, M., Striewe, M., and Goedicke, M. (2009). Embedding Behavioral Models into Object-Oriented Source Code. In Software Engineering 2009. Fachtagung des GI-Fachbereichs Softwaretechnik, 2.-6.3.2009 in Kaiserslautern.
  3. Brakman, H., Driessen, V., Kavuma, J., Bijvank, L. N., and Vermolen, S. (2006). Supporting Formal Method Teaching with Real-Life Protocols. In Formal Methods in the Teaching Lab - A Workshop at the Formal Methods 2006 Symposium, pages 59-67.
  4. Brown, A. W., Iyengar, S., and Johnston, S. (2006). A Rational approach to model-driven development. IBM Systems Journal, 45(3):463-480.
  5. Bubel, R. and Hhnle, R. (2008). A Hoare-Style Calculus with Explicit State Updates. In Proceedings of Formal Methods in Computer Science Education (FORMED2008), pages 49-59. Elsevier.
  6. Demers, F.-N. and Malenfant, J. (1995). Reflection in logic, functional and object-oriented programming: a Short Comparative Study. In Proceedings of the IJCAI'95 Workshop on Reflection and Metalevel Architectures and their Applications in AI, pages 29-38.
  7. Fowler, M. (2006). InternalDslStyle. http://www.martinfowler.com/bliki/InternalDslStyle.html.
  8. Goedicke, M., Striewe, M., and Balz, M. (2009). Support for Evolution of Software Systems using Embedded Models. In Design for Future - Langlebige Softwaresysteme.
  9. Gosling, J., Joy, B., Steele, G., and Bracha, G. (2005). JavaTM Language Specification, The 3rd Edition. Addison-Wesley Professional.
  10. Hailpern, B. and Tarr, P. (2006). Model-driven development: The good, the bad, and the ugly. IBM Systems Journal, 45(3):451-461.
  11. Hen-Tov, A., Lorenz, D. H., and Schachter, L. (2008). ModelTalk: A Framework for Developing Domain Specific Executable Models. In Proceedings of the 8th OOPSLA Workshop on Domain-Specific Modeling.
  12. Henriksen, P. and Klling, M. (2004). greenfoot: Combining Object Visualisation with Interaction. In OOPSLA 7804: Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, pages 73-82, New York, NY, USA. ACM.
  13. Larsen, K. G., Pettersson, P., and Yi, W. (1997). UPPAAL in a Nutshell. Int. Journal on Software Tools for Technology Transfer, 1(1-2):134-152.
  14. Luz, M. P. and da Silva, A. R. (2004). Executing UML Models. In 3rd Workshop in Software Model Engineering (WiSME 2004).
  15. McLoughlin, H. and Hely, K. (1996). Teaching formal programming to first year computer science students. ACM SIGCSE Bulletin, 28(1):155-159.
  16. Mili, A. (1983). A case for teaching program verification: Its importance in the cs curriculum. In SIGCSE 7883: Proceedings of the fourteenth SIGCSE technical symposium on Computer science education, pages 2-6, New York, NY, USA. ACM.
  17. Roychoudhury, A. (2006). Introducing Model Checking to Undergraduates. In Formal Methods in the Teaching Lab - A Workshop at the Formal Methods 2006 Symposium, pages 9-14.
  18. Schwarz, D. (2004). Peeking Inside the Box: AttributeOriented Programming with Java 1.5. ONJava.com. http://www.onjava.com/pub/a/onjava/2004/06/30/ insidebox1.html.
  19. Sendall, S. and Kster, J. (2004). Taming Model RoundTrip Engineering. In Proceedings of Workshop on Best Practices for Model-Driven Software Development.
  20. Sun Microsystems, Inc. (2004). JSR 175: A Metadata Facility for the JavaTMProgramming Language. http://jcp.org/en/jsr/detail?id=175.
Download


Paper Citation


in Harvard Style

Balz M. and Goedicke M. (2010). TEACHING PROGRAMMING WITH FORMAL MODELS IN GREENFOOT . In Proceedings of the 2nd International Conference on Computer Supported Education - Volume 2: CSEDU, ISBN 978-989-674-024-5, pages 309-316. DOI: 10.5220/0002768303090316


in Bibtex Style

@conference{csedu10,
author={Moritz Balz and Michael Goedicke},
title={TEACHING PROGRAMMING WITH FORMAL MODELS IN GREENFOOT},
booktitle={Proceedings of the 2nd International Conference on Computer Supported Education - Volume 2: CSEDU,},
year={2010},
pages={309-316},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0002768303090316},
isbn={978-989-674-024-5},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 2nd International Conference on Computer Supported Education - Volume 2: CSEDU,
TI - TEACHING PROGRAMMING WITH FORMAL MODELS IN GREENFOOT
SN - 978-989-674-024-5
AU - Balz M.
AU - Goedicke M.
PY - 2010
SP - 309
EP - 316
DO - 10.5220/0002768303090316