Pregunta

El Proceso de software personal (PSP) está diseñado para permitir que los ingenieros de software comprendan y mejoren Su desempeño. El PSP usa scripts para guiar a un profesional a través del proceso. Cada script define el propósito, los criterios de entrada, los pasos a realizar y los criterios de salida. PSP0 está diseñado para ser un marco que permita iniciar un proceso personal.

Una de las secuencias de comandos utilizadas en PSP0 es la secuencia de comandos de desarrollo, que sirve para guiar el desarrollo. Este script se usa una vez que hay una declaración de requisitos, un resumen del plan del proyecto, se realizan registros de registro de tiempo y defectos, y se establece un estándar de tipo de defecto. Las actividades de este script son diseño, código, compilación y prueba. La secuencia de comandos se cierra cuando tiene una aplicación probada a fondo y registros completos de tiempo y defectos.

En la fase de Código, revisa los requisitos y realiza un diseño, registra los defectos de los requisitos en el registro y realiza un seguimiento del tiempo. En la fase de compilación, compila, corrige los errores de tiempo de compilación y repite hasta que el programa compila, y registra cualquier defecto y tiempo. Finalmente, en la fase de Prueba, prueba hasta que todas las pruebas se ejecuten sin error y todos los defectos estén corregidos, mientras registra el tiempo y los defectos.

Mis preocupaciones son sobre cómo administrar el código, compilar y probar las fases cuando uso lenguajes de programación modernos (especialmente lenguajes interpretados como Python, Perl y Ruby) e IDEs.

Mis preguntas:

  • En idiomas interpretados, no hay tiempo de compilación. Sin embargo, puede haber problemas en la ejecución. Está ejecutando la secuencia de comandos, fuera de las pruebas unitarias (y otras), consideró " compilar " o "prueba" ¿hora? ¿Deben considerarse los errores de ejecución " compilar " o "prueba" errores al rastrear defectos?
  • Si un caso de prueba encuentra un error de sintaxis, ¿se considera un defecto de código, un defecto de compilación o un defecto de prueba? La prueba realmente encontró el error, pero es un problema de código.
  • Si un IDE identifica un error que impediría la compilación antes de la compilación, ¿debería identificarse? Si es así, ¿debería identificarse y rastrearse como un error de compilación o un error de código?

Parece que el PSP, al menos el proceso de referencia de PSP0, está diseñado para usarse con un lenguaje compilado y pequeñas aplicaciones escritas usando un editor de texto (y no un IDE). Además de mis preguntas, agradecería los consejos y comentarios de cualquier persona que esté utilizando o haya utilizado el PSP.

¿Fue útil?

Solución 5

Después de leer las respuestas de Mike Burton , Vinko Vrsalovic y JRL y re -Leyendo los capítulos apropiados en PSP: un proceso de auto-mejora para ingenieros de software, he llegado a mis propias opiniones sobre estos problemas. Sin embargo, lo que es bueno es que encontré una sección en el libro que originalmente me perdí cuando dos páginas se unieron.

  
      
  • En idiomas interpretados, hay   Sin tiempo de compilación. Sin embargo, puede haber   Ser problemas en la ejecución. Se esta ejecutando   el guión, fuera de la unidad (y   otras) pruebas, consideradas "compilar" o   " prueba " ¿hora? En caso de errores con   ejecución se considerará "compilar" o   " prueba " errores al rastrear defectos?
  •   

Según el libro, dice que "si está utilizando un entorno de desarrollo que no se compila, simplemente debe omitir el paso de compilación". Sin embargo, también dice que si tiene un paso de compilación, "puede registrar el tiempo de compilación y cualquier error de compilación en la fase de compilación".

Esto significa que para los idiomas interpretados, eliminará la fase de compilación del seguimiento o reemplazará la compilación con sus scripts de compilación. Debido a que el PSP0 generalmente se usa con aplicaciones pequeñas (similar a lo que esperaría en un laboratorio universitario), esperaría que no tuviera un proceso de compilación y simplemente omitiría el paso.

  
      
  • Si un caso de prueba encuentra una sintaxis   error, es eso considerado un código   defecto, un defecto de compilación o una prueba   ¿defecto? La prueba realmente encontró el   error, pero es un problema de código.
  •   

