Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Ingeniería Web

GG
by

Z Roach

on 10 June 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Ingeniería Web

Ingeniería Web
¿Qué es la ingenieria web?
¿Quien lo hace?
Los ingenieros web y los desarrolladores de contenido no técnico crean las WebApps
¿Por qué es importante?
A medida que los WebApps se integran cada vez más en grandes y pequeñas compañías, y cada vez es más importante la necesidad de construir sistemas fiables, utilizables y adaptables.
¿Cuáles son los pasos a seguir?
La ingeniería web aplica un enfoque genérico que se suaviza con estrategias, tácticas y métodos especializados. Dado que las WebApps están en constante evolución, deben de establecerse los mecanismos para el control de configuraciones, garantía de calidad y soporte continuado
¿Cuál es el producto obtenido?
La elaboración de una gran cantidad de productos de trabajo de ingeniería Web. Y como producto final la WebApp operativa.
WebApp
Los sistemas y aplicaciones (WebApps) basados en web hacen posible que una población extensa de usuarios finales dispongan de una gran variedad de contenido y funcionalidad. La ingerieria web no es un clon perfecto de la ingenieria de software, pero toma prestado muchos de los conceptos y principios basicos, dando importancia a las mismas actividades tecnicas y de gestión.
Intensidad de Red
Una webapp reside en una red y debe satisfacer las necesidades de una variada comunidad de clientes
Concurrencia
Un gran numero de usuarios puede tener acceso a la WebApp al mismo tiempo
Carga Impredecible
El número de usuarios de la WebApp puede variar en órdenes de magnitud día a día.
Pueden entrar 100 usuarios determinado día y al siguiente pueden ser 10.000.
Desempeño
Si los tiempos de espera dentro de la WebApp son muy largos cuando un usuario quiere acceder a determinado contenido, puede provocar la ida del usuario
Gobernada por los datos
Cómo función primordial de muchas WebApps es usar "Hipermedia" para presentar contenido de texto, graficos, audio y video al usuario final
Disponibilidad
Las WebApps más populares demandan disponibilidad 24/7/365 de sus usuarios
Atributos de los sistemas y aplicaciones en Web
Una WebApp puede colocarse en una intranet( comunicación en una organización) o en una extranet (comunicación inter-red)
Los patrones de uso entre los usuarios finales variarán enormemente
Se debe obtener la informacion de base de datos que originalmente no eran parte integral del ambiente basado en web
Sensibilidad de contenido
La calidad y naturaleza estetica del contenido sigue siendo un importante determinante de la calidad de una WebApp
Evolución Continua
Las aplicaciones web evolucionan de manera continua a diferencia del software de aplicacion convencional
Las WebApp pueden actualizar su contenido minuto a minuto
El cuidado continuo y la alimentacion de contenido permiten que un sitio web crezca(en robustez e importancia).
Inmediatez
Tratar de comercializar el software lo antes posible
Las WebApp generalmente muestran un tiempo que puede ser cuestion de dias o semanas
Los Ingenieros deben aplicar metodos que han sido adaptados a tiempos muy acotados
Seguridad
Dado que las WebApps están disponibles a través de1 acceso por red, es difícil, si no imposible, limitar la población de usuarios finales que pueden acceder a la aplicación. Con objeto de proteger el contenido confidencial y de proporcionar formas seguras de transmisión de datos, deberán implementarse fuertes medidas de seguridad en toda la infraestructura que apoya una WebApp y dentro de la
misma aplicacion
Estetica
Una parte innegable del atractivo de una WebApp es su apariencia e interacción. Cuando se ha diseñado una aplicación con el fin de comercializarse o vender productos o ideas, la estética puede tener mucho que ver con el éxito del diseño técnico.
Introducción
La percepción de lo bueno por parte del usuario podría ser más importante que cualquier discusión técnica sobre la calidad de la WebApp.
Pero las características más relevantes usabilidad, fiabilidad, eficiencia y capacidad de mantenimiento proporcionan una base útil para evaluar la calidad de los sistemas basados en Web.
Usabilidad
Capacidad de comprensión del sitio global
Servicios de ayuda en linea.
Capacidades estéticas y de interfaz
Funcionalidad
Capacidad de recuperación y de búsqueda
Servicios de búsqueda y navegación
Servicios relacionados con el dominio de aplicación
Eficiencia
Rendimiento del tiempo de respuesta
Velocidad de generación de páginas
Velocidad de generación de gráficos.
Estratos de la ingeniería de WebApp
En un proceso tan rápido como es el proceso de Ingeniería Web, donde los tiempos de desarrollo y los ciclos de vida de los productos son tan cortos, ¿merece la pena el esfuerzo requerido por la gestión? Dada su complejidad es imprescindible. El desarrollo incluye una gran variedad de personal técnico y no técnico trabajando en paralelo, el equipo de desarrollo debe dominar aspectos tan variados como, software basado en componentes, redes, diseño de arquitectura y navegación, diseño gráfico y de interfaces, lenguajes y estándares en Internet, test de aplicaciones Web, etc, lo que hace que el proceso de búsqueda y contratación de personal
sea arduo.
¿Qué categorias de WebApps se encuentran en el trabajo iweb?
Informativos
Se proporciona contenido de sólo lectura con navegación y enlaces simples
Descarga
El usuario descarga información del servidor apropiado.
Interacción
La comunicación entre una comunidad de usuarios ocurre por medio de cuartos de charla, tableros de anuncios o mensajeria instantánea
Personalizable
El usuario personaliza el contenido según sus necesidades específicas.
Entrada de usuario
La entrada con base en formularios es el principal mecanismo para las necesidades de comunicación
Orientada a transacciones
El usuario hace una solicitud.
Orientada a servicios
Portal
Acceso a una base de datos
Almacén de datos
La aplicación canaliza al usuario hacia otro contenido o servicio web fuera del dominio del portal de la aplicación
La aplicación proporciona un servicio al usuario.
El usuario consulta una gran base de datos y extrae la información.
El usuario consulta una coleccion de grandes bases de datos y extrae la información
Atributos de calidad
Capacidad de Mantenimiento
Facilidad de conexión
Adaptabilidad
Extensibilidad
Fiabilidad
Proceso correcto de enlace
Recuperación de errores
Validación y recuperación de la entrada del usuario
Las herramientas y tecnologías
Se incorporan tecnologías importantes: el desarrollo basado en componentes, la seguridad y los estándares de internet.
Estándares de internet
Durante la última década el estándar dominante en la creación del contenido y la estructura de la WebApp ha sido HTML, sin embargo, a medida que las aplicaciones crecen en tamaño y complejidad se ha adoptado un nuevo estándar XML.
Seguridad
Si una red reside en una WebApp, esta está abierta a un acceso sin autorización ya sea por personal interno o intrusos (hackers) por lo que se debe proporcionar una variedad de medidas de seguridad como encriptación, cortafuegos y otras.
Desarrollo basado en componentes
Los ingenieros Web disponen de estándares para la infraestructura: CORBA, COM/DCOM, Active X, .NET. Estos estándares proporcionan una infraestructura que permite a los que diseñan emplear y personalizar componentes de terceras partes permitiéndoles así comunicarse unos con otros y con servicios a nivel de sistemas.
Definir el marco de trabajo
Antes de definir un marco de trabajo de proceso para la IWeb se debe reconocer que:
Las WebApps con frecuencia se entregan de manera incremental.
Los cambios ocurrirán frecuentemente.
Los plazos son cortos.
Comunicación con el cliente
La comunicación con el cliente se caracteriza por medio de dos grandes tareas:
El análisis del negocio
La formulación.
Formulación
Es una actividad de recopilación de requisitos que involucran a todos los participantes.
Planeación
Las labores convencionales de análisis diseño de la ingeniería del software
se adaptan al desarrollo de las WebApp, se mezclan y luego se funden en una actividad de modelado de la IWeb. El intento es desarrollar análisis rápido y modelos de diseño que definan requisitos y al mismo tiempo representen una WebApp que los satisfagan.
Construcción
Las herramientas y la tecnología IWeb
se aplican para construir la WebApp que se ha modelado. Una ves que se construye el incremento de WebApp se dirige a una serie de pruebas rápidas para asegurar que se descubran los errores en el diseño.
Se crea el plan del proyecto para el incremento de la WebApp. El plan consiste de una definición de tareas
y un calendario de plazos respecto al período establecido para el desarrollo del proyecto.
Despliegue
Las WebApp se configura para su ambiente operativo, se entrega a los usuarios finales y luego comienza un período de evaluación.
La retroalimentación acerca de la evaluación para realizar los procesos respectivos.
Modelado
Describir como interactuarán los usuarios con la WebApp aplicando un enfoque basado en escenarios
Se debe convencer a los accionistas que desarrollen casos de uso para entender mejor la dinámica y los actores de la WebApp a ser desarrollada.
Desarrollar un plan del proyecto, incluso si es muy breve
Debe estar definido dentro de un marco de trabajo predefinido aceptable para todos los participantes puesto que los plazos del proyecto son muy cortos
El programa de proyecto debe instanciarse, planearse y rastrearse diariamente
Utilizar algún tiempo para modelar lo que se construirá
Por lo general, el análisis total y los modelos de diseño no se desarrollan durante la Ing. Web, Sin embargo, la clase UML y los diagramas de secuencia junto con otras notación UML seleccionada (por ejemplo, diagramas de estado) pueden proporcionar una visión invaluable.
Utilizar herramientas y tecnología que permitan construir el sistema con componentes reutilizables
Estas herramientas permiten al Ingeniero web construir porciones significativas de la aplicación utilizando componentes reutilizables
Mejores prácticas de
Ingeniería WEB
Tomar tiempo para entender las necesidades del negocio y los objetivos del producto
Se cree erróneamente que los requisitos vagos los liberan de la necesidad de asegurarse de que el sistema que se esta desarrollando tenga un propósito empresarial legitimo.
Si los accionistas luchan por identificar un conjunto de objetivos claros para la WebApp, es mejor esperar hasta que ellos concluyan.
Diseñar pruebas amplias y ejecutarlas antes de liberar el sistema.
Lo usuarios de la WebApp con frecuencia le dan una oportunidad. Si falla en su ejecución se mueven a cualquier otra parte: nunca regresan.
"Pruebe primero, después despliege"
Revisar la consistencia y calidad de los modelos
El tiempo empleado en las revisiones paga importantes dividendos porque usualmente elimina reelaboraciones y resulta en una WebApp que exhibe alta calidad
Esto aumenta la satisfacción del cliente.
"En la ingeniería de software se denomina aplicación web a aquellas herramientas que los usuarios pueden utilizar accediendo a un servidor web a través de Internet o de una intranet mediante un navegador. En otras palabras, es una aplicación software que se codifica en un lenguaje soportado por los navegadores web en la que se confía la ejecución al navegador."
Las 2 primeras actividades del marco de trabajo de la ingeniería web destacan la formulación y la planeación.

