Daniel Amyot: CSI/SEG Honours, COOP, and Masters projects - 2022

Notez bien / Please note

Projects Available

Project DA-18: Smart Contract Specifications: Development of a Library of Functions for Symboleo (REVISED W-2024, for SEG or CSI)

Symboleo is a new textual language used to specify and verify smart contracts before their implementation on distributed ledgers. Symboleo supports contractual concepts such as obligations, powers, parties, assets, and events. We have a compiler to generate nuXmv models from Symboleo contracts, which enables the verification of many types of properties before contracts are implemente, and another compiler for generating JavaScript code for Hyperledger Fabric (a blockchain-based distributed ledger). Much like programming languages, Symboleo needs a good library of predefined functions (with their equivalent nuXmv and JavaScript representations) to simplify the specification of contracts. This project aims to develop such a library. This a great opportunity to learn about domain-specific languages, smart contracts, and applied model-checking. This project will be done in collaboration with students and researchers from uOttawa's Contract Specification and Monitoring Lab.

TAKEN Project DA-22: Symmetric Key Secure Delivery Emulator (W-2024)

This project is set to develop a Minimum Viable Product (MVP) for an emulator that mimics the functionality of the Secure Object Delivery Protocol (SODP), specifically focusing on secure symmetric key distribution. The SODP IETF RFC is covered in RFC9152. It is a protocol designed for the secure, HTTPS-based delivery of a wide range of digital objects, from cryptographic keys to software updates, ensuring safe distribution to authenticated and authorized recipients. The MVP of the emulator is targeted at creating an environment that simulates the secure distribution of symmetric keys to enterprise devices without the need for a full production environment. See full description online.

UNAVAILABLE W2024Project DA-23: Web Interface for Enterprise Cryptographic Discovery and Reporting (S-2024)

This project aims to develop a Minimum Viable Product (MVP) for a platform called Cryptoscope, which focuses on the development, implementation, and deployment of a secure cryptographic data collection and analysis system for IT enterprises. Cryptoscope enables organizations to safely gather cryptographic primitive data from their infrastructure, securely store it, and retrieve it for point-in-time analysis and reporting. See full description online.

Past Projects

Project DA-1: Report Generation for jUCMNav (revised F-2012 for SEG or CSI) - DONE

jUCMNav is an Eclipse plug-in that supports the graphical editing of User Requirements Notation models, composed of Use Case Map (UCM) and Goal-oriented Requirement Language (GRL) views. This project aims to improve the current prototype report generator that supports various formats (hyperlink-enabled PDF, HTML, and Word/RTF). In particular, there is a need to:
Example model (Service in a Wireless Network)

Project DA-2: UML 2.0 profile for URN (revised W-2005) - DONE

The User Requirements Notation (URN) is currently being standardized by the International Telecommunications Union. URN is composed of two complementary languages: the Goal-oriented Requirements Language (GRL) and the Use Case Map (URN) scenario notation. This project consists in creating a UML 2.0 profile for GRL and/or UCM. Familiarity with UML class diagrams is a must, and experience with metamodelling would be an asset (although this is not typical of undergrad students). This project could lead directly to an important contribution to ITU (Z.159). Experimentation will be done with Tau G2, which supports the creation of profiles.

Project DA-3: UCM-based Test Generation for Web Applications (new W-2005) - DONE

Despite their apparent simplicity, Web applications are surprisingly difficult to develop and test when averse circumstances are considered. Several interesting frameworks like FIT and FitNesse (popular in the Extreme Programming community) ease the process of describing test cases and testing the Web application. In this project, we will generate test goals from Use Case Map models describing (test-oriented) requirements for the Web application, and then transform these test goals into FitNess tests. Most of the work will be on the conversion of test goals to FitNess test cases as the model creation is supported by UCMNav and the test goal generation by UCMNav/UCMExporter. A case study will be developed.

Project DA-4: Scenario Viewer for UCMNav (revised W-2005) - DONE

