This lecture makes an introduction to Web Engineering.
- Why web engineering
- Quality
- Issues to avoid
- Web architectures
The output of this course consists in a list of artifacts and principles to be used when engineering Web applications is listed at https://trello.com/b/z49P8z3b
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA Giorgio
Web Engineering L1: introduction to Web Engineering (1/8)
1. Progettazione di Applicazioni Web
corso del Master in Web Technology
a.a. 2017-2018
https://app.schoology.com/course/1511186315/
Henry Muccini
Università degli Studi dell’Aquila
1. Introduzione al Corso
2. MWT– Progettazione di Applicazioni Web Henry Muccini
2
Copyright Notice
Il materiale riportato in queste slide puo’ essere
riutilizzato, parziale o totalmente, a patto che le fonti
e gli autori vengano citati
Henry Muccini
3. MWT– Progettazione di Applicazioni Web Henry Muccini
3
Benvenuti!
Prima di iniziare:
– Presentazioni
• Mio Profilo
• Vostri profili
– Schoology:
https://app.schoology.com/course/1511186315/
4. MWT– Progettazione di Applicazioni Web Henry Muccini
4
My profile
Professore in Informatica
Ingegneria del Software
Tematiche di interesse:
Ingegneria del Software
Architetture Software
Model Driven Engineering
Mobile Computing
Teaching:
Modellazione UML per il Web @Master in Web Technology (2004-oggi)
Ingegneria del Software (2006-oggi)
Architetture Software (2006-oggi)
Advanced Software Architecture (2010-oggi)
5. MWT– Progettazione di Applicazioni Web Henry Muccini
5
Henry Muccini (academics)
On developing methods and tools for
architectures
On developing methods and tools for
the analysis and design of software
architectures
Interoperable and Multi-view Software Architecture Description
Architecting Situational Aware Cyber Physical Systems
Group Decision Making in Software Architecting
Collaborative Modeling in MDE
6. MWT– Progettazione di Applicazioni Web Henry Muccini
6
Henry Muccini (industrial)
spin-off of the University of L’Aquila
Crowd management Indoor | outdoor
Queue forecast and avoidance
Multi-site crowd management
Digital Booking and Ticketing
7. MWT– Progettazione di Applicazioni Web Henry Muccini
7
Vostri profili
Vostri Profili
8. MWT– Progettazione di Applicazioni Web Henry Muccini
8
Obiettivi del Corso
Come e Cosa Progettare e Documentare
Come Pianificare il Lavoro
Come Comunicare
9. MWT– Progettazione di Applicazioni Web Henry Muccini
9
Indice
• Motivazione sulla progettazione
• Documentazione dei servizi dell'applicazione
• Documentazione della UI
• Documentazione dei dati
• Sequence diagram per gli scenari
• Design decisions
• Project planning in pratica
• Communication tools
12. MWT– Progettazione di Applicazioni Web Henry Muccini
12
Gestione del Corso
Metodo di insegnamento:
– Slide, lavagna, interazione diretta, uso di PC
Piu’ domande fate, piu’ impariamo insieme
Esempi:
– Diversi esempi d’uso verranno proposti
Esercitazioni:
– Da verificare a lezione
15. MWT– Progettazione di Applicazioni Web Henry Muccini
15Complexity in Lines of Code
http://www.informationisbeautiful.net/visualizations/million-lines-of-code/
16. MWT– Progettazione di Applicazioni Web Henry Muccini
16
Complexity in Requirements
Sometimes,
systems must run
reliably for
99.9999 % of the
time
18. MWT– Progettazione di Applicazioni Web Henry Muccini
18
Complessita’ nella applicazioni Web
3+ key factors to consider:
- Servizi di backend
- E-commerce
- Security
- Servizi di Social networking
- …
https://worthwhile.com/blog/2016/03/21/website-development-web-applications/
19. MWT– Progettazione di Applicazioni Web Henry Muccini
19
Complessita’ nella applicazioni Web
“Project Environment
The first source is the project environment itself. This mainly includes the availability
of resources (e.g. people, money, knowledge) and the management style of the
project manager and customer. Some project managers truly believe that when a
developers estimates a piece of work at 1 week, that the sentence “I’ll give you 3
days” will actually do good to the project on the long term. Although an interesting
topic, it is not the type of complexity I want to deal with in this post.
Technical Complexity
Another aspect influencing complexity is the technical environment of the project.
What are the frameworks and platforms used in the development and deployment
of the software. As with any technology, it is important to know the powers and
limitations of each framework. If a framework requires expert knowledge to interact
with it, then try to abstract that knowledge away into separate modules.
….
Business Complexity
The third aspect is the one I will be focusing on in this post: the business domain. It
is the sum of the knowledge, rules and activities of your customer that makes them
survive. Solving the problems in this domain is often highly complex, but not
unsolvable.”
https://blog.trifork.com/2009/10/20/battling-complexity-in-large-web-applications/
20. Henry Muccini | Universita’ degli Studi dell’Aquila & nExpecto S.r.l.
20
Esempio 1: NdR 2017
► UnivAq Street Science
& SHARPER
► 114 eventi
► Un solo giorno
► Un’unica app
21. Henry Muccini | Universita’ degli Studi dell’Aquila & nExpecto S.r.l.
21
Esempio 2: Uffizi
23. MWT– Progettazione di Applicazioni Web Henry Muccini
23
Examples of «Badly» Engineered Software
Therac-25 safety failure:
•approximately 100 times the intended dose of radiation
•3 people died, and 6 got injured
see article at: http://sunnyday.mit.edu/papers/therac.pdf
Factors:
•Overconfidence in
Software
•Confusing reliability
with safety
•Lack of defensive Design
•Failure to eliminate
fault causes
•Inadequate software
engineering practices
•…
24. MWT– Progettazione di Applicazioni Web Henry Muccini
24http://www.devtopics.com/20-famous-software-
disasters/
25. MWT– Progettazione di Applicazioni Web Henry Muccini
25
Testing & QA (3) - Failures
1994 1996 1998 2000 2002 2004 2009
Succeeded 16% 27% 26% 28% 34% 29% 32%
Failed 31% 40% 28% 23% 15% 18% 24%
Challenged 53% 33% 46% 49% 51% 53% 44%
See more at: http://www.projectred.org/latest-
news/190-software-project-failure-costs-billions-
better-estimation-planning-can-help.html
Standish Findings By Year Updated for 2009
26. MWT– Progettazione di Applicazioni Web Henry Muccini
26http://www.wired.com/software/coolapps/news/200
5/11/69355?currentPage=all
27. MWT– Progettazione di Applicazioni Web Henry Muccini
27
Fallimenti «Web» (June 2012)
Il sistema del MIUR per le prove di maturità:
“La maturità 2.0 parte con un flop. Il sistema «commissione web», la novità
dell’esame di Stato 2012, non ha funzionato. Il software, messo a punto per
consentire alle commissioni di comunicare in tempo reale col cervellone centrale
del Miur tutte le attività connesse con gli esami, è andato in tilt ancora prima di
partire. Nelle scuole di Firenze le commissioni non sono riuscite ad inserire online
i verbali delle riunioni di insediamento che si sono tenute questa mattina. ”
http://corrierefiorentino.corriere.it/firenze/notizie/cronaca/2012/18-giugno-
2012/maturita-20-partenza-flop-201657781657.shtml
Prenotazioni Trenitalia:
“Il nuovo sistema di Ferrovie dello Stato è un disastro: c'è chi non riesce più a
usare il proprio codice ma non può cancellarsi perché per farlo occorre usare il
codice.
Dalle 1 alle 3 di notte non funziona, perché fanno la manutenzione, ma mica te lo
dicono …”
http://righedidiomira.blogspot.it/2012/01/sempre-trenitalia-sempre-piu-
disservizi.html
Fineco, pagamento IMU F24:
Con la detrazione prima casa, il mio imponibile va sotto zero e il sistema va in tilt.
28. MWT– Progettazione di Applicazioni Web Henry Muccini
28
Cause di fallimento
1. Gestione non disciplinata dei requisiti
2. Comunicazione ambigua ed imprecisa
1. Cambiamento requisiti
3. Architetture instabili
4. Complessità ingestibile
5. Incoerenze tra requisiti, progettazione e
implementazione
6. Test insufficienti
Project Management
Tempo
30. MWT– Progettazione di Applicazioni Web Henry Muccini
30
Investment in QA
> $50 billion/year on applications testing and quality assurance
[World Quality Report 2013-2014]
[1191 respondents]
«Right first time» apps
[Top six trends to drive market for software
testing in 2012,” TechJournal, citing Pierre Audoin
Consultants, Nov 2011]
18%
23%
28%
0% 5% 10% 15% 20% 25% 30%
1
IT budget allocated to QA
2015 2013 2012
31. MWT– Progettazione di Applicazioni Web Henry Muccini
31
Testing Mobile App
Taken from [World Quality Report 2013-2014], page 27
32. MWT– Progettazione di Applicazioni Web Henry Muccini
32
Testing Mobile App
Taken from [World Quality Report 2013-2014], page 27
Must be «right first time»
Even «for free» apps
Must get into the market
«first»
33. MWT– Progettazione di Applicazioni Web Henry Muccini
33
Progettazione: Quando
Field of computer science dealing with software systems
that are:
• large and complex =complex? large?
• built by teams =people!, communication, …
• exist in many versions=version control
• last many years =engineered to be sustainable
• Undergo changes =evolves
34. MWT– Progettazione di Applicazioni Web Henry Muccini
34
Common issues to be avoided
o The final Software doesn´t fulfill the needs of the
customer
o Hard to extend and improve:
if you want to add a functionality later is mission impossible
o Bad documentation
o Bad quality: frequent errors, hard to use, ...
o More time and costs than expected
o Social aspects of teamwork
36. MWT– Progettazione di Applicazioni Web Henry Muccini
36
Riassumendo:
Necessita’ di Web Engineering per…
Creare sistemi web di grandi dimensioni e complessità
In modo sistematico e disciplinato
Creare sistemi con maggior qualita’
Creare sistemi che possano essere mantenuti nel tempo
37. MWT– Progettazione di Applicazioni Web Henry Muccini
37
Fasi Principali
Collezione di Informazioni
Pianificazione
Progettazione
Sviluppo
Testing e Deployment
Manutenzione
38. MWT– Progettazione di Applicazioni Web Henry Muccini
38
Fasi Principali
Incrementale
Massimizzandone
l’utilita’
Minimizzandone i
costi
40. MWT– Progettazione di Applicazioni Web Henry Muccini
40
Applicazioni Web (Complesse)
Browser Web server
Richiesta
Documento
Application server
Pagine HTML Base di dati
41. MWT– Progettazione di Applicazioni Web Henry Muccini
41
Web Application
Web site Web application
Web application =
– web site con business logic
– client che invia input che vengono eseguiti dall’esecuzione
di un modulo
Presenza di un Application Server che permette di
gestire business logic
Chi esegue tale computazione???
42. MWT– Progettazione di Applicazioni Web Henry Muccini
42
Architettura minimale: Client-Server
43. MWT– Progettazione di Applicazioni Web Henry Muccini
43
Limiti dell’Approccio C/S
Ben presto ci si accorge che il modello
architetturale C/S e’ inadatto ad applicazione di tipo
Web
Nel modello C/S, l’interfaccia utente è totalmente
implementata sul client, il database management è
totalmente allocato sul server mentre il process
management è in un qualche modo suddiviso tra
client e server!
Cosa accade se vogliamo toccare la grafica senza
modificare la logica (o viceversa)?
Tutto e mischiato e non sappiamo come muoverci
44. MWT– Progettazione di Applicazioni Web Henry Muccini
44
Soluzione: Tre livelli concettuali
Livello Presentazione:
– si occupa di ricevere le GET e le POST dal server, per ottenere l’input
del programma
– costruisce i documenti HTML che costituiscono l’output del programma
Livello Logico:
– calcola l’output a partire dall’input e dai dati memorizzati nel terzo
livello
– definisce la funzione del programma
Livello Dati:
– costituito tipicamente da un database, mette a disposizione
dell’applicazione un supporto per memorizzare le informazioni
46. MWT– Progettazione di Applicazioni Web Henry Muccini
46
Vantaggi
Maggiore scalabililtà e modificabilità, dal momento
che, cambiando la business logic, non si devono
modificare tutti i clients
Clients leggeri, che forniscono soltanto funzionalità
per la rappresentazione di dati e l’interazione
dell’utente con il sistema
Possibilità di implementare logiche aggiuntive,
estremamente interessanti
47. MWT– Progettazione di Applicazioni Web Henry Muccini
47
Perche’ modellare una applicazione Web,
allora?
Per Aiutare la progettazione:
– Documentare i Requisiti
– Documentare i Servizi
– Documentare i Vincoli
Per Riusare
Per Manutenere
Per Analizzare
Per Testare
48. MWT– Progettazione di Applicazioni Web Henry Muccini
48
Caso di Studio
Introdurre il caso di studio
49. MWT– Progettazione di Applicazioni Web Henry Muccini
49
NOTE:
Problema identificato: gestione dei tempi!
1. Il cliente cambia i requisiti!!
• Imp: meeting con «tutti» i clienti
• Imp: vincolare il cliente a quanto e’ stato scritto ed approvato
2. I tempi tecnici di sviluppo non corrispondono con i tempi
stimati
Principio: definire il «criterio» usato per guidare la design
decision
Principio: sviluppo incrementale, con identificazione dei
task prioritari
Principio: Dipendenze tra task