Il mantra dell’ingegneria del software, ormai quasi completamente divorato dalla deriva java-centrica, parla esclusivamente di “architettura” e “scelte architetturali”. Nelle riunioni la parola d’ordine è “decidere l’architettura”.
Basta. Il tutto a discapito di chi poi deve scrivere il codice, che subisce i crampi mentale di questa gente. Gente che ormai non scrive più codice, che ha perso contatto con la realtà.
A questi vorrei dire: “quelli che possono programmano, quelli che non possono fanno gli architetti”.
La mia domanda però è un’altra. Di cosa parliamo quando usiamo il termine architettura? Come possiamo usarlo con senso?
Ho trovato qualche risorsa che schematizza felicemente gli stili architetturali. Che devono essere distinti da Pattern e Metafore.
Mi sembra utile riprendere questa tabella esplicativa.
| Architecture style |
Description |
| Client-Server |
Segregates the system into two applications, where the client makes a service request to the server. |
| Component-Based Architecture |
Decomposes application design into reusable functional or logical components that are location-transparent and expose well-defined communication interfaces. |
| Layered Architecture |
Partitions the concerns of the application into stacked groups (layers). |
| Message-Bus |
A software system that can receive and send messages that are based on a set of known formats, so that systems can communicate with each other without needing to know the actual recipient. |
| N-tier / 3-tier |
Segregates functionality into separate segments in much the same way as the layered style, but with each segment being a tier located on a physically separate computer. |
| Object-Oriented |
An architectural style based on division of tasks for an application or system into individual reusable and self-sufficient objects, each containing the data and the behavior relevant to the object. |
| Separated Presentation |
Separates the logic for managing user interaction from the user interface (UI) view and from the data with which the user works. |
| Service-Oriented Architecture (SOA) |
Refers to Applications that expose and consume functionality as a service using contracts and messages. |
pm :: Feb.12.2009 ::
Uncategorized ::
No Comments »