Скачать презентацию Enginyeria del SW II Enginyeria del software per Скачать презентацию Enginyeria del SW II Enginyeria del software per

d001848d36a5b14d8e0b90b369d007b9.ppt

  • Количество слайдов: 46

Enginyeria del SW II: Enginyeria del software per web Toni Navarrete Enginyeria del Software Enginyeria del SW II: Enginyeria del software per web Toni Navarrete Enginyeria del Software II – UPF 2002

Enginyeria del SW II: Enginyeria del software per web 2 Enginyeria Web • Té Enginyeria del SW II: Enginyeria del software per web 2 Enginyeria Web • Té sentit una Enginyeria Web? • Hi ha alguna diferència amb Enginyeria del Software?

Enginyeria del SW II: Enginyeria del software per web 3 Atributs de les aplicacions Enginyeria del SW II: Enginyeria del software per web 3 Atributs de les aplicacions basades en web • Powell [1]: “impliquen una mescla de publicació impresa i desenvolupament software, de marketing i informàtica, de comunicacions internes i relacions externes, i d’art i tecnologia” [1] T. A. Powell: Web Site Engineering. Prentice-Hall, 1998

Enginyeria del SW II: Enginyeria del software per web 4 Atributs de les aplicacions Enginyeria del SW II: Enginyeria del software per web 4 Atributs de les aplicacions basades en web • • Ús intensiu de xarxa Controlada pel contingut (hipermèdia) Evolució contínua Immediatesa Seguretat Estètica Equip multidisciplinar

Enginyeria del SW II: Enginyeria del software per web 5 Categories d’aplicacions web • Enginyeria del SW II: Enginyeria del software per web 5 Categories d’aplicacions web • • • Informativa: qualsevol de simple Descàrrega: tucows Personalitzable: my. yahoo. com Interacció: chat, foros, . . . Entrada de l’usuari: una web interna d’administració amb formularis (ex: kamp) • Orientada a transaccions: comandes Amazon • Orientada a serveis: calculador hipoteca e. Bankinter • Portal: terra, . . . – Cercadors: google • Accés a base de dades: programa d’actes de bcn. es • Magatzems de dades Segons S. Dart: “Containing the Web Crisis Configuration Management”. Actes 1 st ICSE Workshop on Web engineering, ACM. 1999.

Enginyeria del SW II: Enginyeria del software per web 6 Categories d’aplicacions web • Enginyeria del SW II: Enginyeria del software per web 6 Categories d’aplicacions web • Moltes aplicacions híbrides • Important: no és el mateix desenvolupar per un tipus que per l’altre

Enginyeria del SW II: Enginyeria del software per web 7 Aspectes de l’Enginyeria del Enginyeria del SW II: Enginyeria del software per web 7 Aspectes de l’Enginyeria del Software per web • Dos enfocaments: – Aspectes relacionats amb l’hipermèdia – Aspectes tecnològics

Enginyeria del SW II: Enginyeria del software per web 8 Aspectes de l’Enginyeria del Enginyeria del SW II: Enginyeria del software per web 8 Aspectes de l’Enginyeria del Software per web relacionats amb l’hipermèdia • Què és hipermèdia – Aplicacions hipermèdia abans de la web – Importància de la navegació • Metodologies específiques per aplicions hipermedia – 2 exemples: RMM i OOHDM • Separació del contingut de la presentació – Exemple: ús de plantilles – Configuració de diferents presentacions • Disseny gràfic (disseny d’interfícies) – Assignatura “Disseny d’Interfícies”, 2 on curs • Patrons – Vàries classificacions amb diferents enfocaments

Enginyeria del SW II: Enginyeria del software per web 9 Definició d’hipermèdia · hipertext: Enginyeria del SW II: Enginyeria del software per web 9 Definició d’hipermèdia · hipertext: text en format no seqüencial, compost de nodes i enllaços que els interconnecten. · multimèdia: unió de diferents mitjans, com ara text, gràfics, vídeo, . . . · hipermèdia: hipertext + multimèdia Text seqüencial Hipertext

