Estimación del esfuerzo y costos necesarios para el desarrollo de un proyecto de software

Documentos relacionados
Estimación del esfuerzo y costos necesarios para el desarrollo de un proyecto de software

Medición y estimación de software con puntos de función COSMIC

Estimaciones de Software con COSMIC

Atributos de Calidad del Software

FATTO CONSULTORIA y SISTEMAS

Especificación de Requerimientos <Nombre del Proyecto> Nombre del Grupo de Desarrollo o Asignatura Nombre del Autor

ANEXO TECNICO. Fábrica de Software

Norma de Calidad Colombiana para Productos de Software y Relación entre Modelos de Calidad y Especificación de Requerimientos de Productos de Software

ANÁLISIS DE SISTEMAS. Prof. Eliz Mora

FATTO Consultoría y Sistemas - Manejo de contratos de fábrica de software con SCRUM vía puntos de función

Pruebas de Software. Agenda. Pruebas de Programas Los Niveles de Prueba Diseño de Casos de Prueba

2.12 Control estadístico vs métricas.

E77 - Gestión de Recursos de la Información. Tema 1 - Métricas del Proyecto de Software

ISO ISO Calidad de Software. Virginia Cuomo Mariela Castares

Verificación y Validación (Proceso V&V) Asegurar que el sistema de software cumpla las necesidades del usuario

NOMBRE DEL ROL OBJETIVO DEL ROL RESPONSABILIDADES

El sistema será definido como SACP (Sistema de Administración de Clientes y Proveedores).

INFORME TECNICO PREVIO DE EVALUACION DE SOFTWARE CP/ASI

Modelos, normas y estándares de calidad internacionales para los productos de software

Descripción específica

Rational Unified Process

La medición funcional de software con SCRUM

recomendaciones acerca de la memoria de un PFC

Introducción a la Ingeniería de Software. Informática Empresarial, UCR IF 7100 Ingeniería de Software

Métricas del Producto. Sistemas de Información II 2009 Facultad de Ingeniería - UNJu

Capítulo 3. Métricas y la Confiabilidad en la Ingeniería del

Implementación de Componentes

Tamaño: El tamaño de los componentes puede ser medido por medio de las métricas utilizadas en diseño orientado a objetos. Esto significa que la

Cambios en Ingeniería de Software

Descripción Específica en la modalidad de Formación Dual

Registrar información o datos de una persona REQUERIMIENTO QUE LO UTILIZA O ESPECIALIZA:

IIS. Evaluación de productos, procesos, recursos Mejorando las predicciones ( o estimaciones?)

Introducción. Diplomado en Calidad y Estimación de Sistemas Informáticos

SISTEMAS DE INFORMACIÓN II TEORÍA

CAPTURA DE REQUERIMIENTOS

Requerimientos de Software

GESTION DE PROYECTOS INFORMATICOS

PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ

Estimaciones vía Planning Poker

GEXRENOF: Herramienta para la gestión de pruebas no funcionales basada en el estándar ISO/IEC

Figura 39. Resultados de la encuesta de satisfacción aplicada a los instructores de los CECATI en el Estado de Colima Figura 40.

DISEÑO Y CONSTRUCCION DE MODELOS WEB

UNIDAD I Introducción al Sistema Manejador de Base de Datos (DBMS)

ISO Ingeniería del Software

Capítulo 7. Pruebas y mantenimiento del sistema

Desarrollo Rápido de Software. Objetivos

El ciclo de vida de un sistema de información

Ingeniería de Software: Y eso qué es?

HOUSEBANKING. Tesorería Empresarial. Treasury Processes System

REPÚBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA DEFENSA UNIVERSIDAD NACIONAL EXPERIMENTAL

Introducción al desarrollo de sistemas de información. María Mora Administradora del Nodo GBIF Costa Rica

Anexo III COBIT. Relaciones de los Objetivos de Control Dominios, Procesos y Objetivos de Control

PLANEACIÓN DE PRUEBAS

PLCs ESTÁNDAR IEC Programa del Curso. Sistema Supervisor / SCADA. Comunicaciones. Lenguajes: LD FBD PLC SFC IEC Proyectos / Aplicaciones

Facultad de Ciencias de la Computación

Especificación de requisitos de software

