Calidad de Software en el uso de Metodologías Ágiles para el Desarrollo de Software. Sandra Dinora Orantes Jiménez

Save this PDF as:
 WORD  PNG  TXT  JPG

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Calidad de Software en el uso de Metodologías Ágiles para el Desarrollo de Software. Sandra Dinora Orantes Jiménez"

Transcripción

1 Calidad de Software en el uso de Metodologías Ágiles para el Desarrollo de Software Sandra Dinora Orantes Jiménez Centro de Investigación en Computación, Instituto Politécnico Nacional, Av. Juan de Dios Bátiz s/n esquina Miguel Othón de Mendizábal, Col. Nueva Industrial Vallejo, México, D.F. C.P Resumen. El desarrollo de software no es tarea fácil y por ello, existen numerosas propuestas metodológicas que inciden en distintas dimensiones del proceso de desarrollo; así, por un lado se encuentran propuestas tradicionales que se centran en el control del proceso, estableciendo de forma rigurosa actividades involucradas, artefactos que deben producir y herramientas y notaciones que se emplearán. Todas las propuestas han demostrado ser efectivas y necesarias en varios proyectos, pero también han presentado problemas en otros tantos. Se sugieren mejoras, como admitir en los procesos de desarrollo más actividades, artefactos y restricciones, en base a los puntos débiles detectados, como consecuencia se tendría un proceso de desarrollo complejo, que es posible que limite la propia habilidad del equipo para llevar a cabo el proyecto. Es así que, en el proceso de buscar soluciones, hoy en día se encuentran metodologías que se centran en otros aspectos, como por ejemplo el factor humano o el producto de software, siendo esta la filosofía de las Metodologías Ágiles, donde se da mayor importancia a la colaboración con el cliente y al desarrollo incremental del software con iteraciones cortas, mostrando su efectividad en proyectos con requisitos cambiantes y donde se exige reducir drásticamente los tiempos de desarrollo, pero manteniendo una alta calidad. Por consiguiente, esta investigación se centra, en lograr mantener la Calidad de Software en ciclos de desarrollo cortos como los que plantean las Metodologías Ágiles.

2 2 Sandra Dinora Orantes Jiménez Palabras Clave: Metodologías Ágiles, Calidad de Software, Individuos e Interacciones, Software Funcional, Colaboración con Clientes, Respuesta al Cambio. 1 Introducción Existen muchas metodologías para el desarrollo de software y varias de ellas se acoplan bajo el guión de ágiles; todas las metodologías existentes comparten características y algunas diferencias significativas, aunque la presente investigación no se enfoca en resaltar estos puntos, al enfocarse en las Metodologías Ágiles pueden señalarse algunos lugares donde se ven claras semejanzas y diferencias, pese a no tener experiencia significativa sobre muchas de ellas. El desarrollo de software ágil es un marco de trabajo conceptual para emprender proyectos de Ingeniería de software y así, existe un número de métodos de desarrollo de software ágiles, que son apoyados por la llamada Alianza Ágil (The Agile Alliance). Los llamados Métodos Ágiles, intentan minimizar riesgos en tiempos de desarrollo de software cortos, a través de iteraciones que duran de una a cuatro semanas y donde cada iteración, es como un proyecto de software en miniatura que incluye las tareas necesarias para liberar en cada mini-incremento, una nueva funcionalidad que pasó por todas las etapas: planeación, análisis de requerimientos, diseño, codificación, pruebas y documentación. En las metodologías normales basadas en incrementos, no se adiciona suficiente funcionalidad que garantice la liberación de un producto, en tanto, los proyectos de software ágil intentan ser capaces de que un nuevo software se termine al final de cada iteración y que incluso el equipo de desarrollo, reevalue las prioridades del proyecto esperando por supuesto, que cada producto sea de calidad. Los Métodos Ágiles enfatizan una comunicación en tiempo real, preferentemente cara a cara sobre documentos escritos; los equipos ágiles deben involucrar todas las personas necesarias para garantizar la finalización del software, como mínimo se involucran programadores y los clientes (que son finalmente los que definen el producto, quien lo manejará, análisis de negocios o consumidores actuales), el grupo también puede incluir a probadores, diseñadores de interacción, escritores técnicos y gerentes.

3 Calidad de Software en el uso de Metodologías Ágiles para el Desarrollo de Software 3 Las Metodologías Ágiles también acentúan en que el software trabajando es la primera medida del progreso, combinado con la comunicación cara a cara en todo momento, se produce poca documentación en relación con otros métodos, dando como resultado que se crítique a los Métodos Ágiles considerándoseles indiciplinados y poniendo a veces en riesgo la Calidad del producto resultante y que es donde se centra la presente investigación, tratar de lograr Calidad de Software en el uso de Metodologías Ágiles para el Desarrollo de Software. El artículo está organizado de la siguiente manera: en la sección 2 se introducen las las Metodologías Ágiles y un poco de la historia de cómo surgieron, se habla del Manifiesto y se comparan con metodologías no ágiles. La sección 3 habla de la conveniencia del empleo de Metodologías Ágiles. En la sección 4 se habla brevemente de la Evaluación de la Calidad de Software. En la sección 5 se habla de cómo adaptar los Métodos Ágiles, tomando en cuenta la Calidad de Software. En la sección 6 se dice como manejar un proyecto empleando Metodologías Ágiles asegurando la Calidad de Software. Finalmente, aparecen las conclusiones, que incluyen algunas críticas y las referencias bibliográficas. 2 Metodologías Ágiles, un poco de historia La definición moderna de Desarrollo de Software Ágil surge a mediados de los años 90 como parte de una reacción en contra de los llamados métodos de peso pesado (heavyweight), tipificados, regulados, reglamentados, micromanejados del modelo de desarrollo de Cascada, ya que los procesos que provienen del uso del modelo de cascada fueron vistos como burocráticos, lentos y que contradecían los caminos para que los ingenieros de software realizaran un trabajo eficaz. El hecho es que los métodos de desarrollo ágiles e iterativos son como regresar a las primeras prácticas de desarrollos de software [1]. Al principio las Métodos Ágiles fueron llamados Métodos de peso ligero (lightweight methods) y en el 2001, los miembros prominentes de la comunidad, que incluían 17 expertos de la industria del software, tomando en cuenta a algunos de los creadores o impulsores de metodologías de software, se encontraron en Snowbird, Utah, USA y adoptaron el nombre "Métodos Ágiles" y posteriormente, algunos de los miembros de esta comunidad formaron la llamada Alianza Ágil (The Agile Alliance) [2], que es una organización no lucrativa que promueve el desarrollo ágil.

4 4 Sandra Dinora Orantes Jiménez El punto de partida fue el Manifiesto Ágil (Agile Manifesto) [3], un documento que resume la filosofía ágil. Entre los primeros métodos ágiles que surgieron antes de 2000 se incluyen Scrum (en cuanto a dirección) (1986), Crystal Clear (software development), XP (extreme Programming, Programación Extrema) (1996), el Desarrollo de Software Adaptable (Adaptive Software Development), Desarrollo Conducido (Feature Driven Development) y DSDM (Dynamic Systems Development Method, Métodos de Desarrollo Dinámico de Sistemas) (1995). Aunque definitivamente XP no fue el primer método ágil, estableció la popularidad de los métodos ágiles y fue creado por Kent Beck en 1996 como un modo de rescatar el proyecto C3 (Chrysler Comprehensive Compensation, Chrysler Compensación Comprensiva), no obstante, aquel proyecto fue cancelado en su momento y la metodología XP fue refinada por Ron Jeffries, realizándose una discusión pública en Ward Cunningham's Portland Pattern Repository (Repositorio de Patrones en Portland de Cunningham) y posteriormente, en un trabajo publicado por Beck en 1999, que incluyo un libro [4]. Los elementos de Programación Extrema están basados en Scrum y Episodios del Lenguaje de Patrones de Cunningham (Ward Cunningham's Episodes pattern language). 2.1 Manifiesto Ágil Principios detrás de los Métodos Ágiles Los Métodos Ágiles no son una familia de procesos de desarrollo, ni un acercamiento al desarrollo de software; en 2001, 17 figuras prominentes [5] en el campo del desarrollo ágil (entonces llamados Métodos de peso ligero ) se reunieron en Utah para discutir la manera de crear software rápidamente y la forma de centrar a las personas en ello y finalmente, ellos elaboraron el Manifiesto Ágil (Agile Manifesto), extensamente considerado como la definición canónica de desarrollo ágil y acompañándolo de principios ágiles. Algunos de los principios detrás del Manifiesto Ágil [6] son: Satisfacción del cliente debido a la entrega rápida y continua de software útil. El software trabajando es entregado con frecuencia (en semanas en lugar de meses). El software trabajando es la medida principal de progreso. Incluso las exigencias de cambios tardíos son bienvenidos. Una cercana y diaria cooperación entre la gente del negocio (clientes) y los desarrolladores. La conversación frente a frente es la mejor forma de comunicación.

5 Calidad de Software en el uso de Metodologías Ágiles para el Desarrollo de Software 5 Los proyectos son construidos alrededor de individuos motivados, que se sienten confiados en su trabajo. La atención continua en la excelencia técnica y un buen diseño. Simplicidad. Equipos con Organización Propia. Adaptación regular a circunstancias cambiantes. La publicación del manifiesto engendró un movimiento en la industria de software conocida como el desarrollo de software ágil y en 2005, Alistair Cockburn y Jim Highsmith juntaron a otro grupo de personas - expertos de dirección, esta vez - y escribieron un apéndice, llamado la PM Declaración de Interdependencia. 2.2 Comparación con otras Metodologías Las Metodologías Ágiles a veces se caracterizan por ser lo opuesto de las llamadas Metodologías conducidas por plan o disciplinadas y esto implica, que los métodos ágiles son imprevistos o indisciplinados y que además, tienden a ser adaptables y predictivos [7]. Los Métodos Adaptativos enfocan rápidamente la adaptación a una realidad cambiante y si las necesidades del proyecto cambian, el equipo de trabajo es adaptable y se cambia también, tomando en cuenta la dificultad, que el equipo siempre tendrá que poder describir exactamente lo que pasará en el futuro y entre más lejana sea una fecha, más vago será lo que un método adaptable permitirá predecir para aquella fecha. Un equipo adaptable debe poder relatar exactamente que tareas tendrán que realizarse la próxima semana, aunque sólo podrá decir cuales rasgos serán planeados durante el próximo mes y si se trata de una liberación para dentro de seis meses, sólo pueden ser capaces de reportar el estado del producto para su liberación o una declaración de valor esperado contra el coste. Los Métodos Predictivos, enfocan la planificación del futuro detalladamente y los equipos predictivos pueden reportar exactamente que características y tareas están planeadas para todo el proceso de desarrollo. Sin embargo, a los equipos predictivos se les dificulta cambiar de dirección, ya que el plan es optimizado típicamente para un destino prefijado y si hay cambios, tendría que modificarse también la planificación, con el riesgo que el trabajo completo sea desechado y tengan que hacer todo nuevamente de manera diferente. Los equipos predictivos a menudo elaboran una tabla de control de cambios o riesgos, para asegurar que sólo los cambios valiosos sean considerados. Entre los Métodos Predictivos, el

