Statecharts: A visual formalism for complex systems
Science of Computer Programming
Model checking
Government: a better ballot box?
IEEE Spectrum - The amazing vanishing transistor act
Patterns in Property Specifications for Finite-State Verification
Patterns in Property Specifications for Finite-State Verification
Model-Driven Software Development
Model-Driven Software Development
Measuring the Impact of Different Categories of Software Evolution
IWSM/Metrikon/Mensura '08 Proceedings of the International Conferences on Software Process and Product Measurement
Development, formal verification, and evaluation of an E-voting system with VVPAT
IEEE Transactions on Information Forensics and Security - Special issue on electronic voting
Managing Requirements for E-Voting Systems: Issues and Approaches
RE-VOTE '09 Proceedings of the 2009 First International Workshop on Requirements Engineering for e-Voting Systems
Formal analysis of an electronic voting system: An experience report
Journal of Systems and Software
Code generation for a family of executable modelling notations
Software and Systems Modeling (SoSyM)
A systematic review of code generation proposals from state machine specifications
Information and Software Technology
Hi-index | 0.00 |
ProVotE is a two-phase project aiming at actuating art. 84 of law 2 -- 5/3/2003 of the Autonomous Province of Trento (Italy), which promotes the introduction of e-voting systems for the next provincial elections in Trentino (Nov. 2008). During the first phase of the ProVotE project we built jprovote, a Java/Linux e-voting system. The jprovote system has been used with experimental value by more than 11000 voters during local elections held in various municipalities of Trentino (Italy). A critical component of jprovote is its core logic, that is responsible of controlling the overall behavior of the e-voting machine during an election. In order to simplify its development and to allow for formal verification of this critical component we developed FSMC+. FSMC+ is a compiler that takes as input a subset of UML Statecharts and produces the corresponding Java and NuSMV code (NuSMV is a model checker developed at ITC-irst). Support for parameters in events, complex expressions in guards, and support to nested states are some of the distinguishing features of FSMC+. In this paper we present FSMC+ and we show how we used it for the development and the verification of the ProVotE e-voting machine. Even though FSMC+ has been specifically created to ease the development of jprovote, we believe the approach and the tool we developed to be general enough to be used in other applications.