Abstract. Developing and maintaining software systems is a knowledge intensive task. One needs knowledge of the application domain of the software, the problem the system solves, t...
The EvoSpaces reverse-engineering tool represents the architecture and metrics of complex software systems as 3D software cities. By navigating and interacting with this world, th...
— 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...
Software systems are increasingly being built as compositions of reusable artifacts (components, frameworks, toolkits, plug-ins, APIs, etc) that have non-trivial usage constraints...
Use cases have achieved wide use as specification tools for systems observable behavior, but there still remains a large gap between specifying behavior and determining the softwar...