Research and Development

" The gap between theory and practice in theory is nowhere near as big as the gap between theory and practice in practice. "
- Anonymous
Research Advisees
Members of DOPL Research Group: Vicky Singh, Mehmet Kaya, Jim Fawcett, Phil Pratt-Szeliga, Mike Corely, Mubarek Mohammed, Jing Jia, and Kanat Bolazar
DOPL Lab - CST 4-116
Celebrating Kanat Bolazar's Completing his Ph.D. Program
Friend Liz, Kanat, Phil, Mubarek, and Me
ESF Modeling Group
ESF Modeling Group:
Jim Fawcett, Yu Chen, Shannon Connely, Yang Yang, Tom Taggart
image file not found
Research advisees and Teaching Assistants at dinner
Early Members of the DOPL Research Group

Ph.D. Dissertations: Structural Models for Large Software Systems - Murat Gungor, 2006 VERDICTS: Visual Exploratiory Requirements Discovery and Injection - Kanat Bolazar, 2013 Identifying Extract Class and Extract Method Refactoring Opportunities Through Analysis of Variable Declarations and Uses - Mehmet Kaya, 2014 The Rootbeer GPU Compiler - Phil Pratt-Szeliga, 2015

M.S. Theses: Software Matrix Riddhiman Ghosh, 2004 Aspect Oriented Programming - Ramaswamy Krishnan-Chittur, 2005 Self Healing Systems - Anirudha Krishna, 2005 Cross-Platform development - Vijay Appadurai, 2007 Model-Driven development - Tilak Patel, 2007 Software Restructuring - Santosh Singh, 2008 Scientific Programming using GPUs - Phil Pratt-Szeliga, 2010 Enhanced Debugging Through Virtualization - Ryan Wilson, 2011

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

Research statement: An elaboration on goals of our software structure research

Research code: Code that supports current Doctoral research Other code from completed doctoral and master's research can be found linked on those pages (see above).

Advisee Research Pages: Kanat Bolazar, Phil Pratt-Szeliga, Mehmet Kaya, Marty Goddard

Useful Links: Science of Scientific Writing, logical fallacies, Craft of Research, Prepare Dissertation Proposal, Format Guidlines for Dissertations, EECS Technical Reports


I started a small research group that focuses on software complexity, accessibility and reuse. Some of this work centers around the analysis and evaluation of large software systems using grammar-based static dependency analyses (Research Statement). We are also interested in the notion of a Software Foundry and an associated Foundry Object Model, developing tools to support understanding large systems, and using distributed and massively parallel machinery to solve challenging engineering and scientific problems. The research group currently consists of four Doctoral students, several students preparing Master's Theses under my direction, and a number of students doing Independent Studies.

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.

Some of this research extends into the classroom:

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:

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:
  1. Debugging using Virtualization Hooks Ryan Wilson : Enhanced Debugging Through Virtualization. Completed December 2011.
  2. Scientific Computing Using GPUs Phil Pratt-Szeliga : Automatically Utilizing Graphics Processing Units from Java Bytecode. Completed April 2010.
  3. Software Restructuring, Santosh Singh Kesar : Automatic extraction of functions from large weakly structured code. Driven by rule-based static analysis. Completed October 8, 2008.
  4. 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.
  5. 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.
  6. Self-Healing Systems using the Software Matrix Technology, Anirudha Krishna : a self-healing framework using the Software Matrix structure. It is effective and remarkably simple. Completed December 9, 2005.
  7. Aspect Oriented Programming, Ramaswamy Krishnan-Chittur : explores several interesting applications supported by .Net interception. Completed April 19, 2005.
  8. 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.
  9. C++ Beans, An Experiment in Simplification, Siddhartha Azad, completed October 2002
  10. Dynamic Internet Communities : A Comparison between Grid and Peer-to-Peer Computing, Shawn Dahlen [converted to an independent study - September 2003].
  11. 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.