1. 7.3.4
1.1. Principios de Construcción
1.1.1. La construcción engloba una serie de actividades que enblogan:
1.1.1.1. Codificación
1.1.1.1.1. Creación directa de código fuente.
1.1.1.1.2. Generación automática de código fuente.
1.1.1.1.3. Generación automática de código ejecutable.
1.1.1.2. Pruebas
1.1.1.2.1. Pruebas de integración.
1.1.1.2.2. Pruebas de validación.
1.1.1.2.3. Pruebas de aceptación.
1.1.2. Principios que se aplican al prooceso o actividades de construcción.
1.1.2.1. Principios de codificación
1.1.2.1.1. Se relacionan con el estilo, lenguaje y métodos de programación.
1.1.2.2. Principios de testeo
1.1.2.2.1. Reglas y/u objetivos de las pruebas:
1.1.2.2.2. Principios adicionales
2. 7.3.5
2.1. Principios de Despliegue
2.1.1. Proceso evolutivo e incremental.
2.1.1.1. Abarca tres ciclos:
2.1.1.1.1. Entrega.
2.1.1.1.2. Soporte.
2.1.1.1.3. Retroalimentación.
2.1.2. Principios para la entrega de un incremento:
2.1.2.1. Gestionar las expectativas de los clientes.
2.1.2.1.1. Ser más consciente de lo que se comunica y cómo se comunica, para evitar falsas expectativas.
2.1.2.2. Ensamblar y probar paquetes de entregas.
2.1.2.2.1. Todo el paquete de entrega debe ser ensamblado y probado con usuarios reales.
2.1.2.3. Establecer un régimen de soporte.
2.1.2.3.1. Se debe planificar la asistencia, material de apoyo y mecanismos de ayuda antes de entregar el software.
2.1.2.4. Materiales didácticos adecuados.
2.1.2.4.1. Entrenamiento adecuado:
2.1.2.5. Primero corregir, luego entregar.
2.1.2.5.1. El cliente olvida entregas de calidad con retraso, pero no olvida un producto defectuoso.
2.1.3. El producto final debe:
2.1.3.1. Beneficiar al usuario final.
2.1.3.2. Proporcionar información útil al equipo de software.
3. 7.4
3.1. Prácticas laborales
3.1.1. La calidad de software es un diferenciador competitivo.
3.1.2. Rasgos y hábitos de trabajo.
3.1.2.1. Refactorizar el diseño y el código.
3.1.2.2. Utilizar activamente patrones de diseño.
3.1.2.3. Adquirir componentes reutilizables.
3.1.2.4. Centrarse en la usabilidad.
3.1.2.5. Desarrollar aplicaciones mantenibles.
3.1.2.6. Aplicar un lenguaje de programación adecuado.
3.1.2.7. Usar prácticas probadas de diseño y pruebas.
3.1.3. Conceptos de conocimiento previo:
3.1.3.1. Interfaces simples, menos errores.
3.1.3.2. Uso de convenciones y plantillas.
3.1.3.3. Estratificación, abstracción y programación.
3.1.3.4. Garantizar la eficiencia en tiempo y espacio en algoritmos.
3.1.3.5. Uso de hash para almacenar y recuperar datos.
3.1.3.6. Uso adecuado de la memoria caché.
3.1.3.7. Concurrencia.
3.1.3.8. Computación en la nube.
3.1.3.9. Proteger la confidencialidad e integridad del sistema.
3.1.3.10. Bases de datos relacionales, minimizar la redundancia de datos y maximizar la velocidad de recuperación.