TEMA 4. PROCESO UNIFICADO

Técnicas de Pruebas de

Bitácora Cuestionario Calidad Técnica de las Aplicaciones (Software a la medida)

MODELOS COMUNES PARA DESARROLLO DE SOFTWARE MODELO LINEAL SECUENCIAL

Grado de Ingeniería Informática. Consultor: Juan José Cuadrado Gallego Alumno: Isabel Guerra Monclova

Orientaciones Iniciales

CLASE # 9 EJECUCIÓN DE PRUEBAS

PROGRAMA DE ASIGNACIÓN FAMILIAR (PRAF) TÉRMINOS DE REFERENCIA

M. C. Felipe Santiago Espinosa

Especificación de requisitos de software. Proyecto: [Nombre del proyecto] Revisión [99.99] [Mes de año]

Programación en lenguajes estructurados de aplicaciones de gestión. Código: J62.13 Nivel: 3

Los puntos básicos sobre la importancia del Testing y el aseguramiento de la calidad en productos de software son:

Objetivos. Plan. Cambios de grupos Prof. sustituto: Alicia Villanueva

UNIVERSIDAD SALESIANA DE BOLIVIA ESCUDO DE LA UNIVERSIDAD NOMBRE DEL PROYECTO DE SOFTWARE

Proceso Unificado de Desarrollo de Software. 13 de sep de 2006

Tecnología hardware y software

Regina Leal Güemez. Notas de clase para: Temas Selectos en Sistemas de Información para la Administración

Presentado por: Josué Andino Denis Flores Jorge Luis Pontón Diego Soria. Andino, Flores, Pontón, Soria 1

Estrategia de Pruebas

J. IGNACIO RAMÍREZ GARCÍA EMERSON AUTOMATION SOLUTIONS

BACHILLERATO TÉCNICO VOCACIONAL EN DESARROLLO DE SOFTWARE. Desarrollo de componentes para dispositivos móviles.

Agenda. Problemática. Pregunta generadora. Objetivo general y objetivos específicos. Desarrollo del trabajo de grado. Conclusiones.

INGENIERIA DE SOFTWARE ING. FRANCISCO RODRIGUEZ

PROCEDIMIENTO DE ACREDITACIÓN DE LOS REQUISITOS TECNOLOGICOS DE CONTINUIDAD Y RIESGO OPERACIONAL. Junio 2018

Requerimientos de Software

CUADRO COMPARATIVO DE LOS MODELOS DE CALIDAD ELABORADO POR: EDUARD ANTONIO LOZANO CÓRDOBA. (Documento: ) PRESENTADO A:

Tema 2: Especificación de Requisitos

Métricas de Producto

Universidad Mayor de San Andrés Facultad de Ciencias Puras y Naturales Carrera de Informática

CAPÍTULO 5 INDICADORES DE PRODUCTIVIDAD EN EL MANTENIMIENTO. Como se explicó en el capítulo 2, el tener una buena administración del

adv Software Factory

Introducción. En los últimos años la tecnología computacional ha avanzado rápidamente con grandes

ING. YIM APESTEGUI FLORENTINO. Planeación y Administración Estratégica

Requisitos No Funcionales

MÓDULOS DE DISEÑO EN INGENIERÍA

INFORME TÉCNICO PREVIO DE EVALUACIÓN DE SOFTWARE. El área encargada de la evaluación técnica previa es la Oficina de Sistemas.

FASES DEL CICLO DE GESTIÓN DE UNA APP ASOCIACIONES PUBLICO PRIVADAS EN EL PERU

Proyecto Integrador III Sesión 5 Requerimientos de Software

Este dominio consta de 13 procesos que se describen a continuación.

Plantilla SVVP (Software Verification & Validation Plan) Trabajo de grado Ingeniería de Sistemas Pontificia Universidad

Instituto Tecnológico Superior De Acatlán de Osorio. Portafolio de evidencias

Grado en que el producto software satisface las necesidades expresadas o implícitas, cuando se usa bajo condiciones determinadas. ISO

Transcripción:

Carlos Eduardo Vázquez Estimación del esfuerzo y costos necesarios para el desarrollo de un proyecto de software

