コンピューター・プログラミングでは、利用者は用件に合わせて、関数、オブジェクト、メッセージ、スクリプトなどの達成方法を選び、また、用意されている様々な各種機能の中からいくつかを選んで組み合わせて用いることになる。この際、1つの用件に合わせて1つの達成方法をピックアップしやすかったり、または各種機能の選び方や組み立て方が、複雑であっても全用途の組み合わせ的に見てピックアップしやすく厳選されている場合、粒度が高いという。
逆に粒度が低いとは、1つの手続きで済むことを2つにも3つにも分けていたり、または1つの機能を実施すると要求していない作業も一緒に行ってしまうことをいう。また変わった例としては、1用件1機能を満たしている機能を作り続けたにもかかわらず、全体的に見ると各種機能の数量が手に負えないほど増えてしまって、整理分類が細分化した結果 数の中に埋もれその機能を選びにくくなると、結局 粒度は低いといえる。
粒度を高める方法として、一粒のようにまとめ、一粒のように分離する目安がある。
- 機能をまとめること …凝集度を高める
- 関連を分離すること …結合度を低める(結合を疎にする)
その用途からみて過剰にデータや機能が分割、分配されて細々になっていると、粉々であり一粒としての粒度は低くなる。
データや機能は用途に合わせて、1つの用件だけを済ます単位に分割する。
データや機能は過剰に分割せず、粉々ではないある程度の大きさ(一粒)に束ねる。
また粒度は、基本的に機能の分割に対して使われるが、汎用的に用いることもできる概念である。凡そ分割を行い単位を作る事柄には、分割が度を過ぎて行われたり、行う余地がある際に粒度という性質が問題となることがある。例えばオブジェクト指向プログラミングでは クラスを分割する粒度を意識することもできる。