La formulación valora las necesidad subyacente de la WebApp, las características y funciones globales que desean los usuarios y el ámbito del esfuerzo del desarrollo.

La planeación aborda los elementos que deben definirse para establecer un flujo de trabajo y un programa, y rastrear el trabajo conforme avanza el proyecto.
Los ingenieros web, sus
administradores y los participantes
sin funciones técnicas; todos
participan en la formulación
y planeación.
¿Quien lo hace?
¿Por qué es importante?
Es difícil viajar a un lugar que nunca se ha visitado sin direcciones o un mapa. Eventualmente se llegara (o tal vez no), pero con seguridad el viaje sera frustrante y largo en forma innecesaria. La formulación y la planeación proporcionan un mapa para un equipo de ingeniería web.
¿Cuales son los pasos a seguir?
La formulación comienza al establecer al comunicación con el consumidor, que plantea las razones para la WebApp.
¿Cual es la necesidad del negocio?
¿Cuales usuarios finales son el objetivo?
¿Que caracteristicas y funciones se desean?
¿Que sistema y bases de datos existen?
¿El concepto es realizable?
¿Como se medira el exito?
Planeación y Formulación
La Planeación establece:

Plan de trabajo
Desarrolla estimaciones para valorar la factibilidad de las fechas de entrega deseadas.
Considera riesgos
Define un programa y establece mecanismos para el control y rastreo.
Formulación de sistemas basados en web
La formulación permite:
Que los clientes y equipo de ingeniería establezcan un conjunto común de metas y objetivos.
Identifica el ámbito del esfuerzo de desarrollo
Proporciona un medio para determinar un resultado exitoso.
Recopilación de requisitos para WebApps
Identificar requisitos de contenido.
Identificar requisitos funcionales.
Definir escenarios de interacción para diferentes clases de usuario.
Definición de categorías
La complejidad de la WebApp es directamente proporcional al número de categorías de usuarios para el sistema. La definición de categorías de usuario requiere formular un conjunto de preguntas fundamentales.
¿Cual es el objetivo global del usuario cuando usa la WebApp?
Un usuario del sitio comercio electrónico de HogarSeguroInc.com puede estar interesado en recopilar información acerca de productos de administración del hogar.
Un segundo usuario tal vez desee comparar precios.
Un tercer usuario quiere comprar el producto HogarSeguro.
Un cuarto usuario ya posee HogarSeguro y busca soporte técnico o quiere comprar sensores o accesorios adicionales.