Enginyeria del SW II: Enginyeria del software per web 10 Metodologies per a aplicacions Enginyeria del SW II: Enginyeria del software per web 10 Metodologies per a aplicacions hipermèdia • Objectius de les metodologies orientades a hipermèdia: – Dotar d’un llenguatge comú als membres de l’equip – Millorar les estructures de navegació, fent-la sobretot més intuïtiva per a l’usuari final – Producte resultant fiable i eficient, seguint els requeriments • Una primera eina: arbre (o graf) de navegació • Dos exemples: – RMM: – OOHDM

Enginyeria del SW II: Enginyeria del software per web 11 Metodologia RMM • RMM: Enginyeria del SW II: Enginyeria del software per web 11 Metodologia RMM • RMM: Relationship Management Methodology [1] • Apropiada per a aplicacions amb dades estructurades • Basada en el model RMDM (Relationship Management Data Model) – Model entitat-relació ampliat per reflectir l’estructura navegacional – Primitives del model: • de domini – representen l’estructura de les dades i les relacions • D’accés – representen els accessos navegacionals [1] T. Isakowitz, E. A. Stohr, P. Balasubramanian: RMM: A methodology for structured Hypermedia design. Communications of the ACM, 1995.

Enginyeria del SW II: Enginyeria del software per web 12 RMM. Model RMDM • Enginyeria del SW II: Enginyeria del software per web 12 RMM. Model RMDM • Primitives de domini – entitats – relacions – slices: agrupacions d’atributs que formen una unitat pròpia dins de l’entitat • Primitives d’accés – – Índex condicional visita guiada indexada condicional menú (grouping)

Enginyeria del SW II: Enginyeria del software per web 13 Un exemple de model Enginyeria del SW II: Enginyeria del software per web 13 Un exemple de model RMDM

Enginyeria del SW II: Enginyeria del software per web 14 RMM • Massa simple Enginyeria del SW II: Enginyeria del software per web 14 RMM • Massa simple • No té cap suport per a processos • Els mecanismes de navegació són massa simples

Enginyeria del SW II: Enginyeria del software per web 15 Metodologia OOHDM • OOHDM: Enginyeria del SW II: Enginyeria del software per web 15 Metodologia OOHDM • OOHDM: Object-Oriented Hypermedia Design Model [1] • Fases: [1] Daniel Schwabe, Gustavo Rossi: The Object-Oriented Hypermedia Design Model. Communications of the ACM, August 1995

Enginyeria del SW II: Enginyeria del software per web 16 Metodologia OOHDM Requirements Gathering Enginyeria del SW II: Enginyeria del software per web 16 Metodologia OOHDM Requirements Gathering Conceptual Design

Enginyeria del SW II: Enginyeria del software per web 17 Metodologia OOHDM Navigation Design Enginyeria del SW II: Enginyeria del software per web 17 Metodologia OOHDM Navigation Design

Enginyeria del SW II: Enginyeria del software per web 18 UML • UML resol Enginyeria del SW II: Enginyeria del software per web 18 UML • UML resol part de les qüestions de representació de la navegació en el diagrama de classes (especialment el que presenta RMM) Classe A Navegació Classe B

Enginyeria del SW II: Enginyeria del software per web 19 Patrons d’Estructuració de continguts Enginyeria del SW II: Enginyeria del software per web 19 Patrons d’Estructuració de continguts [1] Estructuras lineales Estructuras jerárquicas Estructura reticular Estructura en red o “web pura” [1] Roger S. Pressman: Ingeniería del Software. Un enfoque práctico. 5ª edición. Mc. Graw Hill. 2002. Citant a T. A. Powell: Web Site Engineering. Prentice-Hall, 1998

