2.13.10 SE/Prácticas de Codificación
Temas:
Core
- Pruebas prácticas a pequeña escala Fundamentos de Desarrollo de Software (SDF) -Practices
- Pruebas unitarias
- Desarrollo guiado por pruebas (Test-driven development): esto es particularmente valioso para los estudiantes psicológicamente, ya que es mucho más fácil involucrarse constructivamente con el desafío de identificar entradas desafiantes para una API dada (casos límite, casos extremos) a priori. Si implementan primero, el instinto es a menudo evitar intentar hacer fallar su nueva creación, mientras que un enfoque de pruebas primero les da la satisfacción intelectual de detectar los casos problemáticos y luego ver cómo pasan más pruebas durante el proceso de desarrollo.
- Documentación Fundamentos de Desarrollo de Software (SDF) -Practices
- Documentación de la interfaz: describir los requisitos de la interfaz, potencialmente incluyendo contratos (formales o informales), pre y post condiciones, invariantes.
- La documentación de la implementación debe centrarse en partes de código complicadas y no obvias, ya sea porque el código usa características avanzadas del lenguaje o porque el comportamiento del código es complejo. (No agregar comentarios que reafirmen operaciones comunes/obvias y características simples del lenguaje.)
- Aclarar el flujo de datos, cómputo, etc., centrándose en lo que el código es.
- Identificar partes sutiles/complicadas del código y refactorizar para que sean autoexplicativas si es posible o proporcionar comentarios apropiados para aclarar.
- Estilo de codificación Fundamentos de Desarrollo de Software (SDF) -Practices
- Guías de estilo
- Comentarios
- Nomenclatura (naming)
- "Mejores Prácticas" para la codificación: técnicas, patrones/idiomas, mecanismos para construir programas de calidad Seguridad (SEC) -Coding,SDF-Practices
- Prácticas de codificación defensiva
- Prácticas y principios de codificación segura
- Usar mecanismos de manejo de excepciones para hacer los programas más robustos, tolerantes a fallos
- Depuración (debugging) Fundamentos de Desarrollo de Software (SDF) -Practices
- Registro (logging)
- Uso de bibliotecas y frameworks desarrollados por otros Fundamentos de Desarrollo de Software (SDF) -Practices
Aprendizaje esperado (Learning Outcomes):
Core:
- Escribir pruebas unitarias apropiadas para un componente pequeño (varias funciones, un solo tipo, etc.) [Escribir]
- Escribir comentarios apropiados de interfaz y (si es necesario) de implementación para un componente pequeño [Escribir]
- Describir técnicas, patrones de codificación y mecanismos para implementar diseños para lograr propiedades deseadas como confiabilidad, eficiencia y robustez [Describir]
- Escribir código robusto utilizando mecanismos de manejo de excepciones [Escribir]
- Describir prácticas de codificación segura y defensiva [Describir]
- Seleccionar y usar un estándar de codificación definido en un proyecto de software pequeño [Usar]
- Comparar y contrastar estrategias de integración, incluyendo integración de arriba hacia abajo (top-down), de abajo hacia arriba (bottom-up) y sándwich [Comparar]
- Describir el proceso de analizar e implementar cambios en la base de código desarrollada para un proyecto específico [Describir]
- Describir el proceso de analizar e implementar cambios en una base de código existente grande [Describir]
Generado por Ernesto Cuadros-Vargas , Sociedad Peruana de Computación-Peru, basado en el modelo de la Computing Curricula de IEEE-CS/ACM