En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
b
Enginyeria del software per web
Toni Navarrete
Enginyeria del Software II – UPF 2002
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 2
Enginyeria Web
• Té sentit una Enginyeria Web?
• Hi ha alguna diferència amb Enginyeria del Software?
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 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
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 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
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 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 eBankinter• 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 1st ICSE Workshop on Web engineering, ACM. 1999.
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 6
Categories d’aplicacions web
• Moltes aplicacions híbrides
• Important: no és el mateix desenvolupar per un tipus que per l’altre
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 7
Aspectes de l’Enginyeria del Software per web
• Dos enfocaments:– Aspectes relacionats amb l’hipermèdia– Aspectes tecnològics
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 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”, 2on curs
• Patrons– Vàries classificacions amb diferents enfocaments
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 9
Definició d’hipermèdia
1 2 n
...A B
C D
Text seqüencial
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
Hipertext
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 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
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 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.
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 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 condicional– visita guiada indexada condicional– menú (grouping)
B C
A
Hotel HotelHotel
Ciudad Ciudad Ciudad
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 13
Un exemple de model RMDM
Ciutat
Monument
Tipus Monument
PeriodeHistòric
HorariMonument
ServeiMonument
MonumentMultimedia
TipusMultimedia
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 14
RMM
• Massa simple
• No té cap suport per a processos
• Els mecanismes de navegació són massa simples
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 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
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 16 Metodologia OOHDM
Requirements Gathering Conceptual Design
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 17
Metodologia OOHDMNavigation Design
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 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 Classe B
Navegació
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 19 Patrons d’Estructuració de continguts [1]
Estructuras lineales Estructura reticular
Estructuras jerárquicas Estructura en red o “web pura”
[1] Roger S. Pressman: Ingeniería del Software. Un enfoque práctico. 5ª edición. McGraw Hill. 2002. Citant a T.A.Powell: Web Site Engineering. Prentice-Hall, 1998
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 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. McGraw Hill. 2002
[2] Mark Bernstein: Patterns in Hypertext. Actes del 9th ACM Conference on Hypertext, 1998
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 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.puc-rio.br/oohdm/oohdm.html
[1] G. Rossi, D. Schwabe, F. Lyardet: " Patterns for Designing Navigable Spaces", Proc. of PLoP98, 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
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 22
Un exemple de patrons d’hipermèdia:Active Reference
• Problema:– Users don’t know where they are
• Solució– Visual information about the path
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 23
Patrons per comerç electrònic [1]
• Opportunistic Linking
• Advising
• Explicit Process
• Easy Undo
• Push Communication
• Disponible a: http://www.telemidia.puc-rio.br/oohdm/oohdm.html
[1] G. Rossi, D. Schwabe, F. Lyardet: "Patterns for E-Commerce Applications", Proc. Europlop 2000, Julho 2000, Kloster Irsee, Germany, 2000.
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 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
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 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
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 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, ActiveX, ...
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 27
Arquitectura d’una capa
Capa de presentació
Capa de negoci
Capa de dades
Web server
File
system
Browser
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 28
Arquitectura de dues capes
Capa de presentació
Capa de negoci
Capa de dades
Web server
File
system
Browser
HTTP
Base de dades
JDBC
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 29
Arquitectura de tres capes
Capa de presentació
Capa de negoci
Capa de dades
Application server
File
system
Browser
HTTP
Base de dades
JDBC
Web server
CORBA/RMI/...
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 30
Arquitectura de dues capes i mitja
Capa de presentació
Capa de presentació
Web server
File
system
HTTP
Capa de dades
JDBC
Browser
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 31
Factors de determinació d’arquitectures de dues o tres capes
Complexitat de
l’aplicació
Mantenibilitat
Pressió de la planificació
Experiència de l’equip
de desenvolupament
Aplicacions de
2 capes
Aplicacions de
3 capes
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 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)
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 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. McGraw Hill. 2002.
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 34
Disseny
• Decidir la tecnologia per a les classes de frontera– Pàgina estàtica HTML– Swing– Servlets– JSP– Usant XML/XSL– ...
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 35
Estensió web d’UML
• Estereotips per modelar – Server Page– Client Page– Form– Frameset– Target– ClientScript Object– Web Page– ASP Page– JSP Page– Servlet– Script Library
(veure fitxer extern)
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 36 Un exemple
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 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
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 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
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 39
Atributs de qualitat [1]
[1] Roger S. Pressman: Ingeniería del Software. Un enfoque práctico. 5ª edición. McGraw Hill 2002. Citant a:
Olsina et al.: Specifying Quality Characteristics and Atrributes for Web Sites. Actes del 1st Workshop on Web Engineering, ACM, 1995
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 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
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 41
Un exemple de web hostinghttp://www.powweb.com
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 42
Web hosting amb aplicacions Java
• Un llistat de proveïdors que ofereixen aquests serveis:– http://www.servlets.com/isps/servlet/ISPViewAll
• De la web de JavasoftCompany
Product Java Support
Exodus
Managed Web Hosting Service
Standard: iPlanet Web Server with JSP and Servlet support.Optional: BEA WebLogic or iPlanet IAS application servers
Genuity Black Rocket Optional:BEA WebLogic, IBM WebSphere, or iPlanet IAS (6/2001) application servers
Qwest Qwest Interactive Standard: Sun ONE Application Server with JSP and Servlet support.Optional: BEA WebLogic or Sun ONE Application Server
Verio Virtual Private Server Standard: Apache Tomcat or JServ
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 43
Un exemple de Web hosting amb aplicacions Javahttp://www.verio.com (també http://www.verio.es)
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 44
Un exemple de proveïdor de dominihttp://www.15domains.com
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 45
Debat final
• Té sentit parlar, després d’això, d’una disciplina anomenada Enginyeria web?
En
gin
yeri
a d
el S
W II
: En
gin
yeri
a d
el s
oftw
are
per
we
bPàgina 46
Bibliografia utilitzada
• Pressman: Ingeniería del Software, un enfoque práctico. 5ª edición. McGraw 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
Top Related