Museo&Web

Kit di progettazione di un sito di qualità per un museo medio-piccolo

wp5 logo
 
vai al contenuto

Ti trovi in: Home - Tutorial - Architettura - I pattern

I pattern

Recita il Manuale per la qualità dei siti Web pubblici, culturali, paragrafo 2.5:

Un approccio diverso ai problemi concreti di progettazione e realizzazione di siti Web di qualità è quello di far uso dei Pattern, che si propongono di risolvere problemi ricorrenti mediante soluzioni note e consolidate. Il prodotto Web ha ormai raggiunto un grado di maturità tale che le soluzioni ad alcuni problemi legati al suo utilizzo sono ormai ritenute patrimonio comune a tutti i progettisti.
Inoltre, i Pattern possono essere un utile riferimento per coloro che si devono interessare di siti Web, pur non essendone esperti. In questo caso, infatti, i Pattern possono costituire un comune linguaggio di comunicazione con i professionisti per indicare cosa si vuole e perché, indipendentemente dal come la soluzione sia realizzabile tecnicamente.
I Pattern non eliminano né sostituiscono la necessità del coinvolgimento degli utenti di cui si è parlato precedentemente: al contrario questo metodo si giova, per definizione, di esperienze concrete fatte con gli utenti.

2.5.1 Definizioni
Il paradigma dei Pattern è stato sviluppato alla fine degli anni Settanta da Christopher Alexander, professore di Architettura all’Università di Berkeley, per far fronte ai complessi problemi connessi alla progettazione urbanistica ed edilizia. Secondo Alexander la scarsa qualità dell’architettura degli anni Sessanta era dovuta anche alla mancanza di metodi formali di progettazione. In pratica, egli rilevò che i progetti urbanistici e di edifici non tenevano conto delle esperienze concrete che man mano andavano maturando e senza le quali i progetti stessi finivano per essere estranei alle esigenze reali degli utenti. Di qui l’idea di definire dei Pattern che stabiliscono una relazione tra un contesto, un insieme di condizioni (o vincoli) legate a quel contesto e una soluzione che risolve il problema con quelle condizioni e in quel contesto.
Dalla metà degli anni Novanta l’idea di usare linguaggi di Pattern come supporto ai progettisti ha avuto un nuovo slancio grazie all’enorme successo avuto dalla sua applicazione al campo dell’ingegneria del software e della progettazione object oriented. Recentemente il paradigma dei Pattern è stata applicato anche al campo della Human Computer Interface (HCI), con estensioni al mondo Web.
I Pattern ambiscono a fornire un modo rigoroso per descrivere l’esperienza di un progettista attraverso la formulazione di una soluzione a un problema comune.
Ciò che caratterizza quest’approccio è la scelta di non dare soluzioni “pre-codificate” al problema, cercando piuttosto di descrivere correttamente sia il contesto sia la soluzione, raccogliendo sotto un unico titolo le esperienze e le soluzioni adottate (anche da altri, non soltanto le proprie) in situazioni simili.
Un Pattern è costituito da una triade composta da:
Contesto: è l’insieme delle condizioni al contorno, l’ambiente nel quale si agisce; è l’insieme delle forze in azione delle quali il Pattern deve tenere conto e che vincolano la scelta della soluzione;
Problema: è una situazione che si presenta in maniera ricorrente nel contesto e che crea scompensi tra le forze in azione;
Soluzione: è un algoritmo, una tecnologia, una struttura organizzativa, un metodo noto, un modello di riferimento che risolve in maniera ricorrente quel problema in quel contesto.
Va evidenziato il fatto che un Pattern è costituito da una triade: questo implica che un problema, da solo, non è un Pattern e una soluzione, da sola, non è un Pattern.
Detto in una frase: un Pattern è una soluzione consolidata (well proven) a un problema ricorrente in un contesto specifico.
Per completare la definizione di un Pattern occorrono anche altri elementi:
Nome: un Pattern deve avere un nome significativo. Dare un nome a qualcosa è il primo passo per poterne parlare.
Condizioni: descrizione delle condizioni (o vincoli) presenti nel contesto.
Annotazioni: considerazioni (positive o negative) sulle conseguenze dell’uso del Pattern corrente.
Pattern correlati: relazioni tra il Pattern corrente e altri Pattern utilizzati nel sistema di riferimento.
Usi conosciuti: riferimenti puntuali ad applicazioni pratiche del Pattern corrente.

