4.32.5.3 Construcción de Software (24 horas) [Habilidades C4, C5, C7, C8, CS2]

Referencias Bibliográficas: [,,] Tópicos
  1. Prácticas de codificación: técnicas, idiomas/patrones, mecanismos para construcción de programas de calidad:
    1. Prácticas de codificación defensive
    2. Prácticas de codificación segura
    3. Utilizando mecanismos de manejo de excepciones para hacer el programa más robusto, tolerante a fallas
  2. Normas de codificación.
  3. Estrategias de integración.
  4. Desarrollando contexto: ""campo verde"" frente a la base de código existente :
    1. Análisis de cambio impacto
    2. Cambio de actualización
  5. Los problemas de seguridad potenciales en los programas :
    1. Buffer y otros tipos de desbordamientos
    2. Condiciones elemento Race
    3. Inicialización incorrecta, incluyendo la elección de los privilegios
    4. Entrada Comprobación
    5. Suponiendo éxito y corrección
    6. La validación de las hipótesis
Objetivos de Aprendizaje
  1. Describir técnicas, lenguajes de codificación y mecanismos de implementación para conseguir las propiedades deseadas, tales como la confiabilidad, la eficiencia y la robustez [Evaluar]
  2. Construir código robusto utilizando los mecanismos de manejo de excepciones [Evaluar]
  3. Describir la codificación segura y prácticas de codificación de defensa [Evaluar]
  4. Seleccionar y utilizar un estándar de codificación definido en un pequeño proyecto de software [Evaluar]
  5. Comparar y contrastar las estrategias de integración incluyendo: de arriba hacia abajo (top-down), de abajo hacia arriba (bottom-up), y la integración Sándwich [Evaluar]
  6. Describir el proceso de analizar e implementar los cambios a la base de código desarrollado para un proyecto específico [Evaluar]
  7. Describir el proceso de analizar e implementar los cambios a una gran base de código existente [Evaluar]
  8. Reescribir un programa sencillo para eliminar vulnerabilidades comunes, tales como desbordamientos de búffer, desbordamientos de enteros y condiciones de carrera [Evaluar]
  9. Escribir un componente de software que realiza alguna tarea no trivial y es resistente a errores en la entrada y en tiempo de ejecución [Evaluar]

Generado por Ernesto Cuadros-Vargas , Sociedad Peruana de Computación-Peru, Universidad de Ingeniería y Tecnología, Lima-Perú
basado en el modelo de la Computing Curricula de IEEE-CS/ACM