In addition to a classic object-oriented common patterns and practices there are several areas and problems not very easy and conveniently expressed by object oriented approach. Few of so called declarative patterns are presented below : * **Dependency resolution** Starting at some level of complexity every software project usually faces need of managing dependencies of some kind like package dependencies, components and versions dependency. Dependencies are easily represented by declarative means and moreover usually do not change drastically at runtime. Thus dependency management is good candidate for static or comile-time resolution. See [[articles/declarative_patterns#dependency-resolution|details]]. * **Demand and supply** A big amount of a problems could be expressed in terms of supply and demand of interacting components. See [[articles/declarative_patterns#demand-and-supply|details]]. * **Share or joint use**: Examples: first/last use determination, share use planning and allocation(memory, etc).See for example [[concepts/usage| resources usage]]. ===Dependency resolution=== * **Verification and Adaptation** TODO expand on verification and adaptation. Upstream/downstream * **Preferences** Abitility to express preferences allows recognize situation ... * **Distibuted information** Information gathered from different sources. ===Demand and supply=== dssdsds ===Share or joint use=== bdfvfsl;