Un linguaggio di Pattern raccoglie Pattern che cooperano per risolvere i problemi in un certo contesto.
Il contesto generale di riferimento al quale intendiamo applicare il linguaggio dei Pattern è la progettazione e la realizzazione di WAI accessibili e usabili, vale a dire di qualità.
Stabilite le condizioni di riferimento comuni è necessario organizzare in qualche modo i Pattern per poterli utilizzare.
Il modo qui proposto sia quello di costruire un vero e proprio Catalogo di Pattern il cui scopo è quello di individuare categorie generali di problemi da affrontare. All’interno di ciascuna di queste categorie si inseriscono Pattern che definiscono e risolvono un problema particolare.

2.5.2 Il Catalogo dei Pattern
Per costruire il Catalogo dei Pattern da applicare nella progettazione e nella realizzazione di un’WAI accessibile e usabile utilizziamo le stesse categorie generali nelle quali sono stati raggruppati i Criteri di usabilità. A esse aggiungiamo anche:

Interagire con gli utenti: quando un SCP si presenta su Internet con un suo sito Web apre, di fatto, uno sportello al cittadino. L’interattività, intesa come possibilità di comunicazione diretta tra cittadino e WAI diventa una funzionalità importante che non può mancare.
Nell’appendice 3 sono presentati il Catalogo dei Pattern e la loro definizione.

2.5.3 Come utilizzare i Pattern
Resta, infine, una questione da chiarire: come “si usano” i Pattern.
Alexander, in un capitolo del suo libro A Pattern Language, suggerisce di intraprendere un percorso al termine del quale si dovrebbe aver compilato una lista di Pattern necessari al progetto. I passi del percorso sono i seguenti:

  1. Esaminare l’intera sequenza, il Catalogo dei Pattern, che è disponibile.
  2. Individuare, attraverso il nome, il Pattern che meglio identifica il progetto/problema che si deve affrontare.
  3. Leggerne attentamente la descrizione: in essa sono indicati i Pattern correlati a quello attuale. Si predispone, quindi, una lista segnando su di essa i Pattern di livello inferiore (più specifici) che si incontrano, tralasciando, in genere, i Pattern di livello superiore (meno specifici).
  4. Leggere il Pattern successivo evidenziato sulla lista e segnare di nuovo i Pattern inferiori a cui è correlato.
  5. Quando si è in dubbio sulla utilità di un Pattern questo non va incluso. Infatti la lista diverrebbe inevitabilmente troppo lunga e potrebbe confondere, e comunque sarà già sufficientemente lunga includendo solo i Pattern che più si ritengono utili.
  6. Si continua così fino all’identificazione di tutti i Pattern che si vuole includere nel progetto.
  7. Giunti a questo punto bisogna aggiustare la lista aggiungendo, se necessario, propri elementi.
  8. Infine, si deve tenere in gran conto della necessità di adattamenti e cambiamenti dei Pattern in relazione alle esigenze proprie del progetto in corso.

Catalogo dei pattern

Bibliografia

Alexandex C. et al. A Pattern Language – Towns, Buildings, Construction. New York: Oxford University Press, 1977

Norman, Donald. The Design of Everyday Things. New York: Basic Books, 1988

Alexander Christopher. The Timeless Way of Building. New York: Oxford University Press, 1979

Cunningham, Ward – Beck, Kent. Using Pattern Languages for Object-Oriented Programs, presented to the Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 1987

Gamma Erich – Helm, Richard – Johnson, Ralph – Vlissides, John. Design Patterns – Elements of Reusable Object-Oriented Software. Boston: Addison Wesley, 1995

Patter language for the web
http://c2.com/cgi/wiki?PatternLanguageForTheWeb

Tidwell, Jenifer, COMMON GROUND: A Pattern Language for Human-Computer Interface Design, 1999
http://www.mit.edu/~jtidwell/common_ground.html

Tidwell, Jenifer. UI Patterns and Techniques, 2002
http://time-tripper.com/uipatterns/

Van Welie, Martin, Interaction Design Patterns, 2001
http://www.welie.com/patterns/

Inoltre, una bibliografia sulle raccolte di pattern sul Web può essere consultata a: http://iawiki.net/WebsitePatterns

© Progetto Minerva 2004-07, ultima revisione 2004-12-14, a cura del WP5, Commissione di studio per la creazione di un prototipo di sito web culturale pubblico.
URL: www.minervaeurope/structure/workinggroups/userneeds/prototipo/progproto/architettura/pattern.html