Contracts only are a sub-concept of Aspects (inspired by TypesAreContracts) or more specifically: Contract is an aspect pattern. See http://nanning.snipsnap.org/space/Contracts+are+Aspects -- StephanSchmidt I don't see how it can be true that "contracts are only a sub-concept of aspects", since contracts are primarily ''documents for the human reader'', describing what each part of a system requires and guarantees. A good DbC system will provide ways to enforce (parts of) the contracts, but the tests are not the contract. You can certainly use aspects to implement some of the checking found in systems that support DbC. But it's not clear to me that everything you ''can'' do using aspects ''is'' a "sub-concept of aspects" or an "aspect pattern". -- GarethMcCaughan