A fuzzy Prolog database system
A fuzzy Prolog database system
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Smalltalk: best practice patterns
Smalltalk: best practice patterns
Likelog: a logic programming language for flexible data retrieval
Proceedings of the 1999 ACM symposium on Applied computing
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Fuzzy Logic and the Resolution Principle
Journal of the ACM (JACM)
Pointer analysis: haven't we solved this problem yet?
PASTE '01 Proceedings of the 2001 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Approximate reasoning by similarity-based SLD resolution
Theoretical Computer Science
Fuzzy logic based interactive recovery of software design
Proceedings of the 24th International Conference on Software Engineering
Design Recovery by Automated Search for Structural Design Patterns in Object-Oriented Software
WCRE '96 Proceedings of the 3rd Working Conference on Reverse Engineering (WCRE '96)
Reverse Engineering Tools as Media for Imperfect Knowledge
WCRE '00 Proceedings of the Seventh Working Conference on Reverse Engineering (WCRE'00)
A Declarative Evolution Framework for Object-Oriented Design Patterns
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Handling Large Search Space in Pattern-Based Reverse Engineering
IWPC '03 Proceedings of the 11th IEEE International Workshop on Program Comprehension
Identifying Refactoring Opportunities Using Logic Meta Programming
CSMR '03 Proceedings of the Seventh European Conference on Software Maintenance and Reengineering
TOOLS '01 Proceedings of the 39th International Conference and Exhibition on Technology of Object-Oriented Languages and Systems (TOOLS39)
ASTLOG: a language for examining abstract syntax trees
DSL'97 Proceedings of the Conference on Domain-Specific Languages on Conference on Domain-Specific Languages (DSL), 1997
Dimensions of precision in reference analysis of object-oriented programming languages
CC'03 Proceedings of the 12th international conference on Compiler construction
Language-independent detection of object-oriented design patterns
Computer Languages, Systems and Structures
Behavioral similarity matching using concrete source code templates in logic queries
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Hi-index | 0.00 |
The quality of an application's implementation can be assured by validating the presence or absence of a set of user-prescribed software patterns such as software engineering best practices, programming conventions and indications of poor programming. Most of the existing pattern detection techniques, however, interpret pattern descriptions in an inflexible manner, leaving the quality assurance tool to approve only the most strictly adhering pattern implementations. In order to detect various concrete pattern implementations using a single pattern description, we have combined logic meta programming ---wherein patterns can be expressed as constraints over facts representing a program's source code---, fuzzy logic and static program analysis in a way that is completely transparent to the end-user. We have achieved this by having the conditions in a logic rule interpreted as constraints over the run-time behavior source code constructs give rise to instead of as constraints over the literal source code constructs themselves. This way, a pattern's abstract description often suffices to recognize various concrete implementation variants with an indication of the similarity between the recognized implementation and the abstract pattern description