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