Aumentare la qualità del design del software è una sfida chiave di ricerca nel sistema di sviluppo software orientato agli oggetti. La coesione è uno degli aspetti chiave che aiuta a valutare la qualità e la modularità di un sistema software a livello di progettazione. Aiuta a creare componenti software che sono direttamente riutilizzabili per l’industria a causa della loro minore dipendenza da altri componenti. In questo documento, viene proposta una nuova metrica di coesione per software orientato agli oggetti, denominata Usage Pattern Based Cohesion (UPBC), che viene calcolata a livello di modulo. Questo documento considera la classe come un modulo inizialmente e successivamente il gruppo di classi (cioè un pacchetto) è considerato come un modulo con l’obiettivo di migliorare la coesione generale. Questa metrica utilizza i Frequent Usage Patterns (FUP) estratti da diverse interazioni tra funzioni membro per acquisire la coesione del modulo. Inoltre, il valore di coesione misurato viene utilizzato per eseguire il clustering dei moduli al fine di aumentare la coesione e diminuire l’accoppiamento tra i moduli contemporaneamente. Il clustering viene eseguito utilizzando un algoritmo di clustering appena proposto chiamato FUPClust (Frequent Usage Pattern based Clustering) basato sulle interazioni FUP tra i moduli. L’approccio proposto è applicato a due sistemi software Java e i risultati ottenuti mostrano un significativo miglioramento della coesione del sistema software.