Design patterns are widely recognized as important software development methods. Their use as software understanding tools, though generally acknowledged has been scarcely explore...
The evolution of complex software systems is promoted by software engineering principles and techniques like separation of concerns, encapsulation, stepwise refinement, and reusab...
Implementing application-specific code conforming to architectural rules and conventions can be tedious. FRED is a tool prototype for architecture-oriented programming that takes ...
Fundamental nano-patterns are simple, static, binary properties of Java methods, such as ObjectCreator and Recursive. We present a provisional catalogue of 17 such nano-patterns. ...
The use of bad names — names that are wrong, inconsistent or inconcise — hinder program comprehension. The root of the problem is that there is no mechanism for aligning the n...