In a multi-developer project, team collaboration is essential for the success of the project. When team members are spread across different locations, informal interactions are lo...
Many languages for software architectures have been proposed, each dealing with different stakeholder concerns, operating at different levels of abstraction and with different deg...
Concurrency is inherent in today’s software. Unexpected interactions between concurrently executing threads often cause subtle bugs in concurrent programs. Such bugs are hard to...
Each day, a software developer needs to answer a variety of questions that require the integration of different kinds of project information. Currently, answering these questions...
Generic repair of complex data structures is a new and exciting area of research. Existing approaches can integrate with good software engineering practices such as program assert...