estratos de la ingeniería web

12
Estratos de la ingeniería web El desarrollo de sistemas y aplicaciones basados en Web incorpora modelos de proceso especializados, métodos de ingeniería del software adaptados a las características del desarrollo de WebApps y un conjunto de importantes tecnologías habilitadoras. Los procesos, métodos y tecnologías proporcionan un enfoque en estratos de la IWeb que es conceptualmente idéntico a los estratos de la ingenie-ría del software Todo Enfoque debe estar sustentado en un compromiso con la calidad, enfoque en la calidad: la base de la ingeniería que software El proceso: define el marco de trabajo, control de la gestión del proyecto, estable el contexto en el cual se aplican los métodos técnicos, se generan los productos del trabajo. Método: proporcionan los “como” técnicos para construir el software. Herramientas proporción el servicio automatizado o semiautomatizado para los procesos y métodos. Los Estratos en la Iweb tenemos: Proceso: Los modelos de procesos IWeb adoptan la filosofía del desarrollo ágil. El desarrollo ágil enfatiza un enfoque de desarrollo riguroso que incorpora rápidos ciclos de desarrollo. Aun cuando rápidos ciclos de tiempo dominan la reflexión acerca del desarrollo, es importante reconocer que el problema todavía debe analizarse, debe desarrollarse un diseño, la implementación debe proceder en una forma

Upload: evelyn-carrillo

Post on 05-Jul-2015

1.715 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: Estratos de la ingeniería web

Estratos de la ingeniería web

El desarrollo de sistemas y aplicaciones basados en Web incorpora modelos de proceso especializados, métodos de ingeniería del software adaptados a las características del desarrollo de WebApps y un conjunto de importantes tecnologías habilitadoras.

Los procesos, métodos y tecnologías proporcionan un enfoque en estratos de la IWeb que es conceptualmente idéntico a los estratos de la ingenie-ría del software

Todo Enfoque debe estar sustentado en un compromiso con la calidad,

enfoque en la calidad: la base de la ingeniería que software El proceso: define el marco de trabajo, control de la gestión del proyecto, estable

el contexto en el cual se aplican los métodos técnicos, se generan los productos del trabajo.

Método: proporcionan los “como” técnicos para construir el software. Herramientas proporción el servicio automatizado o semiautomatizado para los

procesos y métodos.

Los Estratos en la Iweb tenemos:

Proceso: Los modelos de procesos IWeb adoptan la filosofía del desarrollo ágil. El desarrollo ágil enfatiza un enfoque de desarrollo riguroso que incorpora rápidos ciclos de desarrollo. Aun cuando rápidos ciclos de tiempo dominan la reflexión acerca del desarrollo, es importante reconocer que el problema todavía debe analizarse, debe desarrollarse un diseño, la implementación debe proceder en una forma incremental y se debe iniciar un enfoque organizado de prueba. Sin embargo, dichas actividades del marco de trabajo se deben definir dentro de un proceso que:

1) adopte el cambio, 2) aliente la creatividad y la independencia del equipo de desarrollo y fortalezca la

interacción con los accionistas de la WebApp,3) construya sistemas que utilicen pequeños equipos de desarrollo4) subraye el desarrollo evolutivo o incremental mediante el uso de cortos ciclos de

desarrollo [MMCD01]

Métodos:

Page 2: Estratos de la ingeniería web

El panorama de los métodos de IWeb abarca un conjunto de labores técnicas que permiten al ingeniero Web comprender, caracterizar y luego construir una WebAppde alta calidad. Los métodos de IWeb (que se tratan con detalle en los capítulos 18al 20) se pueden categorizar de la siguiente manera:

Métodos de comunicación: definen el enfoque con que se facilita la comunicación entre ingenieros Web y los demás participantes de la WebApp (por ejemplo, usuarios finales, clientes de negocios, expertos en problemas de dominio, diseñadores de contenido, líderes de equipo, gestores de proyecto). Las técnicas de comunicación son particularmente importantes durante la recolección de requisitos y siempre quesea evaluado un incremento en la WebApp..

Métodos de análisis de requisitos: proporcionan una base para comprender el contenido que entregará una WebApp, la función que proporcionará al usuario final y los modos de interacción que cada clase de usuario requerirá mientras ocurra la navegación por medio de la WebApp.

Métodos de diseño: abarcan una serie de técnicas de diseño que abordan el contenido, la aplicación y la arquitectura de información, así como el diseño de interface y la estructura de navegación de la WebApp.

