1. Tipos de código
1.1. Código de fuente
1.2. Código objeto
1.3. Código ejecutable
2. Complicación
2.1. Análisis Léxico
2.2. Análisis Sintáctico
2.3. Análisis Semántico
2.4. Generación de un código intermedio
2.5. Optimación de código
2.6. Generación de código
3. Lenguajes de Programación
3.1. Elementos
3.1.1. Alfabeto o Vocabulario
3.1.2. Sintaxis
3.1.3. Semántica
3.2. Clasificación y Características
3.2.1. Según su nivel de abstracción
3.2.1.1. Nivel bajo
3.2.1.2. Nivel medio
3.2.1.3. Nivel alto
3.2.2. Según la forma de ejecución
3.2.2.1. Compilados
3.2.2.2. Interpretados
3.2.3. Según el paradigma de programación
3.2.3.1. Imperativos
3.2.3.2. Funcionales
3.2.3.3. Lógicos
3.2.3.4. Estructurados
3.2.3.5. Orientados a objetos
4. Fases del desarrollo de una aplicación
4.1. Modelo de desarrollo
4.1.1. Modelo en cascada
4.1.1.1. Análisis
4.1.1.2. Diseño
4.1.1.3. Codificación
4.1.1.4. Pruebas
4.1.1.5. Mantenimiento
4.1.2. Modelo iterativo incremental
4.1.3. Modelo en espiral
4.1.3.1. Fases
4.1.3.1.1. Determinar objetos
4.1.3.1.2. Análisis de riesgo
4.1.3.1.3. Desarrollar y probar
4.1.3.1.4. Planificación
4.1.4. Modelo en V
4.2. Análisis
4.2.1. Técnicas
4.2.1.1. Entrevistas
4.2.1.2. Desarrollo conjunto de aplicaciones (JAD)
4.2.1.3. Planificación conjunta de requisitos (JRP)
4.2.1.4. Brainstorming
4.2.1.5. Prototipos
4.2.1.6. Casos de uso
4.2.2. Requisitos
4.2.2.1. Funcionales
4.2.2.2. No funcionales
4.2.3. Representación de los requisitos
4.2.3.1. Diagrama de flujo de datos (DFD)
4.2.3.2. Diagrama de flujo de control (DFC)
4.2.3.3. Diagrama de transición de estados (DTE)
4.2.3.4. Diagrama Entidad/Relación (DER)
4.2.3.5. Diccionario de datos (DD)
4.3. Diseño
4.3.1. Diseño estructurada
4.3.1.1. Produce un modelo de diseño con 4 elementos
4.3.1.1.1. Diseño de datos
4.3.1.1.2. Diseño arquitectónico
4.3.1.1.3. Diseño de la interfaz
4.3.1.1.4. Diseño a nivel de componentes
4.3.1.2. Construcciones
4.3.1.2.1. Secuencial
4.3.1.2.2. Condicional
4.3.1.2.3. Repetitiva
4.3.2. Diseño orientado a objetos
4.3.2.1. Capas de diseño
4.3.2.1.1. Subsistema
4.3.2.1.2. Clases y objetos
4.3.2.1.3. Mensajes
4.3.2.1.4. Responsabilidades
5. Notaciones gráficas para el diseño
5.1. Diagramas de flujo
5.1.1. Caja
5.1.2. Rombo
5.1.3. Flechas
5.2. Diagrama de cajas
5.2.1. Secuencia
5.2.2. Condicional
5.2.3. Repetitiva
5.2.4. Selección múltiple
5.3. Tablas de decisión
5.3.1. Cuadrantes
5.3.1.1. Superior Izquierdo
5.3.1.2. Inferior Izquierdo
5.3.1.3. Superior Derecho
5.3.1.4. Inferior Derecho
5.4. Pseudocódigo
6. Pruebas
6.1. durante esta fase se realizan:
6.1.1. Verificación
6.1.2. Validación
6.2. proceso del flujo de prueba:
6.2.1. generamos un plan de pruebas
6.2.2. diseño de pruebas
6.2.3. se generan los procesos de prueba
6.2.4. definimos los procedimientos
6.2.5. ejecutamos las pruebas
6.2.6. evaluamos
6.2.7. depuramos
6.2.8. analizamos los posibles errores
6.3. Técnicas para la realización del diseño de prueba
6.3.1. Prueba de caja negra
6.3.2. Prueba de caja blanca
7. Explotación
7.1. Estrategia para la implementación del proceso
7.2. Pruebas de operación
7.3. Uso operacional del sistema
7.4. Soporte al usuario
8. Metodologías ágiles
8.1. tipos:
8.1.1. Scrum
8.1.2. Programación extrema (XP)
8.1.3. Kanban
9. Hay 3 tipos de Software
9.1. Software de sistema
9.2. Software de aplicación
9.3. Software de programación o desarrollo
10. Métodos de distribución
10.1. Shareware
10.2. Freeware
10.3. Adware
11. Licencias de Software
11.1. Software Libre
11.2. Sotware Propietario
11.3. Software de doinio público
12. Registros de la UC
12.1. Contador de programa
12.2. Registro de instrucción
12.3. Registro de dirección de memoria
12.4. Registro de intercambio de memoria
12.5. Decodificador de instrucción
12.6. El Reloj
12.7. El secuenciador
13. Ejecutar una instrucción
13.1. Fase de busqueda
13.2. Fase de ejecución
14. Codificación
14.1. Normas del código Java
14.1.1. Nombres de ficheros
14.1.2. Organización de ficheros
14.1.2.1. Comentarios
14.1.2.2. Sentencias de tipo package e import
14.1.2.3. Declaraciones de clases e interfaces
14.1.3. Indentación
14.1.4. Comentarios
14.1.5. Declaraciones
14.1.6. Sentencias
14.1.7. Separaciones
14.1.7.1. Dos líneas en blanco
14.1.7.2. Una línea en blanco
14.1.7.3. Un carácter en blanco
14.1.8. Nombres
14.1.8.1. Paquetes
14.1.8.2. Clases e interfaces
14.1.8.3. Métodos
14.1.8.4. Variables
14.1.8.5. Constantes
15. Documentación
15.1. clases
15.1.1. documentación de proceso
15.1.2. documentación del producto
15.2. documentación del usuario
15.2.1. usuarios finales
15.2.2. administradores del sistema
15.3. Documentación del sistema
15.3.1. deben incluir:
15.3.1.1. Fundamentos del sistema
15.3.1.2. Análisis y especificación de requisitos
15.3.1.3. Diseño
15.3.1.4. Implementación
15.3.1.5. Plan de pruebas del sistema
15.3.1.6. Plan de pruebas de aceptación
15.3.1.7. Los diccionarios de datos
15.4. Estructura del documento
15.4.1. Datos de identificación
15.4.2. Tabla de contenidos
15.4.3. Lista de ilustraciones
15.4.4. Introducción
15.4.5. Información para el uso de la documentación
15.4.6. Conceptos de las operaciones
15.4.7. Procedimientos
15.4.8. Información sobre los comandos software
15.4.9. Mensajes de error y resolución de problemas
15.4.10. Glosario
15.4.11. Fuentes de información relacionadas
15.4.12. Características de navegación
15.4.13. Índice
15.4.14. Capacidad de búsqueda
16. Mantenimiento
16.1. cuatro tipos que dependen de las demandas del usuario:
16.1.1. Adaptativo
16.1.2. Correctivo
16.1.3. Perfectivo
16.1.4. Preventivo
16.2. Tareas :
16.2.1. Implementación del proceso
16.2.2. Análisis del problema y modificaciones
16.2.3. Implementación de las modificaciones
16.2.4. Revisión/Aceptación del mantenimiento
16.2.5. Migración
16.2.6. Retirada del Software
17. Proceso de obtención de código a partir del código fuente
17.1. tipos :
17.1.1. Fuente
17.1.2. Objeto
17.1.3. Ejecutable
17.2. compilación :
17.2.1. Análisis léxico
17.2.2. Análisis sintáctico
17.2.3. Análisis semántico
17.2.4. Generador de código intermedio
17.2.5. Optimización de código
17.2.6. Generación de código