The UCM scenario notation, currently being standardized by the International Telecommunications Union, is used to capture functional requirements for large (software) distributed systems. Conversion and refinement of UCM scenarios to Message Sequence Chart (MSC) and UML Sequence Diagrams are now supported by the UCMNav tool, with the UCMExporter tool. This project aims to produce an MSC / UML-SD viewer (not an editor) for the scenarios produced by UCMNav/UCMExporter. This viewer will use the intermediate XML representation of UCM scenarios generated by UCMExporter. This project will involve XML/XSLT and Java development and will involve improvements to UCMExporter itself.

Project DA-5: Static Analysis and Metrics for URN models with jUCMNav (Revised F-2008) - DONE

jUCMNav is an Eclipse plug-in that supports the graphical editing of Use Case Map (UCM) and Goal-oriented Requirements Language (GRL) models (see snapshot above). This project aims :
Several extensions already exist for jUCMNav and could be used as examples. Familiarity with Java and UML class diagrams is a must, and experience with Eclipse and metamodelling would be an asset (although this is not typical of undergrad students).

Project DA-6: Eclipse-based UCM Editor (new W-2005) - DONE

UCMNav is a tool that supports the editing and analysis of Use Case Map models. However, this tool has evolved from a simple prototype over a period of 8 years, is implemented in C++ (with XForms), relies on X11R6, and is now unmaintainable. This project aims to develop and prototype the next-generation architecture of UCMNav, which will be based on Eclipse (and Java). Solid knowledge of Java, design patterns, and Java GUIs is a must, and familiarity with Eclipse and C++ would also be useful assets. Not all functionalities of UCMNav are expected to be supported, but the architecture should allow their support in the future.

Project DA-7: GRL Editor (revised S-2005) - DONE

The Goal-oriented Language (GRL) is a modeling language currently being standardized by the International Telecommunications Union as part of the User Requirements Notation (URN). In this project, an editor supporting the GRL notation as well as GRL evaluations will be developed. This editor will need to interoperate with the jUCMNav tool (for Use Case Maps, the other language in URN) to maintain traceability links. jUCMNav is an Eclipse plug-in, so solid knowledge of Java is required.

Project DA-8: Automatic Layout for Use Case Maps (W-2005) - DONE

Use Case Maps contain scenario paths (splines) superimposed on a structure of components (usually rectangles). UCMNav supports the creation and editing of UCM models, however, it has no auto-layout mechanism. Such a mechanism is essential in a context where UCM models are reverse-engineered from existing software or designs. This project targets the creation of a tool (integrated to UCMNav or as a stand-alone tool) that would add the layout information to a UCM model. Existing tools such as GraphViz could be integrated to this tool, or else specific layout algorithms could be created. This project requires knowledge of XML and of parsing technologies/tools in general.

Project DA-9: Generation of CSM models from UCM models with jUCMNav (F-2005) - DONE

The Use Case Map (UCM) scenario notation, currently being standardized by the International Telecommunications Union, is used to capture functional requirements for large (software) distributed systems. UCMs support performance annotations that enable the generation of performance models in early development phases. The Core Scenario Model (CSM) representation is used as an intermediate representation for the generation of models in Queueing Networks, LQN, Stochastic Petri Nets, etc. CSM has a syntax defined as a XML schema. In this project, the students will extend jUCMNav (a UCM editor implemented as an Eclipse plug-in) to convert UCM models to the CSM representation (i.e., by generating CSM files). A similar exercise has been done for the older UCMNav tool, so many documented algorithms are already available. Moreover, the new performance annotations in jUCMNav are much more in line with the CSM concepts than the annotations in the older UCMNav tool. This project requires solid knowledge of Java and XML, and eagerness to learn about the Eclipse platform. Background in performance engineering not required.

Project DA-10: Aspect-Oriented E-commerce Project: Online Photo Store (F-2005) - DONE