Cada uno representa una clase o categoría diferente de usuario, cada uno tendrá diferentes necesidades y navegara a través de la WebApp de manera diferente.
¿Cuales son los antecedentes o pericia del usuario en relación a con el contenido y la funcionalidad de la WebApp?
si un usuario tiene antecedente técnico y una pericia significativa el contenido o al funcionalidad elementales ofrecerán poco beneficio.
¿Como llegará el usuario a la webApp?
¿Llegara a través de un enlace desde otro sitio web? O ¿llegara en una forma mas controlada?
¿Que características genéricas de la WebApp le gustan o disgustan al usuario?
Diferentes tipos de usuarios pueden tener distintos tipos y predecibles gustos y aversiones.
Comunicación con los clientes y usuarios finales
Aunque la creación de categorías o clases de usuario hace que la evaluación de los requisitos de usuario sea más manejable, no es recomendable emplear información recopilada sólo de una o dos personas, se necesitan considerar más personas (y más opiniones y puntos de vista).

La comunicación se puede lograr aprovechando uno o más de los mecanismos siguientes:
Grupo muestral tradicional:
Un moderador entrenado se reúne con un pequeño (usualmente menos de 10 personas) grupo de personas representativos de usuarios finales.
Grupo muestral electrónico:
Es un debate electrónico moderado dirigido con un grupo de usuarios finales y participantes representativos. El número de participantes puede ser mayor. Es posible recopilar más información en un periodo mas corto.
Entrevistas Iterativas:
Una serie de entrevista breves, dirigidas a usuarios representativos y en la que se solicitan respuestas a preguntas específicas acerca de la WebApp.
Entrevista de exploración :
Encuesta basada en web y ligada a una o más WebApp con usuarios similares a los que usarán la WebApp. Los usuarios se enlazan a la entrevista y responden una serie de preguntas.
Construcción de escenarios :
A usuarios seleccionados se les pide crear casos de uso informales que describan interacciones especificas con la WebApp.
Análisis de la información recopilada
Conforme se recopila información se categoriza en clases de usuarios y tipos de transacción,luego se valora según su relevancia. El objetivo es desarrollar listas de objetos de contenido, operaciones que se aplican a los objetos de contenido dentro de una transacción de usuario específica, funciones (por ejemplo: informativa, computacional, lógica y orientada a la ayuda) que la WebApp proporcionara a los usuarios finales, y otros requisitos no funcionales que se advierten durante las actividades de comunicación.
Desarrollo de caso de uso
Los casos describen cómo interactuará con la WebApp una categoría de usuario especifica (llamada actor) para lograr una acción específica. Los casos de uso describen la interacción desde el punto de vista del usuario. Aunque desarrollarlos y analizarlos toma tiempo, los casos de uso :

