Progettazione di siti Web con CMS
Lezione 11 di Ingegneria del software
Docente: Giuseppe Scollo
Università di Catania, sede di Comiso (RG)
Facoltà di Scienze Matematiche, Fisiche e Naturali
Corso di Studi in Informatica applicata, AA 2007-8
Web application framework :
-
un sistema di funzioni software per lo sviluppo di applicazioni e servizi Web
Content Management Framework (CMF):
-
un sistema di funzioni software per la gestione di contenuti informativi
Content Management System (CMS):
-
un CMF arricchito di funzionalità di presentazione per facilitarne l'uso
è diffuso l'uso di CMF e CMS per la costruzione e gestione di siti e
applicazioni Web
in prima approssimazione, con riferimento a CMF e CMS progettati per detto uso:
-
CMF:
interfaccia di programmazione (API) per la gestione di contenuti Web
-
CMS:
applicazione Web per la costruzione e la gestione di siti Web (dinamici)
in pratica, la linea di demarcazione tra CMF e CMS non è netta:
molti sistemi offrono
-
sia API e funzioni adattabili a sviluppatori e gestori di siti Web dinamici
-
sia schemi di siti, skins
e servizi configurabili ai progettisti di contenuti
la proliferazione dei CMS è rapidamente cresciuta con l'espansione della Web
da una prima panoramica emerge che
-
i CMS sono spesso adoperati per la
creazione collaborativa di contenuti Web
-
i CMS open source
sono ben più numerosi di quelli proprietari
da un catalogo di CMS open source (limitato a sistemi PHP/MySQL) appare poi
evidente l'esistenza di categorie speciali
di CMS, oltre a quella generale di sviluppo di portali Web:
-
blogs, e-commerce, groupware, forum, e-learning, image galleries, wiki, ...
la scelta del CMS può giovarsi di dati e criteri per la
valutazione comparativa
esercizio:
selezione di CMS che soddisfino requisiti di
-
accessibilità
-
interoperabilità
-
economicità
-
adattabilità
tre strati di software ad oggetti:
-
Zope
application server :
Web application framework [+ Web server]
-
Plone CMF:
Zope Product (una Web application)
-
Plone CMS:
Plone Product (una Web application su Plone CMF)
e molti altri Products
(tratto tipico del software a sviluppo libero)
codice Python open source,
con licenza GNU/GPL, sviluppato con metodologia
agile
caso interessante di evoluzione
di un'architettura software ad oggetti:
-
Zope 2:
integrazione stretta, basata su ZODB (database interno ad oggetti)
-
Zope 3:
integrazione lasca, basata su file
-
componenti Five :
-
convergenza (5 = 2+3) per interoperabilità con entrambe le architetture
alcune funzionalità di Plone CMS, fra le più significative:
-
editing on-line collaborativo di documenti
-
controllo di versione dei documenti
-
(definizione di nuovi) tipi di contenuti
-
gestione di utenti e gruppi
-
condivisione di contenuti
-
autorizzazione e controllo di accesso,
workflow di pubblicazione di contenuti
-
(specializzazione di) skin predefiniti
-
query dinamiche di ricerca di contenuti
-
supporto alla costruzione di siti multilingue
(LinguaPlone Product)
-
e molte altre:
http://plone.org/products/plone/features/3.0
un esempio (tratto dal Cap. 2 di (Aspeli, 2007))
-
sito Web di una catena di cinema, con servizi informativi e di prenotazione
specifica informale di requisiti ad alto livello, funzionali e non, ad es.:
-
personale non tecnico dovrebbe poter aggiornare l'informazione su ciascun
cinema
disegno delle principali funzionalità:
Diagramma di casi d'uso del sito Web di una catena di cinema
alcuni argomenti:
-
specializzazione di Plone con buildout
-
sicurezza e workflow nei casi d'uso
-
specializzazione della veste del sito
-
definizione di (nuovi) tipi di contenuti
riferimenti e siti utili: