38
INGENIERIA DE SOFTWRE III SESION 1 INGENIERIA WEB Jairo Iván Vélez Bedoya

Sesion 1

Embed Size (px)

DESCRIPTION

En esta presentacion se tratan los temas del area Ingenieria del Software 3, en esta se presentan los siguientes temas: - Ingenieria Web. - Ingenieria de Software. - Comnputacion en la Nube. - Computacion en GRID.

Citation preview

Page 1: Sesion 1

INGENIERIA DE SOFTWRE III

SESION 1INGENIERIA WEB

Jairo Iván Vélez Bedoya

Page 2: Sesion 1

CONTENIDOS• INGENIERIA WEB

– Introducción – Categorías

• NUEVOS PARADIGMAS DE INGENIERIA DE SOFTWARE – Computación en la nube– Programación orientada a aspectos

• ARQUITECTURA DE SOFTWARE– Diseño arquitectónico– Descripción de arquitecturas, notación y herramientas (estático y dinámico)– Patrones y estilos arquitectónicos– Especificación para activos reutilizables (RAS)– Modelos de componentes para arquitecturas (EJB)– Desarrollo de componentes con EJBs

Page 3: Sesion 1

CONTENIDOS• METODOLOGÍAS ÁGILES, TÉCNICAS Y HERRAMIENTAS (SCRUM, XP o

AUP)• GESTION DE PROYECTOS DE SOFTWARE

– Calidad de procesos y ciclo de vida– Calidad de productos– Calendarización– Peopleware– TSP

• Introducción • Lanzamiento • Exposición de avance de proyecto de cada equipo de trabajo• Roles • Estrategia • Metricas• Calendarizacion• Postmortem

Page 4: Sesion 1

EVALUACIÓN

• Casos de estudio 5%• Parcial 1 15%• Parcial 2 20%• Parcial 3 20%• Proyecto 40%

Page 5: Sesion 1

INGENIERIA WEB

• La ingeniería web es la aplicación de metodologías sistemáticas, disciplinadas y cuantificables al desarrollo eficiente, operación y evolución de aplicaciones de alta calidad en la www.

Page 6: Sesion 1

INGENIERIA WEB

• La ingeniería web se debe al crecimiento desenfrenado que está teniendo la Web y está ocasionando un impacto en la sociedad y el nuevo manejo que se le está dando a la información en las diferentes áreas en que se presenta y ha hecho que las personas tiendan a realizar todas sus actividades por esta vía.

Page 7: Sesion 1

INGENIERIA WEB

• Internet se volvió más que una diversión y empezó a ser tomado más en serio, ya que el aumento de publicaciones y de informaciones hizo que la Web se volviera como un desafío para los ingenieros de software, a raíz de esto se crearon enfoques disciplinados, sistemáticos y metodologías donde tuvieron en cuenta aspectos específicos de este nuevo medio.

Page 8: Sesion 1

• Uno de los aspectos más tenidos en cuenta, en el desarrollo de sitios web es sin duda alguna el diseño gráfico y la organización estructural del contenido

INGENIERIA WEB

Page 9: Sesion 1

INGENIERIA WEB

• En la actualidad la web está sufriendo grandes cambios, que han obligado a expertos en el tema a utilizar herramientas y técnicas basadas en la ingeniería del software, para poder garantizar el buen funcionamiento y administración de los sitios web.

Page 10: Sesion 1

• Para garantizar el buen funcionamiento y mantenimiento de los sitios web, este debe contar con ciertos atributos y características que en conjunto forman un concepto muy importante, para alcanzar el éxito en cualquier organización, herramienta, y todo aquello que se pueda considerar como servicio.

INGENIERIA WEB

Page 11: Sesion 1

INGENIERIA WEB

• Dicho concepto es la calidad, que con atributos como, usabilidad, navegabilidad, seguridad, mantenibilidad, entre otros, hace posible por un lado la eficiencia del sistema web y por ende la satisfacción del usuario final.

Page 12: Sesion 1

INGENIERIA WEB

• para tener artefactos de calidad, a esa misma se le debe planificar, programar y controlar, es decir la calidad no podrá ser agregada a un sistema web o a cualquier otro producto, al final del proceso de desarrollo, si no que se deberá implementar durante todo el ciclo de vida del desarrollo.

Page 13: Sesion 1

• La ingeniería web hace una diferencia entre un sitio web y un aplicativo, ya que la ingeniería de la web no se dedica a la construcción de sitios web si no a la construcción de aplicativos web, la principal característica que los distingue (aplicativos de sitios web) es que los sitios web son sitios en la web en donde se publica contenido generalmente estático o un muy bajo nivel de interactividad con el usuario, mientras que los aplicativos son lugares con alto contenido de interactividad y funcionalidades que bien podrían ser de un software convencional.

INGENIERIA WEB

Page 14: Sesion 1

• la ingeniería de la Web hace referencia a las metodologías, técnicas y herramientas que se utilizan en el desarrollo de aplicaciones Web complejas y de gran dimensión en las que se apoya la evaluación, diseño, desarrollo, implementación y evolución de dichas aplicaciones.

INGENIERIA WEB

Page 15: Sesion 1

• Los principales aspectos de la ingeniería de la Web incluyen, entre otros, los siguientes temas:

• Diseño de procesos de negocio para aplicaciones web.• Herramientas CASE para aplicaciones web.• Generación de código para aplicaciones web.• Desarrollo web colaborativo.• Modelado conceptual de aplicaciones web.• Entornos de desarrollo de aplicaciones web integrados.• Herramientas de autor para contenido multimedia.• Pruebas de rendimiento de aplicaciones basadas en web.

INGENIERIA WEB

Page 16: Sesion 1

• Control de calidad y pruebas de sistemas.• Ingeniería de requisitos para aplicaciones web.• Aplicaciones para la Web Semántica.• Métodos, herramientas y automatización de pruebas para

aplicaciones web.• Aplicaciones web móviles y ubícuas.• Usabilidad de aplicaciones web.• Accesibilidad para la web.• Formación en ingeniería de software.• Diseño de interfaces de usuario.• Métricas para la web, estimación de costes y medición.• Gestión de proyectos web y gestión de riesgos.• Desarrollo y despliegue de servicios web.

INGENIERIA WEB

Page 17: Sesion 1

CATEGORIAS DE LA INGENIERIA WEB

• Los sitios web pueden ser categorizados de la siguiente forma:• SÓLO ESTÁTICO que se enfoca en la organización de la

estructura y el contenido, en la forma como se va a presentar la información y que sea fácil de manejar para cualquier usuario, pero debe tener en cuenta la eficiencia y la confiabilidad.

• SITIO ESTÁTICO CON FORMULARIOS DE ENTRADA este sitio tiene las mismas características que el anterior, adicionándole que el le permite a los usuarios la interacción por medio de cuestionarios, comentarios y sugerencias.

• SITIO CON ACCESO DE DATOS DINÁMICOS aquí, además de las características antes mencionadas, cuenta con bases de datos en las cuales el usuario puede realizar consultas y búsquedas.

Page 18: Sesion 1

CATEGORIAS DE LA INGENIERIA WEB

• SITIO CREADO DINÁMICAMENTE en este sitio los requerimientos son parecidos pero deben suplir con las necesidades de cada usuario; creando sitios dinámicos que sean compatibles con el entorno de navegación de cada usuario.

• APLICACIÓN DE SOFTWARE BASADA EN LA WEB este sitio puede tener todas las características antes mencionadas, pero logrando un parecido con una implementación cliente/servidor.

Page 19: Sesion 1

NATURALEZA MULTIDISCIPLINAR

• La ingeniería del software, incluye nuevas metodologías de desarrollo esenciales para la administración de proyectos.

• Actualmente la ingeniería web ha adoptado también metodologías de la ingeniería del software y ha creado muchas nuevas.

• Debido a que la información es publicada para conocimiento de todo el mundo, hay que tener muy en cuenta aspectos sociales, jurídicos y éticos que pueden influir a la hora de la publicación.

• De acuerdo con esto, la ingeniería Web puede utilizar una parte de cada una de estas disciplinas y no ser dominada por puntos de vista muy particulares, es una respuesta de carácter multidisciplinario para las aplicaciones Web.

Page 20: Sesion 1

NATURALEZA MULTIDISCIPLINAR

• Usualmente, las aplicaciones web son multidisciplinares, ya que son construidas en un medio constantemente cambiante, donde los requerimientos son inestables, los equipos de desarrollo generalmente son pequeños, las comunidades de usuarios son más amplias que antes y la competición ahora es a nivel mundial.

• En general, las aplicaciones web, necesitan ser funcionales, mantenibles, escalables y seguras. Como podemos ver, la actual demanda de las aplicaciones web es totalmente diferente de las aplicaciones convencionales y por lo tanto hay una gran necesidad de la ingeniería web.

Page 21: Sesion 1

INGENIERIA DE SOFTWARE

• Ingeniería de software es la disciplina o área de la informática que ofrece métodos y técnicas para desarrollar y mantener software de calidad.

• Esta ingeniería trata con áreas muy diversas de la informática y de las ciencias de la computación, tales como construcción de compiladores, sistemas operativos, o desarrollos Intranet/Internet, abordando todas las fases del ciclo de vida del desarrollo de cualquier tipo de sistemas de información y aplicables a infinidad de áreas: negocios, investigación científica, medicina, producción, logística, banca, control de tráfico, meteorología, derecho, Internet, Intranet, etc.

Page 22: Sesion 1

INGENIERIA DE SOFTWARE

• Una definición precisa aún no ha sido contemplada en los diccionarios, sin embargo se pueden citar las enunciadas por algunos de los más prestigiosos autores:

• Ingeniería de Software es el estudio de los principios y metodologías para el desarrollo y mantenimiento de sistemas software (Zelkovitz, 1978)

• Ingeniería de software es la aplicación práctica del conocimiento científico al diseño y construcción de programas de computadora y a la documentación asociada requerida para desarrollar, operar y mantenerlos. Se conoce también como Desarrollo de Software o Producción de Software ( Bohem, 1976).

Page 23: Sesion 1

INGENIERIA DE SOFTWARE

• Ingeniería de Software trata del establecimiento de los principios y métodos de la ingeniería a fin de obtener software de modo rentable, que sea fiable y trabaje en máquinas reales (Bauer, 1972).

• Es la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación y mantenimiento del software; es decir, la aplicación de la ingeniería al software (IEEE, 1993).

Page 24: Sesion 1

INGENIERIA DE SOFTWARE

• Algunos autores consideran que Desarrollo de Software es un término más apropiado que Ingeniería de Software (IS) para el proceso de crear software. Personas como Pete McBreen (autor de "Software Craftmanship") cree que el término IS implica niveles de rigor y prueba de procesos que no son apropiados para todo tipo de desarrollo de software.

• Indistintamente se utilizan los términos Ingeniería de Software o Ingeniería del Software. En hispanoamérica el término usado normalmente es el primero de ellos.

Page 25: Sesion 1

NUEVOS PARADIGMAS DE LA INGENIERIA DE SOFTWARE

COMPUTACION EN LA NUBE

Page 26: Sesion 1

COMPUTACION EN LA NUBE

• En este tipo de computación todo lo que puede ofrecer un sistema informático se ofrece como servicio, de modo que los usuarios puedan acceder a los servicios disponibles "en la nube de Internet" sin conocimientos (o, al menos sin ser expertos) en la gestión de los recursos que usan

Page 27: Sesion 1

COMPUTACION EN LA NUBE

• La computación en nube es un concepto que incorpora el software como servicio, tal como la Web 2.0 y otros recientes, también conocidos como tendencias tecnológicas, donde el tema en común es la confianza en Internet para satisfacer las necesidades de cómputo de los usuarios.

Page 28: Sesion 1

COMPUTACION EN LA NUBE

• Tanto las nubes como los grids estan hechos para escalar horizontalmente muy eficientemente. Ambos están construidos para resistir fallas de los elementos o nodos individuales. Las nubes expanden los tipos de recursos disponibles — almacenamiento de archivos, bases de datos, y servicios Web — y extienden la aplicabilidad a la Web y a las aplicaciones de la empresa.

Page 29: Sesion 1

BENEFICIOS DE LA COMPUTACION EN LA NUBE

• Integración probada de servicios Web. Por su naturaleza, la tecnología de Cloud Computing se puede integrar con mucha mayor facilidad y rapidez con el resto de sus aplicaciones empresariales.

• Prestación de servicios de talla mundial. Las infraestructuras de Cloud Computing proporcionan mayor capacidad de adaptación, recuperación de desastres completa y reducción al mínimo de los tiempos de inactividad.

• No necesita instalar ningún tipo de hardware o software: La belleza de la tecnología de Cloud Computing es su simplicidad… y el hecho de que requiera mucha menor inversión para empezar a trabajar.

Page 30: Sesion 1

BENEFICIOS DE LA COMPUTACION EN LA NUBE

• Implementación más rápida y con menos riesgos. Podrá empezar a trabajar muy rápidamente gracias a una infraestructura de Cloud Computing.

• Gran capacidad de personalización. Algunos profesionales de TI creen equivocadamente que es muy difícil o casi imposible personalizar la tecnología de Cloud Computing, por lo que no es la elección adecuada para las empresas más complejas. La infraestructura de Cloud Computing no sólo proporciona útiles funciones de personalización y configuración de aplicaciones, sino que también conserva las personalizaciones incluso después de las actualizaciones

