Le tendenze attuali nello sviluppo del software si concentrano sulla creazione di sistemi integrando componenti software precedentemente sviluppati. Questo approccio chiamato Component Based Software Engineering aiuta nella riusabilità del codice e aiuta a ridurre il costo dello sviluppo del software. Il Component Based Software Engineering si concentra sull'assemblaggio di componenti esistenti per costruire un sistema software, con un potenziale beneficio di fornire sistemi di qualità usando componenti di qualità. La qualità di un sistema basato su componenti che usa componenti di alta qualità non garantisce quindi necessariamente un sistema di alta qualità, ma dipende dalla qualità dei suoi componenti, e da un framework e dal processo di integrazione usato. Quindi, le tecniche e i metodi per la valutazione della qualità di un sistema basato su componenti sarebbero diversi da quelli della tradizionale metodologia di ingegneria del software. Usare la metamodellazione e i metodi formali nella fase di progettazione potrebbe portare a un componente software di alta qualità. È essenziale quantificare i fattori che contribuiscono alla qualità complessiva, per esempio, il trade off tra costo e qualità di un componente, tecniche analitiche e metodi formali.