Anúncio
Anúncio

Mais conteúdo relacionado

Anúncio
Anúncio

Jessika parica. planificación de un proyecto de software

  1. Instituto Universitario Politécnico “Santiago Mariño” Facultad de Ingeniería En Sistemas Sede Barcelona CREADO POR: PARICA JESSIKA C.I: 19329184 Barcelona, Febrero de 2018 FACILITADOR: Ing. Amelia M. Vásquez M.
  2. INTRODUCCIÓN La planificación de proyectos software son un conjunto de actividades que implican la estimación y su intento por determinar cuánto dinero, esfuerzos, recursos y tiempo supondrá construir un sistema o producto específico de software. La planificación la realizan los gestores de software, mediante la información solicitada a los clientes y a los ingenieros de software además toman como referencia métrica de software de proyectos anteriores. Si importancia radica en que al estimar oportunamente los recursos, costos y trabajo es posible tomar decisiones oportunas en cuanto a la realización o no del proyecto antes de empezar el trabajo y desperdiciar recursos y dinero.
  3. La planificación es fundamental en el proceso de desarrollo de un producto de software (y en cualquier otro). En el mismo se establece, entre otras cosas, qué tareas y cuándo se van a realizar y los recursos que utilizarán las mismas. En base al plan de trabajo la gerencia podrá determinar si el proceso está marchando en tiempo y si está utilizando los recursos (tiempo, personal, dinero, etc.) de la forma esperada.
  4. Estimar es echar un vistazo al futuro y aceptamos resignados cierto grado de incertidumbre. Aunque la estimación, es mas un arte que una Ciencia, es una actividad importante que no debe llevarse a cabo de forma descuidada. En el principio el costo del Software constituía un pequeño porcentaje del costo total de los sistemas basados en Computadoras. Hoy en día el Software es el elemento mas caro de la mayoría de los sistemas informáticos. Un gran error en la estimación del costo puede ser lo que marque la diferencia entre beneficios y perdidas, la estimación del costo y del esfuerzo del software nunca será una ciencia exacta, son demasiadas las variables: humanas, técnicas, de entorno, políticas, que pueden afectar el costo final del software y el esfuerzo aplicado para desarrollarlo. ESTIMACIÓN DEL PROYECTO SOFTWARE
  5. Para realizar estimaciones seguras de costos y esfuerzos tienen varias opciones posibles: • Deje la estimación para mas adelante (obviamente podemos realizar una estimación al cien por cien fiable después de haber terminado el proyecto. • Base las estimaciones en proyectos similares ya terminados. • Utilice técnicas de descomposición relativamente sencillas para generar las estimaciones de costos y esfuerzo del proyecto. • Desarrolle un modelo empírico para él calculo de costos y esfuerzos del Software. Desdichadamente la primera opción, aunque atractiva no es practica. La Segunda opción puede funcionar razonablemente bien si el proyecto actual es bastante similar a los esfuerzos pasados y si otras influencias del proyecto son similares. Las opciones restantes son métodos viables para la estimación del proyecto de software. Desde el punto de vista ideal, se deben aplicar conjuntamente las técnicas indicadas usando cada una de ellas como comprobación de las otras. Antes de hacer una estimación, el planificador del proyecto debe comprender el ámbito del software a construir y generar una estimación de su tamaño.
  6. Es la técnica más común para estimar un proyecto es basar la estimación en el proceso que se va a utilizar, es decir, el proceso se descompone en un conjunto relativamente pequeño de actividades o tareas, y en el esfuerzo requerido para llevar a cabo la estimación de cada tarea. Al igual que las técnicas basadas en problemas, la estimación basada en el proceso comienza en una delineación de las funciones del software obtenidas a partir del ámbito del proyecto. Se mezclan las funciones del problema y las actividades del proceso. Como ultimo paso se calculan los costos y el esfuerzo de cada función y la actividad del proceso de software. ESTIMACIÓN BASADA EN EL PROCESO
  7. DIFERENTES MODELOS DE ESTIMACIÓN Existen diferentes modelos de estimación como son: LOS MODELOS EMPÍRICOS Donde los datos que soportan la mayoría de los modelos de estimación obtienen una muestra limitada de proyectos. Por esta razón, el modelo de estimación no es adecuado para todas las clases de software y en todos los entornos de desarrollo. Por lo tanto los resultados obtenidos de dichos modelos se deben utilizar con prudencia.
  8. Barry Boehm, en su libro clásico sobre economía de la Ingeniería del Software, introduce una jerarquía de modelos de estimación de Software con el nombre de COCOMO, por su nombre en Ingles (Constructive, Cost, Model) modelo constructivo de costos. La jerarquía de modelos de Boehm esta constituida por los siguientes: • Modelo I: El Modelo COCOMO básico calcula el esfuerzo y el costo del desarrollo de Software en función del tamaño del programa, expresado en las líneas estimadas. • Modelo II: El Modelo COCOMO intermedio calcula el esfuerzo del desarrollo de software en función del tamaño del programa y de un conjunto de conductores de costos que incluyen la evaluación subjetiva del producto, del hardware, del personal y de los atributos del proyecto. • Modelo III: El modelo COCOMO avanzado incorpora todas las características de la versión intermedia y lleva a cabo una evaluación del impacto de los conductores de costos en cada caso (análisis, diseño, etc.) del proceso de ingeniería de Software. EL MODELO COCOMO
  9. Aplicación de herramientas para estimación de tiempos y costos de desarrollo de software: GANTT, PERT/CPM, uso de software para la estimación de tiempos y costos. La estimación del tiempo forma parte del proceso de Gestión del Tiempo de la Administración de Proyectos. Los procesos de Gestión del Tiempo del Proyecto incluyen lo siguiente: 1. Definición de las Actividades: identifica las actividades específicas del cronograma que deben ser realizadas para producir los diferentes productos entregables del proyecto. 2. Establecimiento de la Secuencia de las Actividades: identifica y documenta las dependencias entre las actividades del cronograma. 3. Estimación de Recursos de las Actividades: estima el tipo y las cantidades de recursos necesarios para realizar cada actividad del cronograma. ESTIMACIÓN DE TIEMPOS
  10. 4. Estimación de la Duración de las Actividades: estima la cantidad de períodos laborables que serán necesarios para completar cada actividad del cronograma. 5. Desarrollo del Cronograma: analiza las secuencias de las actividades, la duración de las actividades, los requisitos de recursos y las restricciones del cronograma para crear el cronograma del proyecto. 6. Control del Cronograma: controla los cambios del cronograma del proyecto.
  11. GANTT: Es una popular herramienta gráfica cuyo objetivo es mostrar el tiempo de dedicación previsto para diferentes tareas o actividades a lo largo de un tiempo total determinado. A pesar de que, en principio, el diagrama de Gantt no indica las relaciones existentes entre actividades. EJEMPLO:
  12. PERT es básicamente un método para analizar las tareas involucradas en completar un proyecto dado, especialmente el tiempo para completar cada tarea, e identificar el tiempo mínimo necesario para completar el proyecto total.
  13. La estimación de costos de una actividad es una evaluación cuantitativa de los costos probables de los recursos necesarios para completar las actividades del cronograma del proyecto. Este tipo de estimación puede presentarse en forma de resumen o en detalle. Los costos se estiman para todos los recursos que se aplican a la estimación de costos de la actividad. Esto incluye, entre otros, la mano de obra, los materiales, los equipos, los servicios, las instalaciones, la tecnología de la información, y categorías especiales como una asignación por inflación o una reserva para contingencias de costo. A continuación se bosquejan las principales técnicas utilizadas para la estimación de costos: Especificaciones de los Requisitos del software, Planificación del Proyecto y Plan para el Proyecto. • Estimación por analogía • Determinación de Tarifas de Costes de Recursos • Estimación Ascendente • Software de Gestión de Proyectos • Análisis de Propuestas para Licitaciones ESTIMACIÓN DE COSTOS
  14. ESTIMACIÓN DE COSTOS
  15. El objetivo de la Planificación del proyecto de Software es proporcionar un marco de trabajo que permita al gestor hacer estimaciones razonables de recursos costos y planificación temporal. Estas estimaciones se hacen dentro de un marco de tiempo limitado al comienzo de un proyecto de software, y deberían actualizarse regularmente medida que progresa el proyecto. Además las estimaciones deberían definir los escenarios del mejor caso, y peor caso, de modo que los resultados del proyecto pueden limitarse. El Objetivo de la planificación se logra mediante un proceso de descubrimiento de la información que lleve a estimaciones razonables.
  16. Según PMBOK: Incluye los procesos necesarios para asegurar que el proyecto incluya todo el trabajo requerido, y solo el trabajo requerido para completar el proyecto satisfactorio. Según IPMA: • Define los límites. • Especifica entorno geográfico. • Estipula lo que queda fuera del proyecto. • Especifica las características del producto:  Dimensiones.  Características.  Funciones.  Calidad ( marcas, normas, indicadores, tiempos).
  17. Es la primera actividad de llevada a cabo durante la planificación del proyecto de Software. En esta etapa se deben evaluar la función y el rendimiento que se asignaron al Software durante la Ingeniería del Sistema de Computadora para establecer un ámbito de proyecto que no sea ambiguo, e incomprensible para directivos y técnicos. Describe la función, el rendimiento, las restricciones, las interfaces y la fiabilidad, se evalúan las funciones del ámbito y en algunos casos se refinan para dar mas detalles antes del comienzo de la estimación. Las restricciones de rendimiento abarcan los requisitos de tiempo de respuesta y procesamiento, identifican los limites del software originados por el hardware externo, por la memoria disponible y por otros sistemas existentes. ACTIVIDADES ASOCIADAS AL PROYECTO SOFTWARE
  18. La Segunda tarea de la planificación del desarrollo de Software es la estimación de los recursos requeridos para lograr el esfuerzo de desarrollo de Software. RECURSOS HUMANOS COMPONENTES DE SOFTWARE REUTILIZABLES HARDWARE CON HERRAMIENTAS (SOFTWARE)
  19. La Cantidad de personas requeridas para el desarrollo de un proyecto de software solo puede ser determinado después de hacer una estimación del esfuerzo de desarrollo (por ejemplo personas mes o personas años), y seleccionar la posición dentro de la organización y la especialidad que desempeñara cada profesional. Cualquier estudio sobre recursos de software estaría incompleto sin estudiar la reutilización, esto es la creación y la reutilización de bloques de construcción de Software. Tales bloques se deben establecer en catálogos para una consulta más fácil, estandarizarse para una fácil aplicación y validarse para la también fácil integración. El Autor Bennatan sugiere cuatro categorías de recursos de software que se deberían tener en cuenta a medida que se avanza con la planificación: • Componentes ya desarrollados. • Componentes ya experimentados. • Componentes con experiencia Parcial. • Componentes nuevos. RECURSOS HUMANOS RECURSOS O COMPONENTES DE SOFTWARE REUTILIZABLES
  20. RECURSOS DEL ENTORNO El entorno es donde se apoya el proyecto de Software, llamado a menudo entorno de Ingeniería de Software, incorpora Hardware y Software. El Hardware proporciona una plataforma con las herramientas (Software) requeridas para producir los productos que son el resultado de la buena practica de la Ingeniería del Software, un planificador de proyectos debe determinar la ventana temporal requerida para el Hardware y el Software, y verificar que estos recursos estén disponibles. Muchas veces el desarrollo de las pruebas de validación de un proyecto de software para la composición automatizada puede necesitar un compositor de fotografías en algún punto durante el desarrollo. Cada elemento de hardware debe ser especificado por el planificador del Proyecto de Software.
  21. ESTRUCTURAS ORGANIZACIONALES Las estructuras organizacionales son uno de los elementos que se deben tener en cuenta a la hora de gestionar un proyecto, ya que es un factor que puede afectar de forma muy significativa a la disponibilidad de recursos e influir de forma determinante en el modo de dirigir los proyectos. Aunque en la práctica cada empresa se organiza de una forma completamente distinta, se suelen distinguir tres tipos de estructuras organizacionales: • La estructura funcional. • La estructura orientada a proyectos. • La estructura matricial.
  22. La estructura funcional es una estructura jerárquica clásica donde cada empleado tiene un superior definido. En el nivel superior la empresa se organiza por las funciones desempeñadas (contabilidad, ingeniería o producción, por ejemplo). Los miembros de la plantilla responden únicamente al superior de su departamento, por lo que busca una línea directa de comunicación entre los niveles inferiores y superiores. Cada área se puede subdividir a su vez en unidades funcionales más específicas. Cada departamento realiza el trabajo y las actividades del proyecto de manera independiente, enmarcando los proyectos dentro de las áreas funcionales de la organización.
  23. En el caso de la estructura orientada a proyectos, la organización cuenta con un equipo dedicado a tiempo completo y un director de proyecto que se sitúa al máximo nivel dentro de la organización. Habitualmente se estructuran también en unidades departamentales; sin embargo todos ellos deben reportar directamente al director de proyecto. Como se puede ver, se trata de una estructura organizativa muy sencilla y con ciertas limitaciones, como la dificultad de transferir conocimientos a través de proyectos.
  24. La organización matricial combina dos ejes: el funcional (vertical) y el de proyectos (horizontal). La estructura matricial es muy habitual en algunas empresas de servicios y en organizaciones que crecen con rapidez. Mezcla características de organizaciones funcionales y orientadas a proyectos. Se pueden distinguir tres tipos:
  25. • Estructura matricial débil: Es muy similar a una organización funcional, siendo el papel del director de proyecto más bien de coordinador o facilitador, es decir, hace las veces de ayudante y coordinador, por lo que no puede tomar decisiones de forma personal, pero tiene interlocución con todas las áreas funcionales involucradas en el proyecto. • Estructura matricial equilibrada: cuenta con un director de proyecto que tiene una mayor autonomía que en la estructura matricial débil, pero no le confiere autoridad plena sobre el proyecto, especialmente sobre su financiamiento. • Estructura matricial fuerte: coincide en muchas características con la organización orientada a proyectos, ya que tienen un director de proyecto y un equipo administrativo dedicados a tiempo completo, sin que por ello se modifique la estructura funcional. El director de proyecto posee autoridad plena sobre el mismo y actúa al mismo nivel que los responsables de las áreas funcionales.
  26. ESQUEMA DEL PLAN DEL PROYECTO SOFTWARE El esquema sobre el que definir un plan de proyecto debe contribuir a facilitar un buen enfoque desde el que comenzar su gestión con altas probabilidades de éxito. Para lograrlo, esta planificación ha de tener en cuenta, al menos, 3 puntos: Objetivos del proyecto Entregables del proyecto Planificación del proyecto
  27. ESQUEMA DEL PLAN DEL PROYECTO SOFTWARE Además de estos tres puntos, se necesita completar el plan de proyecto con: • Planificación de la gestión del riesgo, que sirva para identificar y evaluar cada riesgo potencial, analizar su posible impacto y definir las medidas de prevención aplicables y los planes de contingencia necesarios. • Planificación de la comunicación de proyecto, que establezca las necesidades mínimas en materia de reporting y reuniones de estado, pero que, además, proponga los canales y medios más eficaces para el intercambio de información. • Planificación de la gestión de Recursos Humanos, que servirá para identificar a los miembros de los equipos, describir sus funciones y responsabilidades en el proyecto y determinar en qué actividades y con qué duración está prevista su participación.
  28. Tipos de equipos de trabajo que se pueden encontrar en un proyecto Equipos de trabajo funcionales Este tipo de grupos humanos están compuestos por miembros de la organización de varios niveles verticales diferentes dentro de la jerarquía de la empresa. Equipos de trabajo multifuncionales Combinan expertos de varias áreas. Estos especialistas se integran en el equipo de forma independiente, o como parte, a su vez, de un equipo funcional. La convivencia de diferentes idiomas y distintas localizaciones geográficas plantean la necesidad de reconocer la autonomía de los grupos de trabajo, como única forma de adaptarse al dinamismo de un entorno de estas características. Equipos de trabajo autónomos
  29. CONCLUSIÓN El planificador del proyecto de software tiene que estimar 3 cosas antes de comenzar el proyecto: • Cuanto durará. • Cuanto esfuerzo requerirá. • Cuanta gente estará implicada. • Además se debe percibir los recursos de HARDWARE Y SOFTWARE que van a requerir y el riesgo implicado. • La combinación de buenos datos históricos y técnicas puede mejorar la precisión de la estimación.
  30. BIBLIOGRAFÍA • Análisis y Diseño de Sistemas Autor: Henry F. Korth & Abraham Silberschatz Segunda Edición. Editora Mc Graw Hill • Ingeniería del Software Autor: Roger S. Pressman Cuarta Edición. Editora Mc Graw Hill • Enciclopedia de Términos de Computación Autor: Linda Gail/ John Christie Editora: PHH, Pentice Hall
Anúncio