back to CSS Capstone schedule

UWB Logo

Computer Science and Software Engineering Capstone Presentations

Fall Quarter

December 18, 2020

 

Conor Barrett

"Identifying Design Patterns with Semantic Technologies"

(UWB CSS Faculty Research)

 

Faculty Advisor: Dr. Hazel Asuncion

 

 

 

Abstract

Design patterns are used ubiquitously within the greater coding community. Given their wide use in a variety of applications it is important for developers to be informed when their implemented code design pattern can be compromised from newly discovered vulnerabilities. In order to combat this, researchers are developing a tool that can detect design patterns within code and output warnings/suggestions to the end users.This capstone presentation details the assistance given in this research endeavor meant to automatically detect design patterns within any given code project. Project tasks included gathering open source projects that contained certain design patterns and converting them into usable data easily queried using SPARQL, a query language. Called RDF-ization, this process was accomplished using an automated code parser on compiled and uncompiled projects. Datasets were created, queries manually designed or automatically generated for certain patterns were then tested on RDF-ized projects. Positive results were determined by manual checking of design patterns within the source code versus those detected by the queries, sussing out the false positives and true negatives. Manual checking is defined as individually combing through reverse engineered project XMI files to verify specific query results. This evaluation of results ensured that our process was correct and the right patterns were detected. From our initial collection of open source projects gathered, only a minority were successfully converted to RDF Triples, due to these complications the variety of design patterns detected was limited to 4 design patterns. Because of this the future work ahead will involve increased gathering and processing of data sets, refinement of SPARQL queries, as well as expanding scope of currently searchable patterns.

 

 

 

 

 

 

 

 

 

 

Updated November 24, 2020