Planear un proyectos de Software. ¡Volví más académico que nunca!

Posted on 2 diciembre, 2010 by @LasTenga — Leave a comment ↓

Este es un post especial, ya que la mayoría salieron a vacaciones de diciembre, aproveché para hacer (Copy & Paste) un post especial “Académico”. En “Ingeniería de Software I“, se ve temas de cómo crear un proyecto de software y las distintas opciones para elegir el mejor método para desarrollarlo. Así que hoy veremos un artículo tomado de internet el cual me pareció genial y resume todos los pasos para la planeación de un nuevo proyecto. se los organicé con títulos y toda la vaina para que puedan identificarlo bien. Ahhh y por si acaso, lo tomé de: http://www.wikilearning.com/articulo/planificacion_de_proyectosplaneacion_y_estimacion_de_proyectos_informaticos/9597-1

1. Qué es un proyecto de Software.
Es el Proceso de gestión para la creación de un Sistema o software, la cual encierra un conjunto deactividades, una de las cuales es la estimación, estimar es echar unvistazo al futuro y aceptar resignados cierto grado de incertidumbre.Aunque la estimación, es mas un arte que una Ciencia, es unaactividad importante que no debe llevarse a cabo de forma descuidada.Existen técnicas útiles para la estimación de costes de tiempo. Ydado que la estimación es la base de todas las demás actividades deplanificación del proyecto y sirve como guía para una buenaIngeniería Sistemas y Software. Al estimar tomamos en cuenta no solodel procedimiento técnico a utilizar en el proyecto, sino que setoma en cuenta los recursos, costos y planificación. El Tamaño delproyecto es otro factor importante que puede afectar la precisión delas estimaciones. A medida que el tamaño aumenta, crece rápidamentela interdependencia entre varios elementos del Software.

Plan de pruebas. Índice. Asociadacon cada fase debe de haber una fecha que especifique cuando se debeterminar estas fases y una indicación de como se pueden solapar lasdistintas fases del proyecto. Planeación del Proyecto. Se muestra en dondeencontrar las cosas dentro del plan. Plan de mantenimiento. Se hace un esbozogeneral de las pruebas y de las herramientas. Plan de control de modificaciones. Se describela preparación de los programadores que participan en el proyecto ylas instrucciones a los usuarios para la utilización del sistemaque se les entregue. Plan de capacitación. Plan de fases. fase dediseño de alto nivel. Plan de instalación y operación. Hace una descripcióngeneral del proyecto detalle de la organización del plan y resumeel resto del documento.Se describe el procedimiento para instalar el sistema en lalocalidad del usuario. fase de diseño de bajo nivel. Seanaliza como se informa del estado del proyecto y se definen lasrevisiones formales asociadas con el avance de proyecto. Se analiza el ciclode desarrollo del proyecto como es: análisis de requisitos. Plan de organización. Seresume los detalles críticos del proyecto como fechas programadas. etc.Se establece un mecanismo para aplicar las modificaciones que serequieran a medida que se desarrolle el sistema.marcas de logros y todos los artículos que deben entrar bajocontrato. Plan de revisión e informes. Plan de recursos y entregas.La disponibilidad de informaciónHistórica es otro elemento que determina el riesgo de la estimación.anticipando problemas que puedan surgir y preparando con anticipaciónsoluciones tentativas a ellos.   Panorama. sin embargo estos puntosson validos también para sistemas pequeños. Seestablece un bosquejo de los posibles tipos de mantenimiento que setienen que dar para futuras versiones del sistema. Plan de documentación. Se definenlas responsabilidades especificas de los grupos que intervienen enel proyecto. La planeación efectiva de un proyectode software depende de la planeación detallada de su avance. Los puntos analizados posteriormentegeneralmente son requeridos por grandes sistemas de programación. procedimientos yresponsabilidades para realizar las pruebas del sistema. 2.           . Su funciónes definir y controlar la documentación asociada con el proyecto. Se supondrá que el administrador delproyecto es responsable de la Planeación desde la definición derequisitos hasta la entrega del sistema terminado.

