Cos’è un componente software? Artboard

Componente, oggetto e sistema sono tutti termini che hanno diversi significati specifici in diversi contesti.

Un sistema è un termine generico usato per descrivere un meccanismo/tecnologia/design/... che lavora per servire un insieme di funzioni.

Un componente è un sotto-sistema.

Un oggetto è solo un oggetto.

Un'automobile è un sistema. Questo sistema ha componenti come il motore, i sedili e il cruscotto. Un'auto è un oggetto e alcuni dei suoi componenti sono anch'essi oggetti.

Il motore dell'auto è un componente dell'auto e anche un sistema a sé. È anche un oggetto.

Il traffico è un sistema con componenti come strade, regole, segnali, auto, passeggeri, autisti, pedoni, ecc.

Ogni programma/applicazione software è un sistema e ha diversi componenti. Dal punto di vista di un UX designer, i componenti di un sistema software possono essere la sua navigazione, diverse sezioni, moduli e schermate. Dal punto di vista di un architetto di software, questo sistema ha componenti principali come il frontend e vari servizi di backend. Dal punto di vista di uno sviluppatore, questo sistema ha diversi componenti come librerie e classi.

Il termine oggetto, nel software, è usato per qualsiasi cosa in memoria. Un int in C o un'istanza di una classe enorme in Java sono entrambi oggetti. L'approccio orientato agli oggetti aggiunge alcuni vincoli su come definire, inizializzare e accedere agli oggetti in un programma e queste aggiunte sovraccaricano naturalmente il significato del termine oggetto di conseguenza.

Ci sono diversi significati specifici del termine componente come si vede in altre risposte a questa domanda. Per uno sviluppatore web, un componente web è un pezzo di software che può essere aggiunto a un documento HTML senza causare conflitti con il documento host/target. Per un altro framework/piattaforma/sistema, un componente può significare qualcos'altro.

In breve, si possono ottenere cento risposte diverse alla domanda "cos'è un componente?" se si chiede a cinquanta sviluppatori diversi. Al di là di tutti questi significati sovraccarichi su sistemi diversi, un componente è sempre e solo un sotto-sistema.