Quick Links

'TouchRAM, a multi-touch enabled tool for agile software design modelling' - COMP 396 Undergraduate Research Project Application Form

INSTRUCTIONS - PROFESSORS: Please print and review this form. Complete or correct the sections, as applicable, from "Supervisor's Name" to "Ethics, safety, and training". Please sign and date near the bottom ("Supervisor's signature").

INSTRUCTIONS - STUDENTS: You may receive this form by email, or you may download it after it has been posted here. Either way, print and review this form. Complete or correct the sections, from "Student's Name" to "Student's Level", and sign ("Student signature"). Ask your supervisor to sign her/his section near the bottom. Take it to the department* corresponding to the course number in Section A; this may or may not be your own department. (* EXCEPTIONS: For NSCI 396 and COGS 396, please bring it to the Interdisciplinary Programs Adviser in Dawson Hall.) Do not register for a '396' course on Minerva until you receive departmental permission. Have a discussion with your supervisor about time/work expectations, keeping in mind that this is a 3-credit course (roughly, 10 hours per week for 12 weeks). Remember that a '396' course is an elective.

INSTRUCTIONS - DEPARTMENTS: After the unit chair/director/designate approves (or not) this project, please notify student. If approved, please give student permission to register on Minerva, and send a copy of this form (with signatures) to the Office for Undergraduate Research in Science (either fax, or internal mail to Dawson Hall 408-A, or PDF scan + email).

QUESTIONS OR FEEDBACK? Contact the Office for Undergraduate Research in Science.

Supervisor's Name: Jörg Kienzle

Supervisor's Email: Joerg [dot] Kienzle [at] mcgill [dot] ca

Supervisor's Phone: 514-398-2049

Supervisor's Website: http://www.cs.mcgill.ca/~joerg/

Supervisor's department: Computer Science

Course number: COMP 396 (Computer Science)

Term: Fall 2013-2014

Project start date: Tuesday, September 3, 2013

Project end date: Tuesday, December 3, 2013

Project title: TouchRAM, a multi-touch enabled tool for agile software design modelling

Project description: TouchRAM is a multitouch-enabled tool for agile software design modelling aimed at developing scalable and reusable software design models using class, sequence and state diagrams. There are many COMP-396 projects that can be done in the context of TouchRAM, depending on the interest of the student. In particular there is work to be done in the field of human-computer interaction (graphical user interfaces, multi-touch user interfaces, graph layouts), but also software engineering (metamodelling, software design modelling, UML, code generation) and distributed systems (client/server architectures, cloud-based model sharing). For all projects, a solid knowledge of programming in Java is required (unless otherwise stated). A good understanding of software design (experience in implementing software of considerable size, knowledge of design patterns / UML) is a plus. For more information on TouchRAM (short movie, download of current application), see http://www.cs.mcgill.ca/~joerg/SEL/TouchRAM.html

Possible projects sorted by subject:

TouchRAM User interface:

  • GUI for sequence diagrams
  • GUI for state diagrams
  • Adding support for advanced gestures, e.g. multi-selection
  • Dependency view
  • Automated layout
  • Physics-based layout
  • Investigate new input devices (Microsoft Kinect or the Leap)
  • Extend the GUI to support multiple concurrent users
  • Touch-based interface for navigating the file system
  • In-depth Study of Advantages of Gestures over Mouse Input

TouchRAM Backend:

  • Support for importing existing Java classes
  • UML import / export
  • Export picture / pdf
  • Code generation
  • Consistency checks between RAM views (i.e. class, sequence and state diagrams)
  • Model-checking conformance of sequence and state diagrams
  • Support for model versioning
  • Support for meta-model migration

Modelling (no in-depth Java knowledge required, but software development experience is a must):

  • Concern-oriented design of the slot machine case study
  • Concern-oriented design of design patterns
  • Concern-oriented design of the interface of existing Java frameworks


  • Creating a shared model repository
  • Investigating the possibility to work on models collaboratively
  • Investigating the possibility to store the reusable concern library in the cloud

If you are interested in any of the above, please contact Joerg [dot] Kienzle [at] mcgill [dot] ca for more details.

Prerequisite: 1 term completed at McGill + CGPA of 3.0 or higher; or permission of instructor.

Grading scheme (The final report must be worth at least 50% of final grade): 50% final report, 40% implementation / models (depending on project), 10% presentation

Project status: This project is open to applicant.

How students can apply: Send me email (Joerg [dot] Kienzle [at] mcgill [dot] ca) or come talk to me (McConnell Engineering 318)

Ethics, safety, and training: Supervisors are responsible for the ethics and safety compliance of undergraduate students. This project involves NEITHER animal subjects, nor human subjects, nor biohazardous substances, nor radioactive materials, nor handling chemicals, nor using lasers.

Student's Name:

Student's McGill ID:

Student's McGill Email:

Student's Phone:

Student's Program:

Student's Level (U0 / U1 / U2 / U3):

Student's signature - I certify that this course is with a different supervisor and on a different topic than any previous '396' course I have taken. I have not applied for another '396' course in this term:

Supervisor's signature - I give my permission for the student identified above to register for this project under my supervision:


Unit chair/director/designate's name:

Unit chair/director/designate's signature - I certify that this project conforms to departmental requirements for 396 courses: