Abstraction and specification in program development
Abstraction and specification in program development
Inheritance and the development of encapsulated software systems
Research directions in object-oriented programming
Demeter: a CASE study of software growth through parameterized classes
Journal of Object-Oriented Programming
Comments on “the law of demeter” and C++
ACM SIGPLAN Notices
Object-oriented programming: an objective sense of style
OOPSLA '88 Conference proceedings on Object-oriented programming systems, languages and applications
Contributions to teaching object-oriented design and programming
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
Understanding object-oriented: a unifying paradigm
Communications of the ACM
Class management for software communities
Communications of the ACM
Surveying current research in object-oriented design
Communications of the ACM
Contracts: specifying behavioral compositions in object-oriented systems
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Distributed, object-based programming systems
ACM Computing Surveys (CSUR)
Introduction to the literature on object-oriented design, programming, and languages
ACM SIGPLAN OOPS Messenger
Maintenance Support for Object-Oriented Programs
IEEE Transactions on Software Engineering - Special issue on software maintenance
Measurement-driven restructuring of object oriented applications
OOPSLA '92 Addendum to the proceedings on Object-oriented programming systems, languages, and applications (Addendum)
Adaptive object-oriented programming using graph-based customization
Communications of the ACM
Christopher Alexander: an introduction for object-oriented designers
ACM SIGSOFT Software Engineering Notes
Design for testability in object-oriented systems
Communications of the ACM
Efficient implementation of adaptive software
ACM Transactions on Programming Languages and Systems (TOPLAS)
The Demeter method: an efficient way to build adaptive software
ACM SIGICE Bulletin
Manual and compiler for the terse and modular language DEM
ACM SIGPLAN Notices
ACM Computing Surveys (CSUR)
Object-oriented software product metrics (tutorial)
SIGCPR '98 Proceedings of the 1998 ACM SIGCPR conference on Computer personnel research
Adaptive plug-and-play components for evolutionary software development
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
ArchJava: connecting software architecture to implementation
Proceedings of the 24th International Conference on Software Engineering
Design erosion: problems and causes
Journal of Systems and Software
Maintaining Object-Oriented Software
IEEE Software
The Impact of Autonomy Technology on Spacecraft Software Architecture: A Case Study
IEEE Intelligent Systems
Object-Oriented Software Evolution
IEEE Transactions on Software Engineering
Chidamber and Kemerer's Metrics Suite: A Measurement Theory Perspective
IEEE Transactions on Software Engineering
Attribute extension - a technique for enforcing programming conventions
Nordic Journal of Computing
Formal Foundations for Object-Oriented Data Modeling
IEEE Transactions on Knowledge and Data Engineering
A case for statically executable advice: checking the law of demeter with AspectJ
Proceedings of the 2nd international conference on Aspect-oriented software development
Architectural Reasoning in ArchJava
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
ECOOP '02 Proceedings of the Workshops and Posters on Object-Oriented Technology
Evaluating the Impact of Object-Oriented Design on Software Quality
METRICS '96 Proceedings of the 3rd International Symposium on Software Metrics: From Measurement to Empirical Results
Performance Modeling Using Object-Oriented Execution-Driven Simulation}
SS '96 Proceedings of the 29th Annual Simulation Symposium (SS '96)
Automatic Detection of Design Problems in Object-Oriented Reengineering
TOOLS '99 Proceedings of the Technology of Object-Oriented Languages and Systems
Visualising class cohesion with virtual worlds
APVis '03 Proceedings of the Asia-Pacific symposium on Information visualisation - Volume 24
Heuristics for Computing Attribute Values of C++ Program Complexity Metrics
COMPSAC '96 Proceedings of the 20th Conference on Computer Software and Applications
Architecture of the XL C++ browser
CASCON '92 Proceedings of the 1992 conference of the Centre for Advanced Studies on Collaborative research - Volume 1
Traversals of object structures: Specification and Efficient Implementation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Controlling the Complexity of Software Designs
Proceedings of the 26th International Conference on Software Engineering
IEEE Transactions on Software Engineering
OOPSLA '04 Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Proceedings of the 4th international conference on Aspect-oriented software development
Informing the design of pipeline-based software visualisations
APVis '05 proceedings of the 2005 Asia-Pacific symposium on Information visualisation - Volume 45
Lazy Types: Automating Dynamic Strategy Selection
IEEE Software
SCoPE: an AspectJ compiler for supporting user-defined analysis-based pointcuts
Proceedings of the 6th international conference on Aspect-oriented software development
A case study in re-engineering to enforce architectural control flow and data sharing
Journal of Systems and Software
Effective classification using feature selection and fuzzy integration
Fuzzy Sets and Systems
Software change dynamics: evidence from 35 java projects
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
A design methodology for functional programs
SAIG'01 Proceedings of the 2nd international conference on Semantics, applications, and implementation of program generation
Using mock object frameworks to teach object-oriented design principles
Journal of Computing Sciences in Colleges
Trends in object-oriented software evolution: investigating network properties
Proceedings of the 34th International Conference on Software Engineering
Ownership, filters and crossing handlers: flexible ownership in dynamic languages
Proceedings of the 8th symposium on Dynamic languages
A fuzzy classifier approach to estimating software quality
Information Sciences: an International Journal
Hi-index | 0.08 |
The language-independent Law of Demeter, which encodes the ideas of encapsulation and modularity in an easy-to-follow form for object-oriented programmers, is presented. The law was developed during the design and implementation of the Demeter system, which provides a high-level interface to class-based, object-oriented systems. Two forms of the law, the class and object forms, are described. Its motivation is to ensure that the software is as modular as possible. Principles covered by the law include coupling control, information hiding, information restriction, information localization, and structured induction. An example is given to show how the law is applied, and valid violations are identified. It is shown how to transform a method that does not satisfy the law into one that does.