6 6 Sandra Dinora Orantes Jiménez Modelo en Cascada es realmente con el que menos tienen en común las Metodologías Ágiles y aunque para algunos este modelo no es para nada adecuado, desde el 2004, se ha comprobado que todavía se emplea comúnmente [8]. Las Metodologías Ágiles tienen mucho en común con las técnicas de las Metodologías RAD (Rapid Application Development, Desarrollo Rápido de Aplicaciones) proporcionadas y expuestas en 1980 por James Martin y otros autores [9]. Algunos Equipos Ágiles, utilizan el modelo en cascada en una pequeña escala, repitiendo el modelo completo en cada iteración; otros equipos, son notablemente Equipos XP, trabajando en varias actividades simultáneamente. La Tabla 1 recoge un comparativo, marcando las principales diferencias de las metodologías ágiles con respecto a las Tradicionales no ágiles que se consideran son las que han servido de base para otras metodologías, las diferencias afectan no sólo al proceso, sino también al contexto del equipo así como a su organización. 3 Conveniencia del Uso de Métodos Ágiles Aunque los Métodos Ágiles se diferencian en sus prácticas, ellos comparten un número de características comunes, incluyendo el desarrollo iterativo y un enfoque sobre interacción, comunicación y reducción de artefactos intermedios intensivos en recursos. [10] La conveniencia de las Metodologías Ágiles en general, puede ser examinada desde múltiples perspectivas; desde el punto de vista del producto, los Métodos Ágiles son más convenientes cuando los requerimientos son cambiantes y requieren una rápida modificación y son menos convenientes, para los sistemas que son altamente riesgosos, fiables y con muchos requerimientos de seguridad, aunque no hay ningún consenso sobre este punto. [10] Desde una perspectiva organizacional, la conveniencia puede ser evaluada examinando tres dimensiones claves de una organización: cultura, personal y comunicación. En relación con estas áreas un número de factores claves han sido identificados para lograr el éxito de los proyectos [10]: 1. La cultura de la organización debe dar soporte a la negociación 2. Las personas involucradas en el desarrollo deben ser confiables

7 Calidad de Software en el uso de Metodologías Ágiles para el Desarrollo de Software 7 3. Las personas responsables del desarrollo deben ser pocas pero muy competentes 4. Las Organizaciones deben vivir con las decisiones de los desarrolladores 5. Las Organizaciones deben de tener un ambiente que facilite la comunicación rápida entre miembros del equipo de trabajo El factor más importante a tomar en cuenta, es probablemente, el tamaño del proyecto. [10] Cuando el tamaño crece, la comunicación cara a cara se hace más difícil. Por lo tanto, los Métodos Ágiles son convenientes para proyectos con equipos pequeños, es decir, que involucren menos de 20 personas. Para determinar la conveniencia individual del empleo de Métodos Ágiles, se requiere de un análisis sofisticado; los Métodos DSDM, por ejemplo, proporcionan para este propósito un filtro de conveniencia (suitability-filter); la familia de Métodos Crystal proporcionan criterios que ayuden a seleccionar el método adecuado para un proyecto y la elección está basada, en el tamaño del proyecto, riesgos y prioridades. Sin embargo, otros Métodos Ágiles no proporcinan ningún instrumento explícito para evaluar su conveniencia para un proyecto. Algunos Métodos Ágiles, como DSDM y FDD (Feature Driven Development, Desarrollo Conducido por Rasgos), son considerados convenientes para cualquier proyecto de desarrollo de software ágil, independientemente de características circunstanciales. [11] Una comparación de Métodos Ágiles revela que ellos soportan diferentes fases de un ciclo de vida de desarrollo de software en varios grados y esta característica individual puede ser empleada como criterio de selección para elegir al Método Ágil adecuado. El desarrollo ágil ha sido documentado extensamente [7] y se conoce que trabaja bien para equipos pequeños (menos de 10 desarrolladores) que son capaces de afrontar requerimientos imprevisibles o que se cambian rápidamente. La aplicabilidad del Desarrollo Ágil a los siguientes escenarios es cuestionable: Los esfuerzos de desarrollo a gran escala (más de 20 desarrolladores), las estrategias empleadas, ya han sido descritas. [12] Los esfuerzos de desarrollo distribuido (equipos no localizables dentro de la compañía), sus estrategias han sido descritas en Bridging the Distance (Acortamiento de Distancia) [13] y en Using an Agile Software Process with Offshore Development (Utilizando un Proceso de Software Ágil con Desarrollo en el Exterior) [14]. Esfuerzos Críticos: Misión - y vida (Mission- and life-critical efforts). Culturas de Empresa: Comando y Control (Command-and-control).

8 8 Sandra Dinora Orantes Jiménez Barry Boehm y Richard Turner sugieren que el análisis de riesgo sea usado para escoger entre métodos adaptables ("ágil") y predictivos ("conducidos por plan"). [7] Los autores sugieren que cada método tenga su propio sitio: Métodos Ágiles: Bajo riesgo Desarrolladores Senior Requerimientos muy cambiantes Número pequeño de desarrolladores Cultura que prospera sobre el caos Métodos Predictivos: Alto riesgo Desarrolladores Junior Bajos cambios en los requerimientos Número grande de desarrolladores Cultura que exige tener orden 4 Evaluación de la Calidad del Software Al hablar de la calidad del software, pueden distinguirse dos áreas principales: calidad del producto y calidad del proceso de desarrollo [18][19]. 4.1 Evaluación del Producto Para las organizaciones dedicadas al desarrollo de software, es importante ofrecer productos de un alto grado de calidad y así, enfrentarse a la fuertemente creciente competitividad que existe en ese ramo, no solamente a nivel local, sino incluso internacional. Por esta razón, necesitan definirse un conjunto de actividades cuidadosamente planificadas que les permita vigilar los productos a lo largo de todas las etapas del ciclo de vida de desarrollo del software, para asegurar la calidad del producto final. Para evaluar la calidad de un producto de software, han surgido distintos modelos que toman en cuenta diversos atributos de calidad. Al evaluar estos atributos de calidad en diferentes etapas (jerarquía de atributos), se puede determinar la calidad del producto de software. Entre los modelos más importantes que evalúan la calidad del producto de software se encuentran los siguientes:

9 Calidad de Software en el uso de Metodologías Ágiles para el Desarrollo de Software 9 El modelo de McCall. Incorpora once factores, desde el punto de vista de tres ejes: operación del producto, revisión del producto y transición del producto. Las métricas son preguntas, que ponderan numéricamente un determinado atributo del producto de software. Tras obtener los valores para todas las métricas de un criterio específico el promedio de ellas es el valor para dicho criterio [20]. El modelo de Bohem. Propone una jerarquía de niveles, en forma de un árbol con tres ramas principales de los criterios de calidad que permiten que el software sea de utilidad: Portabilidad, Facilidad de Uso y Facilidad de Mantenimiento. Tiene tres niveles: Aplicaciones primarias, Construcciones Intermedias y Construcciones Primitivas, y finalmente las Métricas que determinan los valores para los criterios (construcciones primitivas) [21]. ISO/IEC Estándar internacional (ISO), aplicable a todo tipo de software. Está basado en un modelo jerárquico con tres niveles: Características, Subcaracterísticas y Métricas. En el primer nivel tiene seis características principales: Funcionalidad, Confiabilidad, Eficiencia, Facilidad de Mantenimiento, Portabilidad y Facilidad de Uso. Estas características (factores) están compuestas a su vez por 27 subcaracterísticas (subfactores) relacionadas con la calidad externa, y 21 subcaracterísticas relacionadas con la calidad interna [22]. 4.2 Evaluación del Proceso de Desarrollo de Software Al evaluar la calidad de los procesos de desarrollo de software, se pretende determinar su rendimiento para corregir problemas o para mejorarlos, con el propósito de disminuir los costos de desarrollo, aumentar la productividad y elevar la calidad de los productos. Un proceso de desarrollo de software es el conjunto de actividades, métodos y prácticas que se usan para desarrollar un producto de software y darle mantenimiento. Entiéndase como producto de software tanto a los programas, componentes y sistemas y la variedad de documentos asociados al mismo (documentos de planificación, diseño, código, casos de prueba, manuales, reportes). Una organización debe establecer estrategias para que al evaluar los procesos que intervienen en el desarrollo de un producto de software y que al conocer su estado actual, se pueda alcanzar el estado deseado para los mismos. El estado actual o deseado de un proceso se asocia directamente con su rendimiento, es decir, los resultados logrados actualmente o que se pretenden alcanzar siguiendo ese proceso de software.

10 10 Sandra Dinora Orantes Jiménez Es importante que todas las tareas que intervienen en el desarrollo de un producto de software sean tratadas como procesos, para que puedan ser medidas y controladas. Se mencionan a continuación, el modelo de CMM (Capability Maturity Model, Modelo de Madurez de Capacidades) y los estándares internacionales considerados importantes para la evaluación de los procesos de desarrollo software: CMM-SEI. El Modelo de Madurez de Capacidades del SEI (Software Engineering Institute, Instituto de Ingeniería de Software), es un modelo que determina la madurez de los procesos de desarrollo de software y que busca mejorar esa madurez, reconociendo las prácticas clave necesarias para lograrlo. En una organización dedicada al desarrollo de software, las prácticas se pueden repetir mediante el establecimiento y uso de políticas y procedimientos que permitan implementarlas y llevarlas a cabo regularmente (estandarización). Estas prácticas deben aplicarse en todos los proyectos que la organización maneja, y por todos los grupos de trabajo que en ella colaboran. Se establecen objetivos cuantitativos y se realizan evaluaciones. Un proceso puede ubicarse en un determinado Nivel de Madurez, el cual es una plataforma evolutiva bien definida, en la búsqueda de la madurez de un proceso de desarrollo de software. En cada uno de los niveles se indica el nivel de la capacidad de un proceso determinado. Existen cinco Niveles de Madurez de Procesos: Inicial, Repetible, Definido, Administrado y Optimizado [23]. ISO/IEC 12207:AMENDMENT 1:2002. Esta norma que tiene por nombre Software life-cycle processes (Procesos del ciclo de vida del Software). Describe los procesos principales que componen un ciclo de vida de software integral, incluyendo sus interrelaciones. No establece un paradigma de Ingeniería de Software a ser utilizado, pero indica los requisitos mínimos de ingeniería necesarios en el contexto del ciclo de vida de software. Agrupa los procesos del ciclo de vida en 3 grandes clases: Procesos Primarios, Procesos de Soporte, y Procesos de Organización. Cada proceso se considera como un conjunto de actividades, que a su vez se subdividen en tareas. Estas últimas transforman las entradas del proceso y generan sus salidas. Se definen en la norma un total de 22 procesos, 95 actividades y 325 tareas. Se identifican dos roles principales desempeñados en una organización a lo largo del ciclo de vida del software: cliente y proveedor [24]. ISO/IEC La norma tiene como titulo Process Assessment (Evaluación del Proceso de Software). Establece los requisitos para realizar una evaluación de los procesos de desarrollo de software, para lograr una mejora de tales