Métodos de prueba: incorporan revisiones técnicas formales —tanto del contenido y el modelo de diseño como de una amplia variedad de técnicas de prueba que abordan conflictos al nivel de componente y arquitectónicos—, pruebas de la navegación, pruebas de facilidad de uso, pruebas de seguridad y pruebas de configuraciones importante señalar que, aunque los métodos IWeb adoptan muchos de los mismos conceptos y principios subyacentes a los métodos de ingeniería del software descritos en la parte 2 de este libro, los mecanismos de análisis, diseño y prueba de-ben adaptarse para acomodar las características especiales de las WebApps.Además de los métodos técnicos que se han subrayado, es esencial una serie de actividades sombrilla (con métodos asociados) para la ingeniería Web exitosa. Ésta incluye técnicas de gestión de proyecto (por ejemplo, estimación, calendarización, análisis de riesgo), técnicas de gestión de configuración de software y de revisión.

Herramientas y tecnologíaA lo largo de la década pasada ha evolucionado un amplio conjunto de herramientas y tecnología conforme las WebApps se han vuelto más complejas y extendidas. Dichas tecnologías abarcan un amplio conjunto de descripción de contenido y lenguajes de modelación:

HTML: Lenguaje de Marcado de Hipertexto, sirve para la elaboración de páginas web, El entorno para trabajar HTML es simplemente un procesador de texto.Es el lenguaje de marcado predominante para la elaboración de páginas web. Es usado para describir la estructura y el contenido en forma de texto, así como para complementar el texto con objetos tales como imágenes.

Page 3: Estratos de la ingeniería web

Puede describir, hasta un cierto punto, la apariencia de un documento, y puede incluir un script (por ejemplo Javascript), el cual puede afectar el comportamiento de navegadores web y otros procesadores de HTML.

VRML: Lenguaje para Modelado de Realidad Virtual, sirve para crear mundos en tres dimensiones a los que accedemos utilizando nuestro navegador, el entorno para trabajar necesario es un editor de textos sencillo y un visualizador VRML (Cosmo Player.) Posibilita la descripción de una escena compuesta por objetos 3D a partir de prototipos basados en formas geométricas básicas o de estructuras en las que se especifican los vértices y las aristas de cada polígono tridimensional y el color de su superficie. Permite también definir objetos 3D multimedia, a los cuales se puede asociar un enlace de manera que el usuario pueda acceder a una página web, imágenes, vídeos u otro fichero VRML de Internet cada vez que haga click en el componente gráfico en cuestión.

XML: lenguaje de marcas extensible, específicamente diseñado para almacenar y