Shoppers browse through and buy from a database of hundreds of digital photos. The online photo store requires functionality for the shopper as well as for management. Shoppers view photos by country or search for photos by specifying a set of criteria (e.g. location, event, subject, theme, ...). When a shopper securely buys a photo, the photo is sent to the shopper after payment verification. Management adds photos to the database, updates and deletes them, defines search criteria, and views statistics on how often photos are viewed and bought by shoppers.

This project requires good knowledge of Java as well as eagerness to learn about the Eclipse platform and AspectJ or CME. Interested students can expect to a) spend a significant amount of time on use-case modeling for requirements elicitation and analysis, b) research and evaluate alternative architectures, c) define the architecture of their choice with their chosen Internet technologies using aspect-oriented techniques, and d) implement and test the Online Photo Store with an aspect-oriented programming environment. This project will be co-supervised by Ph.D student Gunter Mussbacher.

Project DA-11: Enhanced support for AoURN (F-2012 for SEG or CSI) Cancelled

The Aspect-oriented User Requirements Notation (AoURN) is a framework that combines goal-oriented, scenario-based, and aspect-oriented modeling in support of requirements engineering activities. Partial tool support is already present in jUCMNav to create concerns and graphical AoUCM models (on the scenario side of URN), and to match and compose aspects in AoUCM models. However, the support for AoGRL (on the goal side) is still very weak. This project will aim to improve this situation by adding functionalities to jUCMNav:

Project DA-12: Textual Syntax for GRL, with Editor (S-2014 for CSI) DONE

jUCMNav is an Eclipse plug-in that supports the graphical editing of User Requirements Notation models, composed of Use Case Map (UCM) and Goal-oriented Requirement Language (GRL) views. Although graphical notations are great for understanding models, they may not always be efficient for creating models. This project aims to provide a textual syntax for the GRL part of URN with:

Project DA-13: Web-based Editor for GRL (S-2014 for SEG or CSI) DONE

URN's Goal-oriented Requirement Language (GRL) is a graphical language for describing system stakeholders, their objectives, and their relationships. jUCMNav is an Eclipse-based tool that supports GRL. However, jUCMNav cannot really work efficiently on a Web-based environment, and such environment would help make GRL available to all more easily. This project aims to provide an intuitive model editor for creating and manipulating GRL models via a Web interface. Requirements (to be negotiated) include:

Project DA-14: Tablet-based Editor for GRL (S-2014 for SEG or CSI) DONE

URN's Goal-oriented Requirement Language (GRL) is a graphical language for describing system stakeholders, their objectives, and their relationships. jUCMNav is an Eclipse-based tool that supports GRL. However, jUCMNav cannot really work efficiently on a tablet environment. This project aims to provide an intuitive model editor for creating and manipulating GRL models on a tablet. Requirements (to be negotiated) include:

Project DA-15: Regulatory Intelligence with GRL and BI (S-2014 for CSI) DONE

URN's Goal-oriented Requirement Language (GRL) is a graphical language for describing system stakeholders, their objectives, and their relationships. It has been used for many years to model laws and regulations in a way that enables compliance analysis with Business Intelligence tools, leading to Regulatory Intelligence. I have a number of opportunities for modeling and analysing regulations and for enhancing the tools and techniques used in that domain, often in collaboration with industrial partners. Contact me for punctual opportunities!

Project DA-16: Tablet or Web-based interfaces for healthcare applications (S-2014 for SEG or CSI) DONE

I participate to a number of projects related to healthcare informatics, which exploit care process management and various kinds of patient flow models. Many of these applications require interfaces usable efficiently by nurses and other employees that are not computer experts. Contact me for punctual opportunities!

Project DA-17: Research Institute Management System (S-2021, for DTI or CSI) - Need 4-5 people!