11 Calidad de Software en el uso de Metodologías Ágiles para el Desarrollo de Software 11 procesos y para determinar su capacidad. La evaluación se lleva a cabo tomando en cuenta los procesos y sus capacidades. Para evaluar los procesos, se acude a un modelo externo, que consta de un conjunto de procesos divididos en cinco categorías, caracterizados por sus objetivos y sus repercusiones. La evaluación de capacidades hace uso de un marco de trabajo que contiene seis niveles de capacidad del proceso (Incompleto, Realizado, Administrado, Establecido, Previsible y Optimizado), con una serie de atributos del proceso, los cuales se relacionan directamente con la administración y mejora de su capacidad de realización. Cada atributo se evalúa, para ubicarlo en alguno de los siguientes estados: No conseguido, Parcialmente conseguido, Ampliamente conseguido, Completamente conseguido. Se realiza la evaluación de todos los atributos de un proceso específico y se calcula su nivel de capacidad. Para alcanzar un determinado nivel, todos los atributos asociados con los niveles inferiores deben haberse valorados como Completamente conseguidos y los atributos de ese nivel específico deben haberse valorado como Ampliamente conseguidos o Completamente conseguidos [25]. 5 Adaptación de Métodos Ágiles asegurando la Calidad de Software Tomando en cuenta lo planteado en la sección 4, sobre la Evaluación de la Calidad del Software, tanto para el producto como para el proceso y que los modelos y estándares han sido elaborados pensando en el empleo de Metodologías Tradicionales y además, considerando que un método debería ser bastante flexible para permitir ajustes durante la ejecución de proyecto. Hay tres problemas claves relacionados con la adaptación de Métodos Ágiles a proyectos de software intentando garantizar la Calidad de Software: la confiabilidad de los Métodos Ágiles (en general y en particular), Métodos Adaptables al Entorno (Tailoring) y finalmente, soporte brindado por la administración al desarrollo del proyecto. 5.1 Confiabilidad de los Métodos Ágiles Lograr que los proyectos desarrollados con Metodologías Ágiles sean de calidad no es una tarea fácil, se tiene que garantizar que el método elegido es confiable y que el producto resultante también lo es.

12 12 Sandra Dinora Orantes Jiménez Como es sabido, comprender los requisitos del cliente es fundamental para asegurar que el desarrollo de software es exitoso, el problema está, en que los usuarios rara vez tienen la habilidad para articular lo que realmente requieren y sus necesidades cambian cuando ven el potencial del sistema y comprenden lo que éste puede hacer por ellos. Por otra parte, la tecnología y el dominio también cambian y mientras más tiempo tome el desarrollo, más cambiarán. Por consiguiente, intentar conocer todos los requisitos del producto al comienzo del proyecto no es factible a un costo razonable. El proceso normal empleando una Metodología Tradicional, es entrevistar al cliente, elaborar un documento de Definición de Requisitos que será revisado por el responsable del proceso que se automatizará y que da como resultado el documento de Especificación de Requisitos que es el que se le entregará al Jefe de Proyecto (Analista de Sistemas) para iniciar el desarrollo, sabiendo que se iteró lo suficiente, para que las necesidades del Cliente hayan quedado realmente bien definidas y entendidas, para que el sistema resultante sea lo que se espera y que se obtenga un desarrollo de Calidad, el problema está en que solamente en la recopilación de requerimientos pasaron semanas o meses (véase Fig. 1). Con las Metodologías Ágiles el proceso no es tan riguroso y el Cliente forma parte del equipo de desarrollo en todo momento y en lugar de revisar documentos, se examinará software funcionando, garantizando que lo que el Cliente observa es lo que necesita y con la calidad que él espera, recordando que la Calidad del Software depende de las necesidades del negocio y que los requisitos irán evolucionando en cada iteración y para que el riesgo no aumente en la explotación del Sistema, se focalizará el esfuerzo en los requisitos que tienen el mayor valor de retorno (véase Fig. 2). Para lograrlo, al comienzo de cada iteración se hace un Levantamiento y Análisis de los Requisitos, donde participa el equipo completo incluyendo al dueño del producto y expertos técnicos que sean necesarios. Además, se realizarán entrevistas sobre características relevantes que se tienen que considerar en el proyecto que se está desarrollando, se harán tantas entrevistas como se requieran para garantizar que el producto sea lo que se espera y cada una durará tiempos cortos prefijados, para elaborar correctamente la lista de requisitos y establecer prioridades. Será necesario dejar claramente establecido con el cliente los Atributos para medir la Calidad. Documento de Definición de Requisitos Documento de Especificación de Requisitos

13 Calidad de Software en el uso de Metodologías Ágiles para el Desarrollo de Software 13 Cliente Analista de Sistemas Gerente de Producto Fig. 1. Aproximación Clásica (Rigurosa) SOFTWARE Cliente Equipo de Desarrollo Fig. 2. Aproximación Ágil 5.2 Métodos Ágiles y Métodos de Entorno En la literatura, términos diferentes se refieren a la noción de métodos de adaptación, incluyendo el ' Método de Entorno ' (method tailoring), ' Método de adaptación de fragmento ' (method fragment adaptation) e ' Ingeniería Circunstancial de Métodos ' (situational method engineering). El Método de Entorno se define como: Un proceso o capacidad, en el cual, los seres humanos responden al cambio y a interacciones dinámicas entre contextos, intenciones y fragmentos de métodos para determinar el mejor enfoque para el desarrollo de un sistema para un proyecto o situación específica. [15] Potencialmente, casi todos los Métodos Ágiles son convenientes para adaptarse como métodos de entorno. Incluso el método DSDM se está utilizando para este propósito y se ha adaptado con éxito al contexto de CMM [11]. Se puede considerar en situaciones apropiadas, que una característica que distingue entre los métodos ágiles y los métodos tradicionales del desarrollo del software, es que tienden a ser relativamente mucho más rígidos y prescriptivos y no tan fácilmente adaptables.

14 14 Sandra Dinora Orantes Jiménez La implicación práctica es que los métodos ágiles permiten que los equipos de proyecto adapten prácticas de trabajo según las necesidades de proyectos individuales. Las prácticas son actividades concretas y los productos son parte del marco de trabajo del método. En un nivel extremo, la filosofía detrás del método, consiste en un número de principios, que pueden ser adaptados [15]. En el caso de XP la necesidad de adaptación del método se hace explícita y una de sus ideas fundamentales, es que no hay un proceso fijo para cada proyecto como tal, pero en la práctica debe ser adaptado a las necesidades de proyectos individuales. No hay tampoco informes de la experiencia con las prácticas, en las cuales, se ha adoptado XP; sin embargo, una adopción parcial de las prácticas de XP, según lo sugerido por Beck (Kent Beck es el creador de extreme Programming y uno de los fundadores del Manifiesto Ágil), sí ha sido reportado en varias ocasiones [16]. Puede hacerse una distinción entre la adaptación estática y la adaptación dinámica del método. [17] La clave detrás de la adaptación estática, es que el contexto del proyecto está dado al comienzo y el resto es fijado durante su ejecución y el resultado, es una definición estática del contexto del proyecto y dada tal definición, los mapas de ruta se pueden utilizar para determinar cuáles fragmentos estructurados de métodos, se deben emplear para ese proyecto particular, basándose en un conjunto de criterios predefinidos. La adaptación dinámica del método, en contraste, asume que los proyectos están situados en un contexto inesperado. Un contexto inesperado implica que un proyecto tiene que ocuparse de los factores imprevisibles que afectan condiciones relevantes que no son previsibles y esto también significa, que el contexto del proyecto no es fijo, cambia durante su ejecución y que en el caso de rutas reguladas, no son apropiados. La implicación práctica de la adaptación dinámica del método es que los encargados de proyecto tienen que modificar fragmentos estructurados o innovar a menudo nuevos fragmentos, durante la ejecución de un proyecto.[17] 5.3 Soporte brindado por la administración al desarrollo del proyecto No hay que olvidar que al emplear Métodos Ágiles, el Cliente pasa a formar parte del equipo de desarrollo, se le tomará en cuenta como tal en todas las iteraciones y para el éxito del proyecto, la administración de la organización debe estar dando el soporte necesario durante todo el desarrollo, brindando todo lo que sea

15 Calidad de Software en el uso de Metodologías Ágiles para el Desarrollo de Software 15 necesario para que el producto automatizado resultante, sea con la Calidad esperada por la empresa. Se tendrán que elaborar talleres y delimitar el tiempo que se dedicará a cada uno de ellos y a las actividades a revisar en cada reunión, los estudios sugeridos son: 1. Levantamiento y Análisis de los Requisitos: que tiene que tener una duración fija y corta como sigue: El dueño del producto presenta sus requisitos y el equipo participa a través de preguntas (duración 4 horas). El equipo de desarrollo realiza una lista de tareas que deben realizarse para cumplir con los requisitos (duración 8 horas), las tareas son estimadas en duración (no más de 8 horas cada una). El dueño del producto revisa las estimaciones del equipo y prioriza sus requerimientos por valor, de manera que puedan ser implementados por el equipo en una iteración corta, estableciendo la visión común para la iteración (duración 4 horas). 2. Entrevista sobre características Relevantes: tiene como objetivo obtener del cliente información para elaborar una lista de requisitos, para ello, se establecerán trabajos en grupo (duración 20 minutos), por lo cual, deberán preparse un conjunto de preguntas previas a la entrevista con el cliente que permitan generar una lista con los requerimientos detectados. Una recomendación al elaborar el cuestionario guía para la entrevista, es reflexionar lo siguiente: Cuán difícil es preparse? Cuán consistente es el cliente en sus respuestas? Fue fácil ordenar la información del cliente para hacer una lista de requisitos? 3. Especificación de Atributos de Calidad: su objetivo es identificar atributos de calidad considerados críticos para el éxito del proyecto, para ello se analiza el Backlog del Producto (Trabajo atrasado del Producto), para poder listar los atributos críticos cuantitativos priorizados. Las tareas a realizar en esta reunión son: una lluvia de ideas sobre atributos (pueden tomarse ideas de la norma ISO/IEC 9126 ó de otro modelo que evalúe la calidad del producto), se reunen atributos en temas relacionados, se identifican los atributos considerados críticos, se especifícan cuantitativamente los dos atributos más críticos mediante Escala, Prueba, Plan, Peor y se comparten los resultados. Y al final de la reunión, el equipo debe reflexionar sobre Cómo partir inventando atributos? Qué determina que un atributo sea o no crítico? Qué tan difícil es inventar

