Personal Software Process El Personal Software Process (PSP) es un proceso de desarrollo de software estructurado que tiene como objetivo ayudar a los ingenieros de software a entender y mejorar su desempeño, mediante el uso de un "disciplinado, impulsado por los datos procedimiento". El PSP fue creado por Watts Humphrey para aplicar los principios básicos de la Software Engineering Institute 's (SEI), Capability Maturity Model (CMM) a las prácticas de desarrollo de software de un único promotor. Pretende proporcionar a los ingenieros de software las habilidades de proceso necesarios para trabajar en un equipo de software de procesos (PAT) del equipo. "Personal Software Process" y "PSP" son marcas registradas marcas de servicio de la Universidad Carnegie Mellon . [1] PSP ha sido comparada con la aplicación de Six Sigma a desarrollo de software . Mukesh Jain llevó el despliegue a gran escala de PSP / TSP en Microsoft India. Dentro de 6 meses, más de 2/3 de los proyectos enviados fueron sin ningún tipo de defectos y el 94% de los proyectos fueron entregados a tiempo. Objetivos
El PSP tiene como objetivo proporcionar a los ingenieros de software con métodos disciplinados para la mejora de los procesos personales de desarrollo de software. El PSP ayuda a los ingenieros de software para:
Mejorar su estimación y planificación de capacidades. Hacer compromisos que pueda cumplir. Gestionar la calidad de sus proyectos. Reducir el número de defectos en su t rabajo.
El objetivo de la PSP es ayudar a los desarrolladores producir sin defectos, productos de calidad a tiempo. Productos defectuosos bajo cero defectos y se han convertido en una realidad para algunos desarrolladores y equipos de TSP, tales como la división de Motorola en la Florida que logró cero defectos en más de 18 proyectos a través de la aplicación de técnicas de PSP. [2] Estructura PSP
La formación de PSP sigue un enfoque de mejora de la evolución: un ingeniero de aprendizaje para integrar la PSP en su o comienza su proceso en el primer nivel - PSP0 - y progresa en la madurez de los procesos al nivel final - PSP2.1. Cada nivel se detallan las secuencias de comandos, listas de verificación y plantillas para guiar a los ingenieros a través de los pasos necesarios y ayuda a mejorar el ingeniero de su propio proceso de software personal. Humphrey anima a los ingenieros competentes para personalizar estos
scripts y plantillas a medida que adquieren comprensión de sus propias fortalezas y debilidades. Proceso
La entrada a la PSP son los requisitos, documento de requisitos se ha completado y entregado al ingeniero. PSP0, PSP0.1 (disciplina Presenta el proceso y la medición)
PSP0 tiene 3 fases: planificación, desarrollo (diseño, codificación, pruebas) y un postmortem. Una línea de base se establece de la medición actual del proceso: el tiempo dedicado a la programación, fallos de inyección / eliminado, el tamaño de un programa. En un post mortem, el ingeniero asegura que todos los datos de los proyectos ha sido debidamente registrados y analizados. PSP0.1 avances en el proceso mediante la adición de un estándar de codificación, una medida del tamaño y el desarrollo de un plan de mejora de procesos personales (PIP). En el PIP, el ingeniero registra ideas para mejorar su propio proceso. PSP1, PSP1.1 (presenta la estimación y planificación)
En base a los datos de referencia recogidos en PSP0 y PSP0.1, el ingeniero estima que el tamaño de un nuevo programa será y prepara un informe de la prueba (PSP1). Los datos acumulados de los proyectos anteriores se utiliza para estimar el tiempo total. Cada nuevo proyecto se grabará el tiempo real empleado. Esta información se utiliza para la planificación de tareas y el calendario y la estimación (PSP1.1). PSP2, PSP2.1 (gestión de calidad y diseño Presenta)
PSP2 agrega dos nuevas fases: revisión de diseño y revisión de código. La prevención de defectos y la eliminación son el foco de la PSP2. Ingenieros de aprender a evaluar y mejorar su proceso mediante la medición de cómo las tareas de largo y tener el número de defectos que se inyectan y eliminar en cada fase de desarrollo. Ingenieros de construir y utilizar listas de comprobación para revisiones de diseño y código. PSP2.1 introduce técnicas de especificación de diseño y análisis (PSP3 es un nivel legado que ha sido reemplazado por TSP). La importancia de los datos
Uno de los aspectos fundamentales de la PSP está utilizando datos históricos para analizar y mejorar el rendimiento del proceso. PSP recolección de datos se apoya en cuatro elementos principales:
Secuencias de comandos Medidas Normas Formularios
Los scripts proporcionan PSP a nivel de expertos de orientación a seguir los pasos del proceso y que proporcionan un marco para la aplicación de las medidas de PSP. El PSP tiene cuatro medidas fundamentales:
Tamaño - la medida del tamaño de una parte del producto, tales como líneas de código (LOC). El esfuerzo - el tiempo requerido para completar una tarea, por lo general r ecogida en un acta. Calidad - el número de defectos en e l producto. Calendario - una medida de la progresión del proyecto, seguido contra las fechas de terminación previstas y reales.
Aplicando las normas para el proceso puede asegurar que los datos es preciso y consistente. Los datos se registran en las formas, normalmente utilizando una herramienta de software de PSP. El SEI ha desarrollado una herramienta de PSP y también hay opciones de código abierto disponibles, tales como paneles de proceso. Los datos clave recogidos en la herramienta de PSP son tiempo, defecto, y los datos de tamaño - el tiempo transcurrido en cada fase; cuando y donde se inyectaron defectos, que se encuentra, y fijo, y el tamaño de las piezas del producto. Los desarrolladores de software utilizan muchas otras medidas que se derivan de estas tres medidas básicas para entender y mejorar su rendimiento. Medidas derivadas son:
estimación de la precisión (tamaño / tiempo) intervalos de predicción (tamaño / tiempo) tiempo en la distribución de fase defecto de la distribución de la inyección defecto de la distribución de la eliminación productividad reutilizar el porcentaje costo índice de rendimiento valor previsto valor ganado predecir el valor ganado la densidad de defectos la densidad de defectos por fase defecto de velocidad de eliminación por fase defecto de aprovechar la eliminación las tasas de examen proceso de producción fase de producción el fracaso costo de la calidad (COQ) evaluación de COQ valoración / fracaso COQ relación
La planificación y el seguimiento de
El tiempo de registro, el defecto, y los datos de talla es una parte esencial de la planificación y el seguimiento de los proyectos de PSP, como los datos históricos se utiliza para mejorar la precisión de la estimación. El PSP utiliza el proxy por el de estimación (SONDA) para mejorar las habilidades de estimación de un desarrollador para una planificación más precisa del proyecto. Para el seguimiento del proyecto, el PSP utiliza el valor acumulado método. El PSP también utiliza técnicas estadísticas, tales como la correlación, regresión lineal, y la desviación estándar, para traducir los datos en información útil para mejorar la estimación, planificación y calidad. Estas fórmulas estadísticas se calculan mediante la herramienta de PSP. la PSP
El PSP está diseñado para ayudar al desarrollador mejorar su proceso personal, por lo que los desarrolladores de PSP se espera que continúe la adaptación del proceso para garantizar que cumple sus necesidades personales. PSP y TSP de la
En la práctica, las habilidades de PSP se utilizan en un ambiente de equipo de TSP. Los equipos constan de PSP TSP capacitados desarrolladores que trabajan como voluntarios para las áreas de responsabilidad del proyecto, por lo que el proyecto está gestionado por el propio equipo. Utilizando los datos recogidos mediante sus capacidades de PSP, el equipo hace que los planes, las estimaciones de los, y controla la calidad. El uso de métodos de PSP proceso puede ayudar a los equipos de TSP para cumplir sus compromisos de programación y producir software de alta calidad. Por ejemplo, según una investigación realizada por Watts Humphrey, un tercio de todos los proyectos de software fracasan, [3] , pero un estudio del SEI en 20 proyectos de TSP en 13 organizaciones diferentes que se encuentran que los equipos de TSP no cumplieron con sus horarios de destino en un promedio de sólo seis por ciento. [ 4] El cumplimiento efectivo de los compromisos de programación se puede atribuir al uso de datos históricos para hacer estimaciones más precisas, por lo que los proyectos se basan en planes realistas - y mediante el uso de métodos de PSP de calidad, que producen bajo defecto de software, lo que reduce el tiempo dedicado a la eliminación de defectos en las fases posteriores, tales como la integración y pruebas de aceptación. PSP y otras metodologías
El PSP es un proceso personal que se puede adaptar para satisfacer las necesidades del desarrollador individual. No es específico de una metodología de programación o diseño,
por lo que se puede utilizar con diferentes metodologías, incluyendo el desarrollo ágil de software . Métodos de ingeniería de software se puede considerar que varían de predicción a través de adaptación. La PSP es una metodología de predicción, y Agile se considera la adaptación, pero a pesar de sus diferencias, la cuota de TSP / PSP y ágil varios conceptos y enfoques, en particular en lo que respecta a la organización del equipo. Ambos permiten al equipo:
Defina sus objetivos y normas. Estimar y programar el trabajo. Determinar los horarios realistas y alcanzables. Haga planes y mejoras de procesos.
Ágil y la cuota de TSP / PSP la idea de los miembros del equipo asuman la responsabilidad de su propio trabajo y trabajar juntos para acordar un plan realista, creando un ambiente de confianza y responsabilidad. Sin embargo, el TSP / PSP difiere de Agile en su énfasis en la documentación del proceso y el uso de datos para la predicción y la definición de los programas del proyecto. Certificación
Una certificación que cubre PSP es ofrecido por el SEI de Carnegie Mellon University. Los pasos para convertirse en un SEI-Certified PSP Developer son: conocer el PSP, tomar el examen de certificación, mantener las credenciales. El examen de desarrollo de PSP se basa en los conceptos de PSP que se encuentran en el Consejo de PSP del Conocimiento.