We present a general technique for extending Java-like languages with dynamic overloading, where method selection depends on the dynamic type of the parameter, instead of just the ...
“Classical” program development by refinement [12, 2, 3] is a technique for ensuring that source-level program code remains faithful to the semantic goals set out in its corre...
Several concerns in the development of multi-agent systems (MASs) cannot be represented in a modular fashion. In general, they inherently affect several system modules and cannot b...
ÐWe describe a general technique for identifying modules in legacy code. The method is based on concept analysisÐa branch of lattice theory that can be used to identify similarit...
Despite vast interest in design patterns, the specification and application of patterns is generally assumed to rely on manual implementation. We describe a precise method of spec...