Actividades asociadas al proyecto de software. costos y planificación temporal.1 Ámbito del Software. Objetivos de la Planificación del Proyecto. Es la primera actividad de llevada acabo durante la planificación del proyecto de Software. El Ámbito se define como unpre-requisito para la estimación y existen algunos elementos que sedebe tomar en cuenta como es: . por la memoria disponible y por otros sistemasexistentes. El objetivo de la Planificación delproyecto de Software es proporcionar un marco de trabajo que permitaal gestor de planificación hacer estimaciones razonables derecursos. Las restricciones derendimiento abarcan los requisitos de tiempo de respuesta yprocesamiento. de modo que los resultados del proyectopueden limitarse. e incomprensible para directivos ytécnicos Describe la función. identifican los límites del software originados porel hardware externo. ydeberían actualizarse regularmente a medida que progresa elproyecto. se evalúan lasfunciones del ámbito y en algunos casos se refinan para dar masdetalles antes del comienzo de la estimación. y peor caso. el rendimiento. En esta etapa se deben evaluar lafunción y el rendimiento que le asignaron al Software durante laIngeniería del Sistema de Computadora para establecer un ámbito deproyecto que no sea ambiguo. 4. El Objetivo de la planificación selogra mediante un proceso de descubrimiento de la información quelleve a estimaciones razonables. las interfaces y la fiabilidad. Estas estimaciones se hacen dentro deun marco de tiempo limitado al comienzo de un proyecto de software.las restricciones.3. 4. Además las estimaciones deberían definir los escenariosdel mejor caso.

Cualquier estudio sobre recursos desoftware estaría incompleto sin estudiar la reutilización. La Segunda tarea de la planificacióndel desarrollo de Software es la estimación de los recursosrequeridos para acometer el esfuerzo de desarrollo de Software.4 Recursos o componentes de softwarere utilizables. y seleccionar la posicióndentro de la organización y la especialidad que desempeñara cadaprofesional. esto esla creación y la reutilización de bloques de construcción deSoftware. ensegundo nivel de la pirámide se encuentran los Componentesreutilizables. .    Recursos Humanos Componentes Reutilizables Herramientas de Software yHardware Cada recurso queda especificadomediante cuatro características: Descripción del Recurso. Fecha cronológica en la que serequiere el recurso. las personas (el recurso humano). Tiempo durante el que seráaplicado el recurso. Y en la parte mas alta de la pirámidese encuentra el recurso primario.La Obtención de la Informaciónnecesaria para el software. estosimula a una pirámide donde las Herramientas (hardware y Software). 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).2 Recursos. 4. Para esto el analista y el cliente sereúnen sobre las expectativas del proyecto y se ponen de acuerdo enlos puntos de interés para su desarrollo.3 Recursos Humanos.    Informes de disponibilidad. 4.son la base proporcional de soporte al esfuerzo de desarrollo. 4.

Cuando se planifica un proyecto de software se tiene que obtenerestimaciones de esfuerzo humano requerido.    Componentes ya experimentados. Muchas veces el desarrollo de laspruebas de validación de un proyecto de software para la composiciónautomatizada puede necesitar un compositor de fotografías en algúnpunto durante el desarrollo. Pero en muchos de los casoslas estimaciones se hacen valiéndose de la experiencia pasada comoúnica guía. El entorno es donde se apoya elproyecto de Software. incorpora Hardware y Software. Cada elemento de hardware debe serespecificado por el planificador del Proyecto de Software. y verificar queestos recursos estén disponibles. de la duracióncronológica del esfuerzo humano requerido. Hoy en día el Software es el elemento máscaro de la mayoría de los sistemas informáticos. 4. El Hardware proporciona una plataformacon las herramientas (Software) requeridas para producir losproductos que son el resultado de la buena practica de la Ingenieríadel Software. Es una pequeña planeación sobre quees lo que va a ser mi proyecto. Si un proyecto es .Tales bloques se deben establecer encatálogos para una consulta más fácil. El Autor Bennatan sugiere cuatrocategorías de recursos de software que se deberían tener en cuentaa medida que se avanza con la planificación: Componentes ya desarrollados.5 Recursos de entorno. de la duracióncronológica del proyecto y del costo. Componentes nuevos. En el principio el costo del Softwareconstituía un pequeño porcentaje del costo total de los sistemasbasados en Computadoras. llamado a menudo entorno de Ingeniería deSoftware. Componentes con experienciaParcial. Estimación del proyecto de Software. un planificador de proyectos debe determinar la ventanatemporal requerida para el Hardware y el Software. 5. estandarizarse para unafácil aplicación y validarse para la también fácil integración. Una de las actividades cruciales delproceso de gestión del proyecto del software es la planificación.

