Research and Development
Revised: 22 July 2006
Vijay Appadurai, Bing Xue, and Murate Gungor - Sergey Karamov and Arun Iyer - Kanat Bolazar and Arun Iyer
DOPL Lab - CST 4-218, 4-220
"
The gap between theory and practice in theory
is nowhere near as big as
the gap between
theory and practice in practice.
"
- Anonymous
"
If we knew what it was we were doing, it would not be called research, would it?.
"
- Albert Einstein (1879-1955)
Research
I have recently started a small research group that focuses on software complexity, accessibility
and reuse. Much of this work centers around the analysis and evaluation of large software systems using grammar-based static
dependency analyses. We are also interested in the notion of a Software Foundry and an associated
Foundry Object Model. 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, Murat Gungor is working on dependency relationships in large systems and project risk models, Bing Xue
is developing metrics to measure development effort, and will be developing the foundry object model. Vijay is working on a very flexible
cross-platform development environment, based on the Foundry, and implemented with the Software Matrix technology. Anirudha Krisna (no picture yet) is working
on self healing systems, based on the Software Matrix technology.
Arun Iyer has left the group for work in industry. He made a lot of contributions to our dependency analysis work.
Sergey Karamov is working on partitioning legacy code to fit the foundry model. He has
already done some interesting work on optimal large system partitions, based on module communication. Kanat Bolazar
has begun investigating formal and semi-formal methods for supporting large system test.
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 (usually through S.U.'s CASE Center).
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. Recently (Fall '02), for example, the
CSE784 - Software Studio class developed a
Software Foundry
that implements some of the software accessibility ideas we are exploring.
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:
-
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.
-
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.
-
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. Our latest effort "ImageTrek"
was carried out for the Welch Allyn company.
The DOPL Lab