16 16 Sandra Dinora Orantes Jiménez una escala y prueba? Qué tan importante es tener los valores planificados, bien definidos desde el comienzo? 5.4 Requisitos de Calidad En resumen y tomando en cuenta los tres problemas claves relacionados con la adaptación de Métodos Ágiles a proyectos de software, que garanticen que el producto resultante sea de calidad y que el proceso seguido por el método también lo sea, de alguna forma es necesario tomar en cuenta la Especificación de Atributos de Calidad e incrustarla como parte del método a seguir, no olvidando lo que ya se mencionó, que la calidad depende de las necesidades del negocio o cliente, así algunos esperan: buen desempeño y funcionamiento, que trabaje bien tanto en una plataforma como en otra (UNIX, PC), que el producto se adapte a necesidades específicas (AD HOC), que sea fácil de usar, que no tenga defectos, que tenga buena manufactura y que dure mucho tiempo, etc. Para establecer bien la lista de requerimientos, es necesario tomar en cuenta que existen dos tipos de requisitos: Funcionales, los cuales, se cumplen o no se cumplen (responden al Qué ) y de Calidad o Atributos, que se pueden cumplir en distinto grado (responden a Qué tan bien ). Todos los atributos se pueden y se deben expresar sin ambigüedades, si un requisito se expresa claramente, se le da prioridad sobre los no tan claros, así por ejemplo, si se desea que los datos sean consistentes puede establecerse el grado de consistencia que se considera aceptable. Para describir un atributo, se sugiere utilizar el siguiente modelo: Atribu Nombre del Atributo to: Tipo: Si es cuantificable, facilidad de uso, facilidad de aprendizaje, completez, recursos, etc. Escala Qué se mide (una dimensión) : Prueb Cómo se mide (un procedimiento) a: Peor: Valor apenas aceptable Plan: Valor que se desea alcanzar, en conjunto con los Autori dad: demás requisitos de calidad Quién, Qué o de Dónde sale (sus orígenes)

17 Calidad de Software en el uso de Metodologías Ágiles para el Desarrollo de Software 17 Actual Valor alcanzado en el sistema : Mejor: El mejor valor alcanzado por alguien en alguna parte Además, suele ser conveniente expresar los atributos como una jerarquía, existirán atributos que son usualmente importantes y la lista de estos requisitos de calidad, debería ser parte de una plantilla para la especificación de requisitos. De acuerdo a la norma ISO/IEC 9126 [22] son 6 los atributos que se consideran importantes: Funcionalidad, Confiabilidad, Usabilidad, Eficiencia, Mantenibilidad y Portabilidad; puede tomarse como base este modelo de evaluación de la calidad del producto u otro que se considere conveniente o que el Cliente considere adecuado. Para poder establecer el listado de atributos es necesario conocer el Backlog del Producto a desarrollar. Backlog del Producto Para establecerlo, es necesario elegir una Metodología Ágil, como puede ser: XP, IXP (Industrial Extreme Programming, Programación Extrema Industrial), Scrum, Agile Modeling (Modelado Ágil), ASD (Adaptive Software Development, Desarrollo de Software Adaptativo), Crystal Clear y otras Crystal Methodologies (Metodologías Crystal), DSDM, FDD, Lean software development (Desarrollo de Software de Soporte), AUP (Agile Unified Process, Proceso Unificado Ágil) o Dialogue-Driven Development (Desarrollo Manejado por Diálogo) y seguir el proceso, que dicte la metodología elegida. Lo importante es que el Backlog del Producto incluye elementos que se necesitan para iniciar el proyecto y los elementos del retraso, están clasificados (Función). Además, deben tomarse en cuenta factores que típicamente, complican el Backlog del Producto: Complejidad del Producto: acuerdo en los requisitos y estabilidad de la tecnología a utilizar. Complejidad del Equipo de Desarrollo: experiencia del equipo trabajando juntos, conocimiento por parte del equipo de la tecnología a utilizar, conocimiento por parte del equipo de negocio donde el producto se desarrolla. La Complejidad se usa para corregir el esfuerzo estimado. Se deberá estimar el esfuerzo de implementación de cada requisito, incluyendo esfuerzo para análisis, diseño, desarrollo, documentación y pruebas, así como el estimado de la cantidad de personas-días y corregir el esfuerzo de cada requisito según su complejidad.

18 18 Sandra Dinora Orantes Jiménez Resumiendo, para la creación del Backlog del Producto se tiene que: 1. Priorizar y estimar el Backlog del Producto. 2. Se necesita para ello, la lista de requisitos y atributos críticos. 3. Las tareas a realizar son: Reunir las entradas poniéndolas en una única lista, priorizar y estimar las características relevantes, planificar el número de iteraciones que se requieren para implementar el retraso. 4. Se deben considerar equipos en donde los desarrolladores han estado trabajando juntos al menos durantes los últimos 12 meses en la tecnología requerida por el proyecto. Al menos tres de los integrantes del equipo, tienen que tener bastante experiencia en desarrollos para el sector en el que se lleva a cabo el proyecto. 6 Métodos Ágiles y la Administración del Proyecto Los Métodos Ágiles se diferencian grandemente de los tradicionales, por la manera en que cubren la administración de proyectos y algunos métodos, se complentan con guías para la administración del proyecto, pero generalmente no existe ninguna documentación de soporte [11]. Tomando en cuenta todo lo descrito en la sección 5 de esta investigación, si se elige un Método Ágil para el desarrollo de un proyecto, es posible que el producto resultante sea de calidad. Como ejemplo, PRINCE2 (PRojects IN Controlled Environments, Proyectos en Ambientes Controlados) es una metodología ágil recomendable para la administración de proyectos que cubre la administración, control y organización de un proyecto.[26] 7 Conclusiones En muchas ocasiones no es posible disponer de unas especificaciones correctas desde el primer momento, porque puede ser difícil para el usuario establecer al inicio todos los requisitos; en otras, hay cambio de parecer de los usuarios sobre las necesidades reales cuando ya se ha comenzado el proyecto, siendo probables que los verdaderos requisitos no se reflejen en el producto final. Otro de los problemas de esta aproximación es que los resultados no se ven hasta muy

19 Calidad de Software en el uso de Metodologías Ágiles para el Desarrollo de Software 19 avanzado el proyecto, por lo tanto la realización de modificaciones, si ha habido un error, es muy costosa. El desarrollo ágil se confunde en ocasiones con la Codificación de Vaquero (Cowboy Coding), sin embargo ofrece soluciones al problema de la especificación de requerimientos, tratando de garantizar que el producto resultante sea de calidad y lo esperado por el cliente, las Metodologías Ágiles han tenido muchas críticas, por ejemplo, XP inicialmente ocasionó mucho ruido y controversia, sin embargo incluso los partidarios de desarrollos con Métodos Ágiles, lo interpretaron como malos entendidos acerca del desarrollo ágil. Los Métodos Ágiles no presuponen algún tipo de ciclo de vida para su ejecución, es más bien una filosofía de valores, ideas, conceptos y principios para aplicar en la metodología que se desarrolle. Los Métodos Ágiles y las técnicas de desarrollo orientadas a objetos, se adaptan mejor o manejan mejor la incertidumbre, pero, como nada es gratis son más costosas. Por tanto, no siempre se justifican y además, su adopción general, como un camino más, requiere de un cambio cultural que se está produciendo, pero que no se ha completado aún. Existen muchos otros artículos y discusiones sobre este tema de los Métodos Ágiles. Mientras éstas pueden no ser metodologías completas, ofrecen una luz sobre este campo creciente.

20 20 Sandra Dinora Orantes Jiménez Metodologías Ágiles Enfatizan en el desarrollo iterativo construyendo software en períodos cortos de tiempo, como cajas cerradas de un tiempo estricto. El trabajo se realiza de manera colaborativa. Desarrollo Iterativo El período de tiempo es medido en meses y si no se tiene una buena planificación, los proyectos se salen de control. A veces no es muy colaborativo. Metodologías Tradicionales Modelo de Cascada El período de tiempo es medido en meses y si no se tiene una buena planificación, del tiempo que debe durar cada etapa, los proyectos se salen de control, ya que, es la más predictiva de todas las metodologías, pasando por la exigencia de la captura de requerimientos, análisis, diseño, codificación y pruebas en una secuencia estricta preplaneada. Tiende a ser sumamente colaborativo porque cada etapa tiene que estar bien definida y terminada para pasar a la siguiente. Cowboy Coding Es la ausencia de un método definido: los miembros de equipo hacen lo que ellos sienten que es lo correcto. La nueva evaluación frecuente del desarrollo ágil de proyectos, enfatiza en la comunicación cara a cara y el empleo relativamente escaso de documentos, que en ocasiones hace que los desarrolladores lo confundan con Cowboy Coding (Codificación de Vaquero). Sin embargo, los Equipos Ágiles, realmente siguen

21 Calidad de Software en el uso de Metodologías Ágiles para el Desarrollo de Software 21 Producen un desarrollo completo y probado (pero a una menor escala) en pocas semanas o meses. Enfatizan en obtener piezas funcionando que le den un valor agregado al negocio prontamente y continuamente mejoran y/o adicionan funcionalidad durante el tiempo de vida del proyecto; en ocasiones, no se realizan pruebas, sino hasta que el software se encuentra completamente trabajando. El porcentaje de las pruebas abarca un 40% de todo el desarrollo del software y en ocasiones, si no se planifica bien el tiempo para pruebas puede ser causante de que el proyecto falle. Puede dar como resultado una integración y esfuerzos de pruebas a través de todo el ciclo de desarrollo, un período de tiempo que a veces se extiende a varios meses o varios años. El tamaño y dificultad de la integración y esfuerzo de pruebas es causante de que el proyecto falle. procesos definidos (a menudo de forma muy disciplinada y rigurosa), distinguiendo accesos ágiles de la codificación de vaquero. Como con todas las metodologías, la habilidad y la experiencia del usuario define el grado de éxito y/o abuso de tal actividad. Los controles y/o chequeos más rígidos y los balances encajados dentro de un proceso, ofrecen niveles rigurosos de responsabilidad del usuario; es decir, la degradación de procedimientos

22 22 Sandra Dinora Orantes Jiménez Acentúan en que el software trabajando es la primera medida del progreso. Se produce poca documentación. Pocos artefactos. Basadas en heurísticas provenientes de prácticas de producción de código. Especialmente preparados para cambios durante el proyecto. Impuestas internamente (por el equipo) que es altamente colaborativo y existen pocos roles, bien definidos. Proceso menos controlado, con pocos principios. El progreso se mide por cada entregable tangible al final de una iteración. El progreso se mide en términos de datos específicos que exigen artefactos entregables, documentos de diseño, proyectos de prueba y revisiones de código. Se produce mucha documentación. Más Artefactos. Basadas en normas provenientes de estándares seguidos por el entorno de desarrollo. Cierta resistencia a los cambios, debido a que al planeación tiene que rehacerse y se corre el riesgo de desechar todo el trabajo y volver a empezar todo de nuevo. Impuestas externamente y en ocasiones es necesario combinar las metodologías para llegar al buen termino de los proyectos y cumplir así con la planificación establecida, por otra parte, existen más roles que controlar. Proceso mucho más controlado, con numerosas políticas/normas que ayudan a acotar la planificación de cada etapa. bien intencionados que conducen a actividades, a menudo definidas como Codificación de Vaquero.