Enginyeria del SW II: Enginyeria del software per web 20 Patrons d’hipertext segons [1] Enginyeria del SW II: Enginyeria del software per web 20 Patrons d’hipertext segons [1] i [2] • Cycle (Ciclo) – Web Ring (Anillo de web) – Contour (Contorno) • • • Counterpoing (Contrapunto) Mirrorworld (Mundo de espejo) Sieve (Tamiz) Neighbourhood (Vecindario) Altres: – – Tangle Split/join Missing link Navigational feint [1] Roger S. Pressman: Ingeniería del Software. Un enfoque práctico. 5ª edición. Mc. Graw Hill. 2002 [2] Mark Bernstein: Patterns in Hypertext. Actes del 9 th ACM Conference on Hypertext, 1998

Enginyeria del SW II: Enginyeria del software per web 21 Patrons d’hipermèdia segons [1] Enginyeria del SW II: Enginyeria del software per web 21 Patrons d’hipermèdia segons [1] i [2] • Navigation context patterns – Set-based Navigation – Nodes in Context • • • Active Reference News Landmark Shopping basket Portal • Disponibles a: http: //www. telemidia. pucrio. br/oohdm. html [1] G. Rossi, D. Schwabe, F. Lyardet: " Patterns for Designing Navigable Spaces", Proc. of PLo. P 98, Monticello, USA, 1998 [2] G. Rossi, D. Schwabe, F. Lyardet: "Abstraction and Reuse Mechanisms in Web Application Models", Lecture Notes in Computer Science 1921, 2000

Enginyeria del SW II: Enginyeria del software per web 22 Un exemple de patrons Enginyeria del SW II: Enginyeria del software per web 22 Un exemple de patrons d’hipermèdia: Active Reference • Problema: – Users don’t know where they are • Solució – Visual information about the path

Enginyeria del SW II: Enginyeria del software per web 23 Patrons per comerç electrònic Enginyeria del SW II: Enginyeria del software per web 23 Patrons per comerç electrònic [1] • • • Opportunistic Linking Advising Explicit Process Easy Undo Push Communication • Disponible a: http: //www. telemidia. pucrio. br/oohdm. html [1] G. Rossi, D. Schwabe, F. Lyardet: "Patterns for E-Commerce Applications", Proc. Europlop 2000, Julho 2000, Kloster Irsee, Germany, 2000.

Enginyeria del SW II: Enginyeria del software per web 24 Aspectes tecnológics de l’ES Enginyeria del SW II: Enginyeria del software per web 24 Aspectes tecnológics de l’ES per web. Algunes particularitats de les apps. web (I) • • • HTML XML Llenguatges de script Cookies CGIs, NSAPI, ISAPI, Servlets Pàgines amb codi incrustat (ASP, JSP, PHP) • Servidors web • Servidors d’aplicacions

Enginyeria del SW II: Enginyeria del software per web 25 Aspectes tecnológics de l’ES Enginyeria del SW II: Enginyeria del software per web 25 Aspectes tecnológics de l’ES per web. Algunes particularitats de les apps. web (II) • Desenvolupament basat en components – Corba (IIOP), COM/DCOM, EJB – Web Services • SOAP (Simple Object Access Protocol) – SOAP is a protocol specification that defines a uniform way of passing XML-encoded data. It also defines a way to perform remote procedure calls (RPCs) using HTTP as the underlying communication protocol. • UDDI (Universal Description, Discovery and Integration Service) – UDDI provides a mechanism for clients to dynamically find other web services. Using a UDDI interface, businesses can dynamically connect to services provided by external business partners. • WSDL (Web Services Definition Language) – WSDL provides a way for service providers to describe the basic format of web service requests over different protocols or encodings. WSDL is used to describe what a web service can do, where it resides, and how to invoke it. • Mecanismes de seguretat

Enginyeria del SW II: Enginyeria del software per web 26 Arquitectura • Arquitectura basada Enginyeria del SW II: Enginyeria del software per web 26 Arquitectura • Arquitectura basada en capes – Capa de presentació – Capa de negoci – Capa de dades • Arquitectura de les aplicacions – – D’una capa De dues capes De tres capes “Mitja capa” (exemple: 2, 5 capes) • Distribució del procés entre client i servidor: – Thin web client: processos al servidor – Thick web client: Applet, Active. X, . . .

