Programare Web – Arhitectura Aplicaţiilor Web. Inginerie
Total Page:16
File Type:pdf, Size:1020Kb
Tehnologii Web / busaco ~ / profs.info.uaic.ro programare Web (II) de la MVC la arhitecturi Web și studii de caz Sabin Buraga Dr. Dr. Sabin Corneliu Buraga – profs.info.uaic.ro/~busaco/ / busaco ~ „Simplitatea este o complexitate rezolvată.” / profs.info.uaic.ro Constantin Brâncuși Dr. Sabin Sabin Buraga Dr. / busaco ~ / Aplicații Web profs.info.uaic.ro sisteme software complexe, în evoluție permanentă Dr. Sabin Sabin Buraga Dr. Realitate / mijloace multiple de interacțiune Web cu utilizatorul busaco ~ / profs.info.uaic.ro mobil laptop PC tabletă (smart) TV ecran urban Dr. Sabin Sabin Buraga Dr. Realitate / mijloace multiple de interacțiune Web cu utilizatorul busaco ~ / profs.info.uaic.ro mobil laptop PC tabletă (smart) TV ecran urban plus, „noii” veniți: Sabin Buraga Dr. game console ⌚ smart watch smart clothing smart appliances smart home smart transportation / busaco ~ Realitate / creșterea masei de utilizatori, având așteptări tot mai mari din partea software-ului profs.info.uaic.ro de la conținut (hiper)textual la aplicații Web sociale + interacțiune naturală Sabin Buraga Dr. / busaco ~ Realitate / suportul privind dezvoltarea de aplicații (limbaje, API-uri, biblioteci de cod, instrumente,...) profs.info.uaic.ro oferit de platforma hardware/software la nivel de server(e) și/sau de client(i) Dr. Sabin Sabin Buraga Dr. / busaco ~ Realitate / neadaptare la cerințele economice (de tip business) profs.info.uaic.ro development vs. marketing vs. management Dr. Sabin Sabin Buraga Dr. / busaco ~ Realitate / privind proiectele Web de anvergură profs.info.uaic.ro întârzieri în lansare neîncadrare în buget lipsa funcționalității calitatea precară a aplicației Dr. Sabin Sabin Buraga Dr. scopuri interacțiune funcționalități indexare instrumente psihologie controale tehnologii structurare metodologii comportament limbi naturale algoritmi meta-date stimuli / busaco ~ ⧉ / utilizatori interfață software conținut creatori profs.info.uaic.ro Dr. Sabin Sabin Buraga Dr. adaptare după Crumlish & Malone, 2009 dezvoltare a produselor a produselor dezvoltare evoluția manierei de manierei evoluția digitale (software) Alan Cooper Alan et al. et , 2014 Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ / busaco ~ Asigurarea calității aplicațiilor Web / corectitudine și robustețe (reliability) extindere + reutilizare (modularitate) profs.info.uaic.ro compatibilitate eficiență (asigurarea performanței) portabilitate Dr. Sabin Sabin Buraga Dr. / busaco ~ Asigurarea calității aplicațiilor Web / facilitarea interacțiunii cu utilizatorul (usability) funcționalitate profs.info.uaic.ro relevanța momentului lansării (timeliness) mentenabilitate securitate Dr. Sabin Sabin Buraga Dr. / busaco ~ Asigurarea calității aplicațiilor Web / alte aspecte de interes: integritate profs.info.uaic.ro reparabilitate verificabilitate – inclusiv monitorizare (logging) economie Dr. Sabin Sabin Buraga Dr. Asigurarea calității aplicațiilor Web / esențialmente, de considerat: busaco ~ preluarea și dirijarea cererilor – dispatch / oferirea funcționalităților de bază – core services asocierea dintre construcții/abstracțiuni software profs.info.uaic.ro (e.g., obiecte) și modele de date – mapping managementul datelor – data monitorizarea și evaluarea sistemului – metrics Dr. Sabin Sabin Buraga Dr. adaptare după Matt Ranney, “What I Wish I Had Known Before Scaling Uber to 1000 Services”, GOTO Chicago 2016 highscalability.com/blog/2016/10/12/lessons-learned-from-scaling-uber-to-2000-engineers-1000-ser.html / busaco ~ Necesități / scopuri + cerințe clar specificate profs.info.uaic.ro dezvoltarea sistematică, în faze, a aplicațiilor Web planificarea judicioasă a etapelor de dezvoltare controlul permanent al întregului proces de dezvoltare Dr. Sabin Sabin Buraga Dr. / busaco ~ Necesități / scopuri + cerințe clar specificate profs.info.uaic.ro dezvoltarea sistematică, în faze, a aplicațiilor Web planificarea judicioasă a etapelor de dezvoltare controlul permanent al întregului proces de dezvoltare Dr. Sabin Sabin Buraga Dr. inginerie Web În ce mod dezvoltăm o aplicație Web? / busaco ~ / profs.info.uaic.ro Dr. Sabin Sabin Buraga Dr. pics.me.me/story-of-every-project-after-3-months-initial-work-plan-57930917.png modelare / busaco ~ / Uzual, se recurge la o metodologie profs.info.uaic.ro se preferă abordările conduse de modele (MDA – model-driven architecture) Dr. Sabin Sabin Buraga Dr. www.omg.org/mda/ Robert Baxley Robert Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ dezvoltarea aplicațiilor Web / busaco ~ / Cerințe (requirements) Analiză & proiectare (software design) Implementare (build) profs.info.uaic.ro Testare (testing) Exploatare (deployment) Mentenanță (maintenance) Evoluție (evolution) Sabin Buraga Dr. aplicație WebMethodologies (produs software) / busaco ~ funcționalitate / + informații oferite profs.info.uaic.ro Dr. Sabin Sabin Buraga Dr. Jesse Garrett, The Elements of User Experience (2nd Edition), New Riders, 2011 dezvoltarea aplicațiilor Web / busaco programare (server + client) ~ / creare/adaptare documen- de conținut tare testare arhitectura info cerințe + navigare mentenanță profs.info.uaic.ro public beta lansare actualmente, sunt preferate metodologii agile www.infoq.com/process-practices/ Sabin Buraga Dr. www.webpagefx.com/blog/web-design/agile/ avansat dezvoltarea aplicațiilor Web / busaco ~ / Metodologii moderne – exemple: aim42 – practici și șabloane privind evoluția, mentenanța, migrarea și îmbunătățirea sistemelor software profs.info.uaic.ro aim42.github.io 12 Factor App – vizând aplicațiile aliniate paradigmei SaaS (Software As A Service) 12factor.net Sabin Buraga Dr. dezvoltarea aplicațiilor Web: principii / start with needs busaco ~ do less / design with data do the hard work to make it simple iterate. then iterate again profs.info.uaic.ro build for inclusion understand context build digital services, not Websites be consistent, not uniform make things open; it makes things better Sabin Buraga Dr. exemplu pentru gov.uk – Paul Downey & David Heath (2013) cerințe / busaco ~ Stabilirea standardelor de calitate / con- users profs.info.uaic.ro tent context Sabin Buraga Dr. cerințe / busaco ~ Obținere / licitare / negociere / a conținutului (datelor) și/sau codului-sursă drepturi de autor – copyright profs.info.uaic.ro versus cod deschis (Open Source Licenses) www.opensource.org/licenses/category + date deschise Sabin Buraga Dr. Creative Commons – www.creativecommons.org/licenses/ cerințe / busaco ~ Documentare privind domeniul aplicației Web / profs.info.uaic.ro cu atragerea experților – subject matter expert (SME) sau domain expert – în domeniul problemei ce trebuie soluționată de aplicația Web Dr. Sabin Sabin Buraga Dr. cerințe: exemple / busaco ~ Viziune (big idea) / Basecamp: “solves the critical problems that every growing business deals with” profs.info.uaic.ro Vimeo: “simple tools for you and your team to create, manage and share high-quality videos.” Wikidata: “a free and open knowledge base Sabin Buraga Dr. that can be read and edited by both humans and machines” cerințe: exemple / busaco ~ Punctele de plecare în dezvoltarea Flickr / presupuneri inițiale (assumptions): oamenilor le place să-și împărtășească amintirile profs.info.uaic.ro folosirea succesului blogging-ului partajarea nu doar a însemnărilor, ci și a fotografiilor (personale) Sabin Buraga Dr. suport pentru realizarea de comentarii + tagging noi tipuri de cerințe / busaco ~ Privitoare la conținut / audiența – e.g., internaționalizare context de navigare profs.info.uaic.ro preferințe disponibilitate permanentă (7 zile, 24 de ore/zi) recurgerea la surse eterogene de date căutare, filtrare, recomandare etc. Sabin Buraga Dr. noi tipuri de cerințe / busaco ~ Interacțiunea cu utilizatorul în contextul Web / inclusiv vizând Web-ul social profs.info.uaic.ro content mash-up “it’s yours to take, re-arrange and re-use” Dr. Sabin Sabin Buraga Dr. noi tipuri de cerințe / busaco ~ Privitoare la mediul de execuție / (in)dependența de navigatorul Web profs.info.uaic.ro wired vs. wireless on-line vs. off-line suport pentru diverse standarde HTML interactivitate multi-dispozitiv (responsive Web design) Dr. Sabin Sabin Buraga Dr. noi tipuri de cerințe / busaco ~ Referitoare la evoluție / utilizatorii sunt capabili să exploateze aplicația Web fără a trebui s-o (re)instaleze pe calculator/dispozitiv profs.info.uaic.ro Dr. Sabin Sabin Buraga Dr. noi tipuri de cerințe: aspecte de interes / busaco ~ / inițial: oferirea funcționalităților esențiale – less is more profs.info.uaic.ro Dr. Sabin Sabin Buraga Dr. noi tipuri de cerințe: aspecte de interes / busaco ~ / inițial: oferirea funcționalităților esențiale – less is more profs.info.uaic.ro versiuni ulterioare: extinderea aplicației Web – uzual, via o interfață de programare (API) publică, Sabin Buraga Dr. încurajând dezvoltarea de soluții propuse de utilizatori arhitecturi / busaco ~ / Calitatea aplicațiilor Web este influențată de arhitectura pe care se bazează profs.info.uaic.ro Martin Fowler, Software Architecture Guide (2019) Sabin Buraga Dr. martinfowler.com/architecture/ arhitecturi / busaco ~ / Web application architecture body of code profs.info.uaic.ro that’s seen by developers as a single unit group of functionality that business customers see as a single unit Dr. Sabin Sabin Buraga Dr. initiative that those with the money see as a single budget arhitecturi / busaco ~ Dezvoltarea unei arhitecturi software ia în calcul: / cerințe funcționale profs.info.uaic.ro impuse de clienți, vizitatori, concurență, factori decizionali