23 Calidad de Software en el uso de Metodologías Ágiles para el Desarrollo de Software 23 No existe contrato tradicional o al menos, es bastante flexible. El cliente es parte del equipo de desarrollo. Grupos pequeños (menos de 10 integrantes) y trabajando en el mismo sitio y tienen que ser personal altamente calificado en el tipo de desarrollo. Menos énfasis en la arquitectura del software. Poco énfasis en el seguimiento de una Gestión de Calidad. Existe un contrato prefijado, para la planificación y tiempos establecidos. El cliente interactúa con el equipo de desarrollo mediante reuniones, pero no se considera parte del equipo, solamente aporta opiniones y da su visto bueno. Grupos grandes y posiblemente distribuidos, no necesariamente con experiencia en el nuevo desarrollo. La arquitectura del software es esencial y se expresa mediante modelos. Mucho énfasis en el seguimiento de una Gestión de Calidad. Tabla 1. Comparativo entre Metodologías Ágiles y Metodologías Tradicionales (No Ágiles)

24 24 Sandra Dinora Orantes Jiménez Referencias [1] Craig Larman, Victor R, Basili. Iterative and Incremental Development: A Brief History. Published by the IEEE Computer Society. June [2] Véase la liga de Alianza Ágil: [3] Véase la liga del Manifiesto Ágil: [4] Ron Jeffries, Ann Anderson, Chet Hendrickson. Extreme Programming Installed (Paperback). The XP Series. December [5] Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas. [6] Véanse los principios en la liga: [7] Barry Boehm, R. Turner. Balancing Agility and Discipline: A Guide for the Perplexed. Boston, MA: Addison-Wesley. ISBN Appendix A, pages [8] Laplante, P.A., C.J. Neill (February 2004). The Demise of the Waterfall Model Is Imminent and Other Urban Myths. ACM Queue 1 (10). Retrieved on [9] Coleman and Verbruggen: A quality software process for rapid application development, Software Quality. Journal 7, p [10] Cohen, D., Lindvall, M., & Costa, P. An introduction to agile methods. In Advances in Computers (pp. 1-66). New York: Elsevier Science, [11] Abrahamsson, P., Warsta, J., Siponen, M.T., & Ronkainen, J. New Directions on Agile Methods: A Comparative Analysis. Proceedings of ICSE'03, , [12] Scott Ambler. Architecture and Design: Supersize Me. Dr. Dobb s Magazine. February 15, (Dr. Dobb s Portal The World of Software Development: [13] Scott Ambler. Architecture and Design: Bridging the Distance. Dr. Dobb s Magazine. August 12, (Dr. Dobb s Portal The World of Software Development: [14] Martin Fowler. Using an Agile Software Process with Offshore Development. Significant Revisions: 18 Jul 06: Updated again after a trip to India. Added a lot of small changes around the document. (Véase liga:

25 Calidad de Software en el uso de Metodologías Ágiles para el Desarrollo de Software 25 [15] Aydin, M.N., Harmsen, F., Slooten, K. v., & Stagwee, R. A. An Agile Information Systems Development Method in use. Turk J Elec Engin, 12(2), , [16] Abrahamsson, P., Salo, O., Ronkainen, J., & Warsta, J. Agile Software Development Methods: Review and Analysis. VTT Publications 478, [17] Aydin, M.N., Harmsen, F., Slooten van K., & Stegwee, R.A. On the Adaptation of An Agile Information Systems Development Method. Journal of Database Management Special issue on Agile Analysis, Design, and Implementation, 16(4), 20-24, [18] Somerville, I., Software Engineering, Sixth Edition. Pearson Education Limited, [19] Pressman, R. S., Software Engineering. A Practitioner s Approach, Fifth Edition. McGraw-Hill International, [20] McCall, J.A., Cavano, J.P., A Framework for the Measurement of Software Quality, ACM Software Quality Assurance Workshop, [21] Bohem, B.W., Software Engineering Economics, Prentice Hall, [22] ISO/IEC 9126: Software Engineering - Product quality, International Organization for Standardization, [23] Paulk, M., Capability Maturity Model for Software, Software Engineering Institute, Carnegie Mellon University, [24] ISO/IEC 12207: AMENDMENT 1:2002: Information technology - Software life cycle processes, International Organization for Standardization, [25] ISO/IEC 15504: Information technology - Process assessment, International Organization for Standardization, [26] Agile Alliance at

Programación Extrema. Ing. Sebastian Priolo

Programación Extrema. Ing. Sebastian Priolo Programación Extrema Ing. Sebastian Priolo Metodologías Ágiles Menos orientadas a los documentos. Orientadas al código. El cambio es bienvenido. Procesos que cambian NO son predictivos Son adaptables Ejemplos

Más detalles

The Agile Manifesto. Que es el Manifiesto Ágil?

The Agile Manifesto. Que es el Manifiesto Ágil? Que es el Manifiesto Ágil? Lista de principios y valores Declaración de conceptos que guían el desarrollo de software Creado en Febrero del 2001 por la alianza ágil. 17 personas representantes de: Extreme

Más detalles

Manifiesto Ágil: Historia

