1. Ciclo de vida de un programa de computadora
1.1. Planificación
1.1.1. Ambito del proyecto
1.1.2. Análsisi de riesgos
1.1.3. Coste del proyecto
1.1.4. Planificación temporal
1.1.5. Asignación de recursos
1.2. Análisis
1.2.1. Requerimientos del sistema
1.3. Diseño
1.3.1. Diseño multicapas
1.3.1.1. Capa de presentación
1.3.1.2. Capa de aplicación
1.3.1.3. Capa de datos
1.4. Implementación
1.4.1. Programación
1.5. Pruebas
1.5.1. Pruebas de unidad
1.5.1.1. De caja negra
1.5.1.2. De caja blanca
1.5.2. Pruebas de integración
1.5.2.1. Flujo de datos
1.5.2.2. Dependencias externas
1.5.2.3. Escalabilidad
1.6. Instalación / Despliegue
1.6.1. Método directo
1.6.2. Método paralelo
1.6.3. Método piloto
1.6.4. Método en fases
1.7. Uso y mantenimiento
1.7.1. Mantenimiento correctivo
1.7.2. Mantenimiento adaptativo
1.7.3. Mantenimiento perfectivo
2. Tipos de lenguajes de programación
2.1. Lenguaje de bajo nivel
2.1.1. Lenguaje ensamblador
2.1.1.1. Lenguajes simbolicos
2.1.1.1.1. Reemplaza el código binario por instrucciones y direcciones con símbolos o mnemónicos
2.1.2. Lenguaje máquina
2.1.2.1. Hecho de patrones de 0s y 1s
2.2. Lenguajes de alto nivel
2.2.1. Estructura similar al lenguaje humano
2.2.1.1. FORTRAN
2.2.1.2. COBOL
2.2.1.3. BASIC
2.2.1.3.1. Visual BASIC .net
2.2.1.4. C
2.2.1.4.1. C++
2.2.1.5. JAVA
2.2.1.6. Python
2.3. Pseudocódigo
3. Documentación de programas de computación
3.1. Se hace documentación para explicar que hace el programa
3.1.1. Modelos UML
3.1.2. Diagramas casos de uso
3.1.3. Manuales de usuario
3.1.4. Manuales tecnicos
3.2. Documentación interna
3.2.1. Comentarios en codigo fuente
3.2.1.1. Prólogo
3.2.1.1.1. Finalidad
3.2.1.1.2. Entradas de datos
3.2.1.1.3. Salidas de datos
3.2.1.1.4. Valores devueltos
3.2.1.1.5. Valores globales
3.2.1.2. Directorio
3.2.1.2.1. Autor
3.2.1.2.2. Fecha
3.2.1.2.3. Fichero
3.2.1.2.4. Lista de rutinas o procedimientos
3.2.1.3. Explicatorios
3.2.1.3.1. Comentarios tipo bloque