• Actualizaciones automáticas que no afectan negativamente a los recursos de TI

Page 31: Sesion 1

CAPAS DE LA COMPUTACION EN LA NUBE

• Software como un Servicio (SaaS). Se encuentra en la capa más alta y caracteriza una aplicación completa ofrecida como un servicio, lo que significa una sola instancia del software que corre en la infraestructura del proveedor y sirve a múltiples organizaciones de clientes.

• Plataforma como un Servicio (PaaS).La capa del medio, o PaaS, es la encapsulación de una abstracción de un ambiente de desarrollo y el empaquetamiento de una carga de servicios. Las ofertas de PaaS pueden proveer desarrollo y prueba para cada fase del software, o estas pueden estar especializadas alrededor de cualquier área en particular, tal como la administración del contenido.

Page 32: Sesion 1

CAPAS DE LA COMPUTACION EN LA NUBE

• Infraestructura como un Servicio (IaaS).Se encuentra en la capa inferior y es un medio de entregar almacenamiento básico y capacidades de cómputo como servicios estandarizados en la red.

Page 33: Sesion 1

TIPOS DE COMPUTACION EN LA NUBE

• LAS NUBES PÚBLICAS son manejadas por terceras partes, y los trabajos de muchos diferentes clientes pueden ser mezclados en los servidores, los sistemas de almacenamiento, y otra infraestructura dentro de la nube. Los usuarios finales no saben el trabajo de quién más pueda estar corriendo en el mismo servidor, red, discos como los suyos propios.

• LAS NUBES PRIVADAS son una buena opción para las compañías lidiando con protección de datos y ediciones a nivel de servicio. Las nubes privadas están en una infraestructura en demanda manejada por un sólo cliente quien controla que aplicaciones correr, y en dónde. Ellos son propietarios del servidor, red, y disco y pueden decidir que usuarios están permitidos para utilizar la infraestructura.

• LAS NUBES HÍBRIDAS combinan los modelos de nubes públicas y privadas. Usted es propietario de unas partes y comparte otras partes, aunque de una manera controlada. Las nubes híbridas añaden la complejidad de determinar cómo distribuir las aplicaciones a través de estos diferentes ambientes. Mientras que las empresas pueden sentir atracción por la promesa de una nube híbrida, esta opción, al menos inicialmente, probablemente estará reservada para simples aplicaciones incondicionadas que no requieren de ningúna compleja sincronización o base de datos.

Page 34: Sesion 1

COMPUTACION EN LA NUBE vs COMPUTACION EN GRID

• La computacion en la nube es confundida comunmente con la computacion en grid, la cual es una forma de computación distribuida por la que "un súper computador virtual" está compuesto de un cluster enlazado de ordenadores débilmente acoplados, actuando en concierto para realizar tareas muy grandes

Page 35: Sesion 1

COMPUTACION EN GRID

• Es una tecnología innovadora que permite utilizar de forma coordinada todo tipo de recursos (entre ellos cómputo, almacenamiento y aplicaciones específicas) que no están sujetos a un control centralizado. En este sentido es una nueva forma de computación distribuida, en la cual los recursos pueden ser heterogéneos (diferentes arquitecturas, supercomputadores, clusters...) y se encuentran conectados mediante redes de área extensa (por ejemplo Internet).

Page 36: Sesion 1

COMPUTACION EN GRID

• El término grid se refiere a una infraestructura que permite la integración y el uso colectivo de ordenadores de alto rendimiento, redes y bases de datos que son propiedad y están administrados por diferentes instituciones. Puesto que la colaboración entre instituciones envuelve un intercambio de datos, o de tiempo de computación, el propósito del grid es facilitar la integración de recursos computacionales.

Page 37: Sesion 1

COMPUTACION EN GRID

• P2P• SETI

Page 38: Sesion 1

CARACTERISTICAS DE LA COMPUTACION EN GRID

• Capacidad de balanceo de sistemas: no habría necesidad de calcular la capacidad de los sistemas en función de los picos de trabajo, ya que la capacidad se puede reasignar desde la granja de recursos a donde se necesite.

• Alta disponibilidad: con la nueva funcionalidad, si un servidor falla, se reasignan los servicios en los servidores restantes.

• Reducción de costos:ya no es necesario disponer de "grandes servidores" y podremos hacer uso de componentes de bajo coste