3.4 Fitting into the team
3.4.8 Developing an identity
(COBO, GÓMEZ, PÉREZ, & ROCHA, Tecnologías para desarrollo de aplicaciones web, 2005). Plantea que en la actualidad existen varias metodologías para el desarrollo, las cuales se pueden agrupar en dos grupos. Por un lado, tenemos las metodologías tradicionales, que usan procesos bien definidos la compilación de la información se realiza al inicio del proyecto. Básicamente las metodologías tradicionales buscan dividir en etapas el proceso de desarrollo de una manera secuencial, siendo de alto grado de ordenamiento y disciplina, pero cuando se está desarrollando un proyecto se resiste al cambio. La resistencia al cambio no se da en el otro grupo de metodologías conocidas como metodologías ágiles, las cuales son una buena elección cuando el proyecto en el que se está trabajando presenta requisitos desconocidos o variables.
Por otro lado, (ESCUDERO SERRANO, Gestión de aprovisionamiento, 2009) define las metodologías ágiles brindan una serie de principios, pautas y técnicas pragmáticas las cuales harán que el proyecto sea menos complicad.
- METODOLOGÍA RUP
AMO considera a la metodología RUP como objetivo ordenar y estructurar el desarrollo de software, en la cual se tienen un conjunto de actividades necesarias para transformar los requisitos del usuario en un sistema Software. (AMO, MARTINEZ, & SEGOVIA, 2005)
Características
Casos de Uso: Describe un servicio que el usuario requiere del sistema, incluye la secuencia completa de interacciones entre el usuario y el sistema.
Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú. Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
49 Sistema web para agilizar la gestión de planes estratégicos
institucionales de las facultades, departamentos y escuelas de la Universidad Nacional de Trujillo.
Centrado en la arquitectura: Comprende las diferentes vistas del sistema en desarrollo, que corresponden a los modelos del sistema: Modelos de casos de uso, de análisis, de diseño, de despliegue e implementación. La arquitectura del software es importante para comprender el sistema como un todo y a la vez en sus distintas partes, sirve para organizar el desarrollo, fomentar la reutilización de componentes y agregarle más funcionalidad.
Iterativo e Incremental: Significa que la aplicación se divide en pequeños proyectos, los cuales incorporan una parte de las especificaciones, y el desarrollo de la misma es una iteración que va incrementando la funcionalidad del sistema de manera progresiva. Fases
Según Francisco Apodaca, la fase de inicio tiene como objetivo es la comunicación con el cliente y las actividades de planeación. Se establece el caso del negocio para el sistema, así como la identificación de todas las entidades externas que interactúan con el sistema y sus respectivas iteraciones.
Steed Holman en la fase de elaboración, tiene como fin desarrollar un entendimiento del dominio del problema, crear un marco de trabajo arquitectónico para el sistema, desarrollar el plan del proyecto e identificar los riesgos claves. Al finalizar esta fase se debe tener el modelo de requerimientos del sistema, una arquitectura y un plan de desarrollo.
Abrahan Mantilla dedine la fase de construcción como el diseño del sistema, la programación, las pruebas y la integración de todas las partes del sistema software. Al final de esta fase se debe tener un software operativo con su respectiva documentación.
Finalmente, la fase de transición. Según Francisco Apodaca en esta fase el sistema software se entrega a los usuarios finales para sus respectivas pruebas en un entorno real. Al terminar esta fase se debe tener un software documentado y funcionando correctamente.
Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú. Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
50 Sistema web para agilizar la gestión de planes estratégicos
institucionales de las facultades, departamentos y escuelas de la Universidad Nacional de Trujillo.
Figura N° 3: Ciclo de vida del proyecto con Metodología RUP. Fuente: (Gallego, y otros, 2007)
- METODOLOGÍA XP
Según (JACOBSON, 2000), es una metodología de desarrollo de software que está destinada a mejorar la calidad del software y capacidad de respuesta a los cambios en los requisitos del cliente. Como un tipo de desarrollo de software ágil, que defiende "prensa" frecuentes en los ciclos de desarrollo cortos, cuyo objetivo es mejorar la productividad y establecer puntos de control en donde se puedan adoptar nuevas necesidades de los clientes.
Fases
FASE I (EXPLORACION): (BECK & ANDRES, 2005). Lo define en base que los clientes entregar la información necesaria para las historias de usuario que son importantes para la primera entrega del producto. Al mismo tiempo el equipo de desarrollo se familiariza con las herramientas, tecnologías y prácticas que se utilizarán en el proyecto. Se prueba la tecnología y se exploran las posibles arquitecturas del sistema construyendo un prototipo.
Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú. Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
51 Sistema web para agilizar la gestión de planes estratégicos
institucionales de las facultades, departamentos y escuelas de la Universidad Nacional de Trujillo.
FASE II (PLANIFICACIÓN DE LA ENTREGA): (LETELIER, Metodologías ágiles para el desarrollo de software: Extreme Programming, 2006) En esta fase él prioriza cada historia de usuario, para que luego, los programadores, realicen una estimación del esfuerzo necesario de cada una de ellas. Se coordina sobre el contenido de la primera entrega y se determina un cronograma de la mano con el cliente. Una entrega debería obtenerse en no más de tres meses.
FASE III (ITERACIONES): Esta fase consiste en varias iteraciones sobre el sistema antes de ser entregado al cliente.
FASE IV (PRODUCCIÓN), (KENDALL & KENDALL, 2005). Esta se necesitan realizar pruebas adicionales y revisiones de rendimiento antes de que el sistema sea puesto al entorno del cliente. A la vez, se deben decidir sobre la inclusión de nuevas características al sistema actual, debido a cambios durante esta fase.
FASE V (MANTENIMIENTO): En esta fase de se debe mantener el sistema en funcionamiento a la vez que se desarrolla nuevas iteraciones. FASE VI (MUERTE DEL PROYECTO): En esta etapa el cliente no tiene más requerimientos (historias de usuario) para ser incluidas en el sistema. Esto requiere que se satisfagan las necesidades del cliente. Esto también ocurre cuando el sistema no genera los beneficios esperados por el cliente y éste no se siente conforme.
Figura N° 4:Ciclo de entrega de la Metodología XP. Fuente: (BECK, y otros, 2005)
Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú. Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
52 Sistema web para agilizar la gestión de planes estratégicos
institucionales de las facultades, departamentos y escuelas de la Universidad Nacional de Trujillo.
- METODLOGÍA SCRUM
(LETELIER, Metodologías ágiles para el desarrollo de software: Extreme Programming, 2006). que es una metodología de desarrollo muy simple, que requiere trabajo duro porque no se basa en el seguimiento de un plan, sino en la adaptación continua a las circunstancias de la evolución del proyecto Scrum es una metodología ágil, y como tal:
• Es un modo de desarrollo de carácter adaptable más que predictivo. • Orientado a las personas más que a los procesos.
• Emplea la estructura de desarrollo ágil: incremental basada en iteraciones y revisiones.
(LETELIER, Metodologías ágiles para el desarrollo de software: Extreme Programming, 2006). comienza con la visión general del producto, especificando y dando detalle a las funcionalidades esas partes que tienen mayor prioridad de desarrollo y que pueden llevarse a cabo en un periodo de tiempo breve (normalmente de 30 días)
Cada uno de estos periodos de desarrollo es una iteración que finaliza con la producción de un incremento operativo del producto. Estas iteraciones son la base del desarrollo ágil, Scrum gestiona su evolución a través de reuniones diarias en las que el equipo revisa el trabajo realizado el día anterior y el previsto para el día siguiente.
Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú. Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
53 Sistema web para agilizar la gestión de planes estratégicos
institucionales de las facultades, departamentos y escuelas de la Universidad Nacional de Trujillo.
Figura N° 5: Diagrama de ciclo SCRUM. Fuente: (RUBIN, 2006)
2.2. MARCO CONCEPTUAL
2.2.1. FRAMEWORK
De acuerdo con (GUTIÉRREZ J. , 2007) el término framework, se refiere a una estructura software compuesta de componentes personalizables e intercambiables para el desarrollo de una aplicación. En otras palabras, un framework se puede considerar como una aplicación genérica incompleta y configurable a la que podemos añadirle las últimas piezas para construir una aplicación concreta.
Los objetivos principales que persigue un framework son: acelerar el proceso de desarrollo, reutilizar código ya existente y promover buenas prácticas de desarrollo como el uso de patrones.
Un framework Web, por tanto, podemos definirlo como un conjunto de componentes (por ejemplo, clases en java y descriptores y archivos de configuración en XML) que componen un diseño reutilizable que facilita y agiliza el desarrollo de sistemas Web.
Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú. Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
54 Sistema web para agilizar la gestión de planes estratégicos
institucionales de las facultades, departamentos y escuelas de la Universidad Nacional de Trujillo.
2.2.2. ASP.NET
(CHIARETTA & NAYYERI, 2009). considera que ASP.NET es un modelo de desarrollo Web unificado que incluye los servicios necesarios para crear aplicaciones Web empresariales con el código mínimo. ASP.NET forma parte de .NET Framework y al codificar las aplicaciones ASP.NET tiene acceso a las clases en .NET Framework. El código de las aplicaciones puede escribirse en cualquier lenguaje compatible con el Common Language Runtime (CLR), entre ellos Microsoft Visual Basic y C#. Estos lenguajes permiten desarrollar aplicaciones ASP.NET que se benefician del Common Language Runtime.
2.2.3. MVC
MVC es un modelo de diseño estándar con el que están familiarizados muchos desarrolladores. Algunos tipos de aplicaciones web salen beneficiados con el marco de MVC. Otras seguirán usando el modelo de la aplicación ASP.NET tradicional que está basado en formularios Web Forms y devoluciones. Otros tipos de aplicaciones web combinarán las dos estrategias; una no excluye a la otra.
El marco de MVC incluye los componentes siguientes:
Modelos. Los objetos de modelo son las partes de la aplicación que implementan la lógica del dominio de datos de la aplicación. A menudo, los objetos de modelo recuperan y almacenan el estado del modelo en una base de datos. Por ejemplo, un objeto Product podría recuperar información de una base de datos, trabajar con ella y, a continuación, escribir la información actualizada en una tabla Productos de una base de datos de SQL Server.
En las aplicaciones pequeñas, el modelo es a menudo una separación conceptual en lugar de física. Por ejemplo, si la aplicación solo lee un conjunto de datos y lo envía a la vista, la aplicación no tiene un nivel de modelo físico ni las clases asociadas. En ese caso, el conjunto de datos asume el rol de un objeto de modelo.
Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú. Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
55 Sistema web para agilizar la gestión de planes estratégicos
institucionales de las facultades, departamentos y escuelas de la Universidad Nacional de Trujillo.
Vistas. Las vistas son los componentes que muestra la interfaz de usuario de la aplicación. Normalmente, esta interfaz de usuario se crea a partir de los datos de modelo. Un ejemplo sería una vista de edición de una tabla Productos que muestra cuadros de texto, listas desplegables y casillas basándose en el estado actual de un objeto Product.
Controladores. Los controladores son los componentes que controlan la interacción del usuario, trabajan con el modelo y por último seleccionan una vista para representar la interfaz de usuario. En una aplicación MVC, la vista solo muestra información; el controlador administra y responde a los datos proporcionados por el usuario y su interacción. Por ejemplo, el controlador administra los valores de la cadena de consulta y pasa estos valores al modelo, que a su vez podría usarlos para consultar la base de datos.
Figura N° 6: Diagrama de componentes MVC. Fuente: (CHIARETTA, y otros, 2009)
2.2.4. PATRÓN FACTORY
Libera al desarrollador sobre la forma correcta de crear objetos. Define la interfaz de creación de un cierto tipo de objeto, permitiendo que las subclases decidan que clase concreta necesitan instancias.
Este patrón debe ser utilizado cuando:
Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú. Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
56 Sistema web para agilizar la gestión de planes estratégicos
institucionales de las facultades, departamentos y escuelas de la Universidad Nacional de Trujillo.
- Una clase no puede anticipar el tipo de objeto que debe crear y quiere que sus subclases especifiquen dichos objetos.
- Hay clases que delegan responsabilidades en una o varias subclases. Una aplicación es grande y compleja y posee muchos patrones creacionales.
2.2.5. WEB SERVICE
(FERRARA & MACDONALD, 2002) Dicen que es un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes de programación diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizar los servicios web para intercambiar datos en redes de ordenadores como Internet. La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la arquitectura y reglamentación de los servicios Web.
Figura N° 7: Diagrama de trabajo de un Web Service. Fuente: (ALONSO, 2004)
2.2.6. WCF
(KLEIN, 2007) Menciona que Windows Comunicación Foundation (WCF) es un marco de trabajo para la creación de aplicaciones orientadas a servicios. Con WCF, es posible enviar datos como mensajes
Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú. Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
57 Sistema web para agilizar la gestión de planes estratégicos
institucionales de las facultades, departamentos y escuelas de la Universidad Nacional de Trujillo.
asincrónicos de un extremo de servicio a otro. Un extremo de servicio puede formar parte de un servicio disponible continuamente hospedado por IIS, o puede ser un servicio hospedado en una aplicación. Un extremo puede ser un cliente de un servicio que solicita datos de un extremo de servicio. Los mensajes pueden ser tan simples como un carácter o una palabra que se envía como XML, o tan complejos como una secuencia de datos binarios. Visual Studio puede usarlo para implementar un servicio de datos en diferentes plataformas.
2.2.7. BASE DE DATOS
Las Bases de Datos se dice que son como almacenes en los cuales se pueden guardar una gran cantidad de datos, todo esto se puede hacer de una forma organizada para poder usarse y utilizar de una manera fácil y sobre todo sencilla. El término de base de datos fue escuchado por primera vez en 1963, en un simposio. Desde el punto de vista informático la Base de Datos es un sistema formado por un conjunto de datos almacenados en discos que permiten el acceso directo a ellos y un conjunto de programas que manipulen ese conjunto de datos.
Cada base de Datos está compuesta por una o más tablas que guardan un conjunto de datos. Cada tabla tiene una o más columnas y filas, donde cada columna guarda una parte de la información sobre lo que queremos almacenar y cada fila de la tabla representa un registro.
Las principales características de una base de Datos son: Independencia lógica y física de los datos.
Redundancia mínima.
Acceso concurrente por parte de múltiples usuarios. Integridad de los datos
Consultas complejas optimizadas. Seguridad de acceso y auditoria. Respaldo y recuperación.
Acceso a través de lenguajes de programación.
Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú. Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
58 Sistema web para agilizar la gestión de planes estratégicos
institucionales de las facultades, departamentos y escuelas de la Universidad Nacional de Trujillo.
2.2.8. HTML
(VAN LACKER, Recursos Informáticos Coleccion HTML 4, 2009) Dice que el HTML (Hyper Text Markup Language) es el lenguaje con el que se escriben las páginas web. Es un lenguaje de hipertexto, es decir, un lenguaje que permite escribir texto de forma estructurada, y que está compuesto por etiquetas, que marcan el inicio y el fin de cada elemento del documento. Es un lenguaje universal para todas las páginas web.
2.2.9. JAVA
Java es un lenguaje de programación de propósito general, concurrente, orientado a objetos que fue diseñado específicamente para tener tan pocas dependencias de implementación como fuera posible. Su intención es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo ejecuten en cualquier dispositivo (conocido en inglés como WORA, o "write once, run anywhere"), lo que quiere decir que el código que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra. Java es, a partir de 2012, uno de los lenguajes de programación más populares en uso, particularmente para aplicaciones de cliente-servidor de web, con unos 10 millones de usuarios reportados.
2.2.10.JQUERY
(THE JQUERY FOUNDATION, 2008). Menciona que es un framework de JavaScript, el cual posee un conjunto de funciones desarrolladas y probadas, las cuales están listas para utilizarlas. JQuery nos permite crear efectos, funcionalidades complejas a nuestra aplicación web.
Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú. Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/