This is a digital transformation project, in collaboration with the LIFE Research Institute. We are developing a system to track membership, projects, grants, partners, events, etc. of a large research institute, with a possibility to handle more research institutes in the future. We have recently developed a database schema with a MongoDB backend (deployed on Atlas, on an Azure cloud), and a link to Tableau for reporting. However, there are 3 sub-projects for which we need solid teams of students:
  1. Front-end, for administrator: we need a usable Web-based front-end for managing all the information in the database. This will be used by the Director and Administrative Assistant. Alignment with uOttawa IT practices and technologies will be considered. Coordination with the second sub-project is a must.
  2. Tableau-based BI reporting: we need to create, automate, and deploy several BI reports, ideally using Tableau. Appropriate indicators will need to be developed, and different audiences will be targeted (institute boards, University, individual members, society at large, etc.).
  3. Journey and impact graphing: we also need to report, interactively, on aspects that cannot be handled by conventional BI tools such as Tableau. In particular, we want to report on the impact of various collaborations involving institute members. FOr example, this meeting led to another meeting, which led to a grant proposal, which led to a project, which led to 3 publications, another project, and a policy change. We anticipate a graphical representation that will be constructed interactively based on the information and relationships that exist in our database. There is room for much innovation (and much programming) here as such reporting tool does not exist!

Project DA-17-B: Research Institute Management System (REVISED W-2022, for DTI or CSI) - Need 2 people!

This is a digital transformation project, in collaboration with the LIFE Research Institute. We are developing a system to track membership, projects, grants, partners, events, etc. of a large research institute, with a possibility to handle more research institutes in the future. We have recently developed a database in MS Access, together with an Access fron-end for administrators, and an additional Java-based tool for visualizing some of the information as Journey diagrams. We are also using Tableau for reporting. However, there is one sub-project left for which we need a solid team of students, experienced in front-end development:
  1. Web front-end, for institute members: we need a usable Web-based front-end for the institute members to manage their membership data (including their products/publications, projects, grants, supervised students), ideally for a few minutes per year, on Web browsers. Synchronization with uOttawa's UniWeb, where much member information is already available, would be a plus. Alignment with uOttawa IT practices and technologies will be considered. More detail on this project is available in English and in French. This project requires knowledge of front-end development for Web browsers and SQL. The current database is in MS Access.

Project DA-19: Exciting Project Access System (EPAS) (NEW W-2022, for SEG or CSI)

This three-student project aims to develop a new system to collect project descriptions from profs/students/external companies and support the matching of profs/students for projects. The management of CSI4900 and other such courses would be much simplified by it! See the full project description in English (et en français); note that this description was about a requirements specifications for the SEG3101/3501 course (and I have them); the real project now is one where we'll implement a Web-based solution (minimally viable product).

Project DA-20: Process Mining: A Log Filtering API in Python (REVISED W-2022, for DTI, SEG, or CSI)

Process mining (PM) is a recents approach that combines data mining, AI, and process modelling to discover process models from event logs produced by different systems. Such models can be used to enable understanding, enhancements, and compliance assessments. To be effective, all PM approaches include a log filtering step to clean and reduce the event logs before feeding them to mining algorithms and process visualization engines. In a recent thesis on using PM to understand user behaviour in SaaS applications, we recently produced a new API with supporting functions that enable people to create useful and simple scripts that automate event log filtering. The current API is developed in the R language. This project aims to reproduce this API, but for the Python language. The project also aims to ensure that this API integrates well with recent and open-source Python-based PM tools such as PM4PY.

Project DA-21: Goal-oriented Process Mining in Commercial Tools (REVISED W-2022, for DTI, SEG, or CSI)

Process mining (PM) is a recents approach that combines data mining, AI, and process modelling to discover process models from event logs produced by different systems. Such models can be used to enable understanding, enhancements, and compliance assessments. We recently developed a new event log filtering approach called GoPED that selects event traces that satisfy certain goals. GoPED's algorithms rely on advanced optimizations built on top of IBM CPLEX. This project aims to improve and integrate the current GoPED tools (developed as part of a PhD thesis) into a commercial PM tool. The Apromore open-source environment is being considered here, but this does not preclude considering the leading online PM tool Celonis.

Project Resources