Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

Web Engineering L1: introduction to Web Engineering (1/8)

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Hier ansehen

1 von 49 Anzeige

Web Engineering L1: introduction to Web Engineering (1/8)

Herunterladen, um offline zu lesen

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

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

Anzeige
Anzeige

Weitere Verwandte Inhalte

Ähnlich wie Web Engineering L1: introduction to Web Engineering (1/8) (20)

Weitere von Henry Muccini (20)

Anzeige

Aktuellste (20)

Web Engineering L1: introduction to Web Engineering (1/8)

  1. 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. 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. 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. 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. 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. 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. 7. MWT– Progettazione di Applicazioni Web Henry Muccini 7 Vostri profili Vostri Profili
  8. 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. 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
  10. 10. MWT– Progettazione di Applicazioni Web Henry Muccini 10 Pianificazione lezioni
  11. 11. MWT– Progettazione di Applicazioni Web Henry Muccini 11 Pianificazione lezioni
  12. 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
  13. 13. Perche’ progettare applicazioni Web?  Compessità dei sistemi moderni  Fallimenti del software  Necessita’ di Quality
  14. 14. 1. I Sistemi moderni sono Complessi
  15. 15. MWT– Progettazione di Applicazioni Web Henry Muccini 15Complexity in Lines of Code http://www.informationisbeautiful.net/visualizations/million-lines-of-code/
  16. 16. MWT– Progettazione di Applicazioni Web Henry Muccini 16 Complexity in Requirements Sometimes, systems must run reliably for 99.9999 % of the time
  17. 17. MWT– Progettazione di Applicazioni Web Henry Muccini 17 Complexity
  18. 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. 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. 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. 21. Henry Muccini | Universita’ degli Studi dell’Aquila & nExpecto S.r.l. 21 Esempio 2: Uffizi
  22. 22. 2) I sistemi software falliscono, e…
  23. 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. 24. MWT– Progettazione di Applicazioni Web Henry Muccini 24http://www.devtopics.com/20-famous-software- disasters/
  25. 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. 26. MWT– Progettazione di Applicazioni Web Henry Muccini 26http://www.wired.com/software/coolapps/news/200 5/11/69355?currentPage=all
  27. 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. 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
  29. 29. 3) Necessita’ di Sistemi di Qualita’
  30. 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. 31. MWT– Progettazione di Applicazioni Web Henry Muccini 31 Testing Mobile App Taken from [World Quality Report 2013-2014], page 27
  32. 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. 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. 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
  35. 35. MWT– Progettazione di Applicazioni Web Henry Muccini 35
  36. 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. 37. MWT– Progettazione di Applicazioni Web Henry Muccini 37 Fasi Principali Collezione di Informazioni Pianificazione Progettazione Sviluppo Testing e Deployment Manutenzione
  38. 38. MWT– Progettazione di Applicazioni Web Henry Muccini 38 Fasi Principali  Incrementale  Massimizzandone l’utilita’  Minimizzandone i costi
  39. 39. Contesto: Applicazioni Web e loro architetture
  40. 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. 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. 42. MWT– Progettazione di Applicazioni Web Henry Muccini 42 Architettura minimale: Client-Server
  43. 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. 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
  45. 45. MWT– Progettazione di Applicazioni Web Henry Muccini 45
  46. 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. 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. 48. MWT– Progettazione di Applicazioni Web Henry Muccini 48 Caso di Studio Introdurre il caso di studio
  49. 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

×