Daniel
Amyot: CSI/SEG Honours, COOP, and Masters projects - 2022
Notez bien / Please note
- Bien que ces descriptions soient en anglais, les projets peuvent
être faits en français. Vos projets personnels dans les
domaines du génie logiciel en santé ou de l'ingénierie des
exigences sont les bienvenus.
- Many of these projects can be done in teams of two people, unless stated otherwise.
- These projects are usually suitable for Master's projects as well.
- For more information, please e-mail me at damyot@uottawa.ca
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:
- Report on the execution of scenarios (textually, and possibly graphically through Message Sequence Charts)
- Handle GRL indicators
- Provide more options related to the report content, such with or without:
- GRL strategies
- UCM scenarios
- OCL constraint verification
- Metadata in general, or some specific tags (e.g., for alternate languages)
- Internationalize reports so they can be generated in French in addition to English
- Fix related bugs along the way
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 :
- Report various potential problems in URN models (User
Requirements Notation, i.e. UCM+GRL), in Eclipse's Problems View. The
infrastructure for reporting warnings and errors is already in place,
as it is used in a few contexts already (e.g., scenario execution in
jUCMNav)
- Add a new view to the jUCMNav interface that would report on
various metrics (number of components, number of responsibilities or
goals, various ratios per diagram or for the entire model, etc.), and
potentially export them to a comma-separated value (CSV) file.
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:
- Missing GUI elements for specifying AoGRL models
- Aspect matching and composition for AoGRL models, with suitable visualization of results
- Possibly: Integrated matching and composition of aspects that integrate UCM and GRL elements
- Possibly: Improved acpect matching (regular expressions) for AoUCM/AoGRL models
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:
- Support provided by an Eclipse-based editor (e.g., using Xtext)
- Compatibility with the URN metamodel used by jUCMNav
- Support for GRL indicators and strategies
- Interoperability with jUCMNav
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:
- Support for Firefox and (Chrome and/or Internet Explorer)
- Server-side management of models
- Compatibility with the URN metamodel used by jUCMNav
- Support for GRL indicators and strategies
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:
- Support for Android and/or iOS
- GUI that exploits multi-point interfaces available on tablets
- Compatibility with the URN metamodel used by jUCMNav
- Support for GRL indicators and strategies
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:
- 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.
- 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.).
- 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:
- 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