Maestría en Ingeniería - cic.puj.edu.cocic.puj.edu.co/wiki/lib/exe/...sesion1-2010.pdf ·...

Post on 04-Aug-2020

15 views 0 download

Transcript of Maestría en Ingeniería - cic.puj.edu.cocic.puj.edu.co/wiki/lib/exe/...sesion1-2010.pdf ·...

Maestría en Ingeniería

Curso de Ingeniería Web

Sesión 1

Fernando Barraza A.

fbarraza@javerianacali.edu.co

Sesión 1

•! Objetivo: Brindar al estudiante una introducción a la Ingeniería Web

•! Temas:"

•! Panorama general de la Ingeniería Web: Pasado, presente y

futuro."

•! Relación con otras disciplinas, métodos y técnicas."

•! Estudio del campo de aplicación: La WWW"

•! Modelos de negocio y comercio electrónico en la Web "

•! Computación Social e Interacción Humano Computador"

•! Aspectos éticos y legales de la Web "

Que es la Web?

•! Literalmente "telaraña"

•! Es la denominación de la red Internet World-Wide Web

•!Red de Ordenadores conectados mediante protocolo TCP/IP + HTTP (Tim Berners-Lee, 1990)

Algo de historia

•! 1989: Aparece la WWW cuando Tim Berners-Lee presentó su proyecto de “World Wide Web” en el CERN (Suiza)

•! 1990: El propio Tim Berners-Lee presenta el primer servidor web y el primer cliente y un año más tarde publicó el primer borrador de las especificaciones de HTML y HTTP.

•! 1993: Lanzamiento de Mosaic, el primer navegador de dominio público, compatible con Unix, Windows, y Macintosh, por el National Center for Supercomputing Applications (NCSA) marca el momento en que la WWW se da a conocer al mundo.

•! 1994: Se define la interfaz CGI para la generación dinámica de páginas web, con lo que se consigue ofrecer información actualizada en tiempo real, enlazar con bases de datos, o tener en cuenta entradas del usuario, y más aún, servir como punto de acceso y plataforma para la ejecución de aplicaciones distribuidas.

Algo de historia (2)

•! 1994: Miembros del equipo que creó Mosaic desarrollan Netscape, un navegador con sensibles mejoras que contribuye a impulsar la propagación de la web.

•! 1994: Este mismo año se celebra el primer congreso internacional de la WWW, y unos meses más tarde se constituye el consorcio W3C, que desde entonces y presidido por Tim Berners-Lee, se ha hecho cargo de estandarizar las principales tecnologías web.

•! 1995 Sun lanza oficialmente la primera versión del lenguaje Java, y un año más tarde Netscape presenta JavaScript.

•! 1996: XML es creado al amparo del Word Wide Web Consortium (W3C) partiendo de las amplias especificaciones de SGML.

La web hoy en cifras

•! Se estima que hoy día unos 109 usuarios utilizan la web y que ésta contiene del orden de 4 · 109 documentos, un volumen de información equivalente a entre 14 y 28 millones de libros.

•! Como dato comparativo, la asociación American Research Libraries, que agrupa unas 100 bibliotecas en EE.UU., tiene catalogados unos 3.7 millones de libros. La biblioteca de la Universidad de Harvard, la mayor de EE.UU., contiene en torno a 15 millones de libros.

•! Estas cifras incluyen sólo lo que se ha dado en denominar la web superficial, formada por los documentos estáticos accesibles en la web.

•! Se ha calculado que la llamada web profunda, constituida por las bases de datos cuyos contenidos, no directamente accesibles, se hacen visibles mediante páginas generadas dinámicamente, puede contener un tamaño de información varios cientos de veces mayor, y de mucha mejor calidad, que la web superficial, y crece a un ritmo aún mayor que ésta.

•! Se estima que el tamaño de la web profunda ha superado ya al volumen total de información impresa existente en todo el planeta.

Factores claves de evolución en la Web