1) Ayudan al desarrollador a entender cómo perciben los usuarios su interacción con la WebApp.

2) Proporcionan el detalle necesario para crear un modelo de análisis efectivo.

3) Ayudan a dividir compartimientos de trabajo de IWeb.

4) Ofrecen una guía importante para quienes deben probar la WebApp.
Planeación de proyectos de ingeniería web
Dada la inmediatez de las WebApps es razonable preguntar: ¿en realidad se necesita gastar tiempo en la planeación y administración de un esfuerzo WebApp? ¿No sólo se debería dejar evolucionar naturalmente a la WebApp, con poca o ninguna gestion explicita?
Mas de un desarrollador optaría por poca o ninguna gestión, ¡pero eso no hace que este en lo correcto!
Diferencias entre proyectos tradicionales y electrónicos (e-projects)
El equipo de ingeniería web

Un equipo de ingeniería Web exitoso mezcla una amplia variedad de talentos que deben trabajar como equipo en un ambiente de proyecto con alta presión.
Los actores:
1.- Desarrolladores/proveedores de contenido.
2.- Editores de Web.
3.- Ingeniero Web
4.- Expertos en dominios empresariales.
5.- Especialista de soporte.
6.- Administrador
Construcción del equipo
Se debe establecer un conjunto de directrices de equipo:
Dichas directrices abarcan lo que se espera de cada persona, cómo se lidiará con los problemas y que mecanismos existen para mejorar la efectividad del equipo conforme avanza el proyecto.
El liderazgo fuerte es una obligación:
El líder del equipo debe guiar mediante el ejemplo y el contacto. Debe mostrar un grado de entusiasmo que impulse a los otros miembros del equipo a "endosarse" psicológicamente al trabajo que enfrentan.
El respeto hacia los talentos debe ser crucial:
Nadie es bueno en todo. Los mejores equipos utilizan las fortalezas individuales. Los mejores lideres dejan que los individuos tengan libertad para seguir una buena idea.
Cada miembro de equipo se debe comprometer:
Cada individuo del equipo debe estar comprometido con lograr los objetivos propuestos.
Es fácil comenzar lo difícil es mantener el ímpetu:
Los mejores equipos nunca dejan que un problema "insuperable" los detenga.
Conflictos de gestión de proyecto para ingeniería Web
Una vez realizada la formulación y que se han identificado los requisitos básicos de la WebApp, la empresa debe elegir entre una de dos opciones de ingeniería Web.
1.- La WebApp es subcontratada (outsourced):
La ingeniería web la realiza un tercer proveedor con experiencia, talento y recursos con los cuales no cuente la empresa.
2.- La WebApp la desarrollan en casa los ingenieros Web que sean empleados de la empresa.
Existe una tercera opción (hacer algún trabajo de ingeniería Web en casa y subcontratar otro trabajo) también es una posibilidad.
Si la subcontratación se elegirá como la estrategia para desarrollar la WebApp, la organización debe realizar una serie de tareas antes de buscar una empresa subcontratista.
Inicio del proyecto:
Planeación de WebApp: subcontratación
1.- Realizar, internamente, muchas de las labores de análisis tratadas.

