Research

Current Research

Collaboration in a Web 2.0 Environment
Wikis are finding acceptance as a medium of interaction in a wide variety of settings, ranging from internal corporate communications to team collaboration to everyone’s favourite source of procrastination. It is the second of these that I am currently interested in: using wikis to foster collaboration in a team environment. To facilitate this, my team and I have created a set of MediaWiki extensions, collectively known as Annoki. Annoki allows for easier and more secure communication on a wiki, as well as providing alternative ways to visualize and navigate the structure of a wiki. The Annoki extensions are completely modular, and do not require the presence of the entire suite to function. This allows for extensive customization of the Annoki installation to suit the needs of a particular client. The extensions that compose the Annoki suite are:

  • Annoki Access Controls for restricting access pages on a wiki to those who should have access to them. This is critical in a classroom setting in which teams should not have access to the work of competing teams.
  • Metric Gathering for determining the extent of users’ contributions to pages on the wiki. This is useful in determining which team members are the most active parts of a team.
  • Visualizations is an extension composed of two parts: WikiMap, which allows the structure of the wiki to be represented and navigated visually, and wiEGO, which provides a method for people to graphically create wiki pages. Both of these visualizations are written using Adobe Flex. An example of WikiMap can be seen on one of my small development wikis.
  • Calendar and Tagging are two extensions that allow for easier organization of data. Calendar provides a visual calendar with editable pages for each date. This extension is based on a third-party MediaWiki calendar extension. Tagging lets users tag pages with any word that is relevant to them, and see clouds of these tags. This extension combines and extends Wiki Category Tag Cloud and Category Suggest, third party tag cloud and suggestion extensions.
  • Moodle Authorization Integration and Project Creator integrate with the Moodle Course Management System. Moodle Authorization Integration allows Annoki to share an authentication database with Moodle so users of the Moodle can easily use Annoki without the hassle of creating a new user account. Project Creator allows an administrator to automatically generate sets of pages for each group in a course on the associated Moodle installation. These pages can be used by students in that course as an area for team communication.
  • Template Editor extends MediaWiki’s built-in template functionality. While MediaWiki templates are a powerful feature, some novice wiki users find them difficult to use. The Template Editor extension allows template pages to be created and edited in a graphical manner, saving the user from the gritty details of MediaWiki syntax.
  • TextReplace allows any wikitext on a page matching an entry in the replacement list to be substituted with other text. This is useful for automatically adding links to text, formatting keywords, or filtering inappropriate language.
  • WikiContent2LaTeX converts any article on the wiki into LaTeX format. This extension uses HTML to LaTeX as a backend.
  • Page Feedback allows administrators to set a list of pages or namespaces for which they wish to elicit feedback from the users. Once a user visits a page that is on this list a configurable number of times they will be presented with an unobtrusive form that prompts them to enter an optional comment, as well as select a button that provides a rating for that page. Once a user responds to a prompt, they will never be prompted again on that page. This extension is invaluable on purpose-built wikis for determining which pages are the most useful, and which require improvement.
  • Annoki Control is the overarching extension for managing an Annoki installation and providing a set of common functions that are used by all Annoki extensions.
    • The Software Engineering Research Lab currently uses Annoki for both team communication as well as individuals’ work logs.

      Past Research

      MSc Thesis Research: Software Engineering – Software Service Valuation
      Modern service-oriented businesses rely heavily on software to drive their service offerings, due to the inherent flexibility of software vs. traditional physical infrastructure. This flexibility is a relatively new concept though, and as such it is generally ignored by conventional economic value estimation techniques. Together with Dr. Eleni Stroulia, I researched software development and maintenance cost models from the computing science world, and integrated these models with valuation techniques from the business community. We approached the issue of flexibility from a real option perspective, allowing the future opportunities revealed by development in a service-oriented (SOA) style to have a financial bearing on the valuation estimation. I also developed a decision support system (DSS) for partially automating the cost/benefit analysis of proposed changes to a service infrastructure based on changes to a service description. As many estimation parameters are not known with certainty, the DSS supports inputs represented by stochastic distributions; using Monte Carlo simulation, the DSS produces a probabilistic distribution for the final net value prediction.

      Experimental Mobile Robotics
      During the fall of 2005 I was a member of a 16-person team tasked with making a Kato's top plateSegway RMP geocache in a little over three months. To accomplish this we placed a myriad of hardware on the RMP, including: a laptop for hardware and client control, GPS, a compass, a range-finding laser, an optical webcam, a persnickety accelerometer, tennis balls, and various hubs, batteries, and miscellanea (including the all-important kill switch). At the end of the project we took Kato (our robot; we were on a first name basis by then) out to a local park for two days to give it the final trial. Unfortunately, it was freezing cold and snowing, and the laser range-finder found obstacles everywhere. Apparently blowing snowflakes aren’t considered drivable. The second day, after spending most of that night in the lab tweaking the control software, snowflakes Kato Finds the Targetwere no longer an issue, and Kato performed beautifully in spite of the snow. By this time the press had gone home though, so our media reviews were less than glowing. Based on our performance the first day, Discovery Channel gave us a segment on Daily Planet (1/24/2006), and the Edmonton Journal placed us on the front page. The next day we had a brief mention in the Edmonton Journal on page B6, stating our project did actually work the second day.

      Natural Language Processing
      The mechanics of language, especially in relation to computers, has always held an odd appeal for me. This led to a project of mine: developing a context-based malapropism detector to locate words in a document that are correctly spelled, yet are not the word that the author intended. For example, take the following sentence: “He is the captain oft he ship”. The author likely intended to write “He is the captain of the ship”, but this error will not be caught by conventional spell-checkers, as both “oft” and “he” are valid words. My approach to this problem involved using the Google SOAP Search API for Java to determine the most commonly used phrase in any given situation. My approach produced significantly better results than previous approaches at the time (2005), but was limited by the maximum 1000-searches-per-day constraint of the API. I have not retried this project using the new Google AJAX Search API, which has no limit, though I may at some point in the future.

      GUI Comparison and Recommendation System
      Using XML representations of a Java Swing GUI, obtained from JavaGUIRipper, I was able to create a change log of differences between two versions of a GUI. By comparing this information against published GUI design guidelines from GNOME and Sun I generated a list of a) good points with the new GUI design over the old one, b) bad points with the new GUI, and c) a list of recommendations where certain aspects of the GUI could be improved.

      Return on Investment Analysis of Software Maintenance
      Based on the work of Robert Leitch, I implemented a system to extract the data and control dependencies from a Java application, and use this dependency information for calculating the return on investment of a change. This was accomplished by performing maintenance cost calculations on two versions of the application–the old version and the new version–as well as determining the effort involved in the alteration. To determine all three of these costs I employed the COCOMO II cost estimation model. For the ICPC paper listed below I used this application to predict if refactoring took place as part of maintenance to an application. The results of this research were quite promising.

      Publications

      Presentations

      • March 2010: CSMR 2010 (screencast) – WikiDev 2.0: Facilitating Software Development Teams
      • September 2008: SERL (U of A) – Annoki: Fostering Collaboration in a Web 2.0 Environment
      • February 2008: SERL (U of A) – Valuing Software Services: The Real Options-based Modularity Analysis Framework
      • February 2008: Department of Computing Science (U of A) – Valuing Software Services: The Real Options-based Modularity Analysis Framework
      • May 2007: ESC Workshop, ICSE 2007 Valuating Software Service Development: Integrating COCOMO II and Real Options Theory
      • March 2007: SERL (U of A) – Valuating Software Services
      • October 2006: eService 2006 SymposiumROI Modeling for Service Oriented Computing
      • April 2006: SERL (U of A) – Digging the development dust for refactorings

      Teaching Experience

      • Fall 2009: Teaching Assistant for UCOSP
      • Fall 2006: Teaching Assistant for CMPUT 115
      • Fall 2006: Volunteer Teaching Assistant for CMPUT 660


      Site Meter