Process Programming and Workflow
Process programs coordinate the efforts of people, computers, and
software tools to support key software development activities. We are
developing JIL, a process programming language, and Julia, a decentralized,
programmable interpretation engine to guide execution of process programs
written in JIL and similar languages. Using JIL we are writing processes
for collaborative design and software testing and analysis.
This work also provides a platform for research on how to perform
rigorous evaluation, comparison, analysis, evolution and improvement
of software development processes themselves. The early focus of this
work is on comparison and analysis of software design methodologies.
In LASER, we are developing process programming technology in the
context of a distributed process-centered environment. A process centered
environment interprets process programs, using them to coordinate the
efforts of people, computers, and software tools. It also provides
a platform for the evaluation, comparison, analysis, evolution and
improvement of software development processes and their support. Programming
software development processes will lead to better understanding and
improvement of software production, as well as providing more effective
computerized support for such processes.
One aspect of this work is CDM, a methodology that uses process programming
to codify methodology knowledge and to compare software design methodologies.
Thus far, CDM has been used to compare seven design methodologies and
further comparisons are planned.
We are also investigating language mechanisms to support process
programming, and using process programming languages to write executable
code for software processes. Little-JIL is a process programming language
that was developed in this context and has been used to write several
executable process programs, including one to support Booch Object-Oriented
Design. Future process programs are planned to support the entire software
lifecycle, including configuration management, managerial support,
and improved measurement capabilities.