Modularity is one of the most important properties of a software design, with significant impact on changeability and evolvability. However, a formalized and automated approach i...
— We present design patterns used by software components in the TinyOS operating system. They differ significantly from traditional software design patterns due to TinyOS’s fo...
Cognitive models of software comprehension are potential sources of theoretical knowledge for tool designers. Although their use in analysis of existing tools is fairly wellestabl...
It is now generally accepted that separating software architecture into multiple views can help in reducing complexity and in making sound decisions about design trade-offs. Our f...
Robert L. Nord, Daniel J. Paulish, Dilip Soni, Chr...
In earlier work we have argued that formal process definitions can be useful in improving our understanding and performance of software development processes. There has, however,...