com/trabajos15/algoritmos/algoritmos.bastante similar en tamaño yfunciona un proyecto es bastante similar en tamaño y funciona unproyecto pasado es probable que el nuevo proyecto requieraaproximadamente la misma cantidad de esfuerzo. 1. http://www. aunque cada una tiene suspuntos fuertes y sus puntos débiles. Sehace una estimación de esa métrica y el modelo predice el esfuerzorequerido. que dureaproximadamente lo mismo que el trabajo anterior. Algunas de estas técnicas son: Modelado del algoritmo de costos Se desarrolla un modelo utilizandoinformación histórica de costos que relaciona alguna métrica desoftware (por lo general. Seestima el costo de un nuevo proyecto por analogía con estosproyectos completados. todas tienen en común lossiguientes atributos. El proyecto se desglosa en partesmás pequeñas que se estiman individualmente. Se han de establecer de antemanoel ámbito del proyecto. Pero que pasa si elproyecto es totalmente distinto entonces puede que las experienciasobtenida no sean suficientes. Ley de Parkinson . Estasestimaciones se comparan y discuten. Se han desarrollado varias técnicas deestimación para el desarrollo de software. Como bases para la realización deestimaciones se usan métricas del software de proyectos pasados.shtml Opinión de expertos Se consultan varios expertos en lastécnicas de desarrollo de software propuestas y en el dominio deaplicación. 2. Cada uno de ellos estima el costo del proyecto. Myers (1989) da una descripción muy clara deeste enfoque.monografias. Estimación por analogía Esta técnica es aplicable cuando otrosproyectos en el mismo dominio de aplicación se han completado. 3. El proceso de estimación seitera hasta que se acuerda una estimación. su tamaño) con el costo del proyecto.

El costo sedetermina por los recursos disponibles más que por los objetivoslogrados. de entorno.Las opciones restantes son métodos viables para la estimación delproyecto de software. que pueden afectar el costo finaldel software y el esfuerzo aplicado para desarrollarlo. el esfuerzo requerido se estima en 60personas-mes. Si éstos predicen costos radicalmente diferentes. Si el software se tiene que entregar en 12 meses y sedispone de cinco personas. Desdichadamente la primera opción. Se debe buscar más informaciones y repetir el proceso hastaque la estimación converja.técnicas. son demasiadas las variables: humanas. Desarrolle un modelo empíricopara él cálculo de costos y esfuerzos del Software. políticas.aunque atractiva no es práctica.shtml Asignar costos para ganar El costo del software se estimadependiendo de lo que el cliente esté dispuesto a pagar por elproyecto. . El esfuerzo estimado depende del presupuesto del cliente yno de la funcionalidad del software.com/trabajos4/leyes/leyes. se debenutilizar varias técnicas de estimación de costos y comparar susresultados. La Segunda opción puede funcionarrazonablemente bien si el proyecto actual es bastante similar a losesfuerzos pasados y si otras influencias del proyecto son similares. Para proyectos grandes. http://www. Utilice técnicas dedescomposición relativamente sencillas para generar lasestimaciones de costos y esfuerzo del proyecto. Cada técnica de estimación tiene suspropias fortalezas y debilidades. se deben aplicarconjuntamente las técnicas indicadas usando cada una de ellas comocomprobación de las otras. Desde el punto de vista ideal.monografias. Un gran error en la estimación delcosto puede ser lo que marque la diferencia entre beneficios yperdidas. Para realizar estimaciones seguras decostos y esfuerzos tienen varias opciones posibles: Deje la estimación para más adelante(obviamente podemos realizar una estimación al cien por cien fiabledespués de haber terminado el proyecto.La Ley de Parkinson establece que eltrabajo se extiende para llenar el tiempo disponible. estoindica que no se tiene suficiente información para generar loscostos.    Base las estimaciones en proyectossimilares ya terminados. la estimación del costo y del esfuerzo del software nuncaserá una ciencia exacta.

