Writing an article without pointer is pointless. So here is a start.
Version dependencies are described here http://www.debian.org/doc/debian-policy/ch-relationships.html
For a functional dependency specification (Nix and NixOS) see
- the paper of Eelco Dolstra http://www.cs.uu.nl/~eelco/pubs/nspfssd-lisa2004-final.pdf
- the developers manual http://nix.cs.uu.nl/dist/nix/nix-0.11/manual/#chap-package-management
- the project homepage http://nix.cs.uu.nl/nixos/index.html
Also the RPM specifications are useful but last time I looked it was not so complete as debian.
Nix is really nice but not easy or never to re-implement.