Objetivos 1. Despertar en el público la conciencia sobre la problemática en la elaboración de estimaciones en el desarrollo de software 2. Presentar el concepto de unidad de producto y de cómo aplicarlo en la medición de software para la planeación y monitoreo de la productividad en su desarrollo 3. Introducir el método de COSMIC para la medición del tamaño funcional y su papel en la generación de unidades de producto a partir de los requerimientos funcionales

1. La problemática de la estimación Estimar pequeños elementos es fácil Programar una Transacción Probar una Transacción Dificuldad Estimar la realización de una actividad de 12 horas Pequeño! Impacto Cuando se solicita una medición a un desarrollador para entregar un programa probado y brinda una estimación de 12 horas, lo más probable es que esté en lo cierto Esto porque se trata de un programa cuya dificultad de estimación es menor o su impacto de error es pequeño.

1. La problemática de la estimación Un gran elemento como la suma de pequeñas partes Dificultad Fase 01 Fase 02 Fase 03 Fase 04 Grande! Estimar la entrega de un producto final a lo largo de dos años Impacto La solución para todos los problemas de estimación es descomponer un proyecto en sus partes y hacer las estimaciones en estos mismos modelos Los escenarios en los que la estimación del todo es difícil y que el impacto de los errores es demasiado grande no serían un problema y todo el mundo estaría feliz

1. La problemática de la estimación Alcance preliminar Necesidades de negocio El fallo en esta lógica Proceso de la Ingeniería de Requierimientos Evolución del desarrollo Decisiones y acuerdos sobre la solución????? No se pueden identificar cuáles son esas actividades de 12 horas durante las fases iniciales del desarrollo Al inicio no sé sabe cuáles son todos los programas Hay trabajo que no es una función de esa cantidad de programas El nivel de información disponible no permite usar la lógica de la estimación de abajo hacia arriba como solución para los desafíos de la estimación

1. La problemática de la estimación #NoEstimates De igual forma, no se puede decidir sobre los cambios que deben ser priorizados dentro del 20% de las demandas que consumen el 80% de los recursos Por qué estimar si al final del trabajo ya estoy seguro de la información de interés? Al final, son apenas entre 15 o 30 días en un ambiente donde se hace uso de enfoques ágiles de desarrollo Se puede esperar por ese momento para saber en lugar de simplemente creer.

