ABSTRACT. Design patterns are well-known couples of problems-solutions for software engineering. By nature, they often lack support from languages and this further complicates the ...
We propose Considerate Reasoning, a novel specification and verification technique based on object invariants. This technique supports succinct specifications of implementations wh...
Security patterns capture best practice on secure software design and development. They document typical solutions to security problems. To ensure security, large software system ...
Requirements such as distribution or tracing have an impact on multiple classes in a system. They are cross-cutting requirements, or aspects. Their support is, by necessity, scatt...
Design patterns are rarely used on their own. They are almost always to be found composed with each other in real applications. So it is crucial that we can reason about their comp...