introduce una jerarquía demodelos de estimación de Software con el nombre de COCOMO. Por lo tanto los resultados obtenidos de dichos modelosse deben utilizar con prudencia. Barry Boehm. La jerarquía de modelos de Boehm esta constituida por lossiguientes:  Modelo I. Cost.1 Estimación basada en el Proceso. El Modelo COCOMO básicocalcula el esfuerzo y el costo del desarrollo de Software en funcióndel tamaño del programa. la estimación basada en el proceso comienza en unadelineación de las funciones del software obtenidas a partir delámbito del proyecto. es decir. 6. Model) modelo constructivo decostos. Al igual que las técnicas basadas enproblemas. Diferentes modelos de estimación.Antes de hacer una estimación. Es la técnica más común para estimarun proyecto es basar la estimación en el proceso que se va autilizar. Como ultimo paso se calculan los costos y elesfuerzo de cada función y la actividad del proceso de software. 5. Se mezclan las funciones del problema y lasactividades del proceso. el modelo de estimación no es adecuadopara todas las clases de software y en todos los entornos dedesarrollo. elplanificador del proyecto debe comprender el ámbito del software aconstruir y generar una estimación de su tamaño. 6. .1 Los Modelos Empíricos: Donde los datos que soportan la mayoríade los modelos de estimación obtienen una muestra limitada deproyectos. Existen diferentes modelos deestimación como son: 6. Por esta razón.2 El Modelo COCOMO. en su libro clásico sobreeconomía de la Ingeniería del Software. y en el esfuerzorequerido para llevar a cabo la estimación de cada tarea. expresado en las líneas estimadas. por sunombre en Ingles (Constructive. el proceso se descompone en un conjuntorelativamente pequeño de actividades o tareas.

cuanto esfuerzo requerirá y cuanta genteestará implicada. No tener una negociación(documento.del personal y de los atributos del proyecto. Mal análisis en losrequerimientos.  6. 7. En resumen el planificador del Proyectode Software tiene que estimar tres cosas antes de que comience elproyecto: cuanto durará. Aunqueexisten muchas herramientas automáticas de estimación. 5. Además el planificador debe predecir los recursosde hardware y software que va a requerir y el riesgo implicado. del hardware. pero la combinación de buenos datos históricos y técnicaspuede mejorar la precisión de la estimación. y enalgunos casos la planificación temporal de desarrollo y riesgosasociados. Las herramientas automáticas deestimación permiten al planificador estimar costos y esfuerzos. el planificador puede obtener una estimación más exacta. 6. contrato) con el cliente. con importantes variables del proyecto.3 Herramientas Automáticas De Estimación. El Modelo COCOMOintermedio calcula el esfuerzo del desarrollo de software en funcióndel tamaño del programa y de un conjunto de conductores de costosque incluyen la evaluación subjetiva del producto. generalmente se utilizan al menos dos de las trestécnicas referidas anteriormente. 3. diseño. los costos. Errores 1. No hacer un análisis costobeneficio. . 7.tales como la fecha de entrega o la selección del personal. todasexhiben las mismas características generales y todas requieren deuna o más clases de datos. la carga de personal.) delproceso de ingeniería de Software. Modelo III. 4. Mediante la comparación y laconciliación de las estimaciones obtenidas con las diferentestécnicas. Desconocer los usuarios quetrabajan con el sistema. etc. Para obtener estimaciones exactas paraun proyecto. Errores clásicos en un proyectode software 2. Modelo II. asícomo llevar a cabo análisis. El modelo COCOMOavanzado incorpora todas las características de la versiónintermedia y lleva a cabo una evaluación del impacto de losconductores de costos en cada caso (análisis. Desconocer el ambiente de trabajode los usuarios. A partir de estos datos. el modeloimplementado por la herramienta automática de estimaciónproporciona estimaciones del esfuerzo requerido para llevar a cabo elproyecto.La estimación del proyecto de software nunca será una cienciaexacta. Una mala planeación. la duración.

se necesita tener un control riguroso sobre eltiempo.8. Mala elección de recursos(hardware. Para poder completar con éxito unproyecto de software. Herramientas para la planificacióny Gestión de productos Software. modelos yprácticas de uso que controlan la planificación. humanos). las personas o los imprevistos que puedan surgir. el desarrollo y lagestión de proyectos tecnológicos. como porejemplo cambios en el software. se ha convertido posteriormente en un modelopráctico que facilita el éxito de los proyectos tecnológico. Originalmente creado en 1994 para conseguir resolverlos problemas a los que se enfrentaban las empresas en susrespectivos proyectos. 9. software. . MSF se centra en los modelos deproceso y de equipo dejando en un segundo plano las eleccionestecnológicas. Para ayudarnos en la planificación ygestión de proyectos. Microsoft Solutions Framework (MSF): esuna flexible e interrelacionada serie de conceptos. Microsoft nos proporciona dos herramientasbásicas: Microsoft Project y Microsoft Solutions Framework.