1. La problemática de la estimación CANTIDAD (#) ESFUERZO (HH) < 2.000 HH 82% > 2.000 HH 18% < 2.000 HH 39% > 2.000 HH 61% Las decisiones ejecutivas de inversión deben ser justificadas a quien mantiene el gobierno de aquella organización Cómo hacer esto con #NoEstimates?

2. Unidad de producto para producción de software La unidad de producto en la construcción civil Presupuesto disponible Casa en el estilo Santa Fé de Cadu 1 m 1 m Costo unitario medio de construcción por m 2 A partir de esto, tuve la oportunidad de tomar varias decisiones: Es más caro (proporcionalmente) construir un baño que un cuarto Cuando tuve que estimar el costo únicamente del baño, ya tenía elementos para realizar estimaciones de abajo para arriba Los desembolsos ocurridos no excedieron la estimación inicial basada en la cantidad de metros cuadrados y en la productividad media

2. Unidad de producto para producción de software Productividad Arquitectos Ingenieros Maestro de obras Albañiles Ayudantes Impuestos y tasas Aprobaciones y registros Diversos materiales Apropiación indirecta de costos Apropiación directa de costos 1 m US$ 500,00/ m2 1 m Casa construida 300 m2 Producto Desembolso con las inversiones US$ 150.000,00 Costo

2. Unidad de producto para producción de software?? Cuál sería la métrica que cumple el papel de unidad de producto para la planificación y seguimiento del desempeño para el desarrollo de software? Unidad de Producto Permite aproximar o medir el tamaño del software a partir de sus requerimientos Apoya en la estimación del esfuerzo del proyecto o en la cuantificación del desempeño a partir de la perspectiva del usuario o dueño para fines del análisis de productividad Es independiente del desarrollo técnico y decisiones de implementación Permite comparar la productividad entre las diferentes técnicas y tecnologías disponibles

2. Unidad de producto para producción de software Otras métricas permiten cuantificar el desempeño técnico de productos y servicios a partir de su implementación Análisis de eficiencia del diseño Mejora en el rendimiento del diseño Apoyo a la Ingeniería de Requerimientos Dimensión del diseño y calidad Apoyo a la verificación y validación

La implementación Al ambiente 2. Unidad de producto para producción de software La organización La calidad Tipos de Requerimientos No son Requerimientos Funcionales Cualquier otro tipo de requerimientos o de restricción de orden general para el producto la interoperabilidad, privacidad y la protección contra daños incidentales o accidentales las tecnologías de desarrollo, mantenimiento, soporte y ejecución como: herramientas de programación y pruebas, sistemas operativos, sistemas de gestión de bases de datos, sistemas de gestión de la interfaz gráfica con el usuario, etc. equipos de destino, la adhesión a las normas y los lugares para la operación desempeño, compatibilidad, usabilidad, confiabilidad, seguridad, mantenibilidad y portabilidad Requerimientos Funcionales Requerimientos que están específicamente asociados a una tarea o servicio del usuario y que describen lo que el software debe hacer independientemente de cómo lo haga Manipulación y movimiento de datos Transferencia Transformación Almacenamiento Recuperación

2. Unidad de producto para producción de software Dónde están los requerimientos funcionales? artefatos con definición de requerimientos artefatos con decomposición funcional de los requerimientos artefatos del modelo /análisis de datos Requerimientos Funcionales del Usuário ( RFU ) en los artefatos del software a ser medido préimplementación pósimplementación programas físicos Procedimentos y manuales operacionales del software artefatos de almacenamiento físico de datos

2. Unidad de producto para producción de software La relación entre los requerimientos funcionales y no funcionales a lo largo del desarrollo Primera versión de los Requerimientos Versión posterior de los Requerimientos Artefactos de Software Requerimientos Funcionales del Usuario Requerimientos no Funcionales Requerimientos Funcionales del Usuario Verdaderos RFN Puede ser medido por COSMIC Debería ser registrado, puede ser cuantificable Evolución de la Línea del Tiempo del Proyecto

2. Unidad de producto para producción de software La relación entre los requerimientos funcionales y no funcionales a lo largo del desarrollo Inicialmente, RNF El tiempo de respueta medio en horarios pico no debe exceder X segundos La disponibilidad debe aumentar Y% en relación a la media anual pasada RFU a ser desenvolvido ou adquirido Proveer datos externos en tiempo real Monitorar y reportar tiempo medio de respuesta Habilitar el cambio rápido de procesamiento para un procesador alternativo sin interrupción del servico RNF após requisitos iniciais evoluírem em RFU Equipo apropriado Parte del software escrito en lenguaje de bajo nivel Procesador alternativo operando en hot stand by

2. Unidad de producto para producción de software Derivación de unidad de producto de los requerimientos funcionales ISO/IEC 14143 define los principios de la medición del tamaño funcional Implementados en métodos de medición del tamaño funcional por: COSMIC (ISO/IEC 19761:2011) IFPUG APF (ISO/IEC 20926:2009) UKSMA Mk II (ISO/IEC 20968:2002) NESMA APF (ISO/IEC 24570:2005) FISMA (ISO/IEC 29881:2010)

3. El método de medición de tamaño funcional de COSMIC 2 a generación de métodos de medición del tamaño funcional Nivel de confiabilidad compatible con todos los tipos de software Accesible al público y su documentación no tiene costo Tiene reconocimiento total de la ISO/IEC Proyecto es simple y posee una base conceptual compatible con la Ingeniería de Software moderna: Los métodos anteriores no siempre tienen una aplicación amplia suficiente para atender las necesidades del mercado, o funcionan apenas con acceso restringido Planificación y medición del desempeño tiene mayor exactitud Tiene la habilidad de capturar el tamaño a partir de múltiples perspectivas

3. El método de medición de tamaño funcional de COSMIC Visión general del método de medición COSMIC Es un valor de una magnitud de acuerdo con el método de COSMIC Independiente de implementación relacionada con los artefactos del software a ser medido Expresado en unidades: Puntos de Función COSMIC o PFC 1 objetivos Conjunto de: Modelos Principios Reglas Procesos 4 3 Tamaño Funcional parcial del software 2 Requerimientos funcionales del usuario en los artefactos del software a ser medido Describe lo que el software debe hacer para los usuarios, quienes son los destinatarios y remitentes de los datos Excluye requerimientos técnicos o de calidad que expresan cómo el software funciona La función es relativa al proceso de información que el software debe ejecutar para sus usuarios

3. El método de medición de tamaño funcional de COSMIC Las fases en la medición COSMIC 1 Objetivos 6 Estrategia de medición Definición de cada parte del software a ser medido de la medición exigida 7 3 2 Requerimientos funcionales del Usuario en artefatos del software a ser medido 5 Modelo de contexto de software 8 Fase de mapeo 9 Modelo general de software Requerimientos Funcionales del Usuario en la forma del modelo general de software Fase de medición 11 10 4 Tamaño funcional del software en unidades de PFC

3. El método de medición de tamaño funcional de COSMIC Usuario funcional Usuario funcional humano aplicación siendo medida Aplicación para usuario funcional de la aplicación siendo medida Usuarios funcionales de una parte del software a ser medido identificados a partir de sus RFU, como fuentes y/o destinos pretendidos para datos En la visión lógica para una parte del software de aplicaciones de negocio, los RFU acostumbran a describir sólo la funcionalidad requerida desde el punto de vista de usuarios humanos y, tal vez, otras aplicaciones pares que envíen o reciban datos Cualquier camada de software y dispositivos de hardware que soporten la interación de los usuarios funcionales con la aplicación son facilitadores de las transferencias de datos y no remitentes o destinatarios

3. El método de medición de tamaño funcional de COSMIC Frontera frontera aplicación siendo medida Aplicación par frontera Frontera definida como interfaz conceptual entre software y usuario funcional Frontera no debe ser confundida con qualquier línea diseñada en un diagrama para delimitar o alcance de una parte del software o camada Frontera permite hacer distinción clara entre cualquier parte del software medido (dentro) y cualquier parte del ambiente de los usuarios funcionales (fuera)

3. El método de medición de tamaño funcional de COSMIC camada de aplicación Movimientos de datos entradas salidas grabaciones Almacenamiento persistente aplicación siendo medida exits entries lecturas entries exits aplicación par Movimientos de datos Usuarios funcionales interactuan con el software a través de la frontera via dos tipos de movimientos de datos (entries y exits) Software también intercambia datos con el dispositivo de almacenamiento persistente via dos tipos de movimientos de datos (reads y writes) El dispositivo de almacenamiento no es considerado como un usuario del software y, por tanto, está dentro de la frontera del software

3. El método de medición de tamaño funcional de COSMIC Ejemplo de Movimientos de datos usuario funcional processo funcional objetos de interés cliente producto pedido items de pedido pedido item del pedido confirmación del pedido cliente producto pedido item del pedido

3. El método de medición de tamaño funcional de COSMIC Medición Vs Aproximación del tamaño 1 PFC G1 = 1,5 PFC G2 ± 25% 1 PFC G2 = 1,33 PFC G3 ± 15% Editar y gerenciar pedidos de vacaciones 100 PFC G1 incluir, alterar, excluir, apreciar... 150 PFC G2 especificación completa 200 PFC G3 Estimar/Aproximar Medir propuesta requerimientos proyecto construcción implementación 1. Evaluar el desempeño por la relación entre la cantidad de horas invertidas y la cantidad de puntos función COSMIC medidos 2. Re-evaluar los indicadores de productividad para que pasen a incluir el desempeño de los proyectos que terminan 3. Re-evaluar la cantidad de puntos función COSMIC que corresponden en promedio a los procesos y a los conceptos de negocio

3. El método de medición de tamaño funcional de COSMIC Benchmarking Esfuerzo estimado por otros métodos: 1000 HH 07 HH/CFP o menos de 8% de probabilidad Aproximación del Tamaño: 150 CFP

3. El método de medición de tamaño funcional de COSMIC Conócete a ti mismo

Conclusión De algo que estoy seguro es sobre la diferencia de las respuestas para la siguiente pregunta: " Por qué me pides 5.000 HH para el proyecto y no 2.000 HH? Porque yo lo sé Porque sólo hay un 2% de probabilidad de entregar el proyecto de este tamaño con 2.000 HH de acuerdo a nuestros datos históricos. No hay un proyecto de la base de datos internacional de evaluación comparativa que indique esto como algo posible