CAPÍTULO II
2.MARCO TEÓRICO
2.2.MODELOS DE DESARROLLO DE SOFTWARE
2.2.1.MODELO INTERATIVO E INCREMENTAL
2.2.2.MODELO EN CASCADA
2.2.3.MODELO EN ESPIRAL
2.2.4.MANIFIESTO ÁGIL
2.2.5.VALORES
2.2.6.PRICIPIOS
2.3.METODOLOGÍA DE DESARROLLO ÁGIL SCRUMM
2.3.1.DOMINIO SIMPLE
2.3.2.DOMINIO COMPLICADO
2.3.3.DOMINIO COMPLEJO
2.3.4.DOMINIO CAÓTICO
2.3.5.DOMINIO DESORDENADO
2.3.6.PRICIPIOS DE SCRUM
2.3.7.VALORES DE SCRUM
2.3.8.ROLES DE SCRUM
2.3.9.PRODUCTOWNER(MAESTRO SCRUM)
2.3.10.ELEMENTOS DE SCRUM
2.3.11.PRODUCTCAVLOG(BITÁCORA DEL PRODUCTO)
2.3.12.EQUIPO DE DESARROLLO
2.3.13.INVREMENTO FUNCIONAL
2.3.14.DINÁMICA(FLUJO DE TRABAJO)
2.3.14.1.SPRINT(ITERACCIÓN)
2.3.14.2.SPRINT PLANING MEETINING (PLANIFICACIÓN DE SPRINT)
2.3.14.3.SCRUM DIARIO
2.3.14.4.REVISIÓN DE SPRINT
2.3.14.5.HISTORIAS DE USUARIO
2.3.14.6.MODELO DEL PROCESO
2.3.14.7.PRE-GAME
2.3.14.8.GAME
2.3.14.9.POST-GAME
2.4.INGENIERIA WEB
2.4.1.INGENIERÍA DE REQURIMIENTOS PARA LAS APLICAIONES WEB
2.4.2.MARCO DE TRABAJO PARA LA INGENIERÍA WEB
2.4.3.FORMULACIÓN
2.4.4.ANÁLISI
2.4.5.DISEÑO
2.4.6.PRUEBAS
2.5.WEBML (WEB MODELING LANGUAJE)
2.5.1.MODELO ESTRUCTURAL
2.5.2.MODELO DE COMPOSICIÓN
2.5.3.MODELO DE NAVEGACIÓN
2.5.4.MODELO DE PRESENTACIÓN
2.5.5.MODELO DE PERSONALIZACIÓN
Ingenieria de Software
“Cuando se trabaja en la construcción de un producto o sistema, es importante ejecutar una serie de pasos predecibles –el mapa de carretera que lo ayuda a obtener a tiempo un resultado de alta calidad–. El mapa que se llama proceso de software” como lo menciona Pressman R. S. (2002). Dicha definición permite incluir dentro de la ingeniería de software una considerable cantidad de áreas en la informática, desde la base fundamental en cuanto a desarrollo de sistemas operativos, construcción de compiladores hasta lo innovador como ser desarrollos de software para aplicaciones basadas las mismas en otras aplicaciones enriquecidas en la web y también en aplicaciones móviles.
La ingeniería de Software es una tecnología con varias capas (Herramientas, Métodos, Procesos, entre otros), cualquier enfoque de ingeniería debe basarse en un compromiso organizacional de calidad como menciona Pressman R. S. 2002. ”El proceso es un conjunto de actividades, acciones y tareas que se ejecutan cuando va a crearse un producto del trabajo. Una actividad busca lograr un objetivo amplio (por ejemplo, comunicación con los participantes) y se desarrolla sin importar la aplicación, tamaño del proyecto, complejidad de esfuerzo o grado de rigor con la que se usará la ingeniería de software”. Por tanto el proceso de la estructura debe establecerse de manera adecuada para un resultado eficaz en cuanto a tecnología de software. Como se mencionó en el párrafo anterior el proceso de software es la base que ayuda al control en cuanto a la administración de la ingeniería de software. Por otro lado se puede decir que los procesos son adaptables lo que permite el trabajo en equipo y de forma dinámica de manera que se pueda acoplar a las necesidades y recursos de una determinada empresa generando métodos y modelos de trabajo según el requerimiento y el tiempo con los que se cuenta en un determinado momento estableciendo puntos de referencia, asegurando la calidad de software y la adaptación de cambios que se requieran en el camino del desarrollo de software todo esto de manera adecuada reduciendo de manera considerable los riesgos que se pueden correr. Pressman R. S.(2002) menciona: “Para muchos proyectos de software, las actividades estructurales se aplican en forma iterativa a medida que avanza el proyecto. Es decir la comunicación, la planeación, el modelado, la construcción, y el despliegue se jecutan a través de cierto número repeticiones de proyecto. Cada interacción produce un incremento del software que da a los participantes un subconjunto de características y funcionalidad generales del software conforme se produce cada incremento el software se hace más y más completo”. Estos métodos anteriormente indicados son importantes para el buen desarrollo de un software ya que en cuanto a la comunicación es de vital importancia desde el inicio del proyecto ya que gracias a la comunicación se puede determinar qué es lo que realmente se necesita y hasta donde se puede llegar y lo que se puede lograr y así determinar cuánto tiempo implicará y cuáles son las características que se espera del proyecto a realizar. En cuanto a la planeación también tiene una importancia significativa ya que con ella se puede trazar el camino por el cual se recorrerá de manera que sirva de guía para el equipo de desarrollo. El modelado va de la mano de la planeación ya que al planear y tener en claro el camino por el que se va a recorrer en el transcurso del desarrollo para comprender de manera más clara el problema al que se esta enfrentando y de esta manera ir construyendo la solución del problema de acuerdo a los requerimientos que se obtengan. Finalmente después de haber llegado a definir bien el problema al que se esta enfrentando se empieza con la construcción lo cual necesita de todo el equipo para lograr cumplir los tiempos estimados y poder enfrentar de manera adecuada las dificultades que se vayan presentando en el camino para luego someterlo a una serie de pruebas las cuales ayudarán a identificar si se está logrando ir por el camino correcto, para luego pasar a la entrega del producto al usuario y de esta manera saber si se cumplió con todos los requerimientos del usuario. Luego de la entrega se debe realizar un seguimiento y un control al proyecto dando lugar a una comparación entre la planificación del proyecto y de esta manera al contar con las herramientas de ingeniería de software se contará con el apoyo necesario para una buena planificación y desarrollo de un determinado proyecto. Las herramientas de la ingeniería de software proporcionan un apoyo automatizado o semi-automatizado para el proceso y los métodos. Cuando se integran las herramientas de modo que la información obtenida pueda ser utilizada por otros actores, queda establecido un sistema llamado ingeniería de software asistido por computadora que apoya el desarrollo de software; a continuación se detallan las herramientas más importantes: menciona Van Vliet (2002). Requerimientos de Software. Un requerimiento se define como una necesidad que debe ser cumplida para dar solución a un problema específico. Existen diferentes áreas de análisis como ser la especificación de requerimientos, análisis, validación, clasificación, negociación, etc. Diseño del Software. Es el proceso en el cual se define la arquitectura, componentes, interfaces y otras características relativas al desarrollo del software mismo. Construcción del Software. Referida a la creación en detalle del Software a través de la combinación de las diferentes herramientas de codificación, verificación, pruebas de unidad, pruebas de integración y depuración. Pruebas del Software. Proceso de verificación dinámica del comportamiento del Software ante un conjunto limitado de casos de prueba. Mantenimiento del Software. Estas actividades de mantenimiento comienzan generalmente cuando el Software entra en la etapa de pruebas de funcionalidad con datos reales, pruebas que son realizadas por parte de los usuarios finales con la finalidad de que estos puedan adaptarse a los cambios, así mismo puedan sugerir cambios para su posterior adaptabilidad.