Ничего особо ценного кроме классических «низкой связанности и высокого зацеления» не приходит на ум. Откопал еще S.O.L.I.D. - но это по сути кокретизация выше названных критериев.
Слышал мнение, что по сути проблема в разработке сложных программных систем - это сильная связанность. Все остальное - второстепенно.