These research projects investigate ways to improve development and evolution of software, especially ubiquitous and reliable software. Integration of architecture analysis tools.
Work has both a formal modeling and analysis side, as well as an engineering side.
In practice, once these structural commitments are made, particularly in the design of an API, then can be exceedingly difficult to revise. We are developing tools that are designed to overcome this brittleness and enable software to be more structurally flexible. Collaboration Bill Scherlis Software engineering is nearly always a team activity, but technology to support the details of ongoing engineering teamwork remains weak. We are interested in how this can be done in a way that reaches into the details of code and design and thus reduces the extent of information loss that occurs over the lifespan of larger-scale systems, particularly at the levels of design and code.