Enginyeria del SW II: Enginyeria del software per web 27 Arquitectura d’una capa Browser Enginyeria del SW II: Enginyeria del software per web 27 Arquitectura d’una capa Browser Capa de presentació Capa de negoci Capa de dades File system Web server

Enginyeria del SW II: Enginyeria del software per web 28 Arquitectura de dues capes Enginyeria del SW II: Enginyeria del software per web 28 Arquitectura de dues capes Browser HTTP Capa de presentació Capa de negoci Web server JDBC Capa de dades Base de dades File system

Enginyeria del SW II: Enginyeria del software per web 29 Arquitectura de tres capes Enginyeria del SW II: Enginyeria del software per web 29 Arquitectura de tres capes Browser HTTP Capa de presentació Web server CORBA/RMI/. . . Capa de negoci Application server JDBC Capa de dades Base de dades File system

Enginyeria del SW II: Enginyeria del software per web 30 Arquitectura de dues capes Enginyeria del SW II: Enginyeria del software per web 30 Arquitectura de dues capes i mitja Browser Capa de presentació HTTP Capa de presentació Web server JDBC Capa de dades File system

Enginyeria del SW II: Enginyeria del software per web 31 Factors de determinació d’arquitectures Enginyeria del SW II: Enginyeria del software per web 31 Factors de determinació d’arquitectures de dues o tres capes Complexitat de l’aplicació Mantenibilitat Aplicacions de 2 capes Pressió de la planificació Experiència de l’equip de desenvolupament Aplicacions de 3 capes

Enginyeria del SW II: Enginyeria del software per web 32 Especificació de requeriments • Enginyeria del SW II: Enginyeria del software per web 32 Especificació de requeriments • Se sol fer amb un model de casos d’ús • Se li dóna molta importància a la interfície d’usuari • Es habitual utilitzar prototipus no funcionals de la interfície (amb pàgines estàtiques o imatges)

Enginyeria del SW II: Enginyeria del software per web 33 Serveis típics d’una aplicació Enginyeria del SW II: Enginyeria del software per web 33 Serveis típics d’una aplicació web (orientada a comerç electrònic) • • • Serveis de catàleg Serveis de cerca Serveis de comandes Serveis de seguiment Serveis de revisions (comentaris) Serveis de conferències Serveis de notícies o butlletins Control i admnistració de stocks Informes financers Segons Roger S. Pressman: Ingeniería del Software. Un enfoque práctico. 5ª edición. Mc. Graw Hill. 2002.

Enginyeria del SW II: Enginyeria del software per web 34 Disseny • Decidir la Enginyeria del SW II: Enginyeria del software per web 34 Disseny • Decidir la tecnologia per a les classes de frontera – Pàgina estàtica HTML – Swing – Servlets – JSP – Usant XML/XSL –. . .

Enginyeria del SW II: Enginyeria del software per web 35 Estensió web d’UML • Enginyeria del SW II: Enginyeria del software per web 35 Estensió web d’UML • Estereotips per modelar – – – Server Page Client Page Form Frameset Target Client. Script Object Web Page ASP Page JSP Page Servlet Script Library (veure fitxer extern)

Enginyeria del SW II: Enginyeria del software per web 36 Un exemple Enginyeria del SW II: Enginyeria del software per web 36 Un exemple

Enginyeria del SW II: Enginyeria del software per web 37 Disseny • Decidir la Enginyeria del SW II: Enginyeria del software per web 37 Disseny • Decidir la tecnologia per a les classes entitat (persistència) i de comunicació entre les capes de dades i de negoci – RMI – JDBC – EJB –. . . • Disseny de la persistència: propera classe

