A pacemaker is a medical device that uses electrical impulses, delivered by electrodes contracting the heart muscles, to regulate the beating of the heart. The primary purpose of a pacemaker is to maintain an adequate heart rate, either because the heart's natural pacemaker is not fast enough, or there is a block in the heart's electrical conduction system. Modern pacemakers are externally programmable and allow the cardiologist to select the optimum pacing modes for individual patients. (https://en.wikipedia.org/wiki/Artificial_cardiac_pacemaker)

This package contains a model of the pacing behavior of the software of a pacemaker, developed using the following specification document: http://sqrl.mcmaster.ca/_SQRLDocuments/PACEMAKER.pdf
This model only captures the VVI (ventricle paced, ventricle sensed, inhibited response) and DDD (dual chambers paced, dual chambers senses, tracking response) pacing modes. 
Included in this package is the model, a set of seeded mutants, and associated test inputs used for model-based testing research. 

For more information on this model, please see: 
[1] Pacemaker Formal Methods Challenge: http://sqrl.mcmaster.ca/pacemaker.htm
[2] Gregory Gay. Automated Steering of Model-Based Test Oracles to Admit Real Program Behaviors. Ph.D. Thesis, University of Minnesota, May 2015.
(and the included papers in the /docs folder)

This package contains the following data:

/docs
	Papers where these models are described or used.
/models
	/stateflow
		The original model, developed in the Stateflow notation.
		/faulty
		A version of the model with real faults (see faults.docx in the docs folder)
	/lustre
		Model translated into the text-based Lustre modeling language.
		/faulty
		/mutants
		Mutated versions of the original model, used for fault-finding experiments.
/tests
	Test cases that satisfy various structural coverage metrics and 
	randomly-generated test cases.
	Format is:
	input1,input2,...,inputN
	value_test1_step1,value_test1_step1,...,value_test1_step1
	...

For questions regarding this data, please contact:
- Gregory Gay (greg@greggay.com)
- Sanjai Rayadurgam (rsanjai@cs.umn.edu)
- Mats Heimdahl (heimdahl@cs.umn.edu)

This model has been used for testing purposes in the following publications:
[1] Gregory Gay. Automated Steering of Model-Based Test Oracles to Admit Real Program Behaviors. Ph.D. Thesis, University of Minnesota, May 2015.
[2] Gregory Gay, Sanjai Rayadurgam, Mats P.E. Heimdahl. Automated Steering of Model-Based Test Oracles to Admit Real Program Behaviors. Under submission to ACM Transcations on Software
Engineering and Methodology. Draft available upon request.

Additionally, this model is described or used for other purposed in:
[1] Anitha Murugesan, Michael Whalen, Sanjai Rayadurgam, John Komp, Lian Duan, Mats Heimdahl, Baek-Gyu Kim, Oleg Sokolsky and Insup Lee.From Requirements to Code: Model Based Development of a Medical Cyber Physical System. Accepted at Symposium on Foundations of Health Information Engineering and Systems (FHIES) and the Software Engineering in Healthcare (SEHC) Workshop, Washington DC, July 2014.
[2] Michael Whalen, Anitha Murugesan, Sanjai Rayadurgam, and Mats Heimdahl Structuring Simulink Models for Verification and Reuse. Accepted at Sixth International Workshop on Modelling in Software Engineering, India, May 2014.
[3] Anitha Murugesan, Oleg Sokolsky ,Sanjai Rayadurgam, Michael Whalen, Mats Heimdahl and Insup Lee Linking abstract analysis to concrete design: A hierarchical approach to verify medical CPS safety. Accepted at 5th International Conference on Cyber-Physical Systems, Berlin, Germany, April 2014.
[4] Anitha Murugesan, Michael Whalen, Sanjai Rayadurgam and Mats Heimdahl. Compositional Verification of a Medical Device System. Accepted at High Integrity Language Technology Accepted at High Integrity Language Technology, Pittsburg, Nov 2013. Outstanding Paper Award.
[5] Anitha Murugesan, Sanjai Rayadurgam, Mats Heimdahl Using Models to Address Challenges in Specifying Requirements for Medical Cyber-Physical Systems. Accepted at Medical Cyber Physical Systems Workshop, Philadelphia, Pennsylvania, Apr 2013.
[6] Anitha Murugesan, Sanjai Rayadurgam, Mats Heimdahl. Modes, Features, and State-Based Modeling for Clarity and Flexibility. Accepted at Workshop on Modeling in Software Engineering, San Francisco, California, May 2013.
[7] Michael W. Whalen, Andrew Gacek, Darren Cofer, Anitha Murugesan, Mats P. E. Heimdahl and Sanjai Rayadurgam.Your What is My How: Iteration and Hierarchy in System Design Accepted at IEEE Software Journal, Nov 2012.
