ソフトウェア開発において、過去のソフトウェア設計者が発見して編み出したノウハウを再利用しやすいようにあるルールにしたがってカタログ化したものである。
これをすることによって生産性の向上に努めている。