AGILA2: Acceso Generalizado a Internet desde LinEx Avanzado 2. Subproyecto 5
|
|
- Germán Olivera Pérez
- hace 8 años
- Vistas:
Transcripción
1 AGILA2: Acceso Generalizado a Internet desde LinEx Avanzado 2 Subproyecto 5 Estudio de nuevas metodologías aplicables al software libre y la adaptación sobre las métricas actuales. Javier Corral García y José Luis González Sánchez GÍTACA Grupo de Investigación de Ingeniería Telemática Aplicada y Comunicaciones Avanzadas UNIVERSIDAD DE EXTREMADURA
2 Índice de contenido I. Introducción...4 II. Análisis de las métricas más usadas en estos momentos en los desarrollos software La metodología catedral sobre el software libre La metodología bazar sobre el software libre Desarrollo de un proyecto Bazar, ventajas e inconvenientes Éxito frente al modelo catedral: Metodologías actuales aplicables a un proyecto Estructura general de Merise Estructura general de SSADM Estructura general de Métrica versión Métrica versión Metodologías ágiles Metodologías ágiles versus metodologías tradicionales Metodologías ágiles respecto a la metodología bazar XP (Programación extrema)...19 La programación extrema y el software libre Metodología Crystal Desarrollo de software adaptable Scrum Desarrollo manejado por rasgos Método de desarrollo de sistema dinámico...24 III. Diseño y propuesta de soluciones para los problemas planteados Propuesta de metodología y métrica a aplicar en un desarrollo software Por qué una metodología bazar? Por qué una metodología catedral? Entre la catedral y el bazar Seguridad por oscuridad Acercando el bazar a la catedral...28 Buscando la calidad del software...28 Community source...28 Hacia un modelo híbrido...29 Herramientas para la fase libre...31 IV. Conclusiones
3 3
4 I. Introducción E n el movimiento del software libre cada vez se va haciendo más necesario aplicar métodos e ideas tradicionales de ingeniería software, con el fin de alcanzar una calidad óptima del mismo, y al mismo tiempo mejorar la planificación y el tiempo de desarrollo. Partiendo del hecho de que actualmente muchas empresas se plantean la necesidad de aplicar algún tipo de metodología de desarrollo software, el presente documento pretende cubrir uno de los objetivos del proyecto Agila 2: impulsar el uso de métodos de ingeniería software, sin perder de vista los requerimientos especiales que tiene el software libre. De este modo, a través de un extenso y elaborado estado del arte, pretendemos orientar el desarrollo de una metodología que aporte calidad a cualquier proyecto software, sirviendo como medio para que toda empresa pueda seguir una estructura de buen método de desarrollo. La metodología de un proyecto de desarrollo software define siempre quién debe hacer qué, cuándo y cómo debe hacerlo. En concreto, la metodología es el conjunto de procedimientos, técnicas y herramientas además de una documentación adicional, que permite a los desarrolladores crear software. Puede seguir uno o varios modelos de ciclos de vida, los cuales indican qué es lo que hay que obtener a lo largo del desarrollo del proyecto, pero no cómo hacerlo. El movimiento del software libre, unido a la explosión mediática de Internet, supuso la aparición de nuevos métodos de desarrollo. Las nuevas metodologías rompían con lo establecido por las metodologías tradicionales, gestionadas por responsables que distribuyen y supervisan todo el trabajo de forma cerrada. En 1997, Eric S. Raymond escribió un ensayo a favor del software libre titulado The Cathedral & the Bazaar (La catedral y el bazar) [1]. En él, Raymond analizaba el surgimiento de GNU/Linux y un proyecto de software libre creado para comprobar las diferencias existentes entre los modelos de desarrollo tradicionales y los emergentes: el modelo de construcción cuidadoso y planificado de una catedral (del software propietario) y el bazar (del código abierto), en permanente crecimiento pero aparentemente caótico. Así, detallaba el enfoque cerrado desarrollado bajo una gestión centralizada propia de las empresas comerciales de software, con la comunidad global de código abierto responsable del desarrollo y éxito creciente de Linux. Por otro lado, las metodologías ágiles también se centran en una organización menos formal y jerárquica, intentando enfocar las metodologías tradicionales hacia los resultados y el factor humano, dando más valor al individuo y a la colaboración con el cliente, y eliminando actividades sobre la elaboración y mantenimiento de documentos formales de especificación que no tengan relación directa con el producto final. Mientras que la metodología bazar y las ágiles, tienen cada vez mayor éxito, las tradicionales no se han distinguido precisamente por ser exitosas, y menos aún por su popularidad, debido a su naturaleza burocrática que acaba retardando el ritmo del desarrollo en sí, siendo inadecuadas para proyectos donde el entorno sea volátil o los requisitos no se conozcan con exactitud. Sin embargo, las nuevas metodologías también se enfrentan a una serie de inconvenientes, como la falta de 4
5 intereses de los desarrolladores voluntarios, o la escasa confianza de los clientes en sistemas desarrollados de forma abierta, donde el código es accesible para cualquiera. Partiendo de que, ni la metodología bazar, ni la catedral son del todo correctas, y apoyándonos en el éxito de las metodologías ágiles así como de diversos estudios realizados con anterioridad por diversos autores, este documento justifica el aplicar al desarrollo tradicional los conceptos del software libre, de forma que, tanto desarrolladores como clientes acaben valorando los beneficios que podrían obtener creando comunidades al estilo bazar alrededor de los proyectos de desarrollo, liberando versiones constantemente de forma que pudieran ser testeadas frecuentemente, y evitando en la mayor medida posible, el problema de la seguridad por oscuridad que presenta la metodología catedral, sin subestimar la importancia de un diseño modular con un código de calidad óptima. 5
6 II. Análisis de las métricas más usadas en estos momentos en los desarrollos software 1. La metodología catedral sobre el software libre S e trata del método tradicional que, hoy en día, emplean la mayoría de los fabricantes de software. En el estilo catedral, el desarrollo de software está dirigido de manera centralizada, y el proceso de desarrollo está restringido a un grupo de programadores, quienes trabajan fuertemente en la depuración del código con la finalidad de que los usuarios puedan ver menos errores en cada versión producida [2]. Describimos a continuación sus características principales dentro del enfoque tradicional del software propietario: Software de gran tamaño construido (a semejanza de una catedral) de manera cuidadosa y planificada por expertos. Personal seleccionado previamente y en un número adecuado para desarrollar el proyecto, teniendo siempre en cuenta que a partir de un punto determinado, los costes aumentan al incrementarse excesivamente el número de personas involucradas, además de ralentizar el desarrollo en lugar de acelerarlo. Las versiones beta no son publicadas hasta prácticamente llegar al final del proyecto, debido principalmente a que de no ser así, contendrían innumerables errores. Dichos errores son muy difíciles de encontrar, y es por ello que se requiere una fase de pruebas al finalizar el desarrollo. El código fuente es propietario y nadie más puede tener acceso a él. La figura del jefe de proyecto es muy influyente en todo el desarrollo, debiendo ser especialmente clave en la fase de diseño. La Figura 1 muestra las principales fases del modelo de desarrollo tradicional: requisitos, diseño, implementación, pruebas y mantenimiento. 6
7 Figura 1: Modelo de desarrollo tradicional Los proyectos de software libre tienen cabida en esta metodología pese a que, a priori, podemos pensar que, este modelo de creación de catedrales, solo representa a procesos como el modelo de cascada clásico o las diferentes vertientes del Rational Unified Process. En este sentido, algunos proyectos abiertos también necesitan entregas espaciadas en el tiempo que siguen una planificación muy estricta, con pocas entregas de software y ciclos largos con varias etapas entre cada una de las entregas. Además, para Raymond [1], estos proyectos libres se encuentran fuertemente centralizados, ya que unas pocas personas son las que realizan el diseño e implementación del software. Las tareas que desempeñan estas personas, así como sus roles, están perfectamente definidos y alguien que quisiera entrar a formar parte del equipo de desarrollo necesitaría que se le asignara una tarea y un rol según las necesidades del proyecto [3]. Por último, en entornos tradicionales, un grupo de individuos conduce el desarrollo, mientras que los usuarios ni contribuyen ni tienen acceso al código. En el software libre, potencialmente cualquiera tiene el derecho a acceder y modificar el código fuente de una aplicación, sin embargo, y en este sentido, un sistema libre típico presenta una fase de catedral en la primera parte de su historia evolutiva [4]. 2. La metodología bazar sobre el software libre E n la metodología bazar, el desarrollo de software no es dirigido de manera centralizada, la construcción de la aplicación se realiza con la participación de una comunidad de interesados que libera frecuentemente cada versión desarrollada, con la finalidad de que otros puedan depurar el código [2]. Los principales beneficios de este modelo son una rápida evolución y depuración, independencia y disponibilidad permanente y la producción de un software estable de alta calidad y bien documentado. Detallamos a continuación sus características más destacables: A diferencia de la metodología bazar, al comenzar el desarrollo únicamente existe una idea, pero ésta no es del todo clara, y se va perfilando a medida que avanza el proyecto. 7
8 El código fuente es abierto y está disponible públicamente (cualquiera puede leerlo y modificarlo), y son frecuentes las liberaciones de versiones, aunque en la mayor parte de los casos, éstas estén incompletas o sean inestables. El proceso de depuración de un proyecto de software libre es sinónimo de la fase de mantenimiento del ciclo de vida tradicional de un proyecto software [4]. Un red de usuarios y desarrolladores revisa y modifica el código producido, de modo que el viejo dicho el trabajo compartido es más llevadero describe las razones por las que la mayoría de los proyectos de software libre tienen éxito [5]. El número de colaboradores que trabajan simultáneamente en el proyecto es ilimitado. Esto unido a la característica anterior, y al hecho de que la mayoría de ellos son además usuarios del propio software, hace que los errores estén siendo encontrados continuamente, con facilidad y de manera paralela al desarrollo. La estructura organizativa no está clara, de hecho, no suele existir jerarquía alguna en estos proyectos. Sí existen una serie de normas para poder participar en el proyecto, pero el compromiso es libre, pudiendo cada colaborador dedicarle el tiempo que estime oportuno. Los usuarios sin perfil técnico pueden sugerir nuevos requisitos, escribir documentación y tutoriales, o poner de manifiesto problemas de usabilidad [4]. A continuación veamos una tabla que enfrenta las principales características vistas en el desarrollo tradicional y en el de software libre: Desarrollo tradicional Construcción de catedrales: objetivos requerimientos planteados detalladamente antemano. Desarrollo de software libre y Colaboración en bazares: cada desarrollador de aporta las funcionalidades que estima recomendables. Jerarquía de liderazgo descendente. Liderazgo emergente, no impuesto. Asignación de tareas. Cada desarrollador es libre de elegir en qué trabajar. Equipos estables de tamaño controlado. Innumerables colaboradores, con alta rotación. Control estricto y seguimiento continuo de Disponibilidad total de los desarrolladores para actividades. invertir el tiempo que consideren oportuno. Desarrolladores ubicados generalmente en la Desarrolladores rara vez comparten localización misma localización. física. Motivación extrínseca. Motivación intrínseca. Tabla 1: Características de los desarrollos tradicionales y de software libre 2.1. Desarrollo de un proyecto Bazar, ventajas e inconvenientes Los proyectos bazar a menudo surgen por las necesidades de un usuario-desarrollador, y 8
9 suelen comenzarse a partir de trabajos ya realizados, siendo la reusabilidad de código básica en este tipo de modelo de desarrollo. A partir de ahí empieza a ser esencial la colaboración de los usuarios que se involucren en el proyecto, siendo importante la figura de los líderes, que deben cumplir una serie de características como son la humildad ante el resto de desarrolladores, la capacidad para motivarles, y la virtud de reconocer en ellos ideas mejores o innovaciones adecuadas para continuar el proyecto por otros caminos. La comunidad de voluntarios trabaja sobre el código fuente, modificando dicho código, las funcionalidades de la aplicación, reportando y corrigiendo errores y, solicitando nuevas características. Siendo enviado continuamente este trabajo a los líderes del proyecto, con el fin de añadirse al núcleo estable de la aplicación (Figura 2) [6]. Figura 2: Modelo de desarrollo bazar [6] Algunas críticas recibidas por el trabajo de Raymond [1] se basan en el hecho de que su obra es únicamente un ensayo, sin rigor científico y asistemático. Algunos críticos ven en Linux más un modelo de catedral que no un bazar, quejándose además del intento de Raymond de generalizar el caso de Linux a todo el software libre, donde creen que realmente existe una estructura piramidal de mando, con responsabilidades distribuidas aunque no de manera explícita. A primera vista resulta obvio pensar que una metodología como la que describimos se enfrenta siempre a una serie de desafíos, como puede ser el hecho de que los desarrolladores no participen en los proyectos bajo contratos laborales, sino que lo hagan libremente sin que ninguna autoridad centralizada defina sus funcionalidades. El desarrollo es distribuido por toda la red, con la dificultad que entraña coordinar a un innumerable grupo de colaboradores con alta rotación. Según Bruce Perens, líder del proyecto Debian en 1997, intentar liderar esta comunidad es como arrear gatos. A todo esto habría que añadir además el desafío que supone bazar frente a distintos paradigmas tradicionales. Por ejemplo la conocida como ley de Brooks : añadir más personal a un proyecto retrasado, lo retrasa más [7], que explica cómo la necesidad de intercomunicación se ve 9
10 minimizada por la elegancia del código y la modularidad del diseño, se contrapone directamente a la ley de Linus (bautizada por Eric S. Raymond [1]): dados muchos ojos, todos los errores serán obvios, que reduce de manera indiscutible la necesidad de un equipo dedicado a pruebas. Por contra, algunos estudios establecen que la aplicación de la ley de Linus puede llevar a problemas en el mantenimiento y la seguridad del software [8] [9], aludiendo al bajo número de contribuciones realizadas por gente realmente externa al desarrollo, es decir, colaboradores que no pertenecen al núcleo central que trabaja en los sistemas, debido a que ciertos proyectos a la larga desconfían de contribuciones externas, precisamente por miedo a la introducción de códigos con errores difíciles de encontrar. Raymond mantiene que si la citada ley no fuese cierta, un proyecto tan complejo como el kernel de Linux, habría fracasado por causa de interacciones imprevistas y errores muy profundos pasados inadvertidos durante el desarrollo del proyecto. Sin embargo, bastaría fijarse en la relativa ausencia de errores en el código de Linux para demostrar su certeza, y por añadidura, la superioridad del modelo de desarrollo del software libre frente al del software propietario. Así, mientras que en el modelo catedral usado en software propietario los errores suelen necesitar meses de revisión exhaustiva para comenzar a confiar en que todos han sido eliminados, en el bazar se asume a priori que los errores son evidentes o empiezan a serlo a raíz de que son publicados ante el innumerable grupo de colaboradores que participa en cada proyecto, liberándose versiones constantemente y bordeando así las desmoralizaciones que se sufren en el software propietario cuando las versiones largamente esperadas no resultan perfectas [1]. Otros paradigmas tradicionales a los que se enfrenta la metodología bazar son, por ejemplo, la ineficiencia de las líneas de código paralelas: que el software libre soluciona usando mecanismos de resolución de conflictos y una selección de la mejor opción; la criticidad de la ubicación física, frente a la minimización de la necesidad de comunicación entre desarrolladores como consecuencia de la modularidad y la autoexplicación del código; o, finalmente, el impacto causado por la alta rotación de desarrolladores: mitigado gracias a diseños sencillos y de calidad, en cuyos códigos es innecesaria la documentación adicional debido a su alta calidad Éxito frente al modelo catedral: Sin embargo, es evidente el éxito de la metodología bazar en proyectos como Linux, a la altura de los sistemas operativos comerciales más elaborados y con una notable presencia de sus servidores en la red. Como muestra de dicho éxito, basta con mencionar que entre las entidades que usan Linux se encuentra la Bolsa de Nueva York. Por otro lado, un estudio sobre la distribución Red Hat en su versión 7.1 reveló que ésta en particular posee más de 30 millones de líneas de código real. Utilizando el modelo de cálculo de costos COCOMO, puede estimarse que esta distribución requeriría programadores por año para su desarrollo. De haber sido desarrollado por medios convencionales de código cerrado, hubiera costado más de mil millones de dólares en los Estados Unidos [10]. Desde principios del año 2001 ha ido creciendo el apoyo y respaldo por parte de importantes fabricantes de hardware (como IBM, Sun Microsystems, Hewlett-Packard y Novell: preinstalando Linux en algunos modelos de portátiles y ordenadores de sobremesa), y el respaldo de compañías de software que permiten que aplicaciones como Nero, Java, Google Earth y Desktop, Adobe 10
11 Reader y Flash, RealPlayer y Yahoo! Messenger estén disponibles para Linux. De este modo, actualmente son bastantes las empresas de ámbito internacional que comercializan soluciones basadas en Linux, como IBM o Novell, así como miles de PYMES que ofrecen productos o servicios basados en esta tecnología. Otros proyectos ejemplos del buen funcionamiento de la tecnología bazar en el software libre son Samba y Apache. Samba implementa todos los protocolos de conectividad de Windows y su éxito hizo que compañías como Silicon Graphics, Sun e IBM lo usen como parte de sus estaciones de trabajo. Apache es desde 1996 el servidor HTTP más usado en la red, alcanzando en 2005 una cuota de mercado del 70%, posicionándose a fecha de Noviembre de 2008 en un 50.34%. En la Figura 3 podemos ver el número de sitios web para cada servidor a nivel mundial, donde Apache, en primer lugar, presenta sitios, Microsoft (con su producto IIS: Internet Information Server) en segundo lugar, alcanza el número de sitios y, Google en tercer puesto (producto GFE: Google Front End) con sitios. Figura 3: Número de sitios web por servidor (Ago00 Nov08) Fuente: 3. Metodologías actuales aplicables a un proyecto L a metodología de un proyecto de desarrollo software define siempre quién debe hacer qué, cuándo y cómo debe hacerlo. En concreto, la metodología es el conjunto de procedimientos, técnicas y herramientas además de una documentación adicional, que permite a los desarrolladores crear software. Puede seguir uno o varios modelos de ciclos de vida, los cuales indican qué es lo que hay que obtener a lo largo del desarrollo del proyecto, pero no cómo hacerlo. Por norma general consta de un conjunto de fases y subfases: módulos, etapas, pasos, etc., de forma que los desarrolladores son guiados a la hora de seleccionar las técnicas a usar en cada estado del proyecto, facilitándoles la planificación, gestión, control y evaluación de los proyectos. De esta 11
12 forma, especifica: cómo se debe dividir un proyecto en etapas, qué tareas hay que realizar en cada etapa, qué salidas se producen y cuándo, qué restricciones se aplican, qué herramientas se utilizan, cómo se gestiona y controla un proyecto. Por tanto, la metodología representa el camino para desarrollar la aplicación software de manera sistemática, sirviendo de manual o guía puesta en práctica al abordar la construcción de un sistema. Las metodologías usan un ciclo de vida determinado y siguen las fases de especificación, diseño, etc. de un modo concreto, algunas incluso apoyadas por herramientas hechas a medidas. Lamentablemente no existe una metodología de software universal, dadas las características particulares de cada proyecto: equipo de desarrollo, recursos, etc.. Además, en el desarrollo convencional (sin metodología) los resultados finales son impredecibles, ya que no hay forma de controlar lo que está sucediendo en el proyecto, afectando los cambios organizativos de forma negativa en el proceso de desarrollo. Las características deseables y destacables de cualquier metodología son las siguientes: Existencia de reglas predefinidas. Cobertura total del ciclo de desarrollo. Verificaciones intermedias. Planificación y control. Comunicación efectiva. Utilización sobre un abanico amplio de proyectos. Fácil formación. Herramientas CASE. Actividades que mejoren el proceso de desarrollo. Soporte para el mantenimiento. Soporte para la reutilización de software. Las metodologías (tanto comerciales como en el ámbito académico y de investigación) pueden ser agrupadas en estructuradas y orientadas a objetos. En el enfoque estructurado podemos destacar Métrica versiónes 2 y 3, Merise, SSADM, etc. y en el enfoque orientado a objetos: Métrica versión 3 (en parte), RUP, XP, etc. Veamos a continuación las principales metodologías de desarrollo estructuradas gubernamentalmente: Merise en Francia, SSADM en Reino Unido, y finalmente Métrica 3 en España Estructura general de Merise MERISE empezó a sentar sus bases en 1972 gracias a un equipo universitario de ingenieros de Aix-en-Provence, viendo la luz la primera versión a finales de En Septiembre de 1977, el proyecto fue iniciado por el Centre Technique Informatique del Ministerio de Industria Francés para cubrir las necesidades de las empresas, así como de la propia administración, finalizando en Mayo de 1978 y estableciendo MERISE como metodología de análisis y diseño de sistemas de 12
13 información. Esta metodología aportó un ciclo de vida más largo que los existentes hasta la fecha, materializándose en un conjunto definido de etapas, e incluyendo dos ciclos complementarios, uno de abstracción y otro de decisión. El primero recoge el proyecto en base a tres niveles de abstracción: conceptual, organizativo y físico. Distinguiéndose además dos subniveles en cada nivel: un modelo de datos y otro de tratamientos. Las fases de la metodología MERISE son: Estudio preliminar. Estudio detallado. Implementación. Realización y puesta en marcha Estructura general de SSADM El gobierno británico planteó la necesidad de crear una metodología que desarrolló posteriormente entre la Central Computing Telecommunications Agency (CCTA) y Learmonth and Burchett Management Systems (LBMS), dando como resultado la metodología SSADM (Structures Systems Analysis and Design Method). Los aspectos más destacables de SSADM son: Énfasis en los usuarios: sus requisitos y participación. Definición del proceso de producción: qué hacer, cuándo y cómo. Tres puntos de vista: datos, eventos y procesos. Máxima flexibilidad en herramientas y técnicas de implementación. SSADM proporciona un conjunto de procedimientos para llevar a cabo el análisis y diseño, pero tiene grandes carencias. En concreto, no cubre aspectos como la planificación estratégica ni entra en la construcción del código Estructura general de Métrica versión 2 Se trata de una metodología propuesta por el Ministerio de Administraciones Públicas del Gobierno de España, para que todas las organizaciones sigan el mismo modelo, y unificar de esa forma los criterios para lograr una mayor homogeneidad y eficiencia en las aplicaciones informáticas. Métrica versión 2 surgió a raíz de una revisión realizada sobre el proyecto inicial de Métrica, con el objetivo básico de obtener una nueva versión, debido a varios motivos: principalmente por 13
14 mejorar la versión anterior fechada en 1989, responder a la demanda por parte de los centros informáticos de una referencia para el desarrollo de sistemas de información, contar con una metodología compatible con EuroMétodo, y finalmente aprovechar un mercado de herramientas CASE que había crecido ampliamente desde que se realizó la primera versión de Métrica. Fue diseñada por un grupo de trabajo constituido por personal procedente de distintos ministerios y organismos de la administración española, con la asistencia externa de la empresa Coopers & Lybrand. Se trata de una guía formal, aunque flexible en su utilización, para la planificación, análisis, diseño y construcción e implantación de sistemas software, empleando conceptos y técnicas de ingeniería de sistemas y tecnología de la información [11]. Para construir en base a Métrica versión 2, es necesario pasar por unas etapas intermedias que aseguran la calidad en la aplicación que está siendo construida, mediante la elaboración de un marco homogéneo de referencia (para verificar que los productos creados tengan niveles aceptables de calidad), y el cumplimiento de las previsiones iniciales de plazo y costes Métrica versión 3 [12]: Métrica 3 es actualmente la metodología oficial de desarrollo de aplicaciones informáticas de la administración española. Comenzando su elaboración en 1996, su punto de partida es la versión 2.1 mencionada anteriormente. Se trata de una metodología mixta, pues cubre tanto el desarrollo estructurado como el orientado a objetos, e incluye procesos como los interfaces (que no forman parte de lo que se entiende como ciclo de vida). Además, tiene en cuenta la tecnología cliente/servidor y el desarrollo de interfaces gráficas de usuario (IGU). Está basada en el modelo de procesos del ciclo de vida de desarrollo ISO/IEC (Information Technology Software Life Cycle Processes) así como en la norma ISO/IEC SPICE (Software Process Improvement And Assurance Standars Capability Determination), y otros estándares que se muestran en la Figura 4. Figura 4: Composición de Métrica Versión 3 Los objetivos que persigue son, principalmente: proporcionar un marco estratégico para el desarrollo de los sistemas de información dentro de las organizaciones; enfatizar el análisis de requisitos para que, de esta forma, los productos satisfagan las necesidades de los usuarios; mejorar 14
15 la productividad de los departamentos de sistemas de información, permitiendo una mayor adaptabilidad a los cambios y reutilización; desarrollar procesos que permitan una comunicación más fluida entre todos los miembros involucrados en la producción de software; y facilitar la operación y mantenimiento de los productos obtenidos. Métrica 3 por una parte consta de procesos principales: relativos a la planificación, desarrollo y mantenimiento de los sistemas de información, y por otra, de interfaces que definen actividades orientadas a la mejora y perfeccionamiento de los procesos principales, con el fin de garantizar la consecución del objetivo del desarrollo. De esta forma, cada proceso se divide en actividades, teniendo cada actividad una descripción y una tabla de tareas propias. Cada tarea a su vez tiene la correspondiente descripción, definiendo los productos de entrada que necesita, los que genera de salida, así como las prácticas necesarias para llevar a cabo la tarea y los participantes. Una de las principales características de Métrica 3 es que es flexible en su estructura, al no ser obligatorio seguir todos los procesos o actividades, es decir, se adapta en función de las necesidades de cada proyecto. Tampoco es necesario realizar dichas actividades secuencialmente, ya que en ocasiones será deseable realizar su ejecución en paralelo. Del mismo modo que ISO/IEC 12207, Métrica está orientada al proceso, siendo en su versión 3 los siguientes: Planificación de Sistemas de Información (PSI). Desarrollo de Sistemas de Información (DSI). Dividido a su vez en cinco subprocesos: Estudio de Viabilidad del Sistema (EVS). Análisis del Sistema de Información (ASI). Diseño del Sistema de Información (DSI). Construcción del Sistema de Información (CSI). Implantación y Aceptación del Sistema (IAS). Mantenimiento de Sistemas de Información (MSI). Además, como hemos mencionado anteriormente, proporciona también cuatro interfaces que definen actividades orientadas a mejorar y perfeccionar los principales procesos, cara a garantizar la consecución del objetivo del desarrollo. En concreto se trata de la Gestión de Proyectos (GP), Seguridad (SEG), Aseguramiento de la Calidad (CAL) y Gestión de la Configuración (GC). Por otro lado, distingue entre las técnicas de desarrollo, en las que engloba los casos de uso, diagramas de clases y de flujo de datos, etc.; las técnicas de gestión de proyectos, donde entrarían las técnicas de estimación, staffing size, planificación, etc.; y las prácticas: análisis de impacto, presentaciones, prototipado, etc Metodologías ágiles El desarrollo ágil de software es un paradigma basado en procesos ágiles, que intenta evitar los inconvenientes de las metodologías tradicionales, promoviendo iteraciones en el desarrollo a lo 15
16 largo de todo el ciclo de vida del proyecto, y enfocándose hacia los resultados y el factor humano. Esta es la filosofía de las metodologías ágiles, las cuales dan mayor valor al individuo, a la colaboración con el cliente, y al desarrollo incremental del software con iteraciones muy cortas. Es decir, al igual que el software libre, se centran en una organización menos formal y jerárquica y más centrada en la persona, de forma que se produzca un sistema de gestión con la cantidad correcta de funcionalidades, incluyendo el sistema final el número mínimo de características necesarias para satisfacer al cliente. Además, eliminan actividades sobre la elaboración y mantenimiento de documentos formales de especificación que no tengan relación con el producto final. Pese a ser enfoques muy diferentes, las metodologías de desarrollo ágiles y el software libre presentan muchas concordancias como, por ejemplo, los principios y valores básicos [13]. Así, se asemejan en varios puntos: las bases de ambas aproximaciones se establecieron hace bastantes años, sin embargo han cobrado interés de un tiempo a esta parte, tanto la metodología del software libre [14], como las ágiles. Ambas rompen con lo establecido en las metodologías tradicionales, y lo que es más importante, han tenido éxito (basta referenciar los proyectos MozillaFirefox [15] y C3). Este enfoque está mostrando su efectividad en proyectos con requisitos muy cambiantes, y cuando se exige reducir drásticamente los tiempos de desarrollo pero manteniendo una alta calidad. Las metodologías ágiles están revolucionando la manera de producir software y, a la vez, generando un amplio debate entre sus seguidores y quienes, por escepticismo o convencimiento, no las ven como alternativa para las metodologías tradicionales. La Figura 5 [16], muestra una gráfica que expresa como crece el coste de introducir cambios, conforme avanza la vida del proyecto, en proyectos de enfoque tradicional, y en aquellos desarrollados mediante metodologías ágiles. Figura 5: Coste de introducir cambios en proyectos de enfoque tradicional y de metodologías ágiles [16] En este apartado se presenta resumidamente el contexto en el que surgen las metodologías ágiles, sus valores, principios y comparación con las metodologías tradicionales. Además, se 16
17 describen brevemente las principales propuestas, especialmente Programación Extrema (extreme Programming, XP) la metodología ágil más popular en la actualidad [17]. Estas metodologías están especialmente orientadas para proyectos que necesitan de una solución a medida, con una elevada simplificación, y sin dejar de lado el aseguramiento en la calidad del producto. Las metodologías ágiles se centran en el factor humano y el producto software, es decir, dan más valor al individuo, a la colaboración del cliente y al desarrollo incremental del software con iteraciones muy cortas [18]. Partiendo de ahí, la base de cualquier metodología ágil es siempre minimizar los riesgos, desarrollando software en periodos cortos de tiempo. De este modo, el software desarrollado en una unidad de tiempo es denominado iteración (del ciclo de vida), debiendo durar ésta del orden de una a cuatro semanas. Asimismo, cada iteración incluye planificación, análisis de requerimientos, diseño, codificación, revisión y documentación. Un punto importante es que cada iteración no debe añadir demasiada funcionalidad, pero sí ser en sí mismo una versión incompleta pero sin errores, volviendo a evaluar las prioridades del proyecto al finalizar dicha iteración. El manifiesto ágil está fundamentado en una serie de valores: se orienta al individuo y las interacciones del equipo de desarrollo sobre el proceso y las herramientas, siendo las personas el principal factor de éxito de un proyecto software, de forma que es más importante construir previamente un buen equipo de trabajo y dejar que sea éste quien construya el entorno de desarrollo en base a sus necesidades; es más esencial la idea de desarrollar software que funciona, que conseguir una buena documentación (la regla es no producir documentos, a menos que sean necesarios de forma inmediata para tomar una decisión importante); hay que dar más importancia a la colaboración con el cliente que a la negociación de un contrato, de forma que exista una interacción constante entre el cliente y el equipo de desarrollo, lo que marcará la marcha del proyecto, asegurando su éxito; por último, responder a los cambios más que seguir estrictamente un plan, pues la habilidad de responder a los cambios que puedan surgir a lo largo del proyecto (en los requisitos, en la tecnología, en el equipo) es otro factor que determina el éxito o fracaso del mismo, por lo tanto la planificación no debe ser estricta sino flexible y abierta [18] y [19]. Por otro lado, los métodos ágiles suelen ser criticados debido a su documentación técnica: escasa y poco disciplinada, debido a que dan prioridad a las comunicaciones cara a cara en lugar de a la documentación formal. Los equipos desarrolladores suelen estar localizados en una oficina abierta, denominadas habitualmente plataformas de lanzamiento (bullpen), donde tienen cabida revisores, diseñadores de iteración, escritores de documentación y ayuda, así como directores de proyecto Metodologías ágiles versus metodologías tradicionales A continuación se muestra una tabla comparativa con las principales diferencias entre las metodologías tradicionales y las recientes metodologías ágiles: 17
18 Metodologías tradicionales Metodologías ágiles Normas de estándares seguidos por el entorno Heurísticas de prácticas de producción de de desarrollo. código. Resistencia a los cambios. Preparadas para cambios durante el desarrollo del proyecto. Reglas de trabajo impuestas externamente. Reglas de trabajo impuestas por el propio equipo. Proceso controlado, con numerosas políticas y Proceso menos normas. principios. Contrato previo. controlado, con pocos Flexibilidad en los contratos debido a la preparación para responder a los cambios. Distintas reuniones del cliente con el equipo de El cliente es parte del equipo de desarrollo. desarrollo, durante determinadas etapas del proyecto. Grupos grandes y distribuidos en diferentes Grupos pequeños trabajando en el mismo sitio. tareas. Más artefactos y roles. La arquitectura software es expresándose mediante modelos. Pocos artefactos y roles. esencial, Menos énfasis en la arquitectura del software. Tabla 2: Metodologías tradicionales versus metodologías ágiles Metodologías ágiles respecto a la metodología bazar Software libre (bazar) Metodologías ágiles El desarrollo se basa en la colaboración entre desarrolladores de todo el mundo. Las interacciones suelen realizarse a través del correo electrónico, pero las individualidades de cada programador son obvias. Más importancia de los recursos humanos y las relaciones entre ellos, frente a procesos y herramientas. Sin embargo, al contrario que en el software libre, se incentiva la conciencia de equipo. La principal documentación del proyecto reside en el propio código fuente, de donde se extraerá la documentación técnica necesaria para cada momento. El código fuente en sí, es la base principal de toda la documentación. El software operativo es más importante que toda la documentación burocrática, no relacionada con el producto final, propia de las metodologías tradicionales. El personal involucrado en el proyecto suele Es más importante la colaboración con el compaginar roles de desarrollador y cliente, de cliente que el propio contrato o su negociación forma que es como si el propio cliente en sí en sí. fuera quien desarrollase el sistema. El desarrollo y evolución del proyecto es Se trata de una metodología preparada para guiado por el cliente. Inicialmente no tienen un responder ante cualquier cambio en contra del diseño fijo definido, si no que suele ser un seguimiento de la planificación inicial. diseño básico que va creciendo a medida que se va desarrollando el proyecto. Tabla 3: Metodologías ágiles respecto a la metodología bazar 18
19 Como hemos mencionado con anterioridad, es obvio que ambos enfoques presentan numerosos planteamientos en común. La tabla anterior muestra otra comparativa, en este caso con las concordancias entre las metodologías ágiles y el software libre. A continuación, veremos métodos derivados del ágil entre los que se encuentra Scrum, Crystal Clear (cristal transparente), Programación extrema, desarrollo de software adaptativo, feature driven development, y el método de desarrollo de sistemas dinámicos XP (Programación extrema) Se trata de una metodología ágil centrada en potenciar las relaciones interpersonales como clave para el éxito en desarrollo de software, promoviendo el trabajo en equipo, preocupándose por el aprendizaje de los programadores, y propiciando un buen clima de trabajo. La programación extrema se basa en cuatro principios básicos: realimentación continua entre el cliente y el equipo de desarrollo, comunicación fluida entre todos los participantes, simplicidad en las soluciones implementadas y coraje para enfrentar los cambios. Se define especialmente adecuada para proyectos con requisitos imprecisos y muy cambiantes [20]. Sin duda, la metodología de programación extrema está siendo la más utilizada de todas las metodologías ágiles. Se basa en esos cuatro valores principales que hemos mencionado: comunicación, retroalimentación, simplicidad y coraje, estableciendo la comprobación como fundamento del desarrollo, de forma que cada programador escribe pruebas durante la producción de su código, que van siendo integradas en el proceso de forma constante. XP construye así un proceso de diseño evolutivo, que se basa en volver a refactorizar un sistema simple en cada iteración. Todo el diseño se centra en la iteración actual y no se hace nada anticipadamente para necesidades futuras. El resultado es un proceso de diseño disciplinado, lo que es más, combina la disciplina con adaptabilidad de una manera que, indiscutiblemente, la hace la más desarrollada entre todas las metodologías adaptables [21]. La técnica usada por XP para especificar los requisitos del software se denomina historias de usuario. En ella se utilizan formatos, a través de los cuales, el cliente describe las características que desea que tenga el sistema, refiriéndose tanto a requisitos funcionales como no funcionales, de una forma breve y explícita, de forma que cada historia pueda ser implementada por los programadores en unas semanas. Por otro lado, esta metodología hace uso de los siguientes roles: programador, que además de desarrollar el código escribe las pruebas unitarias; cliente, que escribe las historias de usuario mencionadas, y además describe las pruebas funcionales de las mismas; encargado de pruebas: ayuda al cliente a escribir las pruebas funcionales; encargado de seguimiento, que va verificando el acierto producido en las estimaciones para ver si coincide el tiempo real con el estimado y, realiza el seguimiento del proceso en cada iteración; entrenador, responsable del proceso global, que vigila que se siga el proceso correctamente; consultor: miembro externo del equipo con conocimientos externos específicos; y, por último, el gestor: vínculo entre cliente y programadores. Con todo lo anterior, veremos a continuación el proceso que sigue la metodología XP. En todas las iteraciones de este ciclo tanto el cliente como el programador aprenden. No se debe 19
20 presionar al programador a realizar más trabajo que el estimado, ya que se perderá calidad en el software o no se cumplirán los plazos. De la misma forma el cliente tiene la obligación de manejar el ámbito de entrega del producto, para asegurarse que el sistema tenga el mayor valor de negocio posible con cada iteración [18]: 1. El cliente define el valor de negocio a implementar. 2. El programador estima el esfuerzo necesario para su implementación. 3. El cliente selecciona qué construir, de acuerdo con sus prioridades y las restricciones de tiempo. 4. El programador construye ese valor de negocio. 5. Vuelve al paso 1. Figura 6: Proceso de la metodología XP [18] La programación extrema y el software libre Existe un nivel considerablemente alto de solapamiento entre los valores adoptados por las metodologías ágiles y la programación extrema en particular, y los enumerados por Raymond [1], sobre el desarrollo de código abierto [13]. Los pilares básicos en los que se sostiene la programación extrema y que mencionábamos anteriormente guardan gran relación con el software libre: Retroalimentación continua entre el cliente y el equipo de desarrollo: la metodología bazar describe la retroalimentación entre los desarrolladores, y entre estos y los clientes (Raymond expresa en sus reglas: Lo más grande después de tener buenas ideas es reconocer las buenas ideas de sus usuarios. Esto último es a veces lo mejor, y publique rápido y a menudo y escuche a sus clientes [1]). Comunicación fluida entre todos los participantes: precisamente el ideal del software libre está basado en compartir ideas mediante el código fuente, principal elemento de la comunicación entre los desarrolladores. Raymond [1] destaca la necesidad de la comunicación y las habilidades sociales para llevar a cabo un proyecto de manera exitosa. Simplicidad en las soluciones implementadas: en una de las reglas de Raymond expone: La perfección (en diseño) se alcanza no cuando ya no hay nada que añadir, si no cuando ya no hay algo que quitar [1]. 20
http://www.informatizate.net
http://www.informatizate.net Metodologías De Desarrollo De Software María A. Mendoza Sanchez Ing. Informático - UNT Microsoft Certified Professional - MCP Analísta y Desarrolladora - TeamSoft Perú S.A.C.
Más detallesElementos requeridos para crearlos (ejemplo: el compilador)
Generalidades A lo largo del ciclo de vida del proceso de software, los productos de software evolucionan. Desde la concepción del producto y la captura de requisitos inicial hasta la puesta en producción
Más detallesGestión de la Configuración
Gestión de la ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 1 ESTUDIO DE VIABILIDAD DEL SISTEMA... 2 ACTIVIDAD EVS-GC 1: DEFINICIÓN DE LOS REQUISITOS DE GESTIÓN DE CONFIGURACIÓN... 2 Tarea EVS-GC 1.1: Definición de
Más detallesCiclo de vida y Metodologías para el desarrollo de SW Definición de la metodología
Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología La metodología para el desarrollo de software es un modo sistemático de realizar, gestionar y administrar un proyecto
Más detallesIntroducción. Definición de los presupuestos
P o r q u é e l p r e s u p u e s t o d e b e s e r e l c a m i n o a s e g u i r p a r a g a r a n t i z a r e l é x i t o d e s u e m p r e s a? Luis Muñiz Economista Introducción El aumento de la incertidumbre
Más detalles3. GESTIÓN DE CONFIGURACIÓN DE SOFTWARE
3. GESTIÓN DE CONFIGURACIÓN DE SOFTWARE Software Configuration Management (SCM) es una disciplina de la Ingeniería de Software que se preocupa de [Ber92] [Ber84] [Bou98] [Mik97]: Identificar y documentar
Más detalles4.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 detallesMantenimiento de Sistemas de Información
de Sistemas de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 1 ACTIVIDAD MSI 1: REGISTRO DE LA PETICIÓN...4 Tarea MSI 1.1: Registro de la Petición... 4 Tarea MSI 1.2: Asignación de la Petición... 5 ACTIVIDAD
Más detallesSolución de una Intranet bajo software Open Source para el Gobierno Municipal del Cantón Bolívar [IOS-GMCB] Gobierno Municipal del Cantón Bolívar
Gobierno Municipal del Cantón Bolívar Versión: Solución de una Intranet bajo software Open Source para el Gobierno Municipal del Cantón Bolívar [IOS-GMCB] Plan de Desarrollo de Software Universidad
Más detallesPLAN DE MEJORAS. Herramienta de trabajo. Agencia Nacional de Evaluación de la Calidad y Acreditación
PLAN DE MEJORAS Herramienta de trabajo Agencia Nacional de Evaluación de la Calidad y Acreditación Índice 1 Introducción...3 2 Pasos a seguir para la elaboración del plan de mejoras...5 2.1 Identificar
Más detallesINSTRODUCCION. Toda organización puede mejorar su manera de trabajar, lo cual significa un
INSTRODUCCION Toda organización puede mejorar su manera de trabajar, lo cual significa un incremento de sus clientes y gestionar el riesgo de la mejor manera posible, reduciendo costes y mejorando la calidad
Más detallesTema 3 Metodologías de Desarrollo de Software
Ingeniería del Software Ingeniería del Software de Gestión Tema 3 Metodologías de Desarrollo de Software Félix Óscar García Rubio Crescencio Bravo Santos Índice 1. Definiciones 2. Objetivos 3. Conceptos
Más detallesPlanificación de Sistemas de Información
Planificación de Sistemas de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS...1 ACTIVIDAD 1: INICIO DEL PLAN DE SISTEMAS DE INFORMACIÓN...4 Tarea 1.1: Análisis de la Necesidad del...4 Tarea 1.2: Identificación
Más detallesPlanificación de Sistemas de Información
Planificación de Sistemas de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 1 ACTIVIDAD 1: INICIO DEL PLAN DE SISTEMAS DE INFORMACIÓN... 4 Tarea 1.1: Análisis de la Necesidad del... 4 Tarea 1.2: Identificación
Más detallesEl 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 detallesMETODOLOGÍ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 detallesIntroducción a las redes de computadores
Introducción a las redes de computadores Contenido Descripción general 1 Beneficios de las redes 2 Papel de los equipos en una red 3 Tipos de redes 5 Sistemas operativos de red 7 Introducción a las redes
Más detallesSÍNTESIS Y PERSPECTIVAS
SÍNTESIS Y PERSPECTIVAS Los invitamos a observar, a identificar problemas, pero al mismo tiempo a buscar oportunidades de mejoras en sus empresas. REVISIÓN DE CONCEPTOS. Esta es la última clase del curso.
Más detallesNorma ISO 9001: 2008. Sistema de Gestión de la Calidad
Norma ISO 9001: 2008 Sistema de Gestión de la Calidad Hemos recibido una solicitud de información a través de nuestra Web (www.grupoacms.com). Próximamente un comercial de ACMS se pondrá en contacto con
Más detallesMARCO DE COOPERACIÓN CON LAS UNIDADES DE INFORMÁTICA DISTRIBUIDAS
MARCO DE COOPERACIÓN CON LAS UNIDADES DE INFORMÁTICA DISTRIBUIDAS Concepción Hortigüela Hortigüela Directora de la Oficina de Planificación Estratégica y Relaciones Oficina de Planificación Estratégica
Más detallesMETODOLOGÍ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 detallesPMI. Pulso de la profesión Informe detallado. Gestión de carteras
PMI Pulso de la profesión Informe detallado Gestión de carteras Puntos destacados del estudio Las organizaciones más exitosas serán aquellas que descubran cómo diferenciarse. Las organizaciones reconocen
Más detallesPRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE
PRUEBAS DE SOFTWARE La prueba del software es un elemento crítico para la garantía de la calidad del software. El objetivo de la etapa de pruebas es garantizar la calidad del producto desarrollado. Además,
Más detallesSistema de Gestión de la Seguridad de la Información, UNE-ISO/IEC 27001
Sistema de Gestión de la Seguridad de la Información, UNE-ISO/IEC 27001 Aníbal Díaz Gines Auditor de SGSI Certificación de Sistemas Applus+ Sistema de Gestión de la Seguridad de la Información, UNE-ISO/IEC
Más detallesProyecto Fin de Carrera
Proyecto Fin de Carrera Gestión del Proyecto para una Plataforma online de intercambio, compra o venta de ayudas técnicas. Consultora: Ana Cristina Domingo Troncho Autor: Álvaro Fanego Lobo Junio de 2013
Más detallesMetodologí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 detallesModelos de Ciclo de Vida de Desarrollo de Software en el Contexto de la Industria Colombiana de Software
Modelos de Ciclo de Vida de Desarrollo de Software en el Contexto de la Industria Colombiana de Software Hugo F. Arboleda Jiménez. MSc. Docente-Investigador, Facultad de Ingenierías, Universidad de San
Más detallesOperación 8 Claves para la ISO 9001-2015
Operación 8Claves para la ISO 9001-2015 BLOQUE 8: Operación A grandes rasgos, se puede decir que este bloque se corresponde con el capítulo 7 de la antigua norma ISO 9001:2008 de Realización del Producto,
Más detallesSERVICIO DE CONSULTORÍA DE CALIDAD PARA CLÍNICAS DENTALES
SERVICIO DE CONSULTORÍA DE CALIDAD PARA CLÍNICAS DENTALES Conozca mejor, las ventajas de tener implantado un Sistema de Calidad de Centros y Servicios Dentales UNE 179001 y un Sistema de Gestión de Calidad
Más detallesMetodologí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 detallesActividades para mejoras. Actividades donde se evalúa constantemente todo el proceso del proyecto para evitar errores y eficientar los procesos.
Apéndice C. Glosario A Actividades de coordinación entre grupos. Son dinámicas y canales de comunicación cuyo objetivo es facilitar el trabajo entre los distintos equipos del proyecto. Actividades integradas
Más detallesQué es Scrum? Basado en el texto Explicando Scrum a mi abuela de Jorge Serrano - MVP Visual Developer - Visual Basic
Qué es Scrum? Basado en el texto Explicando Scrum a mi abuela de Jorge Serrano - MVP Visual Developer - Visual Basic http://geeks.ms/blogs/jorge/archive/2007/05/09/explicando-scrum-a-mi-abuela.aspx Por
Más detallesISO 9001:2000 DOCUMENTO INFORMATIVO DOCUMENTO ELABORADO POR CHRISTIAN NARBARTE PARA EL IVECE
ISO 9001:2000 DOCUMENTO INFORMATIVO DOCUMENTO ELABORADO POR CHRISTIAN NARBARTE PARA EL IVECE MARZO 2007 Este documento contesta las preguntas más frecuentes que se plantean las organizaciones que quieren
Más detallesProceso 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 detallesGestión de la Prevención de Riesgos Laborales. 1
UNIDAD Gestión de la Prevención de Riesgos Laborales. 1 FICHA 1. LA GESTIÓN DE LA PREVENCIÓN DE RIESGOS LABORALES. FICHA 2. EL SISTEMA DE GESTIÓN DE LA PREVENCIÓN DE RIESGOS LABORALES. FICHA 3. MODALIDAD
Más detallesSistema PYMES Ventas e Inventarios H&S
Sistema PYMES Ventas e Inventarios H&S Sistema PYMES Ventas e Inventarios H&S Visión DESARROLLADORA Teodora Vargas Tarqui Versión 0.9 Tabla de Contenidos 1. INTRODUCCION 3 1.1 Propósito 3 1.2 Alcance 3
Más detallesEl objetivo principal del presente curso es proporcionar a sus alumnos los conocimientos y las herramientas básicas para la gestión de proyectos.
Gestión de proyectos Duración: 45 horas Objetivos: El objetivo principal del presente curso es proporcionar a sus alumnos los conocimientos y las herramientas básicas para la gestión de proyectos. Contenidos:
Más detallesGestión de proyectos
Gestión de proyectos Horas: 45 El objetivo principal del presente curso es proporcionar a sus alumnos los conocimientos y las herramientas básicas para la gestión de proyectos. Gestión de proyectos El
Más detallesDiseño orientado al flujo de datos
Diseño orientado al flujo de datos Recordemos que el diseño es una actividad que consta de una serie de pasos, en los que partiendo de la especificación del sistema (de los propios requerimientos), obtenemos
Más detallesGestió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 detallesPlaneació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 detallesIntroducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual
Introducción Algunas de las personas que trabajan con SGBD relacionales parecen preguntarse porqué deberían preocuparse del diseño de las bases de datos que utilizan. Después de todo, la mayoría de los
Más detallesSoporte Técnico de Software HP
Soporte Técnico de Software HP Servicios Tecnológicos HP Servicios contractuales Datos técnicos El Soporte Técnico de Software HP ofrece servicios integrales de soporte remoto de para los productos de
Más detallesAseguramiento de la Calidad
Aseguramiento de la Calidad El Aseguramiento de la Calidad consiste en tener y seguir un conjunto de acciones planificadas y sistemáticas, implantadas dentro del Sistema de Calidad de la empresa. Estas
Más detallesUnidad III. Software para la administración de proyectos.
Unidad III Software para la administración de proyectos. 3.1 Herramientas de software para administrar proyectos. El software de administración de proyectos es un concepto que describe varios tipos de
Más detallesModelo 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 detallesGestión de Configuración del Software
Gestión de Configuración del Software Facultad de Informática, ciencias de la Comunicación y Técnicas Especiales Herramientas y Procesos de Software Gestión de Configuración de SW Cuando se construye software
Más detallesSistemas de Gestión de Calidad. Control documental
4 Sistemas de Gestión de Calidad. Control documental ÍNDICE: 4.1 Requisitos Generales 4.2 Requisitos de la documentación 4.2.1 Generalidades 4.2.2 Manual de la Calidad 4.2.3 Control de los documentos 4.2.4
Más detallesUNE-ISO/IEC 20000-1:2011 - Requisitos del Sistema de Gestión del Servicio
ISO 20000, camino a la excelencia Introducción En los últimos años hemos podido ver la gran aceptación que ha conseguido el modelo EFQM como modelo de referencia para la excelencia empresarial. Un modelo
Más detallesGUÍA METODOLÓGICA PARA LA FORMACIÓN CON E-LEARNING DIRIGIDA A COLECTIVOS SIN ALTA CUALIFICACIÓN CAPÍTULO 4. Dirección Técnica:
LA FORMACIÓN EMPRESARIAL CON E-LEARNING GUÍA METODOLÓGICA PARA LA FORMACIÓN CON E-LEARNING DIRIGIDA A COLECTIVOS SIN ALTA CUALIFICACIÓN CAPÍTULO 4 Dirección Técnica: 4.- EL PLAN DE FORMACIÓN 33 Capítulo
Más detallesEmpresa Financiera Herramientas de SW Servicios
Empresa Financiera Herramientas de SW Servicios Resulta importante mencionar que ésta es una empresa cuya actividad principal está enfocada a satisfacer las necesidades financieras de los clientes, a través
Más detallesPROCEDIMIENTO ESPECÍFICO. Código G083-01 Edición 0
Índice 1. TABLA RESUMEN... 2 2. OBJETO... 2 3. ALCANCE... 2 4. RESPONSABILIDADES... 3 5. ENTRADAS... 3 6. SALIDAS... 3 7. PROCESOS RELACIONADOS... 3 8. DIAGRAMA DE FLUJO... 4 9. DESARROLLO... 5 9.1. DEFINICIÓN...
Más detallesKaren Giraldo Escobar Graciela Catalina Soto PROYECTO DE GRADO I
Karen Giraldo Escobar Graciela Catalina Soto PROYECTO DE GRADO I Qué es SCRUM Beneficios Como Funciona Fundamentos Requisitos Historia Qué es SCRUM Beneficios Como Funciona Fundamentos Requisitos Historia
Más detallesApp para realizar consultas al Sistema de Información Estadística de Castilla y León
App para realizar consultas al Sistema de Información Estadística de Castilla y León Jesús M. Rodríguez Rodríguez rodrodje@jcyl.es Dirección General de Presupuestos y Estadística Consejería de Hacienda
Más detallesVisión General de GXportal. Última actualización: 2009
Última actualización: 2009 Copyright Artech Consultores S. R. L. 1988-2009. Todos los derechos reservados. Este documento no puede ser reproducido en cualquier medio sin el consentimiento explícito de
Más detallesMódulo 7: Los activos de Seguridad de la Información
Módulo 7: Los activos de Seguridad de la Información Se explica en este tema cómo deben abordarse la elaboración de un inventario de activos que recoja los principales activos de información de la organización,
Más detallesLA LOGÍSTICA COMO FUENTE DE VENTAJAS COMPETITIVAS
LA LOGÍSTICA COMO FUENTE DE VENTAJAS COMPETITIVAS Los clientes compran un servicio basandose en el valor que reciben en comparacion con el coste en el que incurren. Por, lo tanto, el objetivo a largo plazo
Más detallesDE VIDA PARA EL DESARROLLO DE SISTEMAS
MÉTODO DEL CICLO DE VIDA PARA EL DESARROLLO DE SISTEMAS 1. METODO DEL CICLO DE VIDA PARA EL DESARROLLO DE SISTEMAS CICLO DE VIDA CLÁSICO DEL DESARROLLO DE SISTEMAS. El desarrollo de Sistemas, un proceso
Más detallesSCRUM Metodología de trabajo ágil
SCRUM Metodología de trabajo ágil UN ENFOQUE PRÁCTICO Página 1 Página 2 Índice Introducción Características Criterios de referencia Fortalezas de Scrum Trazabilidad Definición Tipos Los Sprint Prácticas
Más detallesEnginyeria 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 detallesINGENIERÍ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 detallesPlanificación en Team Foundation Server 2010
Planificación en Team Foundation Server 2010 Planificación y Seguimientos en Proyectos Agile con Microsoft Visual Studio Team Foundation Server 2010 Dirigido a: Todos los roles implicados en un proyecto
Más detallesUNIVERSIDAD DE SALAMANCA
UNIVERSIDAD DE SALAMANCA FACULTAD DE CIENCIAS INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Resumen del trabajo práctico realizado para la superación de la asignatura Proyecto Fin de Carrera. TÍTULO SISTEMA
Más detallesUNIVERSIDAD 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 detallesSISTEMAS Y MANUALES DE LA CALIDAD
SISTEMAS Y MANUALES DE LA CALIDAD NORMATIVAS SOBRE SISTEMAS DE CALIDAD Introducción La experiencia de algunos sectores industriales que por las características particulares de sus productos tenían necesidad
Más detallesCMMI (Capability Maturity Model Integrated)
CMMI (Capability Maturity Model Integrated) El SEI (software engineering institute) a mediados de los 80 desarrolló el CMM (modelo de madurez de la capacidad de software). CMMI: CMM integrado, una mezcla
Más detallesDIRECCION DE PROYECTOS II
DIRECCION DE PROYECTOS II DESARROLLO DEL CURSO PROFESIONAL EN DIRECCION DE PROYECTOS II: Durante el desarrollo del Curso Profesional en Dirección de Proyectos II, el alumno irá asimilando el contenido
Más detallesLA PLANIFICACIÓN ESTRATÉGICA EN MATERIA TIC EN EL ÁMBITO DE LA AGE
LA PLANIFICACIÓN ESTRATÉGICA EN MATERIA TIC EN EL ÁMBITO DE LA AGE Subdirector General de Planificación y Coordinación Informática Ministerio de Trabajo y Asuntos Sociales Palabras clave Planificación
Más detallesFigure 7-1: Phase A: Architecture Vision
Fase A Figure 7-1: Phase A: Architecture Vision Objetivos: Los objetivos de la fase A son: Enfoque: Desarrollar una visión de alto nivel de las capacidades y el valor del negocio para ser entregado como
Más detallesAnteproyecto Fin de Carrera
Universidad de Castilla-La Mancha Escuela Superior de Informática Anteproyecto Fin de Carrera DIMITRI (Desarrollo e Implantación de Metodologías y Tecnologías de Testing) Dirige: Macario Polo Usaola Presenta:
Más detallesAdministración por Procesos contra Funciones
La administración moderna nos marca que en la actualidad, las organizaciones que no se administren bajo un enfoque de procesos eficaces y flexibles, no podrán sobrepasar los cambios en el entorno y por
Más detalles1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).
1 GLOSARIO A continuación se definen, en orden alfabético, los conceptos básicos que se han abordado a lo largo del desarrollo de la metodología para la gestión de requisitos bajo la Arquitectura Orientada
Más detallesK2BIM Plan de Investigación - Comparación de herramientas para la parametrización asistida de ERP Versión 1.2
K2BIM Plan de Investigación - Comparación de herramientas para la parametrización asistida de ERP Versión 1.2 Historia de revisiones Fecha VersiónDescripción Autor 08/10/2009 1.0 Creación del documento.
Más detallesPLAN DIRECTOR DE SERVICIOS MÓVILES DE VALOR AÑADIDO EN LA ADMINISTRACIÓN PÚBLICA
PLAN DIRECTOR DE SERVICIOS MÓVILES DE VALOR AÑADIDO EN LA ADMINISTRACIÓN PÚBLICA Manager LaneFour Strategy & Management Manager LaneFour Strategy & Management Palabras clave Plan Director, Mobile Government/Administración
Más detallesCAPITULO I. Introducción. En la actualidad, las empresas están tomando un papel activo en cuanto al uso de sistemas y
CAPITULO I Introducción 1.1 Introducción En la actualidad, las empresas están tomando un papel activo en cuanto al uso de sistemas y redes computacionales. La tecnología ha ido evolucionando constantemente
Más detallesINTRODUCCIÓN: Una Visión Global del Proceso de Creación de Empresas
INTRODUCCIÓN: Una Visión Global del Proceso de Creación de Empresas 1 INTRODUCCIÓN. Una visión global del proceso de creación de empresas Cuando se analiza desde una perspectiva integral el proceso de
Más detallesLos profesores Flipantes
Los profesores Flipantes 1 0. Índice 1. Introducción al TSP 2. La lógica del TSP 3. Lanzamiento de un Proyecto TSP. 4. Fases del Ciclo TSPi. 5. TSPi en DSIC. 2 1. Introducción al TSP. El software suele
Más detallesPreguntas más frecuentes sobre PROPS
Preguntas más frecuentes sobre PROPS 1. Qué es un modelo? Un modelo es un marco común para toda la organización. Está alineado con los estándares de gestión de proyectos, como PMBOK, ISO10006, ISO9000
Más detallesOfrezca la nueva tendencia de innovación empresarial con un entorno de red abierta
Descripción general de la solución Ofrezca la nueva tendencia de innovación empresarial con un entorno de red abierta Lo que aprenderá A medida que tecnologías como la nube, la movilidad, los medios sociales
Más detallesCómo mejorar la calidad del software a través de una gestión adecuada de la productividad de las pruebas
Cómo mejorar la calidad del software a través de una gestión adecuada de la productividad de las pruebas Cuando una empresa contrata un proyecto de software a una consultora, realiza una inversión importante.
Más detallesEscuela Politécnica Superior. Organización Empresarial y Proyectos. Capítulo 6. daniel.tapias@uam.es. Dr. Daniel Tapias Curso 2014/ 15 PROYECTOS
Escuela Politécnica Superior Organización Empresarial y Proyectos Capítulo 6 Dr. Daniel Tapias Curso 2014/ 15 daniel.tapias@uam.es PROYECTOS PROGRAMA DE LA ASIGNATURA Capítulo 1: Introducción. Capítulo
Más detallesITZOFT, una metodología de desarrollo de sistemas basada en el Proceso Unificado de Rational. Resumen
ITZOFT, una metodología de desarrollo de sistemas basada en el Proceso Unificado de Rational. Sergio Valero Orea, svalero@utim.edu.mx, UTIM, Izúcar de Matamoros, Puebla. Resumen El desarrollo de sistemas
Más detallesInforme de Seguimiento. Máster Universitario en Dirección y Administración de Empresas-MBA. Empresas-MBA de la Universidad de Málaga
Informe de Seguimiento Máster Universitario en Dirección y Administración de Empresas-MBA de la Universidad de Málaga 1. ÁMBITO NORMATIVO El artículo 27 del Real Decreto 1393/2007, de 29 de octubre, modificado
Más detalles0. Introducción. 0.1. Antecedentes
ISO 14001:2015 0. Introducción 0.1. Antecedentes Conseguir el equilibrio entre el medio ambiente, la sociedad y la economía está considerado como algo esencial para satisfacer las necesidades del presente
Más detallesIngenierí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 detallesIngenierí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 detalles3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)
3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1.1 Introducción Este método proporciona un soporte para el diseño creativo de productos de software, inclusive a escala industrial.
Más detallesI. INTRODUCCIÓN DEFINICIONES
REF.: INSTRUYE SOBRE LA IMPLEMENTACIÓN DE LA GESTIÓN DE RIESGO OPERACIONAL EN LAS ENTIDADES DE DEPÓSITO Y CUSTODIA DE VALORES Y EN LAS SOCIEDADES ADMINISTRADORAS DE SISTEMAS DE COMPENSACIÓN Y LIQUIDACIÓN
Más detallesISO9001:2015. Todos los certificados emitidos en este periodo tienen una fecha de caducidad de 15 de septiembre de 2018.
ISO9001:2015 PLAN DE TRANSICIÓN Tras la publicación de la nueva versión de la norma ISO9001 el pasado mes de septiembre se inicia un periodo de convivencia entre las dos versiones de la norma. Este periodo
Más detallesSISTEMA DE PAPELES DE TRABAJO PARA AUDITORÍA SPT AUDIT
SISTEMA DE PAPELES DE TRABAJO PARA AUDITORÍA SPT AUDIT INTRODUCCIÓN La documentación de auditoría ó papeles de trabajo son el respaldo que tiene el auditor para registrar los procedimientos aplicados,
Más detallesCICLO DE VIDA DEL SOFTWARE
CICLO DE VIDA DEL SOFTWARE 1. Concepto de Ciclo de Vida 2. Procesos del Ciclo de Vida del Software 3. Modelo en cascada 4. Modelo incremental 5. Modelo en espiral 6. Prototipado 7. La reutilización en
Más detallesTOPICOS IV: ING. YIM APESTEGUI FLORENTINO
1 2 MIGRACIÓN DE DATOS E INTEGRACIÓN ENTRE SISTEMAS. Actividades propias de la INGENIERÍA DE SISTEMAS E INF. Se requiere conocimientos técnicos y fundamentales. Planificación y Ejecución. 3 PROCESO DE
Más detallesEstándares para planes de calidad de software. Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Agosto Diciembre 2008
Estándares para planes de calidad de software Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Agosto Diciembre 2008 DIFERENCIA ENTRE PRODUCIR UNA FUNCION Y PRODUCIR UNA FUNCION
Más detallesPropuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA
Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Documento de trabajo elaborado para la Red Temática DocenWeb: Red Temática de Docencia en Control mediante Web (DPI2002-11505-E)
Más detallesImplantación y Aceptación del Sistema
y Aceptación del Sistema 1 y Aceptación del Sistema ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 2 ACTIVIDAD IAS 1: ESTABLECIMIENTO DEL PLAN DE IMPLANTACIÓN...5 Tarea IAS 1.1: De finición del Plan de... 5 Tarea IAS
Más detallesPropuesta de Proyecto de Seguimiento SEO
Propuesta de Proyecto de Seguimiento SEO Propuesta presentada por Ibis Computer Responsable Comercial: Fecha de presentación: Agradecemos el tiempo dedicado a CLIENTE IBIS para facilitar la información
Más detallesAutor: Jorge Bustos. Germán Poo. Versión: 0.02. Programa Haz un Hacker! Página 1/6
Programa de formación de nuevos desarrolladores: Haz un Hacker! Autor: Jorge Bustos Versión: 0.02 Germán Poo Programa Haz un Hacker! Página 1/6 Índice 1 Introducción...3 2 Motivación del programa...4 3
Más detallesPROCEDIMIENTO GENERAL RAZÓN SOCIAL DE LA EMPRESA. Auditorias Internas de Calidad. Código PG-09 Edición 0. Índice:
Índice: 1. TABLA RESUMEN... 2 2. OBJETO... 2 3. ALCANCE... 2 4. RESPONSABILIDADES... 3 5. ENTRADAS... 3 6. SALIDAS... 3 7. PROCESOS RELACIONADOS... 4 8. DIAGRAMA DE FLUJO... 4 9. DESARROLLO... 5 9.1. ELABORACIÓN
Más detalles