2.15.6 SE/Construcción de Software (2 horas Core-Tier2)
Temas:
Core Tier2
- Prácticas de codificación: técnicas, idiomas/patrones, mecanismos para construcción de programas de calidad:
- Prácticas de codificación defensive
- Prácticas de codificación segura
- Utilizando mecanismos de manejo de excepciones para hacer el programa más robusto, tolerante a fallas
Ref: Programación Defensiva , Métodos de Desarrollo
- Normas de codificación.
- Estrategias de integración.
- Desarrollando contexto: ""campo verde"" frente a la base de código existente :
- Análisis de cambio impacto
- Cambio de actualización
Electivo
- Los problemas de seguridad potenciales en los programas :
- Buffer y otros tipos de desbordamientos
- Condiciones elemento Race
- Inicialización incorrecta, incluyendo la elección de los privilegios
- Entrada Comprobación
- Suponiendo éxito y corrección
- La validación de las hipótesis
Objetivos de Aprendizaje:
Core-Tier2:
- 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 [Familiarizarse]
- Construir código robusto utilizando los mecanismos de manejo de excepciones [Usar]
- Describir la codificación segura y prácticas de codificación de defensa [Familiarizarse]
- Seleccionar y utilizar un estándar de codificación definido en un pequeño proyecto de software [Usar]
- 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 [Familiarizarse]
- Describir el proceso de analizar e implementar los cambios a la base de código desarrollado para un proyecto específico [Familiarizarse]
- Describir el proceso de analizar e implementar los cambios a una gran base de código existente [Familiarizarse]
Elective:
- Reescribir un programa sencillo para eliminar vulnerabilidades comunes, tales como desbordamientos de búffer, desbordamientos de enteros y condiciones de carrera [Usar]
- 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 [Usar]
Generado por Ernesto Cuadros-Vargas , Sociedad Peruana de Computación-Peru, basado en el modelo de la Computing Curricula de IEEE-CS/ACM