Registraría los errores donde están ubicados.

Por ejemplo, si un caso de prueba tiene un defecto, ese sería un defecto de prueba. Si se ejecutó la prueba y se encontró un error en la aplicación que se está probando, eso sería un defecto de código o diseño, dependiendo de dónde se originó el problema.

  
      
  • Si un IDE identifica un error que   evitaría la compilación antes   en realidad compilando, si eso fuera   ¿identificado? Si es así, ¿debería ser   identificado y rastreado como una compilación   error o un error de código?
  •   

Si el IDE identifica un error de sintaxis, es lo mismo que realmente detecta el error antes de la ejecución. Al usar un IDE correctamente, existen pocas excusas para permitir que los defectos que afectarían la ejecución (como en, causen errores en la ejecución de la aplicación que no sean errores de lógica / implementación) a través de.

Otros consejos

En general, dado que el PSP es un proceso de mejora personal , las respuestas a sus preguntas reales no importan siempre que elija una respuesta y la aplique de manera consistente. De esa manera, podrá medir los tiempos que toma en cada fase definida, que es lo que busca PSP. Si su equipo está usando colectivamente el PSP, entonces todos deben acordar qué scripts usar y cómo responder sus preguntas.

Mis opiniones sobre las preguntas reales son (no es que sean relevantes):

  
      
  • En idiomas interpretados, no hay tiempo de compilación. Sin embargo, puede haber   Ser problemas en la ejecución. Se esta ejecutando   el guión, fuera de la unidad (y   otras) pruebas, consideradas "compilar" o   " prueba " ¿hora? En caso de errores con   ejecución se considerará "compilar" o   " prueba " errores al rastrear defectos?
  •   

Para mí, el tiempo de prueba es el momento en que se ejecutan las pruebas reales y no otra cosa. En este caso, tanto los errores como el tiempo de ejecución que agregaría como tiempo de 'compilación', tiempo que se usa para generar y ejecutar el código.

  
      
  • Si un caso de prueba encuentra un error de sintaxis, ¿se considera un código?   defecto, un defecto de compilación o una prueba   ¿defecto? La prueba realmente encontró el   error, pero es un problema de código.
  •   

Los errores de sintaxis son defectos de código.

  
      
  • Si un IDE identifica un error que impediría la compilación antes   en realidad compilando, si eso fuera   ¿identificado? Si es así, ¿debería ser   identificado y rastreado como una compilación   error o un error de código?
  •   

Si el IDE es parte de su cadena de herramientas, entonces ver los errores es como si usted hubiera detectado los errores y, por lo tanto, los errores de código. Si no usa el IDE regularmente, los consideraría como errores de compilación.

He usado PSP durante años. Como han dicho otros, es un proceso personal, y deberá evolucionar PSP0 para mejorar su proceso de desarrollo. No obstante, nuestro equipo (todos capacitados para PSP) lidió con estos problemas en varios frentes. Permítame darle una idea de los componentes involucrados, y luego le diré cómo nos las arreglamos.

Teníamos un PowerBuilder " tier " ;; PowerBuilder IDE le impide incluso guardar su código hasta que se compile correctamente y se vincule. Parte del sistema usaba JSP, aunque la cantidad de Java era menor y repetitiva, por lo que en la práctica, no la contamos en absoluto. Una gran parte del sistema estaba en JS / JavaScript; Esto se hizo antes de que aparecieran las maravillosas bibliotecas Ajax, y representaban una gran parte del trabajo. La otra gran porción era Oracle Pl / Sql; esto tiene una fase de compilación algo más tradicional.

Al trabajar en PowerBuilder, la fase de compilación (y enlace) comenzó cuando el desarrollador guardó el objeto. Si el guardado tuvo éxito, registramos un tiempo de compilación de 0. De lo contrario, registramos el tiempo que nos tomó corregir los errores que causaron el defecto en tiempo de compilación. Muy a menudo, estos fueron defectos inyectados en la codificación, eliminados en la fase de compilación.

