Papers:
Clone Detection Using Scope Trees, SERP'18 - M. Mohammed & J. Fawcett, 2018
Package Dependency Visualiztion: Exploration and Rule Generation, 23rd Intern. Conf. on Distributed Multimedia Systems, 2017 - Mubarek Mohammed, James Fawcett, 2017
Identification of Extract Method Refactoring Opportunities through analysis of Variable Declarations, IJSEKE 2016 - Mehmet Kaya & James Fawcett,
Identifying Extract Method Opportunities Based on Variable References, SEKE 2013 - Mehmet Kaya & James Fawcett
A new Cohesion Metric and Restructuring Technique for Object Oriented Paradighm, IEEE CSAC WS, 2012 - Mehmet Kaya & James Fawcett, 2012
Rootbeer: Seamlessly using GPUs from Java, HPCC-2012 - Philip Pratt-Szeliga, James Fawcett, & Roy Welch
Measuring Specification Concordance with Semantic Mutation Testing, CATA 2011 - Kanat Bolazar & James Fawcett, 2011
VERDICTS: Visual Exploratory Requirements Discovery and Injection for Comprehension and Testing of Software, SERP, 2010 - Kanat Bolazar & James Fawcett, 2010
Debugging by Visualization and Contract Discovery, SEDE 2006 - Kanat Bolazar & James Fawcett, 2006
Software Risk Model, SERP05 - James Fawcett & Murat Gungor, 2005
Software Risk Model, IPSI05 - James Fawcett & Murat Gungor, 2005
Analyzing Structure of Large Software Systems, SERP05 - James Fawcett & Murat Gungor, Arun Iyer, 2005
Relationship between Metrics and Change History, CATA-2005 - James Fawcett & Murat Gungor, Arun Iyer, Kanat Bolazar, 2005
In the photos above, Kanat Bolazar is working on ideas and tools to investigate the behavior of large existing software systems, Phil Pratt-Szeliga
is interested in distributed and parallel means to attack challenging computational problems, Mehmet Kaya is currently preparing for his qualifying
examinations, and then expects to work on restructuring software, Mubarek Mohammed is working on software development visualization models,
and John Goddard is just completing Master's Thesis research on Voice Activated Studio Recording.
Only students, known to me through work in one of my courses, are accepted into this group. Because of
my teaching load I do not seek outside funding, although we occasionally work on funded
projects that happen to come our way.
I fund Doctoral and Master's Thesis students by making them Teaching Assistants in my courses.
For the reasons, cited above, I do not reply to external requests for funded research under my direction.
Software Accessiblity
We are building the infrastructure to re-engineer software reuse processes.
Our goals are to make accessible, for reuse, not only code, but also
documentation and test products, from a globally accessible place. This place could
be a project server on a local area network or a corporate software resource server,
accessible over the internet as a web service.
A major concern of ours is to honor the connectedness of software. That is, we provide
accessiblity to code, its documentation, and test drivers, for any component, including
any lower level components on which it may depend. The implications are that code,
documentation, and test are distributed across a network of components and are reusable
at any level of the distribution graph.
All these implement some of the software accessibility ideas we are exploring.
Ph.D Dissertations:
Doctoral research is a major commitment of time, energy, and enthusiasm. A typical research program requires three to five years
of effort beyond a Master of Science degree.
At this time, one student from the DOPL group, Murat Gungor, has successfully defended doctoral research:
Structural Models for Large Software Systems.
Six other students are currently working on their doctoral research in the DOPL Group:
Kanat Bolazar just completed doctoral research on means to explore and understand large software systems by
dynamically posing contracts and, through mutation testing, verify their quality.
Phil Pratt-Szeliga has completed and successfully defended a Master's Thesis on consuming large
scientific programs on Graphic Processing Units (GPUs). The focus of his doctoral research is the mapping programs written in
high-level languages like Java onto resident GPU hardware. The current state of the art requires a lot of knowledge about the
machine architecture and GPU characteristics and a lot of low-level programming to consume a program, dividing the computations
between host processor and GPU infrastructure. Phil's goal is to automate most of this so that a scientist has realistic hope
of seeing significant performance improvements without a lot of background knowledge about the computer architecture.
Mehmet Kaya's focus is on the restructuring of, possibly large, software systems by extracting classes and functions, inserting
interfaces, and repackaging source code.
Mubarek Mohammed has begun working on visualization techniques for disclosing and understanding the structure and operations of large
sofware systems. He is working on ideas related to visualizing the operation of threads and exploring ways to disclose the static
structure and dynamic dialogs between components of large systems.
Vicky Singh, a Master's candidate, is working on an interesting project this summer in support of the work our group is doing, especially related to that of
Mubarek in visualization. Vicky is developing a prototype of a program automation tool, designed to show the evolution of execution through an animated
callgraph, showing the progress of threads through the structure in playback and single step mode.
Jing Ja is working in Computational BioInformatics. She is now preparing for her QE2 examination, and will begin her own research following that.
Mike Corely is interested in securing large software systems. He is now preparing for his QE1 qualifying examination and will begin scolarly research when that has been accomplished.
Master's Theses:
Research for a Master's Thesis is smaller in scope and
requires fewer original contributions than
a Doctoral Dissertation. However it is a significant piece of work, requiring perhaps six months
of half time work. Here are some current thesis activities carried out by my students:
Scientific Computing Using GPUs
Phil Pratt-Szeliga : Automatically Utilizing Graphics Processing Units from Java Bytecode. Completed April 2010.
Software Restructuring,
Santosh Singh Kesar : Automatic extraction of functions from large weakly structured code. Driven by rule-based static analysis.
Completed October 8, 2008.
Model-Driven Development using the Software Matrix Technology,
Tilak Patel : Model-Driven development generates code from UML style models. This becomes much more than a code generation
wizard when there is a strong concept of components, the Software Matrix, used as an integral part of this process.
Completed December 21, 2007.
Cross-Platform Development using the Software Matrix Technology,
Vijay Appadurai : Cross-Platform Development targets flexible implementation on more than one platform. Vijay used Linux
and Windows platforms for his demonstration. Completed March 23, 2007.
Aspect Oriented Programming, Ramaswamy Krishnan-Chittur : explores
several interesting applications supported by .Net interception. Completed April 19, 2005.
Software Matrix, Riddhiman Ghosh : an experiment
using message-passing and broad use of the observer pattern
to make software salvage a useful paradigm. By salvage, we mean the lifting of a significant
block of one system to be used within another without terminal arterial bleeding. Completed December 15, 2004.
C++ Beans, An Experiment in Simplification, Siddhartha Azad, completed October 2002
Dynamic Internet Communities : A Comparison between Grid and Peer-to-Peer Computing,
Shawn Dahlen [converted to an
independent study - September 2003].
Performance Comparison of .Net and J2EE for some typical remoting and web service applications,
Srinivas Shilagani [converted to an independent study - May 2004].
Development Projects
Occasionally we have worked on funded projects for local companies, usually under the
CASE Center umbrella.