5

May

Architettura e architetti

Ciao a tutti

stavo riflettendo su questa definizione sempre difficile da enunciare di archiettura software e architetto software. In base alle mie letture, mi sono fatto questa idea:

L'architettura software è l'insieme dei componenti che compongono il nostro software, di come interagiscono tra di loro, di come dipendono gli uni dagli altri e di come vengono usati dall'interno e dall'esterno del nostro software. Più un componente è radicato nel nostro software, più è necessario al funzionamento di altri componenti, più è un assunto su cui si basano altre scelte, più questo è architettura.

L'architetto invece è colui che è responsabile per l'architettura.

I pattern sono architettura? No. Un pattern è una soluzione ad un problema frequente. I pattern possono diventare architettura? Si. Scegliere di usarene uno per un compito ricorrente nel nostro software diventa architettura. Sono le scelte che fanno l'architettura, non i componenti, non la tecnica, non la teoria, non i pattern, non il codice in se. Solo le scelte di come usarli.

Un esempio: usare un accesso al DB con Domain Model o con TableDataGateway (due pattern di acceso ai dati) è architettura? Uhm... vediamo: il pattern in se no, ma scegliere se nel nostro programma useremo l'uno o l'altro si, perchè da questa scelta scaturiranno dei comportamenti che influenzeranno altre scelte.

Possiamo decidere di usare da una parte l'uno e da una parte l'altro? Uhm... io direo NO. No perchè una scelta è architettura se la si rispetta, altrimenti il software non è architetturalmente gestito, ma semplicemente incasinato dalle scelte che i programatori di turno hanno preso.

A presto

 

by Antonio Esposito on 5/5/2010