programming languages context-oriented programming object-oriented programming programming paradigms software development tools meta programming reflection smalltalk source code mining structural source code regularities software evolution software development aspect-oriented programming context-aware software ruby java intensional views formal concept analysis refactoring software reuse software maintenance aspect mining kim mens fragile pointcut problem usage contracts fragility recommendation systems object–oriented programming logic programming bad smells object-oriented design design heuristics design patterns anti patterns architectural software patterns software patterns software improvement domain analysis domain modelling feature models feature-oriented domain analysis template method design pattern application frameworks ruby on rails context analysis dynamic software product lines features software variability contexts dynamic software adaptation software architecture context-aware computing instrumentation call stack introspection dynamic proxies singleton methods higher-order programming mixin modules relational algebra information systems database structural regularities cross fertilisation consistency checking tools unit testing software visualization software quality assessment software analysis software measures mendel eclipse aspect oriented programming source code analysis data mining vulgarizing informal for dummies sebastián gonzález prolog javascript source code inheritance software quality assurance software erosion fragile base class problem model-based pointcuts reuse contracts program analysis traits context traits language engineering software ecosystems multi–paradigm programming ambience dynamic adaptation mobile platform programming programming language objective-c
See more