transmitir datos, el entorno para trabajar es un editor estructurado. Es una simplificación y adaptación del SGML(Estándar de lenguaje de marcado generalizado) y permite definir la gramática de lenguajes específicos (de la misma manera que HTML es a su vez un lenguaje definido por SGML. Es un metalenguaje extensible de etiquetas desarrollado por el World Wide Web Consortium (W3C).

Lenguajes de programación:

JavaScript

Lenguaje de programación interpretado, se define como orientado a objetos, basado en prototipos, imperativo y dinámico.

lenguaje muy sencillo, tiene gran documentación en la web. Es totalmente gratuito. E un lenguaje de programación muy liviano, y al usarlo podrás crear páginas web

dinámicas, menús desplegables, efectos visuales sencillo, manipular datos y crear aplicaciones web, utilizando poca memoria y manteniendo un tiempo de descarga rápido para tu pagina web.

Lenguaje de scripting seguro y fiable. Los script tienen capacidades limitadas, por razones de seguridad. El código Javascript se ejecuta en el cliente.

Page 4: Estratos de la ingeniería web

Php

Es un lenguaje multiplataforma, Orientado al desarrollo de aplicaciones web dinámicas con acceso a información almacenada en una base de datos.

El código fuente escrito en PHP es invisible al navegador web y al cliente ya que es el servidor el que se encarga de ejecutar el código y enviar su resultado HTML al navegador. Esto hace que la programación en PHP sea segura y confiable.

Capacidad de conexión con la mayoría de los motores de base de datos que se utilizan en la actualidad, destaca su conectividad con MySQL y PostgreSQL.

Capacidad de expandir su potencial utilizando módulos (llamados ext's o extensiones). Es libre, por lo que se presenta como una alternativa de fácil acceso para todos. Permite aplicar técnicas de programación orientada a objetos. No requiere definición de tipos de variables aunque sus variables se pueden evaluar

también por el tipo que estén manejando en tiempo de ejecución. Tiene manejo de excepciones (desde PHP5). Si bien PHP no obliga a quien lo usa a seguir una determinada metodología a la hora de

programar (muchos otros lenguajes tampoco lo hacen), aun haciéndolo, el programador puede aplicar en su trabajo cualquier técnica de programación o de desarrollo que le permita escribir código ordenado, estructurado y manejable. Un ejemplo de esto son los desarrollos que en PHP se han hecho del patrón de diseño Modelo Vista Controlador (MVC), que permiten separar el tratamiento y acceso a los datos, la lógica de control y la interfaz de usuario en tres componentes independientes.

ASP.NET

El ASP.NET fue desarrollado para resolver las limitantes que brindaba tu antecesor ASP. Creado para desarrollar web sencillas o grandes aplicaciones. Los archivos cuentan con la extensión (aspx). Para su funcionamiento de las páginas se necesita tener instalado IIS con el Framework .Net.

Ventajas:

Completamente orientado a objetos. Controles de usuario y personalizados. División entre la capa de aplicación o diseño y el código. Facilita el mantenimiento de grandes aplicaciones. Incremento de velocidad de respuesta del servidor. Mayor velocidad. Mayor seguridad.

Python, Ruby,

Page 5: Estratos de la ingeniería web

Recursos de desarrollo basados en componentes:

CORBA (Common Object Request Broker Architecture — arquitectura común de intermediarios en peticiones a objetos); es un estándar que establece una plataforma de desarrollo de sistemas distribuidos facilitando la invocación de métodos remotos bajo un paradigma orientado a objetos.

CORBA fue definido y está controlado por el Object Management Group (OMG) que define las APIs, el protocolo de comunicaciones y los mecanismos necesarios para permitir la interoperabilidad entre diferentes aplicaciones escritas en diferentes lenguajes y ejecutadas en diferentes plataformas, lo que es fundamental en computación distribuida.

En un sentido general, CORBA "envuelve" el código escrito en otro lenguaje, en un paquete que contiene información adicional sobre las capacidades del código que contiene y sobre cómo llamar a sus métodos. Los objetos que resultan, pueden entonces ser invocados desde otro programa (u objeto CORBA) desde la red. En este sentido CORBA se puede considerar como un formato de documentación legible por la máquina, similar a un archivo de cabeceras, pero con más información.

CORBA utiliza un lenguaje de definición de interfaces (IDL) para especificar las interfaces con los servicios que los objetos ofrecerán. CORBA puede especificar a partir de este IDL, la interfaz a un lenguaje determinado, describiendo cómo los tipos de dato CORBA deben ser utilizados en las implementaciones del cliente y del servidor. Implementaciones estándar existen para Ada, C, C++, Smalltalk, Java, Python, Perl y Tcl.

Al compilar una interfaz en IDL se genera código para el cliente y el servidor (el implementador del objeto). El código del cliente sirve para poder realizar las llamadas a métodos remotos. Es el conocido como stub, el cual incluye un proxy (representante) del objeto remoto en el lado del cliente. El código generado para el servidor consiste en unos skeletons (esqueletos) que el desarrollador tiene que rellenar para implementar los métodos del objeto.

CORBA es más que una especificación multiplataforma, también define servicios habitualmente necesarios como seguridad y transacciones. Y así este no es un sistema operativo en si, en realidad es un middleware.

COM

Page 6: Estratos de la ingeniería web

Microsoft COM (Component Object Model) de la tecnología de Microsoft Windows familia de sistemas operativos permite a los componentes de software para comunicarse. COM es utilizado por desarrolladores para crear componentes de software reutilizables, los componentes se unen para crear aplicaciones, y aprovechar los servicios de Windows. Los objetos COM se pueden crear con una variedad de lenguajes de programación. Lenguajes orientados a objetos, como C + +, proporcionan mecanismos de programación que simplifican la implementación de objetos COM. La familia de tecnologías COM incluye COM +, COM distribuido (DCOM) y controles ActiveX ®.

Microsoft proporciona interfaces COM para muchos interfaces de programación de aplicaciones Windows, tales como Direct Show, Fundación de Medios, la API de envases, Animación Windows Manager, dispositivos portátiles de Windows, y Microsoft Active Directory (AD).

COM se utiliza en aplicaciones tales como la familia de productos Microsoft Office. Por ejemplo la tecnología OLE COM permite que los documentos de Word a vincular dinámicamente a los datos en hojas de cálculo Excel y COM Automation permite a los usuarios crear secuencias de comandos en sus aplicaciones para realizar tareas repetitivas o control de una aplicación de otro.

Component Object Model (COM) es una plataforma de Microsoft para componentes de software introducida por dicha empresa en 1993. Esta plataforma es utilizada para permitir la comunicación entre procesos y la creación dinámica de objetos, en cualquier lenguaje de programación que soporte dicha tecnología. El término COM es a menudo usado en el mundo del desarrollo de software como un término que abarca las tecnologías OLE, OLE Automation, ActiveX, COM+ y DCOM. Si bien COM fue introducido en 1993, Microsoft no hizo énfasis en el nombre COM hasta 1997.

es una manera de implementar objetos neutral con respecto al lenguaje, de manera que pueden ser usados en entornos distintos de aquel en que fueron creados, a través de fronteras entre máquinas. Para componentes bien creados, COM permite la reutilización de objetos sin conocimiento de su implementación interna, porque fuerza a los implementadores de componentes a proveer interfaces bien definidas que están separados de la implementación.

MEJORES PRÁCTICAS EN INGENIERÍA WEB

¿Todo desarrollador de WebApp utilizará el marco de trabajo y el conjunto de tareasdel proceso IWeb definido en la sección 16.3? Probablemente no. En ocasiones, losequipos de ingeniería Web están sometidos a enorme presión respecto del tiempo ytratarán de tomar atajos (incluso si éstos son imprudentes e implican más esfuerzode desarrollo, en lugar de

Page 7: Estratos de la ingeniería web

menos). Pero se debe aplicar un conjunto fundamental demejores prácticas —adoptado de las prácticas de ingeniería del software tratadas alo largo de la Parte 2 de este libro— si se han de construir WebApps con calidad in-dustrial.

1) Tomar tiempo para entender las necesidades del negocio y los objetivos del pro-ducto, incluso si los detalles de la WebApp son vagos. Muchos desarrolladoresde WebApps creen erróneamente que los requisitos vagos (que son bastantecomunes) los liberan de la necesidad de asegurarse de que el sistema que es-tán a punto de someter a ingeniería tenga un propósito empresarial legítimo.

El resultado final es (también con frecuencia) un buen trabajo técnico que con-duce a la construcción del sistema equivocado por las razones equivocadaspara el público equivocado. Si los accionistas no pueden enunciar una necesi-dad empresarial para la WebApp, debe procederse con extrema precaución. Silos accionistas luchan por identificar un conjunto de objetivos claros para elproducto (WebApp), no debe procederse mientras ellos no concluyan.

2) Describir cómo interactuarán los usuarios con la WebApp aplicando un enfoquebasado en escenarios. Se debe convencer a los accionistas para desarrollar ca-sos de uso (tratados a lo largo de la Parte 2 de este libro) para reflejar cómolos diversos actores interactuarán con la WebApp. Entonces se pueden aprovechar dichos escenarios 1) para la planeación y el rastreo del proyecto, 2) pa-ra guiar el análisis y el modelado del diseño, y 3). como una entrada importan-te para el diseño de pruebas.