•! Integración de diferentes tipos de medios (datos, texto, gráficas, images, audio y video)

•! Relación con las ciencias de la información y la computación (Organización y representación de la información, indexamiento, captura, agregación, administración creación y distribución colaborativa)

•! Utilización de las tecnologías de la información y la comunicación (Almacenamiento, transporte, procesamiento, infraestructura)

•! Liberación másiva de mas y nuevas aplicaciones

Que es una aplicación Web

•! Es una aplicación de software que utiliza tecnologías de la web para su desarrollo e implantación

•! Es una aplicación de software dirigida para ser utilizada en Internet o en una Intranet, o ambas.

Look-and-Feel

Arquitectura de Información

Componentes de una aplicación Web

Software

Arquitectura de Información

•! La arquitectura de información trata sobre la comprensión y conveniencia de la visión de la aplicación como un todo (Metáfora)

•! La arquitectura de información involucra el diseño de los sistemas de navegación, organización y recuperación para ayudar a los usuarios a encontrar y administrar información más exitosamente.

Tipos de Aplicaciones Web

•!Clasificación según su orientación: –!De Servicios

–!De Datos

–!Transaccionales

•!Clasificación según su funcionalidad

Aplicaciones de servicios

•! Estas son aplicaciones web dedicadas a algún tipo específico de servicio. –!Existen muchos ejemplos de estas

aplicaciones: un ejemplo son los motores de búsqueda, otro ejemplo son los servicios de correo gratuito

–!En ambos casos, las aplicaciones generalmente manejan una gran cantidad de datos, aunque la estructura de los datos y la navegación son bastante simples.

Aplicaciones de datos

•! Estas son aplicaciones web para accesar y mantener grandes cantidades de datos estructurados, generalmente almacenados en un sistema de bases de datos. –!Este tipo de aplicaciones tienen una compleja

estructura de navegación, pero ofrecen pocos o ningún servicio.

–!Compañías de entretenimiento, sitios académicos, revistas y periódicos en línea entran en esta categoría.

Aplicaciones transaccionales

•! Estos son realmente sistemas de información en el Web que ofrecen acceso a datos y servicios de interacción. –!Sitios grandes de comercio electrónico, cuyo

propósito principal es vender productos, se ubican en esta categoría.

–!También se encuentran en esta categoría los sistemas de información de empresas e instituciones basados en intranet.

Clasificación según funcionalidad

Rango de Complejidad

Static Site

Data Collector Site

Dynamic Data Access

Web Application

Service-Based Web Application and Federations

Dynamically Created

Site

Service

Application Centered Document Centered

Com

ple

x S

imple

Following “Web Site Engineering: Beyond Web Page Design”, by Th. Powell et al.

Motivación

•! Los usuarios requieren de aplicaciones web dinámicas y ricas en contenido

•! Los desarrolladores de software construyen aplicaciones Web aplicando las mejores prácticas y métodos que ellos han aprendido y aplicado en el desarrollo de aplicación tradicional.

•! Lo anterior funciona bien para ciertas partes de la aplicación pero no para los aspectos específicos de las aplicaciones Web que suplen las necesidades de los usuarios

Necesidades del usuario

Permita capturar la navegación ...

... especificar búsquedas ...

... y la ejecución de servicios ... tratar la visualización de información ...

Aspectos específicos

•! Requerimientos en constante evolución: –!Escabilidad, seguridad y portabilidad

•! Entornos dinámicos –!Recomposición y adaptabilidad

•! Negocios competitivos e innovadores –!Alta tecnología –!Demanda de recursos (red, procesamiento, etc.)

•! Usuarios universales –!Usabilidad

Antecedentes de la Ingeniería Web

•! El desarrollo de aplicaciones Web verdaderamente exitosas demandan el dominio de conocimientos provenientes de diversas disciplinas

•! Las metodologías de diseño y desarrollo de aplicaciones basadas en UML [Booch y otros, 1998] son bien conocidas. Sin embargo, estas metodologías y herramientas no proveen soporte específico para modelar las características propias de las aplicaciones Web.

