Comunicazione Digitale Prof. Santangelo CIM AA 2023
Comunicazione Digitale E Multimediale (Università degli Studi di Pavia)
Studocu non è sponsorizzato o supportato da nessuna università o ateneo.
Scaricato da FRANCESCO MANCINO (indirizzodipostapersonale@gmail.com)COMUNICAZIONE DIGITALE
Servizi Web
Cosa sono i servizi web?
- un'applicazione (un software)
- è accessibile via internet
- è realizzato attraverso diverse tecnologie
- vive all'interno di una complessa infrastruttura
- risponde alle esigenze degli utenti
Esempi: un semplice sito web; un complesso sistema di banking online
L'ingegneria del software
Il software è equiparato a qualsiasi altro prodotto ingegneristico (es. veicoli,
costruzioni) e pertanto la sua realizzazione deve basarsi su procedure, principi e
metodi scientifici.
L'ingegneria del software è una disciplina ingegneristica che definisce il processo di
sviluppo del software in grado di realizzare un prodotto efficace ed efficiente.
Come qualsiasi altro prodotto ingegneristico, anche il software deve essere
realizzato all'interno di un progetto.
1
This document is available free of charge on
studocu
Scaricato da FRANCESCO MANCINO (indirizzodipostapersonale@gmail.com)
Che cos'è un Progetto?
Un progetto è una sequenza di fasi, attività e compiti che hanno come finalità la
realizzazione di un outcome (prodotto, servizio, risultato).
- ha un inizio e una fine
- le attività non sono di "routine", pertanto il project team potrebbe essere
composto da persone con le quali non si lavora generalmente, talvolta appartenenti
a differenti organizzazioni o provenienti da diverse regioni geografiche
- sfrutta una serie di risorse che generalmente sono definite a priori (risorse
umane, tecnologiche, economiche e temporali).
La progettazione è un processo che a partire da norme tecniche, calcoli, specifiche e
disegni, perviene alla definizione delle specifiche necessarie alla realizzazione di un
manufatto, un edificio, un componente, un apparato, o in generale di un prodotto o un
servizio (per esempio un'abitazione, una sedia, una strada, un ponte, un autoveicolo, un
software, un sistema elettronico) riassunte all'interno di un progetto.
Perché progettare?
- per lavorare in modo non occasionale, episodico
- per evitare l'improduttività
- per finalizzare il proprio operato
- per trovare le risposte più adatte ad ogni specifica situazione
- per permettere a più persone di lavorare in gruppo, sia nella fase ideativa che in
quella operativa
- per verificare i risultati raggiunti
- per contenere l'emergenza
- per fornire pubblicamente una rendicontazione dell'operato del singolo e del
gruppo.
Senza progettazione si rischia di produrre un artefatto poco intuitivo e scarsamente
usabile, che può decretarne in anticipo l'insuccesso.
2
Scaricato da FRANCESCO MANCINO (indirizzodipostapersonale@gmail.com)
Efficacia ed efficienza del progetto
Durante la progettazione è fondamentale utilizzare una metodologia che veda nell'utente
finale il "fulcro" della progettazione:
Durante il progetto, è necessario applicare tutte le conoscenze, le abilità e le tecniche per
eseguire il progetto in maniera efficace ed efficiente:
- efficace -> l'outcome del progetto deve soddisfare lo scopo per cui è stato progettato
- efficiente -> l'outcome del progetto deve avvenire nei tempi stabiliti e non deve
richiedere più risorse di quelle previste
Triplo vincolo
Tempo - Qualità - Costo
Team: ruoli e responsabilità
Project Manager:
- pianifica, organizza, gestisce, monitora e revisiona tutte le attività di progetto
- effettua una stima dei tempi e dei costi necessari allo sviluppo
- gestisce il budget, le risorse umane (es. formazione) e i materiali (es. gli strumenti
necessari a supporto del processo di sviluppo
- prende decisioni sullo sviluppo del prodotto al fine di mantenere i costi, i tempi e la
qualità del software
Product Owner (esperti in materia) -> è la persona interna all'organizzazione che possiede
una chiara competenza sul servizio che si vuole digitalizzare e una chiara idea del risultato
che si vuole ottenere. Conosce molto bene il dominio applicativo. Ad esempio, se si sta
sviluppando un servizio di fatturazione elettronica, il Product Owner conosce l'intero
processo e le norme che ne regolano il funzionamento.
3
This document is available free of charge on
studocu
Scaricato da FRANCESCO MANCINO (indirizzodipostapersonale@gmail.com)
Project Team -> team interdisciplinare dedicato al progetto, con competenze di ricerca,
prototipazione e sviluppo di servizi.
- Project Leader : capo del gruppo di lavoro, generalmente dotata di capacità
comunicative e di leadership, cerca di prevenire e risolvere i conflitti interni al gruppo
- Architect/Analyst: traduce i requisiti di business in soluzioni tecniche (ad esempio, la
tecnologia da utilizzare per soddisfare un requisito)
- UI Designer: progetta le interfacce grafiche
- UX Designer: progetta la User Experience
- Content Designer: progetta i contenuti
- Content Manager: coordina le attività di copywriting
- Front-End Developer: sviluppo di interfacce grafiche
Back-End Developer: sviluppo di moduli di backend
- System Administrator: gestisce i sistemi
- DB Administrator: gestisce i database
- QA Engineer: garantisce la qualità del software
Tester: esegue test sui prodotti
- Web Strategist: sviluppa una strategia per promuovere e migliorare l'immagine delle
aziende
Principi generali di Progettazione
- partire dai bisogni dell'utente -> indagare sulle esigenze dell'utente e fare in
modo che che tutte le funzionalità siano disegnate intorno alle sue esigenze e
modelli mentali, consentendogli di ottenere facilmente e rapidamente ciò di cui ha
bisogno, senza passaggi inutili e con istruzioni comprensibili. I servizi devono essere
4
Scaricato da FRANCESCO MANCINO (indirizzodipostapersonale@gmail.com)
progettati intorno ai bisogni degli utenti e non sulla base delle esigenze delle
organizzazioni che li erogano. Il prodotto viene ottimizzato sugli utenti, piuttosto che
costringere questi ultimi ad adattarsi al sistema forzandoli a modificare il loro modo
di lavorare. Il prodotto deve presentare le funzionalità che sono di valore per
l'utente finale. Negli anni 80' Donald Norman introduce il concetto di "User-Centered
Design", sottolineando l'importanza di considerare i bisogni degli utenti e
centrando la sua attenzione sull'usabilità. Il ruolo del progettista è quello di rendere
più facili i compiti che devono essere svolti dagli utenti, assicurandosi che siano in
grado di utilizzare il prodotto come previsto e con un minimo sforzo.
- semplificazione -> Tutta la progettazione deve essere improntata alla massima
semplicità:
- suddivisione del problema in sottoproblemi
- rappresentazione grafica del problema. Questo facilita la realizzazione di un
sistema di facile comprensione e manutenzione.
- ciò che si produce verrà consumato da altri -> Altri soggetti (utenti, sviluppatori,
manutentori) dovranno in futuro utilizzare il prodotto che si sta realizzando.
Facilitare il loro lavoro aggiunge valore al sistema. Mantenere aggiornata la
documentazione del sistema può aiutare terze parti a comprendere più facilmente
la complessità del sistema
- standardizzare -> La standardizzazione è fondamentale per favorire la sostenibilità
e l'efficacia, consentendo di progettare ogni nuovo servizio partendo da
componenti già esistenti e concentrare le risorse disponibili sugli elementi di
unicità del servizio, senza dover «reinventare ogni volta la ruota»
- essere aperti verso il futuro -> Il progetto che si sta implementando non è statico
ma dovrà evolvere nel tempo. La progettazione deve evitare di precludere la
possibilità che questo accada, facendo scelte progettuali che possano condizionare
il processo evolutivo del software
- misurare gli obiettivi -> Durante la progettazione dei servizi è importante
individuare gli obiettivi da raggiungere, in termini di funzionalità e processi, insieme
alle metriche in grado di valutare il successo e il gradimento del progetto. I sistemi
5
This document is available free of charge on
studocu
Scaricato da FRANCESCO MANCINO (indirizzodipostapersonale@gmail.com)
di misurazione devono essere sintetici (pochi indicatori chiave) e specifici (cioè
strettamente legati al servizio che si intende misurare)
- miglioramento continuo -> Il rilevamento del grado di raggiungimento degli
obiettivi è fondamentale per il miglioramento continuo del servizio. In questo modo
si capisce cosa serve veramente agli utenti, evita di creare servizi e funzionalità
inutili, concentrandosi sull'essenziale e migliorandolo progressivamente.
- pianificare per il riuso -> Il riuso consente di risparmiare tempo e fatica. Il sistema
deve essere sviluppato in modo:
- riusare componenti sviluppate in passato
- sviluppare nuove componenti da utilizzare in futuro
La progettazione dei sistemi digitali
Tutti i modelli di sviluppo del software sono composte da fasi, attività e compiti. Ogni
fase deve raggiungere un obiettivo (generalmente la produzione di un outcome) che viene
raggiunto attraverso attività e compiti. Le attività possono essere generalizzate in due
categorie:
- attività strutturali
- attività trasversali
Attività strutturali
- Service Requirements a. Domain Knowledge b. Stakeholder Identification c.
Requirement Elicitation d. Requirement Analysis
- Design a. Service Design b. Architecture Design c. Content Design d. Prototyping
- Project Plan a. Cost and Time assessment
- Setting up Technology Environment
- Coding and Testing Software
- Deployment and Integration
- Go Live and Support: User Training, Maintenance, Monitoring & User Research.
6
Scaricato da FRANCESCO MANCINO (indirizzodipostapersonale@gmail.com)
Attività trasversali
- Progress: consente al team di sviluppo di valutare i progressi rispetto al piano
previsto e di intraprendere le azioni necessarie a rientrare nei tempi programmati
- Risk Management: vengono valutati i rischi che possono influenzare il risultato del
progetto
- Quality Assessment: viene valutata la qualità del software (che faccia
effettivamente ciò per cui è stato progettato)
- Formal Technical Review: vengono valutati i prodotti realizzati in modo da
eliminare gli errori prima che questi si propaghino all'attività successiva
- Document Preparation: comprende tutte le attività necessarie per creare prodotti
come documenti, registri, moduli ed elenchi
- Reusability Management: definisce i criteri per il riutilizzo del software realizzato
- Measurement: vengono effettuate le necessarie misurazioni riguardanti: a. la
qualità b. l'usabilità c. la rispondenza alle scadenze
La personalizzazione del processo di sviluppo
Non tutti i processi vanno bene per tutti i sistemi: il processo che si adotta per lo
sviluppo del software del sistema di controllo di un aereo potrebbe non essere lo stesso
del processo per lo sviluppo di un sito web.
Il progettista deve quindi adottare un approccio agile, in modo da prevedere solo quelle
attività che sono appropriate per il team di sviluppo e per il prodotto che si sta realizzando.
Fasi del processo di sviluppo
Le fasi non sono separate le une dalle altre, spesso sono concorrenti e iterative.
Alla fine di ogni fase viene generato un risultato (outcome) ad esempio un software o una
documentazione (documento PDF / presentazione PowerPoint / Diagramma / ecc.)
7
This document is available free of charge on
studocu