Ese aspecto de compilación forzada / enlace del IDE de PowerBuilder nos obligó a mover la fase de revisión de código después de la compilación. Inicialmente, esto nos causó cierta angustia, porque no estábamos seguros de cómo / si tal cambio afectaría el significado de los datos. En la práctica, se convirtió en un problema. De hecho, muchos de nosotros también trasladamos nuestras revisiones de código Oracle Pl / Sql a después de la fase de compilación, porque descubrimos que al revisar el código, a menudo omitimos algunos errores de sintaxis que el compilador informaría.

No hay nada de malo con un tiempo de compilación de 0, como tampoco hay nada de malo con un tiempo de prueba de 0 (lo que significa que su prueba de unidad pasó sin detectar errores y se ejecutó significativamente más rápido que su unidad de medida). Si esos tiempos son cero, entonces no elimina ningún defecto en esas fases, y no encontrará un problema div / 0. También puede registrar un mínimo nominal de 1 minuto, si eso lo hace sentir más cómodo, o si sus medidas requieren un valor distinto de cero.

Su segunda pregunta es independiente del entorno de desarrollo. Cuando encuentra un defecto, registra en qué fase lo inyectó (típicamente diseño o código) y la fase que lo eliminó (típicamente diseño, revisión de código, compilación o prueba). Eso le proporciona la medida llamada `` apalancamiento '', que indica la efectividad relativa de eliminar un defecto en una fase particular (y respalda el `` conocimiento común '' de que eliminar defectos antes es más efectivo que eliminarlos más adelante en el proceso). La fase en la que se inyectó el defecto es su tipo, es decir, un defecto de diseño o codificación. La fase en la que se elimina el defecto no afecta su tipo.

Del mismo modo, con JS / JavaScript, el tiempo de compilación es efectivamente inconmensurable. No registramos ningún momento para la fase de compilación, pero, de nuevo, no eliminamos ningún defecto en esa fase. La mayor parte de los defectos de JS / JavaScript se inyectaron en el diseño / codificación y se eliminaron en la revisión de diseño, revisión de código o prueba.

Parece, básicamente, que su proceso formal no coincide con su proceso de práctica. Dé un paso atrás, reevalúe lo que está haciendo y si debe elegir un enfoque formal diferente (si de hecho necesita un enfoque formal para empezar).

  
      
  • En idiomas interpretados, no hay tiempo de compilación. Sin embargo, puede haber   Ser problemas en la ejecución. Se esta ejecutando   el guión, fuera de la unidad (y   otras) pruebas, consideradas "compilar" o   " prueba " ¿hora? En caso de errores con   ejecución se considerará "compilar" o   " prueba " errores al rastrear defectos?
  •   

Los errores deben clasificarse según cuándo se crearon, no cuando los encontró.

  
      
  • Si un caso de prueba encuentra un error de sintaxis, ¿se considera un código?   defecto, un defecto de compilación o una prueba   ¿defecto? La prueba realmente encontró el   error, pero es un problema de código.
  •   

Igual que el anterior. Siempre regrese al punto más temprano en el tiempo. Si el error de sintaxis se introdujo durante la codificación, corresponde a la fase de codificación, si se introdujo al corregir un error, entonces está en la fase de defecto.

  
      
  • Si un IDE identifica un error que impediría la compilación antes   en realidad compilando, si eso fuera   ¿identificado? Si es así, ¿debería ser   identificado y rastreado como una compilación   error o un error de código?
  •   

Creo que no debería identificarse. Es solo tiempo dedicado a escribir el código.

Como nota al margen, he usado la herramienta Process Dashboard para rastrear datos de PSP y me pareció bastante agradable. Es gratuito y está basado en Java, por lo que debería ejecutarse en cualquier lugar. Puedes obtenerlo aqui: http://processdash.sourceforge.net/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top