3) .Desarrollar un plan del proyecto, incluso si es muy breve. El plan debe basarseen un proceso de marco de trabajo predefinido aceptable para todos los parti-cipantes. Puesto que los plazos del proyecto son muy cortos, la dosificacióndel programa debe ser exacta; es decir, en muchas instancias el proyecto debeplanearse y rastrearse diariamente.

4) .Utilizar algún tiempo para modelar lo que se construirá. Por lo general, el análi-sis total y los modelos de diseño no se desarrollan durante la ingeniería Web.Sin embargo, la clase UML y los diagramas de secuencia, junto con otra nota-ción UML seleccionada (por ejemplo, diagramas de estado), pueden propor-cionar una visión invaluable.

5) Revisar la consistencia y calidad de los modelos. Las revisiones técnicas forma-les (capítulo 26) se deben dirigir a lo largo del proyecto IWeb. El tiempo em-pleado en las revisiones paga importantes dividendos porque usualmenteelimina reelaboraciones y resulta en una WebApp que exhibe alta calidad, loque aumenta la satisfacción del cliente.

6) Utilizar herramientas y tecnología que permitan construir el sistema con tantoscomponentes reutilizables como sea posible. Un amplio conjunto de herramien-tas WebApp están a disposición virtualmente para cada aspecto de la cons-trucción

Page 8: Estratos de la ingeniería web

WebApp. Muchas de dichas herramientas permiten que un ingenieroWeb construya porciones significativas de la aplicación empleando compo-nentes reutilizables.

7) No apoyarse en usuarios anteriores para depurar la WebApp; diséñense pruebasamplias y ejecútense antes de liberar el sistema. Los usuarios de una WebAppcon frecuencia le dan una oportunidad. Si falla en su ejecución se mueven acualquiera otra parte: nunca regresan. Por esta razón, el "pruebe primero,después despliegue" debe ser un sistema primordial, incluso si los plazos sedeben prolongar.

Conclusión

La ingeniería web no es igual a la ingeniería de software, si bien podemos aplicar algunas metodologías de ingeniería de software a ingeniería web, No podemos ser tan estrictos con estas.

En la ingeniería web la funcionalidad es fundamental, pero también lo es la estética.

La aplicación web tiene que ser lo más optimizada posible (1 segundo nos puede costar un cliente).

En una WebApp debemos ser cautelosos ya que si falla, nuestro potencial cliente puede que nunca regrese.

Siempre pensar en una capacidad de expansión, en internet todo puede ser un gran negocio o un total fracaso.

Las pruebas en las WebApp son esenciales. Con la gran evolución que tiene internet siempre debemos considerar algún tipo

de modelo de proceso ágil.