Módulo Empresarial para la Validación Formal de Ejercicios aplicado a la Programación Concurrente en Java

Tools that allow detecting programming faults are useful for both docents, who may test submitted exercises, and students, who may use these tools in advance. In this article the authors develop one tool for detecting failures in applications. In many cases there are previous tools that may be readapted to be used in an educational scope. This article integrates of one of these tools, which avoids code with dead-locks and race-conditions, into the Internet. The tool integrated is JPF (Java Path Finder) and it is accessed from a Java EE web frontend which carries out the exercise assessment. The article deals with the definition of the module and its evaluation on a realistic scenario. The results show that many assignments may benefit from the output of the tool.

[1]  Eugen-Nicolae Volanschi A Portable Compiler-Integrated Approach to Permanent Checking , 2006, ASE.

[2]  M. Garcia-Valls,et al.  Teaching real-time systems at DIT/UPM , 1998, Proceedings Real-Time Systems Education III.

[3]  Luis Gómez,et al.  Vestal: a tool for teaching concurrency in Ada , 1991, TRI-Ada '91.

[4]  Andy J. Wellings,et al.  Guidelines for a graduate curriculum on embedded software and systems , 2005, TECS.

[5]  Marisol García-Valls,et al.  No-Heap remote objects for distributed real-time Java , 2010, TECS.

[6]  Petri Ihantola Test data generation for programming exercises with symbolic execution in Java PathFinder , 2006, Baltic Sea '06.

[7]  James Gosling,et al.  The Real-Time Specification for Java , 2000, Computer.

[8]  Marisol García-Valls,et al.  Towards the integration of scoped memory in distributed real-time Java , 2005, Eighth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC'05).

[9]  Tadahiro Uehara,et al.  WEAVE: WEb Applications Validation Environment , 2009, 2009 31st International Conference on Software Engineering - Companion Volume.

[10]  Thomas A. Henzinger,et al.  The Discipline of Embedded Systems Design , 2007, Computer.

[11]  Marisol García-Valls,et al.  A dual-band priority assignment algorithm for dynamic QoS resource management , 2012, Future Gener. Comput. Syst..

[12]  Sarfraz Khurshid,et al.  Test input generation with java PathFinder , 2004, ISSTA '04.

[13]  Andy J. Wellings Concurrent and real-time programming in Java , 2004 .

[14]  Martin Schoeberl,et al.  Exhaustive testing of safety critical Java , 2010, JTRES '10.

[15]  Diego Alonso,et al.  Real-Time Teaching with Java: JPR 3 , 2004, OTM Workshops.

[16]  Klaus Havelund,et al.  Model checking programs , 2000, Proceedings ASE 2000. Fifteenth IEEE International Conference on Automated Software Engineering.

[17]  Wolfgang Polak,et al.  Formal Verification of Ada Programs , 1990, IEEE Trans. Software Eng..

[18]  Carlos Delgado Kloos,et al.  Enabling interoperability for LMS educational services , 2009, Comput. Stand. Interfaces.