Enginyeria del SW II: Enginyeria del software per web 38 Proves • El model Enginyeria del SW II: Enginyeria del software per web 38 Proves • El model de contingut de l’aplicació web és revisat per descobrir errors • El model de disseny per l’aplicació web és revisat per descobrir errors de navegació • S’apliquen proves d’unitat als components de procés seleccionats i a les pàgines web • Es construeix l’arquitectura, es realitzen les proves d’integració • L’aplicació web ensamblada es prova per a aconseguir una funcionalitat global i un contingut • L’aplicació web s’implementa en una varietat de configuracions diferents d’entorns; cal comprovar la compatibilitat amb cada configuració • L’aplicació web es prova amb una població d’usuaris finals controlada i monitoritzada

Enginyeria del SW II: Enginyeria del software per web 39 Atributs de qualitat [1] Enginyeria del SW II: Enginyeria del software per web 39 Atributs de qualitat [1] Roger S. Pressman: Ingeniería del Software. Un enfoque práctico. 5ª edición. Mc. Graw Hill 2002. Citant a: Olsina et al. : Specifying Quality Characteristics and Atrributes for Web Sites. Actes del 1 st Workshop on Web Engineering, ACM, 1995

Enginyeria del SW II: Enginyeria del software per web 40 Desplegament • Proveïdor de Enginyeria del SW II: Enginyeria del software per web 40 Desplegament • Proveïdor de hosting – Hosting • Màquina compartida • Màquina pròpia amb servei d’administració • Màquina pròpia amb administració pròpia (“lloguer d’espai”) – Domini • Si hosting propi: – Contractació línia dedicada • ADSL • Frame-relay

Enginyeria del SW II: Enginyeria del software per web 41 Un exemple de web Enginyeria del SW II: Enginyeria del software per web 41 Un exemple de web hosting http: //www. powweb. com

Enginyeria del SW II: Enginyeria del software per web 42 Web hosting amb aplicacions Enginyeria del SW II: Enginyeria del software per web 42 Web hosting amb aplicacions Java • Un llistat de proveïdors que ofereixen aquests serveis: – http: //www. servlets. com/isps/servlet/ISPView. All • De la web de Javasoft Compa ny Product Java Support Exodus Managed Web Hosting Service Standard: i. Planet Web Server with JSP and Servlet support. Optional: BEA Web. Logic or i. Planet IAS application servers Genuity Black Rocket Optional: BEA Web. Logic, IBM Web. Sphere, or i. Planet IAS (6/2001) application servers Qwest Interactive Standard: Sun ONE Application Server with JSP and Servlet support. Optional: BEA Web. Logic or Sun ONE Application Server Verio Virtual Private Server Standard: Apache Tomcat or JServ

Enginyeria del SW II: Enginyeria del software per web 43 Un exemple de Web Enginyeria del SW II: Enginyeria del software per web 43 Un exemple de Web hosting amb aplicacions Java http: //www. verio. com (també http: //www. verio. es)

Enginyeria del SW II: Enginyeria del software per web 44 Un exemple de proveïdor Enginyeria del SW II: Enginyeria del software per web 44 Un exemple de proveïdor de domini http: //www. 15 domains. com

Enginyeria del SW II: Enginyeria del software per web 45 Debat final • Té Enginyeria del SW II: Enginyeria del software per web 45 Debat final • Té sentit parlar, després d’això, d’una disciplina anomenada Enginyeria web?

Enginyeria del SW II: Enginyeria del software per web 46 Bibliografia utilitzada • Pressman: Enginyeria del SW II: Enginyeria del software per web 46 Bibliografia utilitzada • Pressman: Ingeniería del Software, un enfoque práctico. 5ª edición. Mc. Graw Hill, 2002 • Arrington: Enterprise Java with UML. John Wiley & Sons, 2001 • Conallen: Building Web Applications with UML. Addisson-Wesley, 1999 • Mark Wutka: Special Edition Using Java Server Pages and Servlets. Que, 2000 • David Chappell, Tyler Jewell: Java Web Services. O’Reilly • Articles citats a les transparències