Manifiesto Ágil: Historia Agile Manifesto and agile principles andmanifestoagile Nombre del Paper: agileprinciples. Fecha de publicación: Febrero 2001 Publicación: www.agilemanifesto.org Autores: ( XP ) 1.Kent Beck ( XP 2.Mike

Más detalles

UNIVERSIDAD UNION BOLIVARIANA CARRERA DE INGENIERIA DE SISTEMAS

UNIVERSIDAD UNION BOLIVARIANA CARRERA DE INGENIERIA DE SISTEMAS UNIVERSIDAD UNION BOLIVARIANA CARRERA DE INGENIERIA DE SISTEMAS METODOLOGIAS AGILES PROCESO UNIFICADO AGIL (AUP) MATERIA : INGENIERIA SOFTWARE DOCENTE : LIC. ERVIN FLORES ESTUDIANTE : JORGE LUIS CORDERO

Más detalles

IT Project Management Desarrollo de Software

IT Project Management Desarrollo de Software IT Project Management Desarrollo de Software Es posible una mezcla de Waterfall y Agile? Cómo se acerca el PMBOK a Agile? Autor: Norberto Figuerola Resulta muy frecuente que se suela confundir una aproximación

Más detalles

METODOLOGÍA TRADICIONAL.

METODOLOGÍA TRADICIONAL. METODOLOGÍA TRADICIONAL. Teniendo en cuenta la filosofía de desarrollo de las metodologías, aquellas con mayor énfasis en la planificación y control del proyecto, en especificación precisa de requisitos

Más detalles

Desarrollo Ágil. Software Engineering: A Practitioner s Approach Roger S. Pressman, Ph.D. Tomás Balderas Contreras Ingeniería de Software I

Desarrollo Ágil. Software Engineering: A Practitioner s Approach Roger S. Pressman, Ph.D. Tomás Balderas Contreras Ingeniería de Software I Desarrollo Ágil Software Engineering: A Practitioner s Approach Roger S. Pressman, Ph.D. Tomás Balderas Contreras Ingeniería de Software I Coordinación de Ciencias Computacionales INAOE 2011 Preguntas

Más detalles

Período Teoría Práctica Laboratorio de crédito Electiva 3 0 0 3 Requisitos Metodología del Software

Período Teoría Práctica Laboratorio de crédito Electiva 3 0 0 3 Requisitos Metodología del Software Asignatura METODOLOGÍAS ÁGILES DE GESTIÓN Y DESARROLLO DE PROYECTOS DE TI Vigente desde: Marzo 2008 Horas semanales Unidades Período Teoría Práctica Laboratorio de crédito Electiva 3 0 0 3 Requisitos Metodología

Más detalles

Planeación del Proyecto de Software:

Planeación del Proyecto de Software: Apéndice A. Cuestionarios del Sistema Evaluador Nivel2. Requerimientos de Administración: Goal 1: Los requerimientos del sistema asociados a software están bien controlados y existe un estándar para los

Más detalles

METODOLOGÍA TRADICIONAL.

METODOLOGÍA TRADICIONAL. COMPARACIÓN DE METODOLOGÍAS METODOLOGÍA TRADICIONAL. Teniendo en cuenta la filosofía de desarrollo de las metodologías, aquellas con mayor énfasis en la planificación y control del proyecto, en especificación

Más detalles

Modelo para el Aseguramiento de Calidad en el Desarrollo de Software Libre

Modelo para el Aseguramiento de Calidad en el Desarrollo de Software Libre Modelo para el Aseguramiento de Calidad en el Desarrollo de Software Libre Cenditel, Mayo 2011 Licencia de Uso Copyright (c) 2010, Alvarez J., Solé S., Briceño R., Fundación CENDITEL. La Fundación CENDITEL

Más detalles

Tema 2. Ingeniería del Software I feliu.trias@urjc.es

Tema 2. Ingeniería del Software I feliu.trias@urjc.es Tema 2 Ciclo de vida del software Ingeniería del Software I feliu.trias@urjc.es Índice Qué es el ciclo de vida del Software? El Estándar 12207 Modelos de proceso Qué es el Ciclo de Vida del SW? Definición

Más detalles

Cómo Comprar Software de Calidad. Pablo Straub Consultor

Cómo Comprar Software de Calidad. Pablo Straub Consultor Cómo Comprar Software de Calidad Pablo Straub Consultor El Problema Testimonio de un comprador de software a medida Nos entregaron el sistema informático mucho después de la fecha original y nos costó

Más detalles

Qué es una Metodología Ágil?

Qué es una Metodología Ágil? Metodologías Ágiles Qué es una Metodología Ágil? www.agilealliance.com Las Metodologías Ágiles (AMs) valoran: Al individuo y las interacciones en el equipo de desarrollo más que a las actividades y las

Más detalles

Balanceo de metodologías Ágiles y Orientadas al Plan

Balanceo de metodologías Ágiles y Orientadas al Plan Balanceo de metodologías Ágiles y Orientadas al Plan Facultad de Ingeniería Universidad de Buenos Aires Ing. Juan Gabardini Ing. Lucas Campos (lcampos@rmya.com.ar) diciembre de 2005 75.46 Administración

Más detalles

Aplicación de una Metodología basada en Mediciones para la Gestión de Calidad de Software

Aplicación de una Metodología basada en Mediciones para la Gestión de Calidad de Software Aplicación de una Metodología basada en Mediciones para la Gestión de Calidad de Software Jorge Bozo jbozo@inf.ucv.cl Escuela de Ingeniería Informática Universidad Católica de Valparaíso Valparaíso, Chile

Más detalles

Scrum. Helder Marques

Scrum. Helder Marques Scrum Helder Marques Gerencia de proyectos Es como el helado; viene en varios sabores ( Y muchas veces engorda ) Gerencia de proyectos Gerencia de proyectos Gerencia de proyectos Un poco de historia...

Más detalles

Scrum Manager Gestión de proyectos

Scrum Manager Gestión de proyectos Scrum Manager Gestión de proyectos INTRODUCCIÓN Caos Procesos Agilidad cc-by **Maurice** LICENCIA DE USO Este es un recurso educativo abierto (OER) del proyecto Scrum Manager Los contenidos OER de ScrumManager

Más detalles

Ingeniería de Software

Ingeniería de Software Ingeniería de Software Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: http://www.dsic.upv.es/~uml http://inst.eecs.berkeley.edu/~cs169/ entre otras fuentes. Definiciones

Más detalles

Administración de la calidad del software.

Administración de la calidad del software. UNIVERSIDAD IBEROAMERICANA ESTUDIOS CON RECONOCIMIENTO DE VALIDEZ OFICIAL POR DECRETO PRESIDENCIAL DEL 3 DE ABRIL DE 1981 ADMINISTRACIÓN DE LA CALIDAD DEL SOFTWARE UNA NUEVA FORMA DE TRABAJAR TESIS Que

Más detalles

Ingeniería de Software

Ingeniería de Software Ingeniería de Software MSDN Ingeniería de Software...1 Ingeniería del Software_/_ Ingeniería y Programación...1 Análisis de Requerimientos...2 Especificación...3 Diseño...4 Desarrollo en Equipo...5 Mantenimiento...6

Más detalles

Universidad ORT Uruguay

Universidad ORT Uruguay Facultad de Ingeniería Metodología SCRUM Cátedra de Ingeniería de Software. Docente Responsable: Gastón Mousqués. Autor: Adriana Peralta 123357 2003 ÍNDICE GENERAL Introducción 2 Principales características

Más detalles

INGENIERÍA DEL SOFTWARE

INGENIERÍA DEL SOFTWARE INGENIERÍA DEL SOFTWARE Sesión No. 2 Nombre: Procesos de ingeniería del software INGENIERÍA DEL SOFTWARE 1 Contextualización La ingeniería de software actualmente es muy importante, pues con los avances

Más detalles

Tema 2. El Ciclo de Vida del Software (ISG1-ITIG)

Tema 2. El Ciclo de Vida del Software (ISG1-ITIG) Tema 2. El Ciclo de Vida del Software (ISG1-ITIG) Grupo de Ingeniería del Software Antonio José Sáenz Albanés (C.T.O) Reconocimiento No Comercial Compartir Igual - 3.0 - España 1 Objetivos del Tema Qué

Más detalles

Qué es el Modelo CMMI?

Qué es el Modelo CMMI? El principal problema que tienen las empresas en sus áreas de tecnología, así como las empresas desarrolladoras de software al iniciar un proyecto, radica en que el tiempo de vida del proyecto y el presupuesto

Más detalles

LICENCIA PROFESIONAL EN DESARROLLO DE APLICACIONES MÓVILES

LICENCIA PROFESIONAL EN DESARROLLO DE APLICACIONES MÓVILES LICENCIA MÓVILES HOJA DE ASIGNATURA CON DESGLOSE DE UNIDADES TEMÁTICAS 1. Nombre de la asignatura Metodologías Ágiles. 2. Competencias Desarrollar Aplicaciones web o móviles empleando lenguaje Java o.net,

Más detalles

Ingeniería de Software: Parte 2

Ingeniería de Software: Parte 2 Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: http://www.dsic.upv.es/~uml http://inst.eecs.berkeley.edu/~cs169/ entre otras fuentes.

Más detalles

MÉTODO PARA EL ANÁLISIS, DISEÑO Y DESARROLLO DE MICROSISTEMAS

MÉTODO PARA EL ANÁLISIS, DISEÑO Y DESARROLLO DE MICROSISTEMAS MÉTODO PARA EL ANÁLISIS, DISEÑO Y DESARROLLO DE MICROSISTEMAS Existen diversos métodos para desarrollar un sistema de información o un microsistema, pero en esencia todos parten de los mismos principios

Más detalles

Gestión y Desarrollo de Requisitos en Proyectos Software

Gestión y Desarrollo de Requisitos en Proyectos Software Gestión y Desarrollo de Requisitos en Proyectos Software Ponente: María Jesús Anciano Martín Objetivo Objetivo Definir un conjunto articulado y bien balanceado de métodos para el flujo de trabajo de Ingeniería

Más detalles

Ingeniería de Software

Ingeniería de Software Ingeniería de Software Tabla de Contenidos PARTE I INTRODUCCIÓN Capítulo 1: Evolución Los hitos en la evolución histórica del Desarrollo de Software Problemas y soluciones... Fallas, malas estimaciones

Más detalles

Modelos de Proceso Tradicionales

Modelos de Proceso Tradicionales Modelos de Proceso Tradicionales Capitulo 2,QJHQLHUtDGHO6RIWZDUH (VSHFLDOL]DFLyQHQ*HUHQFLDGH6LVWHPDVGH,QIRUPDFLyQ 8QLYHUVLGDG6DQWLDJRGH&DOL Profesor: MSc. MIGUEL ANGEL NIÑO ZAMBRANO Programación: Tiempo

Más detalles

Modelos de Madurez en la Administración de Proyectos. Prof. Bernardo López González, MAP

Modelos de Madurez en la Administración de Proyectos. Prof. Bernardo López González, MAP Modelos de Madurez en la Administración de Proyectos Prof. Bernardo López González, MAP Modelos de Madurez en la Administración de Proyectos Existen varios estándares que en materia de administración de

Más detalles

1. Introducción. 2. El concepto de calidad del software. 3. Estándares de calidad existentes. 4. La norma ISO 9000-3

1. Introducción. 2. El concepto de calidad del software. 3. Estándares de calidad existentes. 4. La norma ISO 9000-3 Contenido INGENIERIA DE SOFTWARE Tema 6: Administración de la calidad del software Presenta: David Martínez Torres Universidad Tecnológica de la Mixteca dtorres@mixteco.utm.mx Cubo 37 1. Introducción 2.

Más detalles

Son aplicables las metodologías ágiles a la dirección de megaproyectos?

Son aplicables las metodologías ágiles a la dirección de megaproyectos? Son aplicables las metodologías ágiles a la dirección de megaproyectos? Ing. Carla Fernández C, PMP 1 Metodologías Ágiles Son aplicables? Megaproyectos 2 1 El tradicional enfoque de cascada Análisis Diseño

Más detalles

Una Propuesta de Conjunción de Elementos Metodológicos en común dentro de los Enfoques ágiles para el Desarrollo de Software.

Una Propuesta de Conjunción de Elementos Metodológicos en común dentro de los Enfoques ágiles para el Desarrollo de Software. Una Propuesta de Conjunción de Elementos Metodológicos en común dentro de los Enfoques ágiles para el Desarrollo de Software. Rodolfo Meda (rodolfomeda@yahoo.com), Jorge Ierache (jierache@yahoo.com.ar).

Más detalles

BPMN vs UML. Los Requerimientos y el Modelo del Negocio. Autor: Norberto Figuerola

BPMN vs UML. Los Requerimientos y el Modelo del Negocio. Autor: Norberto Figuerola BPMN vs UML Autor: Norberto Figuerola Los Requerimientos y el Modelo del Negocio Normalmente, siempre que iniciamos un esfuerzo de desarrollo de software éste tiene como objetivo automatizar procesos del

Más detalles

GESTIÓN DE SOFTWARE INFORME SOBRE. Evaluación de Productos UNIVERSIDAD DE LA REPUBLICA - FACULTAD DE INGENIERÍA. Grupo 2

GESTIÓN DE SOFTWARE INFORME SOBRE. Evaluación de Productos UNIVERSIDAD DE LA REPUBLICA - FACULTAD DE INGENIERÍA. Grupo 2 UNIVERSIDAD DE LA REPUBLICA - FACULTAD DE INGENIERÍA GESTIÓN DE SOFTWARE INFORME SOBRE Evaluación de Productos Grupo 2 Marcelo Caponi 3.825.139-0 Daniel De Vera 4.120.602-3 José Luis Ibarra 4.347.596-3

Más detalles

Metodología básica de gestión de proyectos. Octubre de 2003

Metodología básica de gestión de proyectos. Octubre de 2003 Metodología básica de gestión de proyectos Octubre de 2003 Dentro de la metodología utilizada en la gestión de proyectos el desarrollo de éstos se estructura en tres fases diferenciadas: Fase de Éjecución

Más detalles

El modelo de ciclo de vida cascada, captura algunos principios básicos:

El modelo de ciclo de vida cascada, captura algunos principios básicos: Ciclo de Vida del Software Un modelo de ciclo de vida define el estado de las fases a través de las cuales se mueve un proyecto de desarrollo de software. El primer ciclo de vida del software, "Cascada",

Más detalles

Revista Granma Ciencia. Vol. 16, no. 2 mayo - agosto 2012 ISSN 1027-975X

Revista Granma Ciencia. Vol. 16, no. 2 mayo - agosto 2012 ISSN 1027-975X Título: Gestión de la Calidad en el Ciclo de Desarrollo del Software de proyectos que usan metodologías ágiles. Title: Quality Management in Development Cycle Software projects using agile methodologies.

Más detalles

4.1.1_Reunión de Planificación de Sprint (Sprint Planning Meeting) 4.1.2_Objetivo del Sprint (Sprint Goal) 4.1.4_Revisión de Sprint (Sprint Review)

4.1.1_Reunión de Planificación de Sprint (Sprint Planning Meeting) 4.1.2_Objetivo del Sprint (Sprint Goal) 4.1.4_Revisión de Sprint (Sprint Review) 1_Visión general de SCRUM 2_Teoría de Scrum 3_El Equipo Scrum (Scrum Team) 3.1_El Dueño de Producto (Product Owner) 3.2_El Equipo de Desarrollo (Development Team) 3.3_El Scrum Master 4_Eventos de Scrum

Más detalles

El Proceso Unificado de Desarrollo de Software

El Proceso Unificado de Desarrollo de Software El Proceso de Desarrollo de Software Ciclos de vida Métodos de desarrollo de software El Proceso Unificado de Desarrollo de Software 1 Fases principales del desarrollo de software Captura de requisitos:

Más detalles

BPM: Articulando Estrategia, Procesos y Tecnología

BPM: Articulando Estrategia, Procesos y Tecnología BPM: Articulando Estrategia, Procesos y Tecnología Resumen: La competitividad es el imaginario que dirige las acciones empresariales en la actualidad. Lograr condiciones que permitan competir con mayores

Más detalles

Tema 3. Procesos ligeros de desarrollo de software.

Tema 3. Procesos ligeros de desarrollo de software. Ingeniería del Software II 2011 Tema 3. Procesos ligeros de desarrollo de software. Tipos de procesos ligeros. Tipos de procesos ligeros: Desarrollo Rápido de Software. Desarrollo Ágil. Programación Extrema.

Más detalles

ANÁLISIS Y DISEÑO DE SISTEMAS DEPARTAMENTO DE CIENCIAS E INGENIERÍA DE LA COMPUTACIÓN

ANÁLISIS Y DISEÑO DE SISTEMAS DEPARTAMENTO DE CIENCIAS E INGENIERÍA DE LA COMPUTACIÓN ANÁLISIS Y DISEÑO DE SISTEMAS DEPARTAMENTO DE CIENCIAS E INGENIERÍA DE LA COMPUTACIÓN Clase 6: Ingeniería de Requerimientos Metododología y Ejemplo Primer Cuatrimestre 2015 Mg. María Mercedes Vitturini

Más detalles

1. PROCESOS DEL PROJECT MANAGEMENT

1. PROCESOS DEL PROJECT MANAGEMENT INDICE 1. PROCESOS DEL PROJECT MANAGEMENT 1.1 Procesos del Proyecto 1.2 Grupos de Proceso 1.3 Interacciones del Proceso 1.4 Adaptación de las interacciones del proceso 2. AREAS DEL CONOCIMIENTO DEL PROJECT

Más detalles

Ciclo de vida del Software

Ciclo de vida del Software Tema 2: Ciclo de vida del Software Marcos López Sanz Índice Qué es el ciclo de vida del Software? La norma 12207-2008 Modelos de desarrollo Qué es el Ciclo de Vida del SW? Es una sucesión de etapas por

Más detalles

Enginyeria del Software III

Enginyeria del Software III Enginyeria del Software III Sessió 3. L estàndard ISO/IEC 15504 Antònia Mas Pichaco 1 Introducción El proyecto SPICE representa el mayor marco de colaboración internacional establecido con la finalidad

Más detalles

Preguntas y respuestas (rebatibles) sobre metodologías de desarrollo de software

Preguntas y respuestas (rebatibles) sobre metodologías de desarrollo de software Preguntas y respuestas (rebatibles) sobre metodologías de desarrollo de software Introducción Este documento recopila las preguntas, opiniones y respuestas que se produjeron en un pequeño curso sobre las

Más detalles

Rational Unified Process (RUP)

Rational Unified Process (RUP) Rational Unified Process (RUP) Este documento presenta un resumen de Rational Unified Process (RUP). Se describe la historia de la metodología, características principales y estructura del proceso. RUP

Más detalles

RESUMEN DE COBIT 4.1. Los recursos de TI identificados en COBIT se pueden definir como sigue [2]:

RESUMEN DE COBIT 4.1. Los recursos de TI identificados en COBIT se pueden definir como sigue [2]: RESUMEN DE COBIT 4.1 COBIT es un marco de trabajo y un conjunto de herramientas de Gobierno de Tecnología de Información (TI) que permite a la Gerencia cerrar la brecha entre los requerimientos de control,

Más detalles

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes: PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes: 1. Proporcionar una guía de actividades para el trabajo en equipo. (Guía detallada para el desarrollo

Más detalles

Metodologías Ágiles Desde una Perspectiva de Project Management. Fernando Contreras Velásquez Project Management & Engineering Services.

Metodologías Ágiles Desde una Perspectiva de Project Management. Fernando Contreras Velásquez Project Management & Engineering Services. Metodologías Ágiles Desde una Perspectiva de Project Management Fernando Contreras Velásquez Project Management & Engineering Services. Ing. Fernando Contreras Velásquez: PMP, PMI-SP, PMI-RMP Acerca del

Más detalles

cilred.com CICLO DE VIDA DEL SOFTWARE & METODOLOGIAS DE DESARROLLO DE SOFTWARE ING. EDUARDO CRUZ ROMERO eduar14_cr@hotmail.com cilred.

cilred.com CICLO DE VIDA DEL SOFTWARE & METODOLOGIAS DE DESARROLLO DE SOFTWARE ING. EDUARDO CRUZ ROMERO eduar14_cr@hotmail.com cilred. cilred.com CICLO DE VIDA DEL SOFTWARE & METODOLOGIAS DE DESARROLLO DE SOFTWARE ING. EDUARDO CRUZ ROMERO eduar14_cr@hotmail.com cilred.com CICLO DE VIDA DEL SOFTWARE Para apreciar un poco más el problema

Más detalles

Mantenimiento del Software

Mantenimiento del Software Mantenimiento del Software S3 Francisco Ruiz, Macario Polo Grupo Alarcos Dep. de Informática ESCUELA SUPERIOR DE INFORMÁTICA UNIVERSIDAD DE CASTILLA-LA MANCHA http://alarcos.inf-cr.uclm.es/doc/mso/ Ciudad

Más detalles

Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente

Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente En este capítulo definimos los requisitos del modelo para un sistema centrado en la mejora de la calidad del código fuente.

Más detalles

E a v l a ua u c a i c ón ó n de d l e Pr P oc o e c s e o s o de d Ing n e g n e i n er e ía a de d e So S f o twa w r a e

E a v l a ua u c a i c ón ó n de d l e Pr P oc o e c s e o s o de d Ing n e g n e i n er e ía a de d e So S f o twa w r a e Proceso de Ingeniería de Software Evaluación del Proceso de Ingeniería de Software 3. Evaluación del proceso 3.1. Modelos del proceso de evaluación 3.2. Métodos del proceso de evaluación 2 Los objetivos

Más detalles

John E. Santos González Rubally Guzman Luis G Rios

John E. Santos González Rubally Guzman Luis G Rios John E. Santos González Rubally Guzman Luis G Rios Introducción: Planificación y Desarrollo de Sistemas Éste capítulo es bien importante para nosotros los IT, ya que en el mismo se cubren tópicos esenciales

Más detalles

Ideas generales del Seminario

Ideas generales del Seminario Ideas generales del Seminario IT en la Organización Organizaciones Orientadas a Proyectos Marco de un Proyecto IT Proyectos Metodológicos Profesionales y Perfiles involucrados Caso aplicado: Proyectos

Más detalles

Programación orientada a

Programación orientada a Programación orientada a objetos con Java Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Objetivos Presentar los conceptos de la programación

Más detalles

Implementación de Procesos Business Process Management BPM Services Oriented Architecture SOA

Implementación de Procesos Business Process Management BPM Services Oriented Architecture SOA Implementación de Procesos Business Process Management BPM Services Oriented Architecture SOA Título Área específica de la publicación 2 Implementación de Procesos Business Process Management BPM Services

Más detalles

Tema 2º: Calidad del software

Tema 2º: Calidad del software Tema 2º: Calidad del software 2.1 Calidad del software 2.2 Aseguramiento de la calidad del software 2.3 Gestión de la calidad del software 2. 4 Control de la calidad del software 2.5 Sistema de calidad

Más detalles

Mejores prácticas para el éxito de un sistema de información. Uno de los problemas de información dentro de las empresas es contar con datos

Mejores prácticas para el éxito de un sistema de información. Uno de los problemas de información dentro de las empresas es contar con datos ANEXO VI. Mejores prácticas para el éxito de un sistema de información Uno de los problemas de información dentro de las empresas es contar con datos importantes del negocio y que éstos estén aislados

Más detalles

Curso: El Proceso de Desarrollo de Software

Curso: El Proceso de Desarrollo de Software Curso: El Proceso de Desarrollo de Software EL PROCESO DE DESARROLLO DE SOFTWARE... 1 OBJETIVO...1 CONTENIDO...1 BIBLIOGRAFÍA...4 DOCENTE...4 MODALIDAD DEL DESARROLLO...4 El proceso de Desarrollo de Software

Más detalles

Prof. Juan José Díaz Nerio. Foro de Tecnología : Gestión de la Calidad del Software. Domingo 16 Noviembre 2014

Prof. Juan José Díaz Nerio. Foro de Tecnología : Gestión de la Calidad del Software. Domingo 16 Noviembre 2014 Prof. Juan José Díaz Nerio. Foro de Tecnología : Gestión de la Calidad del Software. Domingo 16 Noviembre 2014 Agenda La Crisis del Software Conceptos asociados a Calidad Atributos de Calidad Funciones

Más detalles

Industrialice sus aplicaciones para lograr el alto rendimiento

Industrialice sus aplicaciones para lograr el alto rendimiento Technology Industrialice sus aplicaciones para lograr el alto rendimiento Los ejecutivos de TI continúan buscando métodos con los cuales poder aumentar, de manera medible, tanto la eficiencia como la efectividad

Más detalles

Implantación de Gobierno de TI (Tecnologías de la Información) Resumen Ejecutivo.

Implantación de Gobierno de TI (Tecnologías de la Información) Resumen Ejecutivo. Implantación de Gobierno de TI (Tecnologías de la Información) Resumen Ejecutivo. ÍNDICE 1. INTRODUCCIÓN...3 2. LA NECESIDAD DEL CAMBIO DEL ROL DE TI...5 3. NECESIDAD DE GOBIERNO DE TI...6 4. COBIT Y GOBIERNO

Más detalles

Contenidos. Parte I - Introducción Capítulo 1 - Evolución. Capítulo 2 Condiciones de trabajo en el Desarrollo de Software

Contenidos. Parte I - Introducción Capítulo 1 - Evolución. Capítulo 2 Condiciones de trabajo en el Desarrollo de Software IX Contenidos Prólogo... XIX Prefacio... XXI Guía de lectura...xxiii Parte I - Introducción Capítulo 1 - Evolución 1.1 Introducción... 2 1.2 Los hitos en la evolución histórica del desarrollo de software...

Más detalles

Ciclo de Ingeniería de Software

Ciclo de Ingeniería de Software Ciclo de Ingeniería de Software Desarrollo Iterativo de Software Aplicaciones Cliente Servidor Aplicaciones OO Universidad FASTA 2008 Licencia Contenido Introducción Conceptos Planificación Calidad del

Más detalles

SW-CMM (CMM for Software)

SW-CMM (CMM for Software) Sinopsis de los modelos SW-CMM y CMMI Juan Palacio 1.0 Abril - 2006 Síntesis de los modelos de procesos CMM y CMMI para desarrollo y mantenimiento de software. CMMI (y previamente CMM) puede emplearse

Más detalles

Calidad de Software - CMM

Calidad de Software - CMM Calidad de Software - CMM Herramientas y Procesos de Software Facultad de Informática, Ciencias de la Comunicación y Técnicas Especiales Lic. Cecilia Palazzolo Año 2008 1 Qué es un modelo de procesos?

Más detalles

CALIDAD DEL SOFTWARE TESTS DE EXAMEN ACTUALIZADO SEP. 2010 TEMA 4 MODELOS, METODOLOGÍAS Y ESTÁNDARES: ESTRATEGIAS PARA ALCANZAR LA CALIDAD

CALIDAD DEL SOFTWARE TESTS DE EXAMEN ACTUALIZADO SEP. 2010 TEMA 4 MODELOS, METODOLOGÍAS Y ESTÁNDARES: ESTRATEGIAS PARA ALCANZAR LA CALIDAD TEMA 4 MODELOS, METODOLOGÍAS Y ESTÁNDARES: ESTRATEGIAS PARA ALCANZAR LA CALIDAD 1. MODELOS, METODOLOGÍAS Y ESTÁNDARES 1.1 Definiciones 01 [Feb. 2006] [Feb. 2007] Cuál de las siguientes frases referidas

Más detalles

CMMI : mejora del proceso en Fábricas de Software

CMMI : mejora del proceso en Fábricas de Software CMMI : mejora del proceso en Fábricas de Software Cecilia Rigoni Brualla Caelum, Information & Quality Technologies Introducción Introducción Idea / Necesidad Investigación Diseño Inversión PRODUCTO Introducción

Más detalles

MODELOS Y SISTEMAS DE CALIDAD EN LA EDUCACIÓN

MODELOS Y SISTEMAS DE CALIDAD EN LA EDUCACIÓN MODELOS Y SISTEMAS DE CALIDAD EN LA EDUCACIÓN OBJETIVO GENERAL El alumno analizará, la importancia de brindar productos y servicios con calidad; así como estudiar los fundamentos, autores y corrientes

Más detalles

Modelos y Normas Disponibles de Implementar

Modelos y Normas Disponibles de Implementar Modelos y Normas Disponibles de Implementar AmericaVeintiuno tiene capacidad para asesorar a una organización en base a diferentes modelos o normativas enfocadas al mercado informático. A partir de determinar

Más detalles

Construcción y Pruebas de Software

Construcción y Pruebas de Software UNIVERSIDAD DE CARABOBO Facultad Experimental de Ciencias y Tecnología Departamento de Computación Construcción y Pruebas de Software Elaborado por: Gustavo Bazán Francisco Rosas Bárbula, Junio de 2012

Más detalles

Planificación y Control de Proyectos

Planificación y Control de Proyectos Planificación y Control de Proyectos Planificando y controlando un proyecto Los proyectistas y los equipos de proyecto varían mucho en cuanto a como desarrollan sus proyectos, en la universidad y en los

Más detalles

Gestión de proyectos ágil: conceptos básicos

Gestión de proyectos ágil: conceptos básicos Gestión de proyectos ágil: conceptos básicos NST-0003 Rev. 0.1 http://www.navegapolis.net Juan Palacio, 2006 Gestión de proyectos clásica Introducción Los entornos de negocio de muchos sectores han experimentado

Más detalles

Cómo gestionar proyectos en condiciones de riesgo

Cómo gestionar proyectos en condiciones de riesgo 1 de 8 CLAVES PARA EL ÉXITO DE LOS PROYECTOS Cómo gestionar proyectos en condiciones de riesgo Las empresas necesitan desarrollar proyectos que exigen estructuras y tratamientos distintos a los tradicionales.

Más detalles

DESARROLLO DE SOFTWARE CON CALIDAD PARA UNA EMPRESA

DESARROLLO DE SOFTWARE CON CALIDAD PARA UNA EMPRESA DESARROLLO DE SOFTWARE CON CALIDAD PARA UNA EMPRESA Resumen AUTORIA CARLOS CABALLERO GONZÁLEZ TEMATICA INFORMÁTICA ETAPA ESO-BACHILLERATO-CFGM(ESI,ASI,DSI) Se describe la revolución que supuso la incursión

Más detalles

Tema 1 Introducción a la Ingeniería de Software

Tema 1 Introducción a la Ingeniería de Software Tema 1 Introducción a la Ingeniería de Software Curso Ingeniería de Software UMCA Profesor Luis Gmo. Zúñiga Mendoza 1. Software En la actualidad todo país depende de complejos sistemas informáticos. Podemos

Más detalles

A partir de este capítulo se introducen términos, probablemente nuevos para el

A partir de este capítulo se introducen términos, probablemente nuevos para el CAPITULO 3. PSP 0 Y PSP 0.1 A partir de este capítulo se introducen términos, probablemente nuevos para el lector que tienen que ver en su totalidad con PSP. También se dan a conocer los formatos, "scripts

Más detalles

Interacción Persona - Ordenador

Interacción Persona - Ordenador Interacción Persona - Ordenador Diseño de la interfaz en la Ingeniería del Software Dr. Pedro Latorre Dra. Sandra Baldassarri Dra. Eva Cerezo Ingeniería del Software Ingeniería del Software: Definición

Más detalles

PROPUESTA PÚBLICA NACIONAL SCRUM

PROPUESTA PÚBLICA NACIONAL SCRUM BLU Concept PROPUESTA PÚBLICA NACIONAL SCRUM Mexico First Kristian Mir Cervantes Director Comercial (55) 5515-5205 5277-0371 kristian.mir@blu.com.mx www.blu.com.mx Índice Descripción de la Propuesta...

Más detalles

Capitulo 4. Comparación entre la Representación Continua y la. Representación por Etapas

Capitulo 4. Comparación entre la Representación Continua y la. Representación por Etapas Capitulo 4. Comparación entre la Representación Continua y la Representación por Etapas "In God we trust, all others bring data." Deming Tal como ya se mencionó al final del Capitulo 2, dentro del CMMI

Más detalles

Diplomado Gestión de Tecnologías de Información (TI); Incrementa Tu Valor en TI

Diplomado Gestión de Tecnologías de Información (TI); Incrementa Tu Valor en TI Diplomado Gestión de Tecnologías de Información (TI); Incrementa Tu Valor en TI Duración 120 horas Objetivo general: La complejidad de los problemas que enfrenta TI es cada vez mayor. Con demasiada frecuencia,

Más detalles

ADMINISTRACIÓN DE PROYECTOS

ADMINISTRACIÓN DE PROYECTOS ADMINISTRACIÓN DE PROYECTOS QUÉ ES LA ADMINISTRACIÓN DE PROYECTOS? Es la planeación, organización, dirección y control de los recursos para lograr un objetivo a corto plazo. También se dice que la administración

Más detalles

3-2-8. Participantes

3-2-8. Participantes 1.- DATOS DE LA ASIGNATURA Nombre de la asignatura: Carrera: Clave de la asignatura: Horas teoría-horas práctica-créditos: METODOLOGIAS AGILES Licenciatura en Informática 3-2-8 2.- HISTORIA DEL PROGRAMA

Más detalles

Ingeniería de Software. Procesos. Proyecto de Ingeniería. Metodologías. Metodologías. Metodologías. Metodologías de desarrollo

Ingeniería de Software. Procesos. Proyecto de Ingeniería. Metodologías. Metodologías. Metodologías. Metodologías de desarrollo Ingeniería de Software Procesos Laboratorio de Ingeniería de Software 2004 La ingeniería de software trata sobre la aplicación de practicas y métodos para construir productos de software que cumplan las

Más detalles

Los procesos de software. Un proceso de software se define como un:

Los procesos de software. Un proceso de software se define como un: Los procesos de software Un proceso de software se define como un: "conjunto de actividades, métodos, prácticas y transformaciones que las personas usan para desarrollar y mantener software y sus productos

Más detalles

UNIVERSIDAD DE TALCA FACULTAD DE INGENIERÍA ESCUELA DE INGENIERÍA CIVIL EN COMPUTACIÓN

UNIVERSIDAD DE TALCA FACULTAD DE INGENIERÍA ESCUELA DE INGENIERÍA CIVIL EN COMPUTACIÓN UNIVERSIDAD DE TALCA FACULTAD DE INGENIERÍA ESCUELA DE INGENIERÍA CIVIL EN COMPUTACIÓN Estudio de las fortalezas y debilidades que exhiben los métodos ágiles en el contexto chileno de desarrollo de software:

Más detalles

ISO 9001 Auditing Practices Group Guidance on:

ISO 9001 Auditing Practices Group Guidance on: International Organization for Standardization Forum International Accreditation ISO 9001 Auditing Practices Group Guidance on: Auditando sistemas de gestión en base electrónica (EBMS) 1. Introducción

Más detalles

Desarrollo de un ciclo de mejora Construcción de un método de diagnóstico

Desarrollo de un ciclo de mejora Construcción de un método de diagnóstico Desarrollo de un ciclo de mejora Construcción de un método de diagnóstico Alicia Mon, Marcelo Estayno, Andrea Arancio {aliciamon, mestayno, andrea.arancio}@fibertel.com.ar G.I.S. UNLaM 1 Resumen. Las pequeñas

Más detalles

SW-CMM Capability Maturity Model for Software

SW-CMM Capability Maturity Model for Software SW-CMM Capability Maturity Model for Software Introducción 1986 Comienzan Estudios. SEI (Software Engineering Institute - UCM). 1991 Nace CMM v1.0 1994 CMM v1.1 P-CMM SE-CMM SW-CMM CMMs IPD-CMM CMMI SA-CMM

Más detalles

PDSM: PROCESO DE DESARROLLO DE SOFTWARE MIXTO COMBINANDO RUP Y SCRUM. Mariani, María Florencia Okabe, Evangelina

PDSM: PROCESO DE DESARROLLO DE SOFTWARE MIXTO COMBINANDO RUP Y SCRUM. Mariani, María Florencia Okabe, Evangelina PDSM: PROCESO DE DESARROLLO DE SOFTWARE MIXTO COMBINANDO RUP Y SCRUM Mariani, María Florencia Okabe, Evangelina Agenda Introducción Metodologías RUP SCRUM Proyectos PDSM: Definición y Aplicación del proceso

Más detalles

5 La Gerencia de Proyectos

5 La Gerencia de Proyectos 5 La Gerencia de Proyectos La gran mayoría de las civilizaciones han tenido como factor común la ejecución de grandes hazañas dignas de recordarse, que han quedado plasmadas en los libros de historia y

Más detalles

Guía de preparación. Agile Scrum Master de EXIN

Guía de preparación. Agile Scrum Master de EXIN Guía de preparación Agile Scrum Master de EXIN Edición Junio 2015 Copyright 2015 EXIN All rights reserved. No part of this publication may be published, reproduced, copied or stored in a data processing

Más detalles

Sede y localidad Licenciatura en Sistemas

Sede y localidad Licenciatura en Sistemas Sede y localidad Carrera Viedma Licenciatura en Sistemas Programa de la asignatura Asignatura: Ingeniería de Software III Año calendario: 2012 Carga horaria semanal: 6 Carga horaria total: 96 Cuatrimestre:

Más detalles