Antecedentes (2)

•! Ha existido una desconexión metodológica entre los roles involucrados en el desarrollo de software para la Web

•! En los últimos años muchas metodologías y herramientas han sido desarrolladas para permitir el modelado, diseño y desarrollo de aplicaciones Web (RMM [Isakowitz y otros, 1995], WAE [Conallen, 1999], UWE [Koch y otros), WebML [Ceri y otros, 2000].

Aproximación

•! El desarrollo de aplicaciones Web demanda entonces un proceso diferente de los enfoques de la ingeniería de software tradicional.

Que es la Ingeniería Web?

•! "Es el proceso para crear, implantar y mantener

aplicaciones y sistemas Web de alta calidad”

•! “Enfoque sistemático, disciplinado, y

cuantificable al desarrollo, operación y

mantenimiento de aplicaciones Web”

•! “La Ingeniería Web usa principios científicos,

ingenieriles y de gerencia para desarrollar,

implantar y mantener sitios web de alta calidad”

Promesa de la Ingeniería Web

•! Ofrecer aproximaciones sistemáticas y disciplinadas para el desarrollo de aplicaciones web

•! Manejar la complejidad y diversidad del desarrollo e implantación de las aplicaciones Web

•! Ofrecer herramientas para el control, minimización del riesgo en los proyectos de implantación de aplicaciones web

•! Aumentar de la calidad y mantenibilidad de las aplicaciones web

Actividades de la Ingeniería Web

•! Desarrollo de aplicaciones (Especificación de requirimientos, análisis, diseño y construcción)

•! Migración de sistemas legados a ambientes web •! Integración de aplicaciones (EAI) •! Gerencia de proyectos Web •! Diseño de platafomas y arquitecturas de software para

ambientes Web •! Planeación de capacidad para aplicaciones Web •! Pruebas y validación de aplicaciones Web •! Aspectos de derechos, legales y sociales

Roles

•! Desarrolladores de Software: Diseñan y construyen el "código" de las aplicaciones pero generalmente no se ocupan de la interacción con el usuario

•! Arquitectos de Información: Se concentran en la manera en que los usuarios ven e interactúan con las aplicaciones.

•! Diseñadores gráficos o publicistas: Elaboran la imagen visual de la aplicación siguiendo los conceptos gráficos definidos (marketing).

Pros y Cons de los roles

•! Analistas de sistemas y programadores –! Pros: Habilidad para el desarrollo de aplicaciones de software

–! Cons: Debilidad en enfoques altamente orientados al usuario.

•! Arquitectos de Información: –! Pros: Habilidad para entender como el usuario ve o verá la

información –! Cons: Conocimientos computacionales

•! Diseñadores Gráficos: –! Cons: Habilidad para representar ideas y conceptos en un

entorno esteticamente usable –! Cons: No tienen habilidades de desarrollo de aplicaciones

complejas

Multiplicinalidad de la Ing Web

Web Engineering

Software

Engineering

Hypertext/

Hypermedia

Information

Engineering

Requirements

Engineering System

Analysis And Design

Modeling

And Simulation

Project

Management

Performance

Engineering

Evaluation

And Testing

Interface

Engineering

Multimedia IA

Actividad de la Ingeniería Web

•! En 1998, se realizó el primer Workshop internacional en Ingeniería Web (Brisbane, Australia) bajo la conferencia Wide Web Conference (WWW7)

•! Posteriormente se realizaron otras conferencias (WWW conferences 1999-2005, HICS 1999-2001, SEKE 2002 y 2003)

•! Se viene realizando una conferencia anual: International Conference on Web Engineering (ICWE) 2002-2010.

•! Existen varios Journal específicamente dedicados al tema como: Journal of Web Engineering (www.rintonpress.com/journals/jweonline.html) y Journal of Web Engineering and Technology (www.inderscience.com).

Campo de Aplicación en la WWW: e-Business

Qué es un e-business ?

-! Es un negocio que utiliza tecnología de Internet como

solución para:

-! Atraer, retener y cultivar relaciones con sus clientes.

-! Modernizar y agilizar sus procesos.

-! Soportar la toma de decisiones.

Que son las soluciones e-Business

Taxonomía e e-Business

Roles en una aplicación e-business

•! Desarrolladores (programadores, arquitectos, diseñadores gráficos) que diseñan e implementan la aplicación

•! Productores de contenido quienes define, crean y mantienen el contenido del sitio (datos, imágenes, media)

•! Consumidores quienes interactúan con el contenido entregado (Clientes, aliados, proveedores y empleados)

•! Usuarios de inteligencia de negocios quienes evalúan y analizan el negocio.

Comparativo

Computación Social

Que es la computación social?

•! Es un término usado para describir los sistemas Web que permiten a la gente conectarse y trabajar a través de límites organizacionales y físicos, creando lo que se conoce como “comunidades”

Que tiene de diferente?

•! La gente descubre nuevas formas para compartir conocimiento relevante con una velocidad significativa

•! El lenguaje es natural, abierto, honesto,

divertido y directo

•! Está en contraste con las formas de

comunicación organizacionales tradicionales, jerarquicas y lentas

Comunidades en línea

•!Utilizan las herramientas y recursos para conectar las personas: (Blogs, Wikis, Forums, etc.)

•!Ofrecen diversidad de lenguajes y la posibilidad de extender su funcionalidad (aplicaciones de usuario)

•! Ejemplos más conocidos: Flickr, Youtube,

Facebook, Twitter, My Space, Second Life.

Herramientas tradicionales

•! Web pages •! E-mail •! Foros

•! Newsletters •! Chats / Web Cams •! Blogs

•! Wikis

•! Online journals (Weblogs)

•! Publicación sencilla

•! Gratis (o baratos)

•! 27 millones de blogs en la web

Blogs

Foros

•! Grupos de discusión en línea

•! También conocidos como bulletin boards /

newsgroups

•! Ponga una pregunta y obtiene una respuesta

•! La clave es compartir el conocimiento

Wikis

•! Escritura de documentos en línea y

colaborativa

•! Ej: Wikipedia

•! No requiere mayor infraestructura

•! Algo más complejo para configurar

Otras herramientas

•! RSS (Really Simple Syndication)

•! Mashups / Gadgets / Widgets

•! Podcasting

Mash-up’s Crean y amplían la experiencia del usuario

Que son los Gadgets / Widgets?

Mini aplicaciones que forman Mashups: –! Consumen servicios

–! Aplican presentaciones y comportamientos

–! Simples para usa y personalizar

Ecosistema de Gadgets

Retos de la computación social

•! Integración a sistemas empresariales

•! Integración de plataformas

•! Fidelización de “clientes”

•! Seguridad

•! Ética y jurisprudencia

Aspectos éticos de la web

•!Ofrecimiento claro de servicios suministrados

•!Competencia leal y equilibrada (Monopolios)

•!Disponibilidad para compartir conocimiento y trabajar sobre estándares abiertos

Aspectos legales

•! Licenciamiento

•!Comercio electrónico

•! Violación de intimidad y privacidad

•! Fraude electrónico

Versiones de la Web

•!Web 1.0: Caracterizada por contenidos en su mayoría estáticos y de una sola vía de interacción (publicador!usuario)

•!Web 2.0: Sitios dinámicos, colaborativos y altamente interactivos

•!Web 3.0: Web Semántica?

Créditos

•! Web Engineering: Introduction and perspectives. San Murugesan, Athula Ginige.

•! Ingeniería Web. MSc. Armando Arce O. Instituto Tecnológico de Costa Rica

•! Anatomía de una aplicación web. Kathy Jo Nelson.

•! Modelado conceptual de aplicaciones web. Oscar Pastor.

•! Why Web Engineering Is Needed For Web Applications and Services. Bebo White.