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

Supervisor's Name: Jörg Kienzle

Supervisor's Email: Joerg.Kienzle [at] mcgill.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.Kienzle [at] mcgill.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.Kienzle [at] mcgill.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.