7. Contenidos
Según el Decreto 3/2011, de 13 de enero
Desarrollo de software:
- Concepto de programa informático. Instrucciones y datos.
- Ejecución de programas en ordenadores:
- Datos y programas.
- Hardware vs. software.
- Estructura funcional de un ordenador: procesador, memoria.
- Tipos de software. BIOS. Sistema. Aplicaciones.
- Código fuente, código objeto y código ejecutable; máquinas virtuales.
- Lenguajes de programación:
- Tipos de lenguajes de programación.
- Características de los lenguajes más difundidos.
- Introducción a la ingeniería del software:
- Proceso software y ciclo de vida del software.
- Fases del desarrollo de una aplicación: análisis, diseño, codificación, pruebas, documentación, explotación y mantenimiento, entre otras.
- Modelos de proceso de desarrollo software (cascada, iterativo, evolutivo).
- Metodologías de desarrollo software. Características. Técnicas. Objetivos. Tipos de metodologías:
- Herramientas CASE (Computer Aided Software Engineering).
- Proceso de obtención de código ejecutable a partir del código fuente; herramientas implicadas (editores, compiladores, enlazadores, etcétera).
- Errores en el desarrollo de programas.
- Importancia de la reutilización de código.
Instalación y uso de entornos de desarrollo:
- Funciones de un entorno de desarrollo.
- Tipos de entornos de desarrollo. Entornos de desarrollo libres y propietarios. Características.
- Instalación de un entorno de desarrollo.
- Uso básico de un entorno de desarrollo:
- Uso de herramientas y asistentes.
- Creación de proyectos.
- Incorporación de elementos a proyectos.
- Edición de programas. Sintaxis y formateo de código.
- Compilación de programas. Detección de errores.
- Generación de ejecutables.
- Ejecución de programas.
- Paneles y vistas.
- Importación y exportación de ficheros.
- Personalización.
- Acceso a documentación.
- Instalación y desinstalación de aplicaciones, módulos y plugins adicionales.
- Configuración de actualizaciones.
- Automatización de tareas.
Diseño y realización de pruebas:
- Pruebas en el proceso de desarrollo de software:
- Planificación de pruebas a lo largo del ciclo de desarrollo.
- Tipos de pruebas: funcionales, estructurales, regresión, caja negra.
- Procedimientos y casos de prueba.
- Pruebas de código:
- Cubrimiento, valores límite, clases de equivalencia.
- Pruebas unitarias de clases y funciones.
- Uso de herramientas integradas en los entornos de desarrollo para realizar pruebas unitarias.
- Automatización de pruebas unitarias.
- Pruebas de integración.
- Diseño y documentación casos de prueba.
- Depuración de programas:
- Herramientas de depuración integradas en los entornos de desarrollo,
- Puntos de ruptura y seguimiento en tiempo de ejecución.
- Examinadores de variables.
Optimización y documentación:
- Refactorización:
- Concepto. Limitaciones.
- Patrones de refactorización más usuales.
- Refactorización y pruebas.
- Herramientas de ayuda a la refactorización.
- Control de versiones:
- Desarrollos colectivos
- Herramientas de control de versiones. Utilidad. Características. Estructura (cliente/servidor). Repositorio.
- Clientes de control de versiones. Descarga de ficheros inicial. Modificación de ficheros. Actualización de ficheros en local. Actualización de ficheros en el repositorio. Diferencias entre versiones. Restauración de versiones anteriores. Resolución de conflictos. Historial de versiones.
- Documentación:
- Uso de comentarios.
- Herramientas integradas en el entorno de desarrollo para generar documentación automáticas de clases.
- Alternativas.
Introducción al lenguaje unificado de modelado (UML, Unified Modeling Language):
- Características.
- Versiones.
- Diagramas UML.
- Utilización en metodologías de desarrollo orientado a objetos.
- Herramientas CASE con soporte UML.
Elaboración de diagramas de clases:
- Notación de los diagramas de clases:
- Clases. Atributos, métodos y visibilidad.
- Objetos. Instanciación.
- Relaciones. Asociación, herencia, composición, agregación, dependencia, navegabilidad.
- Clases abstractas. Interfaces.
- Paquetes.
- Grado de detalle.
- Utilización de herramientas CASE para elaborar diagramas de clases.
- Módulos integrados en entornos de desarrollo para elaborar diagramas de clases.
- Creación de código a partir de diagramas de clases.
- Generación de diagramas de clases a partir de código (ingeniería inversa).
Elaboración de diagramas de comportamiento:
- Tipos. Campo de aplicación.
- Diagramas de casos de uso. Actores, casos de uso, escenario, asociaciones (rela ción de comunicación entre actores y casos de uso), relaciones entre casos de uso.
- Diagramas de secuencia. Línea de vida de un objeto/actor, activación, envío de mensajes.
- Diagramas de colaboración. Objetos/actores, mensajes.
- Otros diagramas:
- Diagramas de actividades.
- Diagramas de estado.
- Utilización de herramientas CASE para elaborar diagramas de comportamiento
- Módulos integrados en entornos de desarrollo para elaborar diagramas de comportamiento.