2.- Desarrollar internamente un diseño aproximado de la WebApp.

3.-Elaborar un programa aproximado que incluya no solo las fechas finales de entrega, sino también fechas claves.

4.- Crear una lista de responsabilidades para la organización interna y el subcontratista.

5.- Identificar el grado de supervisión e interacción de la organización contratante con el subcontratista.
Selección entre los subcontratistas candidatos
Con la finalidad de elegir desarrolladores Web candidatos, el contratante debe realizar algunas diligencias obligadas:
1.- Entrevistar a los clientes antiguos para determinar el profesionalismo del vendedor Web, así como su habilidad de cumplir con compromisos.
2.- Determinar el nombre del ingeniero(s) Web jefe de la empresa subcontratista para buscar proyectos anteriores exitosos.
3.- Examinar cuidadosamente ejemplos del trabajo del subcontratista que sean similares en apariencia y sentido (y área de negocios) a la WebApp que será contratada.
Valoración de la validez de las cotizaciones y la confiabilidad de las estimaciones.
¿La cotización de la WebApp ofrece un rendimiento sobre la inversión, directo o indirecto, que justifique el proyecto?
¿La empresa emisora de la cotización tiene el profesionalismo y la experiencia que se requiere?
Planeación de WebApp: ingeniería Web en casa
Conforme las WebApps se vuelven más extensas y estratégicas para los negocios, muchas compañias han optado por controlar el desarrollo en casa.
Entender el ámbito, las dimensiones de cambio y las restricciones del proyecto:
Ningún proyecto, sin importar cuán apretada sea la restricción del tiempo, puede comenzar mientras el equipo del proyecto no entienda qué debe construir.
Definir una estrategia de proyecto incremental
Las WebApps evolucionan con el tiempo. Si la evolución es descontrolada y caótica, la probabilidad de un resultado exitoso es pequeña.
Realizar análisis de riesgo
Los riesgos que entrañan el programa y la tecnología dominan la preocupación de la mayoría de los equipos de ingeniería Web
¿Los incrementos WebApp planeados pueden entregarse en los plazos definidos?

¿El equipo comprende los métodos, tecnologías y herramientas de ingeniería web requeridos?
Desarrollar una estimación rápida
El eje de la estimación para la mayoría de los proyectos de ingeniería Web lo representan los conflictos macroscópicos, más que los microscópicos.
Elegir un conjunto de tareas (descripción del proceso)
Empleando un marco de trabajo, se elige un conjunto de de tareas de ingeniería Web que sean adecuadas para las características del problema, el producto, el proyecto y la gente en el equipo de ingeniería Web.
Establecer un programa
El programa de un proyecto IWeb tiene una dosificación realtivamente precisa respecto de las tareas que se realizarán en el corto plazo, y luego una mucho más flexible durante periodos posteriores.
Definir mecanismos de rastreo del proyecto
En el trabajo convencional de ingeniería del software el proceso se mide determinando que objetivos se han logrado. Respecto a los proyectos Web pequeños y de tamaños moderados, los objetivos pueden estar menos definidos, y las actividades formales de aseguramiento de la calidad pueden perder fuerza.
Las peores practicas para proyectos WebApp
En ocasiones, la mejor forma de aprender cómo hacer algo correctamente !es examinar como no hacerlo!
Peor practica #1 :
Se tiene una gran idea, así que se puede comenzar a construir la WebApp ahora.
Realidad:
Tómense unas cuantas horas o días y elabórese un caso de negocios para la WebApp. Asegúrese de que la idea la apoyan quienes la financiarán y quienes la usarán.
Peor Practica #2:
Las cosas cambiaran constantemente, asi que no tiene caso tratar de comprender los requisitos de la WebApp.
Realidad:
Es cierto que los requisitos de la WebApp evolucionan conforme continúan las actividades de ingeniería Web. Sin embargo, un enfoque desdeñoso respecto de la recopilación y el analisis de requisitos es un catalizador para más cambio (innecesario) todavía.
Peor practica #3
Los desarrolladores cuya experiencia dominante se relaciona con el desarrollo de software tradicional pueden desarrollar WebApps inmediatamente.
Realidad:
Las WebApps son diferentes. Se debe aplicar de manera experta un amplio abanico de métodos, tecnologías y herramientas. El entrenamiento y la experiencia con ellos es esencial.
Peor practica #4:
Burocratizarse. Insista en modelos de procesos pesados, horarios, muchas e innecesarias reuniones, etc.
Realidad
Aliente a un proceso ágil que resalte la competencia y la creatividad de un equipo de ingeniería Web experimentado. Luego salga de su camino y permítale trabajar.
Peor practica #5:
¿Pruebas? ¿Porque molestarse?
Realidad:
Con el tiempo, los usuarios finales sí realizan "pruebas" exhaustivas, pero están tan enojados por la falta de confiabilidad y el pobre desempeño que la dejan mucho antes de que los problemas sean corregidos (nunca regresan).
¿Que son?
Planeación y Formulación
Actividad
Investigar
Historia
Antecedentes
Características
De la Web 2.0 y 3.0
Full transcript