Euroinnova Business School

Certificado de profesionalidad programación de sistemas informáticos

Certificado de profesionalidad Programación de Sistemas Informáticos (Dirigido a la acreditación de las competencias profesionales)

APROVECHA ESTE DESCUENTO POR TIEMPO LIMITADO
PARA MATRICULARTE INTRODUCE TU EMAIL
MÉTODO DE PAGO
Pago Efectivo
Pago Efectivo
BCPPago Efectivo
Banco de CréditoBBVA ContinentalInterbankScotiabank Peru
Tarjeta Crédito/Débito
Tarjeta Crédito/Débito
VisaMasterCardAmerican ExpressDinersClub International
Pagar
Amazon Pay
Transferencia bancaria
Transferencia bancaria
Transferencia
WesternUnion
Pago a Plazos
Pago a Plazos
VisaMasterCard
Puede seleccionar hasta un máximo de Cuotas, SIN INTERESES
Pagar
400 PEN / mes en Cuotas, SIN INTERESES
Condiciones legales
Información básica sobre Protección de Datos aquí

En el siguiente punto se procedera con la forma de pago

Curso Online EuroinnovaCurso en linea Curso  homologado Curso en linea Curso  homologado Curso en linea Curso  homologado Titulación con la APOSTILLA de la HayaMiembro de CLADEA - Consejo Latinoamericano de Escuelas de Administración

Duración:590 horas

Modalidad: Cursos En Linea

Precio: 2438 PEN 1600 PEN
Certificado de Aprovechamiento de haber cursado la formación que le Acredita las Unidades de Competencia recogidas en el Certificado de Profesionalidad IFCT0609 Programación de Sistemas Informáticos regulada en el Real Decreto 686/2011, de 13 de mayo, del cual toma como referencia la Cualificación Profesional IFC303_3 Programación de Sistemas Informáticos (Real Decreto 1201/2007, de 14 de septiembre).

Formación Relacionada

Certificado completo:

Curso Programacion de Sistemas Informaticos (Dirigida a la obtencion del Certificado de profesionalidad a traves de la acreditacion de las Competencias Profesionales R.D. 1224/2009) (A Distancia)

Actualmente, en el mundo de la programación de sistemas informáticos y para los profesionales dedicados a ello, desarrollar componentes software a partir de unas especificaciones concretas, proporcionando funciones de administración y supervisión del sistema operativo, para la gestión de los recursos de un sistema informático y la interacción con otros sistemas, utilizando tecnologías de desarrollo orientadas a objetos y a componentes, se torna de gran importancia para desarrollar de forma adecuada su labor profesional. Por ello, el presente curso trata de aportar los conocimientos necesarios y actualizados en relación a las tareas anteriores.
 

Curso Online Programacion de Sistemas Informaticos (Dirigida a la obtencion del Certificado de profesionalidad a traves de la acreditacion de las Competencias Profesionales R.D. 1224/2009)

Actualmente, en el mundo de la programación de sistemas informáticos y para los profesionales dedicados a ello, desarrollar componentes software a partir de unas especificaciones concretas, proporcionando funciones de administración y supervisión del sistema operativo, para la gestión de los recursos de un sistema informático y la interacción con otros sistemas, utilizando tecnologías de desarrollo orientadas a objetos y a componentes, se torna de gran importancia para desarrollar de forma adecuada su labor profesional. Por ello, el presente curso trata de aportar los conocimientos necesarios y actualizados en relación a las tareas anteriores.
 
Módulos formativos:

Curso Gestion de Servicios en el Sistema Informatico (A Distancia)

Hoy en día la seguridad informática es un tema muy importante y sensible, que abarca un gran conjunto de aspectos en continuo cambio y constante evolución, que exige que los profesionales informáticos posean conocimientos totalmente actualizados. Con la realización del presente curso el alumno aprenderá los conocimientos necesarios para gestionar servicios en el sistema informático.
A distancia
90 horas
149
 

Curso Online Gestion de Servicios en el Sistema Informatico

Hoy en día la seguridad informática es un tema muy importante y sensible, que abarca un gran conjunto de aspectos en continuo cambio y constante evolución, que exige que los profesionales informáticos posean conocimientos totalmente actualizados. Con la realización del presente curso el alumno aprenderá los conocimientos necesarios para gestionar servicios en el sistema informático.
Online
90 horas
149
 

Curso Desarrollo de Elementos Software para Gestion de Sistemas (A Distancia)

Actualmente, en el mundo de la programación de sistemas informáticos y para los profesionales dedicados a ello, desarrollar componentes software a partir de unas especificaciones concretas, proporcionando funciones de administración y supervisión del sistema operativo, para la gestión de los recursos de un sistema informático y la interacción con otros sistemas, utilizando tecnologías de desarrollo orientadas a objetos y a componentes, se torna de gran importancia para desarrollar de forma adecuada su labor profesional. Por ello, el presente curso trata de aportar los conocimientos necesarios y actualizados para crear elementos software para la gestión del sistema y sus recursos.
A distancia
210 horas
199
 

Curso Online Desarrollo de Elementos Software para Gestion de Sistemas

Actualmente, en el mundo de la programación de sistemas informáticos y para los profesionales dedicados a ello, desarrollar componentes software a partir de unas especificaciones concretas, proporcionando funciones de administración y supervisión del sistema operativo, para la gestión de los recursos de un sistema informático y la interacción con otros sistemas, utilizando tecnologías de desarrollo orientadas a objetos y a componentes, se torna de gran importancia para desarrollar de forma adecuada su labor profesional. Por ello, el presente curso trata de aportar los conocimientos necesarios y actualizados para crear elementos software para la gestión del sistema y sus recursos.
Online
210 horas
199
 

Curso Desarrollo de Software Basado en Tecnologias Orientadas a Componentes (A Distancia)

Actualmente, en el mundo de la programación de sistemas informáticos y para los profesionales dedicados a ello, desarrollar componentes software a partir de unas especificaciones concretas, proporcionando funciones de administración y supervisión del sistema operativo, para la gestión de los recursos de un sistema informático y la interacción con otros sistemas, utilizando tecnologías de desarrollo orientadas a objetos y a componentes, se torna de gran importancia para desarrollar de forma adecuada su labor profesional. Por ello, el presente curso trata de aportar los conocimientos necesarios y actualizados para desarrollar elementos software con tecnologías de programación basada en componentes.
A distancia
210 horas
199
 

Curso Online Desarrollo de Software Basado en Tecnologias Orientadas a Componentes

Actualmente, en el mundo de la programación de sistemas informáticos y para los profesionales dedicados a ello, desarrollar componentes software a partir de unas especificaciones concretas, proporcionando funciones de administración y supervisión del sistema operativo, para la gestión de los recursos de un sistema informático y la interacción con otros sistemas, utilizando tecnologías de desarrollo orientadas a objetos y a componentes, se torna de gran importancia para desarrollar de forma adecuada su labor profesional. Por ello, el presente curso trata de aportar los conocimientos necesarios y actualizados para desarrollar elementos software con tecnologías de programación basada en componentes.
Online
210 horas
199
 
Unidades

Curso Online Desarrollo y Optimizacion de Componentes Software para Tareas Administrativas de Sistemas

En la actualidad, en el mundo de la informática y las comunicaciones, es muy importante conocer la programación de sistemas informáticos, dentro del área profesional de sistemas y telemática. Por ello, con el presente curso se trata de aportar los conocimientos necesarios para conocer el desarrollo y optimización de componentes software para tareas administrativas de sistemas.
Online
90 horas
149
 

Curso Desarrollo y Optimizacion de Componentes Software para Tareas Administrativas de Sistemas (A Distancia)

En la actualidad, en el mundo de la informática y las comunicaciones, es muy importante conocer la programación de sistemas informáticos, dentro del área profesional de sistemas y telemática. Por ello, con el presente curso se trata de aportar los conocimientos necesarios para conocer el desarrollo y optimización de componentes software para tareas administrativas de sistemas.
A distancia
90 horas
149
 

Curso Online Desarrollo de Componentes Software para el Manejo de Dispositivos (Drivers)

En la actualidad, en el mundo de la informática y las comunicaciones, es muy importante conocer la programación de sistemas informáticos, dentro del área profesional de sistemas y telemática. Por ello, con el presente curso se trata de aportar los conocimientos necesarios para conocer el desarrollo de componentes software para el manejo de dispositivos (Drivers).
Online
60 horas
149
 

Curso Desarrollo de Componentes Software para el Manejo de Dispositivos (Drivers) (A Distancia)

En la actualidad, en el mundo de la informática y las comunicaciones, es muy importante conocer la programación de sistemas informáticos, dentro del área profesional de sistemas y telemática. Por ello, con el presente curso se trata de aportar los conocimientos necesarios para conocer el desarrollo de componentes software para el manejo de dispositivos (Drivers).
A distancia
60 horas
149
 

Curso Online Desarrollo de Componentes Software para Servicios de Comunicaciones

En la actualidad, en el mundo de la informática y las comunicaciones, es muy importante conocer la programación de sistemas informáticos, dentro del área profesional de sistemas y telemática. Por ello, con el presente curso se trata de aportar los conocimientos necesarios para conocer el desarrollo de componentes software para servicios de comunicaciones.
Online
60 horas
149
 

Curso Desarrollo de Componentes Software para Servicios de Comunicaciones (A Distancia)

En la actualidad, en el mundo de la informática y las comunicaciones, es muy importante conocer la programación de sistemas informáticos, dentro del área profesional de sistemas y telemática. Por ello, con el presente curso se trata de aportar los conocimientos necesarios para conocer el desarrollo de componentes software para servicios de comunicaciones.
A distancia
60 horas
149
 

Curso Online Diseno de Elementos Software con Tecnologias basadas en Componentes

En la actualidad, en el mundo de la informática y las comunicaciones, es muy importante conocer la programación de sistemas informáticos, dentro del área profesional de sistemas y telemática. Por ello, con el presente curso se trata de aportar los conocimientos necesarios para conocer el diseño de elementos software con tecnologías basadas en componentes.
Online
90 horas
149
 

Curso Diseno de Elementos Software con Tecnologias basadas en Componentes (A Distancia)

En la actualidad, en el mundo de la informática y las comunicaciones, es muy importante conocer la programación de sistemas informáticos, dentro del área profesional de sistemas y telemática. Por ello, con el presente curso se trata de aportar los conocimientos necesarios para conocer el diseño de elementos software con tecnologías basadas en componentes.
A distancia
90 horas
149
 

Curso Implementacion e Integracion de Elementos Software con Tecnologias basadas en Componentes (A Distancia)

En la actualidad, en el mundo de la informática y las comunicaciones, es muy importante conocer la programación de sistemas informáticos, dentro del área profesional de sistemas y telemática. Por ello, con el presente curso se trata de aportar los conocimientos necesarios para conocer la implementación e integración de elementos software con tecnologías basadas en componentes.
A distancia
90 horas
149
 

Curso Online Implementacion e Integracion de Elementos Software con Tecnologias basadas en Componentes

En la actualidad, en el mundo de la informática y las comunicaciones, es muy importante conocer la programación de sistemas informáticos, dentro del área profesional de sistemas y telemática. Por ello, con el presente curso se trata de aportar los conocimientos necesarios para conocer la implementación e integración de elementos software con tecnologías basadas en componentes.
Online
90 horas
149
 

Curso Online Despliegue y Puesta en Funcionamiento de Componentes Software

En la actualidad, en el mundo de la informática y las comunicaciones, es muy importante conocer la programación de sistemas informáticos, dentro del área profesional de sistemas y telemática. Por ello, con el presente curso se trata de aportar los conocimientos necesarios para conocer el despliegue y puesta en funcionamiento de componentes software.
Online
30 horas
149
 

Curso Despliegue y Puesta en Funcionamiento de Componentes Software (A Distancia)

En la actualidad, en el mundo de la informática y las comunicaciones, es muy importante conocer la programación de sistemas informáticos, dentro del área profesional de sistemas y telemática. Por ello, con el presente curso se trata de aportar los conocimientos necesarios para conocer el despliegue y puesta en funcionamiento de componentes software.
A distancia
30 horas
149
 
Datos de Identificación

Código: IFCT0609

Nivel: 3

Cualificación profesional de referencia:
Programación de sistemas informáticos

Referente Legislativo:
- REAL DECRETO 1201/2007, de 14 de septiembre, por el que se complementa el Catálogo Nacional de Cualificaciones Profesionales, mediante el establecimiento de ocho nuevas cualificaciones profesionales en la Familia Profesional Informática y Comunicaciones. (BOE 27-09-07).

Competencia General:
Desarrollar componentes software a partir de unas especificacionesconcretas, proporcionando funciones de administración y supervisión del sistema operativo, para la gestión de los recursos de un sistema informático y la interacción con otros sistemas utilizando tecnologías de desarrollo orientadas a objetos y a componentes.

Entorno Profesional

Ámbito Profesional:

Ocupaciones y puestos relevantes:
Analista de Aplicaciones, nivel medio. Analista de Sistemas, nivel superior. Analista Programador, nivel medio. Programador de Aplicaciones Informáticas. Programador de componentes. Programador de sistemas.

Requisitos necesarios para el ejercicio:

Observaciones Generales

Referencia Legislativa:
- Real Decreto 686/2011, de 13 de mayo, por el que se establecen seis certificados de profesionalidad de la familia profesional Informática y comunicaciones que se incluyen en el Repertorio Nacional de certificados de profesionalidad (BOE 10-06-2011). - Real Decreto 628/2013, de 2 de agosto, por el que se establecen cuatro certificados de profesionalidad de la familia profesional Informática y comunicaciones que se incluyen en el Repertorio Nacional de certificados de profesionalidad y se actualizan los certificados de profesionalidad establecidos como anexos I, II, III, IV, V, VI, VII, VIII, IX, X, XI y XII del Real Decreto 1531/2011, de 31 de octubre y como anexos I, II, III, IV, V y VI del Real Decreto 686/2011, de 13 de mayo (BOE 19-09-2013).

Observaciones generales acerca de los espacios formativos:
No debe interpretarse que los diversos espacios formativos identificados deban diferenciarse necesariamente mediante cerramientos. Las instalaciones y equipamientos deberán cumplir con la normativa industrial e higiénico sanitaria correspondiente y responderán a medidas de accesibilidad universal y seguridad de los participantes. El número de unidades que se deben disponer de los utensilios, máquinas y herramientas que se especifican en el equipamiento de los espacios formativos, será el suficiente para un mínimo de 15 alumnos y deberá incrementarse, en su caso, para atender a número superior. En el caso de que la formación se dirija a personas con discapacidad se realizarán las adaptaciones y los ajustes razonables para asegurar su participación en condiciones de igualdad.

Observaciones:

-MF0490_3-Gestión de servicios en el sistema informático Solicitar módulo
Nivel: 3 Tipo: formativo Nº Horas: 90 h
Contenidos:
-UD-Unidad Didáctica
Contenidos:
  1. Gestión de la seguridad y normativas
    1. Norma ISO 27002 Código de buenas practicas para la gestión de la seguridad de la información
    2. Metodología ITIL Librería de infraestructuras de las tecnologías de la información
    3. Ley orgánica de protección de datos de carácter personal.
    4. Normativas mas frecuentemente utilizadas para la gestión de la seguridad física
-UD-Unidad Didáctica
Contenidos:
  1. Análisis de los procesos de sistemas
    1. Identificación de procesos de negocio soportados por sistemas de información
    2. Características fundamentales de los procesos electrónicos - Estados de un proceso, - Manejo de señales, su administración y los cambios en las prioridades
    3. Determinación de los sistemas de información que soportan los procesos de negocio y los activos y servicios utilizados por los mismos
    4. Análisis de las funcionalidades de sistema operativo para la monitorización de los procesos y servicios
    5. Técnicas utilizadas para la gestión del consumo de recursos
-UD-Unidad Didáctica
Contenidos:
  1. Demostración de sistemas de almacenamiento
    1. Tipos de dispositivos de almacenamiento más frecuentes
    2. Características de los sistemas de archivo disponibles
    3. Organización y estructura general de almacenamiento
    4. Herramientas del sistema para gestión de dispositivos de almacenamiento
-UD-Unidad Didáctica
Contenidos:
  1. Utilización de métricas e indicadores de monitorización de rendimiento de sistemas
    1. Criterios para establecer el marco general de uso de métricas e indicadores para la monitorización de los sistemas de información
    2. Identificación de los objetos para los cuales es necesario obtener indicadores
    3. Aspectos a definir para la selección y definición de indicadores
    4. Establecimiento de los umbrales de rendimiento de los sistemas de información
    5. Recolección y análisis de los datos aportados por los indicadores
    6. Consolidación de indicadores bajo un cuadro de mandos de rendimiento de sistemas de información unificado
-UD-Unidad Didáctica
Contenidos:
  1. Confección del proceso de monitorización de sistemas y comunicaciones
    1. Identificación de los dispositivos de comunicaciones
    2. Análisis de los protocolos y servicios de comunicaciones
    3. Principales parámetros de configuración y funcionamiento de los equipos de comunicaciones
    4. Procesos de monitorización y respuesta
    5. Herramientas de monitorización de uso de puertos y servicios tipo Sniffer
    6. Herramientas de monitorización de sistemas y servicios tipo Hobbit, Nagios o Cacti
    7. Sistemas de gestión de información y eventos de seguridad (SIM/SEM)
    8. Gestión de registros de elementos de red y filtrado (router, switch, firewall, IDS/IPS, etc.)
-UD-Unidad Didáctica
Contenidos:
  1. Selección del sistema de registro de en función de los requerimientos de la organización
    1. Determinación del nivel de registros necesarios, los periodos de retención y las necesidades de almacenamiento
    2. Análisis de los requerimientos legales en referencia al registro
    3. Selección de medidas de salvaguarda para cubrir los requerimientos de seguridad del sistema de registros
    4. Asignación de responsabilidades para la gestión del registro
    5. Alternativas de almacenamiento para los registros del sistemas y sus características de rendimiento, escalabilidad, confidencialidad, integridad y disponibilidad
    6. Guía para la selección del sistema de almacenamiento y custodia de registros
-UD-Unidad Didáctica
Contenidos:
  1. Administración del control de accesos adecuados de los sistemas de información
    1. Análisis de los requerimientos de acceso de los distintos sistemas de información y recursos compartidos
    2. Principios comúnmente aceptados para el control de accesos y de los distintos tipos de acceso locales y remotos
    3. Requerimientos legales en referencia al control de accesos y asignación de privilegios
    4. Perfiles de de acceso en relación con los roles funcionales del personal de la organización
    5. Herramientas de directorio activo y servidores LDAP en general
    6. Herramientas de sistemas de gestión de identidades y autorizaciones (IAM)
    7. Herramientas de Sistemas de punto único de autenticación Single Sign On (SSO)
-MF0490_3-Gestión de servicios en el sistema informático Solicitar módulo
Nivel: 3 Tipo: formativo Nº Horas: 90 h
Contenidos:
-UD-Unidad Didáctica
Contenidos:
  1. Gestión de la seguridad y normativas
    1. Norma ISO 27002 Código de buenas practicas para la gestión de la seguridad de la información
    2. Metodología ITIL Librería de infraestructuras de las tecnologías de la información
    3. Ley orgánica de protección de datos de carácter personal.
    4. Normativas mas frecuentemente utilizadas para la gestión de la seguridad física
-UD-Unidad Didáctica
Contenidos:
  1. Análisis de los procesos de sistemas
    1. Identificación de procesos de negocio soportados por sistemas de información
    2. Características fundamentales de los procesos electrónicos - Estados de un proceso, - Manejo de señales, su administración y los cambios en las prioridades
    3. Determinación de los sistemas de información que soportan los procesos de negocio y los activos y servicios utilizados por los mismos
    4. Análisis de las funcionalidades de sistema operativo para la monitorización de los procesos y servicios
    5. Técnicas utilizadas para la gestión del consumo de recursos
-UD-Unidad Didáctica
Contenidos:
  1. Demostración de sistemas de almacenamiento
    1. Tipos de dispositivos de almacenamiento más frecuentes
    2. Características de los sistemas de archivo disponibles
    3. Organización y estructura general de almacenamiento
    4. Herramientas del sistema para gestión de dispositivos de almacenamiento
-UD-Unidad Didáctica
Contenidos:
  1. Utilización de métricas e indicadores de monitorización de rendimiento de sistemas
    1. Criterios para establecer el marco general de uso de métricas e indicadores para la monitorización de los sistemas de información
    2. Identificación de los objetos para los cuales es necesario obtener indicadores
    3. Aspectos a definir para la selección y definición de indicadores
    4. Establecimiento de los umbrales de rendimiento de los sistemas de información
    5. Recolección y análisis de los datos aportados por los indicadores
    6. Consolidación de indicadores bajo un cuadro de mandos de rendimiento de sistemas de información unificado
-UD-Unidad Didáctica
Contenidos:
  1. Confección del proceso de monitorización de sistemas y comunicaciones
    1. Identificación de los dispositivos de comunicaciones
    2. Análisis de los protocolos y servicios de comunicaciones
    3. Principales parámetros de configuración y funcionamiento de los equipos de comunicaciones
    4. Procesos de monitorización y respuesta
    5. Herramientas de monitorización de uso de puertos y servicios tipo Sniffer
    6. Herramientas de monitorización de sistemas y servicios tipo Hobbit, Nagios o Cacti
    7. Sistemas de gestión de información y eventos de seguridad (SIM/SEM)
    8. Gestión de registros de elementos de red y filtrado (router, switch, firewall, IDS/IPS, etc.)
-UD-Unidad Didáctica
Contenidos:
  1. Selección del sistema de registro de en función de los requerimientos de la organización
    1. Determinación del nivel de registros necesarios, los periodos de retención y las necesidades de almacenamiento
    2. Análisis de los requerimientos legales en referencia al registro
    3. Selección de medidas de salvaguarda para cubrir los requerimientos de seguridad del sistema de registros
    4. Asignación de responsabilidades para la gestión del registro
    5. Alternativas de almacenamiento para los registros del sistemas y sus características de rendimiento, escalabilidad, confidencialidad, integridad y disponibilidad
    6. Guía para la selección del sistema de almacenamiento y custodia de registros
-UD-Unidad Didáctica
Contenidos:
  1. Administración del control de accesos adecuados de los sistemas de información
    1. Análisis de los requerimientos de acceso de los distintos sistemas de información y recursos compartidos
    2. Principios comúnmente aceptados para el control de accesos y de los distintos tipos de acceso locales y remotos
    3. Requerimientos legales en referencia al control de accesos y asignación de privilegios
    4. Perfiles de de acceso en relación con los roles funcionales del personal de la organización
    5. Herramientas de directorio activo y servidores LDAP en general
    6. Herramientas de sistemas de gestión de identidades y autorizaciones (IAM)
    7. Herramientas de Sistemas de punto único de autenticación Single Sign On (SSO)
-MF0490_3-Gestión de servicios en el sistema informático Solicitar módulo
Nivel: 3 Tipo: formativo Nº Horas: 90 h
Contenidos:
-UD-Unidad Didáctica
Contenidos:
  1. Gestión de la seguridad y normativas
    1. Norma ISO 27002 Código de buenas practicas para la gestión de la seguridad de la información
    2. Metodología ITIL Librería de infraestructuras de las tecnologías de la información
    3. Ley orgánica de protección de datos de carácter personal.
    4. Normativas mas frecuentemente utilizadas para la gestión de la seguridad física
-UD-Unidad Didáctica
Contenidos:
  1. Análisis de los procesos de sistemas
    1. Identificación de procesos de negocio soportados por sistemas de información
    2. Características fundamentales de los procesos electrónicos - Estados de un proceso, - Manejo de señales, su administración y los cambios en las prioridades
    3. Determinación de los sistemas de información que soportan los procesos de negocio y los activos y servicios utilizados por los mismos
    4. Análisis de las funcionalidades de sistema operativo para la monitorización de los procesos y servicios
    5. Técnicas utilizadas para la gestión del consumo de recursos
-UD-Unidad Didáctica
Contenidos:
  1. Demostración de sistemas de almacenamiento
    1. Tipos de dispositivos de almacenamiento más frecuentes
    2. Características de los sistemas de archivo disponibles
    3. Organización y estructura general de almacenamiento
    4. Herramientas del sistema para gestión de dispositivos de almacenamiento
-UD-Unidad Didáctica
Contenidos:
  1. Utilización de métricas e indicadores de monitorización de rendimiento de sistemas
    1. Criterios para establecer el marco general de uso de métricas e indicadores para la monitorización de los sistemas de información
    2. Identificación de los objetos para los cuales es necesario obtener indicadores
    3. Aspectos a definir para la selección y definición de indicadores
    4. Establecimiento de los umbrales de rendimiento de los sistemas de información
    5. Recolección y análisis de los datos aportados por los indicadores
    6. Consolidación de indicadores bajo un cuadro de mandos de rendimiento de sistemas de información unificado
-UD-Unidad Didáctica
Contenidos:
  1. Confección del proceso de monitorización de sistemas y comunicaciones
    1. Identificación de los dispositivos de comunicaciones
    2. Análisis de los protocolos y servicios de comunicaciones
    3. Principales parámetros de configuración y funcionamiento de los equipos de comunicaciones
    4. Procesos de monitorización y respuesta
    5. Herramientas de monitorización de uso de puertos y servicios tipo Sniffer
    6. Herramientas de monitorización de sistemas y servicios tipo Hobbit, Nagios o Cacti
    7. Sistemas de gestión de información y eventos de seguridad (SIM/SEM)
    8. Gestión de registros de elementos de red y filtrado (router, switch, firewall, IDS/IPS, etc.)
-UD-Unidad Didáctica
Contenidos:
  1. Selección del sistema de registro de en función de los requerimientos de la organización
    1. Determinación del nivel de registros necesarios, los periodos de retención y las necesidades de almacenamiento
    2. Análisis de los requerimientos legales en referencia al registro
    3. Selección de medidas de salvaguarda para cubrir los requerimientos de seguridad del sistema de registros
    4. Asignación de responsabilidades para la gestión del registro
    5. Alternativas de almacenamiento para los registros del sistemas y sus características de rendimiento, escalabilidad, confidencialidad, integridad y disponibilidad
    6. Guía para la selección del sistema de almacenamiento y custodia de registros
-UD-Unidad Didáctica
Contenidos:
  1. Administración del control de accesos adecuados de los sistemas de información
    1. Análisis de los requerimientos de acceso de los distintos sistemas de información y recursos compartidos
    2. Principios comúnmente aceptados para el control de accesos y de los distintos tipos de acceso locales y remotos
    3. Requerimientos legales en referencia al control de accesos y asignación de privilegios
    4. Perfiles de de acceso en relación con los roles funcionales del personal de la organización
    5. Herramientas de directorio activo y servidores LDAP en general
    6. Herramientas de sistemas de gestión de identidades y autorizaciones (IAM)
    7. Herramientas de Sistemas de punto único de autenticación Single Sign On (SSO)
-MF0490_3-Gestión de servicios en el sistema informático Solicitar módulo
Nivel: 3 Tipo: formativo Nº Horas: 90 h
Contenidos:
-UD-Unidad Didáctica
Contenidos:
  1. Gestión de la seguridad y normativas
    1. Norma ISO 27002 Código de buenas practicas para la gestión de la seguridad de la información
    2. Metodología ITIL Librería de infraestructuras de las tecnologías de la información
    3. Ley orgánica de protección de datos de carácter personal.
    4. Normativas mas frecuentemente utilizadas para la gestión de la seguridad física
-UD-Unidad Didáctica
Contenidos:
  1. Análisis de los procesos de sistemas
    1. Identificación de procesos de negocio soportados por sistemas de información
    2. Características fundamentales de los procesos electrónicos - Estados de un proceso, - Manejo de señales, su administración y los cambios en las prioridades
    3. Determinación de los sistemas de información que soportan los procesos de negocio y los activos y servicios utilizados por los mismos
    4. Análisis de las funcionalidades de sistema operativo para la monitorización de los procesos y servicios
    5. Técnicas utilizadas para la gestión del consumo de recursos
-UD-Unidad Didáctica
Contenidos:
  1. Demostración de sistemas de almacenamiento
    1. Tipos de dispositivos de almacenamiento más frecuentes
    2. Características de los sistemas de archivo disponibles
    3. Organización y estructura general de almacenamiento
    4. Herramientas del sistema para gestión de dispositivos de almacenamiento
-UD-Unidad Didáctica
Contenidos:
  1. Utilización de métricas e indicadores de monitorización de rendimiento de sistemas
    1. Criterios para establecer el marco general de uso de métricas e indicadores para la monitorización de los sistemas de información
    2. Identificación de los objetos para los cuales es necesario obtener indicadores
    3. Aspectos a definir para la selección y definición de indicadores
    4. Establecimiento de los umbrales de rendimiento de los sistemas de información
    5. Recolección y análisis de los datos aportados por los indicadores
    6. Consolidación de indicadores bajo un cuadro de mandos de rendimiento de sistemas de información unificado
-UD-Unidad Didáctica
Contenidos:
  1. Confección del proceso de monitorización de sistemas y comunicaciones
    1. Identificación de los dispositivos de comunicaciones
    2. Análisis de los protocolos y servicios de comunicaciones
    3. Principales parámetros de configuración y funcionamiento de los equipos de comunicaciones
    4. Procesos de monitorización y respuesta
    5. Herramientas de monitorización de uso de puertos y servicios tipo Sniffer
    6. Herramientas de monitorización de sistemas y servicios tipo Hobbit, Nagios o Cacti
    7. Sistemas de gestión de información y eventos de seguridad (SIM/SEM)
    8. Gestión de registros de elementos de red y filtrado (router, switch, firewall, IDS/IPS, etc.)
-UD-Unidad Didáctica
Contenidos:
  1. Selección del sistema de registro de en función de los requerimientos de la organización
    1. Determinación del nivel de registros necesarios, los periodos de retención y las necesidades de almacenamiento
    2. Análisis de los requerimientos legales en referencia al registro
    3. Selección de medidas de salvaguarda para cubrir los requerimientos de seguridad del sistema de registros
    4. Asignación de responsabilidades para la gestión del registro
    5. Alternativas de almacenamiento para los registros del sistemas y sus características de rendimiento, escalabilidad, confidencialidad, integridad y disponibilidad
    6. Guía para la selección del sistema de almacenamiento y custodia de registros
-UD-Unidad Didáctica
Contenidos:
  1. Administración del control de accesos adecuados de los sistemas de información
    1. Análisis de los requerimientos de acceso de los distintos sistemas de información y recursos compartidos
    2. Principios comúnmente aceptados para el control de accesos y de los distintos tipos de acceso locales y remotos
    3. Requerimientos legales en referencia al control de accesos y asignación de privilegios
    4. Perfiles de de acceso en relación con los roles funcionales del personal de la organización
    5. Herramientas de directorio activo y servidores LDAP en general
    6. Herramientas de sistemas de gestión de identidades y autorizaciones (IAM)
    7. Herramientas de Sistemas de punto único de autenticación Single Sign On (SSO)
-MF0490_3-Gestión de servicios en el sistema informático Solicitar módulo
Nivel: 3 Tipo: formativo Nº Horas: 90 h
Contenidos:
-UD-Unidad Didáctica
Contenidos:
  1. Gestión de la seguridad y normativas
    1. Norma ISO 27002 Código de buenas practicas para la gestión de la seguridad de la información
    2. Metodología ITIL Librería de infraestructuras de las tecnologías de la información
    3. Ley orgánica de protección de datos de carácter personal.
    4. Normativas mas frecuentemente utilizadas para la gestión de la seguridad física
-UD-Unidad Didáctica
Contenidos:
  1. Análisis de los procesos de sistemas
    1. Identificación de procesos de negocio soportados por sistemas de información
    2. Características fundamentales de los procesos electrónicos - Estados de un proceso, - Manejo de señales, su administración y los cambios en las prioridades
    3. Determinación de los sistemas de información que soportan los procesos de negocio y los activos y servicios utilizados por los mismos
    4. Análisis de las funcionalidades de sistema operativo para la monitorización de los procesos y servicios
    5. Técnicas utilizadas para la gestión del consumo de recursos
-UD-Unidad Didáctica
Contenidos:
  1. Demostración de sistemas de almacenamiento
    1. Tipos de dispositivos de almacenamiento más frecuentes
    2. Características de los sistemas de archivo disponibles
    3. Organización y estructura general de almacenamiento
    4. Herramientas del sistema para gestión de dispositivos de almacenamiento
-UD-Unidad Didáctica
Contenidos:
  1. Utilización de métricas e indicadores de monitorización de rendimiento de sistemas
    1. Criterios para establecer el marco general de uso de métricas e indicadores para la monitorización de los sistemas de información
    2. Identificación de los objetos para los cuales es necesario obtener indicadores
    3. Aspectos a definir para la selección y definición de indicadores
    4. Establecimiento de los umbrales de rendimiento de los sistemas de información
    5. Recolección y análisis de los datos aportados por los indicadores
    6. Consolidación de indicadores bajo un cuadro de mandos de rendimiento de sistemas de información unificado
-UD-Unidad Didáctica
Contenidos:
  1. Confección del proceso de monitorización de sistemas y comunicaciones
    1. Identificación de los dispositivos de comunicaciones
    2. Análisis de los protocolos y servicios de comunicaciones
    3. Principales parámetros de configuración y funcionamiento de los equipos de comunicaciones
    4. Procesos de monitorización y respuesta
    5. Herramientas de monitorización de uso de puertos y servicios tipo Sniffer
    6. Herramientas de monitorización de sistemas y servicios tipo Hobbit, Nagios o Cacti
    7. Sistemas de gestión de información y eventos de seguridad (SIM/SEM)
    8. Gestión de registros de elementos de red y filtrado (router, switch, firewall, IDS/IPS, etc.)
-UD-Unidad Didáctica
Contenidos:
  1. Selección del sistema de registro de en función de los requerimientos de la organización
    1. Determinación del nivel de registros necesarios, los periodos de retención y las necesidades de almacenamiento
    2. Análisis de los requerimientos legales en referencia al registro
    3. Selección de medidas de salvaguarda para cubrir los requerimientos de seguridad del sistema de registros
    4. Asignación de responsabilidades para la gestión del registro
    5. Alternativas de almacenamiento para los registros del sistemas y sus características de rendimiento, escalabilidad, confidencialidad, integridad y disponibilidad
    6. Guía para la selección del sistema de almacenamiento y custodia de registros
-UD-Unidad Didáctica
Contenidos:
  1. Administración del control de accesos adecuados de los sistemas de información
    1. Análisis de los requerimientos de acceso de los distintos sistemas de información y recursos compartidos
    2. Principios comúnmente aceptados para el control de accesos y de los distintos tipos de acceso locales y remotos
    3. Requerimientos legales en referencia al control de accesos y asignación de privilegios
    4. Perfiles de de acceso en relación con los roles funcionales del personal de la organización
    5. Herramientas de directorio activo y servidores LDAP en general
    6. Herramientas de sistemas de gestión de identidades y autorizaciones (IAM)
    7. Herramientas de Sistemas de punto único de autenticación Single Sign On (SSO)
-MF0490_3-Gestión de servicios en el sistema informático Solicitar módulo
Nivel: 3 Tipo: formativo Nº Horas: 90 h
Contenidos:
-UD-Unidad Didáctica
Contenidos:
  1. Gestión de la seguridad y normativas
    1. Norma ISO 27002 Código de buenas practicas para la gestión de la seguridad de la información
    2. Metodología ITIL Librería de infraestructuras de las tecnologías de la información
    3. Ley orgánica de protección de datos de carácter personal.
    4. Normativas mas frecuentemente utilizadas para la gestión de la seguridad física
-UD-Unidad Didáctica
Contenidos:
  1. Análisis de los procesos de sistemas
    1. Identificación de procesos de negocio soportados por sistemas de información
    2. Características fundamentales de los procesos electrónicos - Estados de un proceso, - Manejo de señales, su administración y los cambios en las prioridades
    3. Determinación de los sistemas de información que soportan los procesos de negocio y los activos y servicios utilizados por los mismos
    4. Análisis de las funcionalidades de sistema operativo para la monitorización de los procesos y servicios
    5. Técnicas utilizadas para la gestión del consumo de recursos
-UD-Unidad Didáctica
Contenidos:
  1. Demostración de sistemas de almacenamiento
    1. Tipos de dispositivos de almacenamiento más frecuentes
    2. Características de los sistemas de archivo disponibles
    3. Organización y estructura general de almacenamiento
    4. Herramientas del sistema para gestión de dispositivos de almacenamiento
-UD-Unidad Didáctica
Contenidos:
  1. Utilización de métricas e indicadores de monitorización de rendimiento de sistemas
    1. Criterios para establecer el marco general de uso de métricas e indicadores para la monitorización de los sistemas de información
    2. Identificación de los objetos para los cuales es necesario obtener indicadores
    3. Aspectos a definir para la selección y definición de indicadores
    4. Establecimiento de los umbrales de rendimiento de los sistemas de información
    5. Recolección y análisis de los datos aportados por los indicadores
    6. Consolidación de indicadores bajo un cuadro de mandos de rendimiento de sistemas de información unificado
-UD-Unidad Didáctica
Contenidos:
  1. Confección del proceso de monitorización de sistemas y comunicaciones
    1. Identificación de los dispositivos de comunicaciones
    2. Análisis de los protocolos y servicios de comunicaciones
    3. Principales parámetros de configuración y funcionamiento de los equipos de comunicaciones
    4. Procesos de monitorización y respuesta
    5. Herramientas de monitorización de uso de puertos y servicios tipo Sniffer
    6. Herramientas de monitorización de sistemas y servicios tipo Hobbit, Nagios o Cacti
    7. Sistemas de gestión de información y eventos de seguridad (SIM/SEM)
    8. Gestión de registros de elementos de red y filtrado (router, switch, firewall, IDS/IPS, etc.)
-UD-Unidad Didáctica
Contenidos:
  1. Selección del sistema de registro de en función de los requerimientos de la organización
    1. Determinación del nivel de registros necesarios, los periodos de retención y las necesidades de almacenamiento
    2. Análisis de los requerimientos legales en referencia al registro
    3. Selección de medidas de salvaguarda para cubrir los requerimientos de seguridad del sistema de registros
    4. Asignación de responsabilidades para la gestión del registro
    5. Alternativas de almacenamiento para los registros del sistemas y sus características de rendimiento, escalabilidad, confidencialidad, integridad y disponibilidad
    6. Guía para la selección del sistema de almacenamiento y custodia de registros
-UD-Unidad Didáctica
Contenidos:
  1. Administración del control de accesos adecuados de los sistemas de información
    1. Análisis de los requerimientos de acceso de los distintos sistemas de información y recursos compartidos
    2. Principios comúnmente aceptados para el control de accesos y de los distintos tipos de acceso locales y remotos
    3. Requerimientos legales en referencia al control de accesos y asignación de privilegios
    4. Perfiles de de acceso en relación con los roles funcionales del personal de la organización
    5. Herramientas de directorio activo y servidores LDAP en general
    6. Herramientas de sistemas de gestión de identidades y autorizaciones (IAM)
    7. Herramientas de Sistemas de punto único de autenticación Single Sign On (SSO)
-MF0964_3-Desarrollo de elementos software para gestión de sistemas Solicitar módulo
Nivel: 3 Tipo: formativo Nº Horas: 210 h
Contenidos:
-UF1286-Desarrollo y optimización de componentes software para tareas administrativas de sistemas Solicitar unidad
Capacidades y criterios:
  1. C1: Analizar las especificaciones técnicas proporcionadas para el desarrollo a realizar, comprobando su validez y optimización.
    1. CE 1.1 Clasificar las principales arquitecturas de sistemas operativos (monolítico, modular, microkernel, sistemas distribuidos) y sus características, para identificar las necesidades de gestión y administración de dichos sistemas según especificaciones técnicas.
    2. CE 1.2 Explicar los apartados de un análisis de requisitos, detallando los diagramas básicos utilizados para la especificación funcional y de datos según metodologías y estándares de diseño.
    3. CE 1.3 Analizar las especificaciones técnicas del servicio o herramienta de gestión que se desea implementar, para identificar los recursos requeridos del componente según las especificaciones funcionales dadas.
    4. CE 1.4 Realizar los diagramas previos a la fase de desarrollo siguiendo las especificaciones técnicas y criterios de calidad especificados.
    5. CE 1.5 En un supuesto práctico, para interpretar un análisis de requisitos dado para el desarrollo de un elemento software, teniendo en cuenta las necesidades de administración de los recursos del sistema informático: - Definir los módulos software a realizar a partir de las especificaciones técnicas y catálogo de requisitos. - Establecer las relaciones entre módulos determinando entradas, salidas y flujos de datos según el diseño funcional y las especificaciones del sistema. - Determinar las estructuras necesarias para representar la información especificada en los requisitos. - Crear las estructuras necesarias para realizar el seguimiento de requisitos durante la codificación del elemento software según unos criterios de calidad especificados.
  2. C2: Desarrollar elementos software destinados a la gestión de los recursos del sistema, mediante herramientas y lenguajes de programación de sistemas.
    1. CE 2.1 Enumerar las herramientas y lenguajes estructurados, orientados al desarrollo de programas para la gestión de recursos del sistema, detallando sus características.
    2. CE 2.2 Describir las técnicas de funcionamiento y principios de los sistemas de memoria, detallando su organización en jerarquías, para desarrollar elementos software que las utilicen según las especificaciones funcionales aportadas.
    3. CE 2.3 Clasificar las arquitecturas de entrada/salida, de buses y de microprocesadores en sistemas, explicando las técnicas y procesos funcionales utilizados para el desarrollo de los elementos software, según unas especificaciones funcionales dadas.
    4. CE 2.4 Distinguir las funciones de las librerías del sistema para la elaboración de nuevos componentes software, reutilizando el código ya desarrollado e implementando nuevos elementos en dichas librerías u obteniendo componentes aislados, según unos criterios de optimización y calidad especificados.
    5. CE 2.5 Describir los tipos de pruebas, tanto funcionales como estructurales, y los procesos de depuración a los que debe ser sometido un componente desarrollado y las herramientas utilizadas, para verificar su funcionalidad e integración con el resto de componentes del sistema, según unos criterios de calidad especificados.
    6. CE 2.6 Clasificar las herramientas utilizadas en las fases de desarrollo: generación del código, creación de los módulos ejecutables, control de versiones, depuración y pruebas, documentación y empaquetado para su distribución para optimizar la generación y asegurar la calidad de los productos del desarrollo, según unos criterios de seguridad y calidad especificados.
    7. CE 2.7 En varios supuestos prácticos para desarrollar elementos software para la gestión de los recursos del sistema, dadas unas especificaciones técnicas: - Diseñar los algoritmos asociados al elemento software utilizando técnicas de desarrollo estructurado. - Codificar los módulos software a partir de los algoritmos diseñados utilizando herramientas y lenguajes estructurados. - Codificar estructuras de datos utilizando las funcionalidades proporcionadas por el lenguaje estructurado. - Utilizar los recursos y librerías disponibles en las herramientas de desarrollo para realizar la codificación de los algoritmos. - Diseñar y codificar los manejadores de errores necesarios para garantizar el óptimo funcionamiento del módulo software. - Diseñar y codificar componentes que permitan el acceso concurrente a los recursos del sistema. - Depurar los módulos desarrollados utilizando las herramientas disponibles. - Diseñar y aplicar baterías de pruebas sobre los módulos desarrollados para comprobar su correcto funcionamiento y documentar los resultados obtenidos. - Documentar los módulos desarrollados para facilitar su revisión y futuras modificaciones y ampliaciones. - Realizar la implantación de los módulos documentando el proceso y las incidencias detectadas.
    8. CE 2.8 Interpretar la documentación técnica asociada a las herramientas y lenguajes de programación, incluso si está editada en la lengua extranjera de uso más frecuente en el sector, utilizándola de ayuda en el desarrollo.
Contenidos:
  1. Descripción de los servicios, estructura y administración de Sistemas Operativos.
    1. Definición y conceptos básicos sobre Sistemas Operativos: - Descripción de los servicios básicos ofrecidos por un Sistema Operativo - Gestión de memoria. Memoria virtual - Ejecución de programas y gestión de procesos - Gestión del almacenamiento. Sistemas de Archivos - Gestión de dispositivos de entrada/salida - Gestión de red - Gestión de errores - Gestión de la seguridad - Auditoría (logs del sistema) - Procesos de arranque (boot) y finalización del sistema (shutdown)
    2. Características estructurales de los Sistemas Operativos: - Sistemas monolíticos - Microkernels - Sistemas modulares y por capas - Máquinas virtuales - Sistemas distribuidos
    3. Herramientas administrativas de uso común en Sistemas Operativos: - Interfaces de usuario gráficos - Intérpretes de comandos
  1. Programación de sistemas operativos. Lenguajes y librerías de uso común.
    1. Las llamadas al sistema (System Calls): - Definición - Uso directo y mediante Application Programming Interfaces (APIs) - Principales tipos de llamadas al sistema: * Control de procesos * Gestión de ficheros * Gestión de dispositivos * Información del sistema * Comunicaciones - Descripción y uso de las APIs estándar de uso común para llamadas a sistema: * Win32 API (Sistemas Windows) * POSIX API (Sistemas Unix, Linux, Mac) * Java API (Multiplataforma)
    2. Programas de utilidades y comandos del sistema: - Principales tipos: * Operaciones con ficheros y directorios * Funciones de estado Edición y manipulación de ficheros * Soporte para lenguajes de programación (compiladores, enlazadores, ensambladores, intérpretes, etc.) * Ejecución de programas * Comunicaciones, mensajería, intercambio remoto de archivos, etc. - Uso de utilidades y comandos mediante lenguajes de script de uso común * Windows scripting * Linux/Unix scripting
  1. El ciclo de vida del software de gestión de sistemas.
    1. Modelos del ciclo de vida del software. - En cascada (waterfall) - Iterativo - Incremental - En V - Basado en componentes (CBSE) - Desarrollo rápido (RAD) - Ventajas e inconvenientes. Pautas para la selección de la metodología más adecuada.
    2. Descripción de las fases en el ciclo de vida del software: - Análisis y especificación de requisitos * Tipos de requisitos : funcionales/ no funcionales, de usuario, de interfaz, de seguridad y de rendimiento * Modelos para el análisis de requisitos * Documentación de requisitos * Validación de requisitos * Gestión de requisitos - Diseño: * Modelos para el diseño de sistemas : contexto y arquitectura, procesos, datos, objetos, interfaces de usuario ,componentes y despliegues * Diagramas de diseño: diagramas de entidad-relación, diagramas de flujo, diagramas de contexto y UML. Diagramas UML de uso común en diseño de sistemas * Documentación: herramientas de generación de documentación y documentación el código - Implementación. Conceptos generales de desarrollo de software: * Principios básicos del desarrollo de software * Técnicas de desarrollo de software : basadas en prototipos, basadas en componentes, métodos de desarrollo rápido y otras técnicas de desarrollo - Validación, verificación y pruebas: * Validación y verificación de sistemas: planificación, métodos formales de verificación y métodos automatizados de análisis * Pruebas de software: tipos, diseño de pruebas, ámbito de aplicación, automatización de pruebas, herramientas y estándares sobre pruebas de software.
    3. Calidad del software: - Principios de calidad del software - Métricas y calidad del software: * Concepto de métrica y su importancia en la medición de la calidad * Principales métricas en las fases del ciclo de vida software - Estándares para la descripción de los factores de Calidad: * ISO-9126 * Otros estándares. Comparativa
  1. Desarrollo del software de gestión de sistemas
    1. Análisis de especificaciones para el desarrollo de software de gestión de sistemas: - Identificación de los componentes necesarios según las especificaciones - Análisis de los componentes reutilizables - Análisis de la integración de los componentes en la arquitectura del sistema - Identificación de los modelos funcionales y de datos de los componentes
    2. Técnicas de programación presentes en lenguajes de uso común aplicables al desarrollo de software de gestión de sistemas: - Programación estructurada: * Tipos primitivos y estructurados * Variables. Ámbito de utilización * Operadores aritméticos y lógicos * Estructuras de control. Bucles, condicionales y selectores * Funciones y procedimientos. Parámetros por valor y referencia. * Recursividad * Programación de elementos básicos: cadenas, fechas y ficheros. * Conversiones de tipos * Manejo de errores (excepciones) * Lenguajes estructurados de uso común - Programación orientada a objetos: * Clases y objetos * Herencia, polimorfismo y sobrecarga dinámica de métodos * Propiedades: selectores (get), modificadores (set) y referencias (let) * Lenguajes orientados a objetos de uso común
    3. Técnicas de programación de software de gestión de sistemas: - Reutilización de código. * Uso de librerías del sistema * Llamadas a utilidades y aplicaciones del sistema - Técnicas específicas aplicables a los servicios básicos del sistema: * Programación de la gestión de los procesos: multitarea, control de bloqueos(deadlock) y comunicación entre procesos * Programación de la gestión de memoria: jerarquías de memoria, paginación de memoria, segmentación de memoria, intercambio(swapping), compartición de memoria, seguridad y memoria virtual * Programación de los sistemas de archivos: acceso a archivos y directorios, atributos y mecanismos de protección * Programación de los sistemas de entrada y salida: gestión de interrupciones, acceso directo a memoria (DMA) , puertos de entrada/salida y asignación de memoria * Programación de la seguridad: control de variables, control de desbordamiento de búferes , aserciones, precondiciones y post-condiciones. - Técnicas de optimización
    4. Control de calidad del desarrollo del software de gestión de sistemas: - Métricas aplicables - Verificación de requisitos - Proceso de mejora continua
    5. Herramientas de uso común para el desarrollo de software de sistemas: - Editores orientados a lenguajes de programación - Compiladores y enlazadores - Generadores de programas - Depuradores - De prueba y validación de software - Optimizadores de código - Empaquetadores - Generadores de documentación de software - Despliegue de software: * Gestores y repositorios de paquetes. Versionado y control de dependencias * Distribución de software * Gestores de actualización de software - De control de versiones - Entornos integrados de desarrollo (IDE) de uso común: * Específicos de sistemas Windows * Específicos de sistemas Unix * Multiplataforma
-UF1287-Desarrollo de componentes software para el manejo de dispositivos (Drives) Solicitar unidad
Capacidades y criterios:
  1. C1: Utilizar las técnicas y estándares utilizadas en el desarrollo, distribución e implantación de manejadores de dispositivos (drivers), para la integración de periféricos en el sistema informático según especificaciones técnicas y funcionales dadas.
    1. CE 1.1 Interpretar la documentación técnica de las herramientas software a utilizar y del sistema operativo donde se implementará el manejador de dispositivo, incluso si está editada en la lengua extranjera de uso más frecuente en el sector, utilizándola de ayuda, para identificar las características y los parámetros para la programación del manejador de dispositivo de acuerdo al diseño suministrado.
    2. CE 1.2 Utilizar las técnicas, estándares y herramientas de programación para desarrollar el manejador de dispositivo y depurar los posibles errores en el código desarrollado, según especificaciones técnicas de las herramientas y necesidades funcionales dadas.
    3. CE 1.3 Realizar las pruebas del manejador del dispositivo elaborado en los posibles escenarios en los que puede ser implantado, para asegurar su funcionalidad y la ausencia de conflictos con el resto de los elementos del sistema según especificaciones técnicas y normativa de calidad dadas.
    4. CE 1.4 Confeccionar la documentación técnica y de usuario del manejador desarrollado según unos parámetros y una normativa dadas.
    5. CE 1.5 En un supuesto práctico para modificar un manejador de dispositivo en el que se va a realizar un cambio en su diseño, de acuerdo a unas especificaciones funcionales dadas: - Modificar el código para incorporar los cambios necesarios siguiendo los criterios de calidad especificados. - Comprobar, mediante la realización de pruebas, que la modificación ha sido incorporada con éxito y que no ha alterado la funcionalidad del resto de manejadores, en particular, y del sistema en general. - Realizar la actualización de toda la documentación que se vea afectada por el cambio propuesto. - Diseñar el manejador del dispositivo utilizando técnicas de desarrollo estructurado y los estándares adecuados para el tipo de dispositivo. - Codificar manejadores de dispositivos utilizando la herramienta seleccionada, aplicando el diseño previamente obtenido y utilizando lenguajes estructurados. - Implantar el manejador del dispositivo documentando el código generado, los resultados obtenidos y las incidencias detectados.
Contenidos:
  1. El núcleo del sistema operativo
    1. Arquitectura general del núcleo
    2. Subsistemas del núcleo: - Gestión de procesos - Gestión de memoria - Sistemas de ficheros - Control de dispositivos - Comunicaciones
    3. Aspectos de seguridad sobre el desarrollo de elementos del núcleo
    4. Consideraciones sobre compatibilidad de versiones del núcleo
  1. Programación de controladores de dispositivo
    1. Funcionamiento general de un controlador de dispositivo
    2. Principales tipos de controladores de dispositivo: - Carácter - Bloque - Paquete
    3. Técnicas básicas de programación de controladores de dispositivos - Estructuras básicas de datos de dispositivos - Gestión de errores de dispositivos - Gestión de memoria de dispositivos - Control de interrupciones - Gestión de puertos de entrada y salida - Uso de Acceso directo a memoria (DMA) y buses
    4. Técnicas de depuración y prueba: - Impresión de trazas - Monitorización de errores - Técnicas específicas de depuración de controladores en sistemas operativos de uso común: * Windows * Unix - Aplicación de estándares de calidad del software al desarrollo de controladores de dispositivos
    5. Compilación y carga de controladores de dispositivos
    6. Distribución de controladores de dispositivo
    7. Particularidades en el desarrollo de dispositivos en sistemas operativos de uso común: - Sistemas Windows - Sistemas Unix - Modos de instalación de controladores de dispositivo en sistemas operativos de uso común. Dispositivos Plug & Play: * Instalación de dispositivos en Windows * Instalación de dispositivos en Sistemas Unix
    8. Herramientas: - Entornos de desarrollo de controladores de dispositivo en sistemas operativos de uso común - Herramientas de depuración y verificación de controladores de dispositivos
    9. Documentación de manejadores de dispositivo: - Elaboración de especificaciones técnicas siguiendo directrices específicas de sistemas operativos de uso común - Elaboración de manual de instalación - Elaboración de manual de uso
-UF1288-Desarrollo de componentes software para servicios de comnicaciones Solicitar unidad
Capacidades y criterios:
  1. C1: Implementar servicios de comunicaciones entre sistemas aplicando las técnicas y estándares de desarrollo de elementos software, de acuerdo a unas especificaciones técnicas y funcionales dadas.
    1. CE 1.1 Clasificar las arquitecturas de servicios de comunicaciones para distinguir servicios prestados en entornos cliente/servidor de entornos entre iguales (punto a punto).
    2. CE 1.2 Describir los protocolos y puertos utilizados para la comunicación entre sistemas, teniendo en cuenta el soporte que ofrecen a los servicios de comunicaciones.
    3. CE 1.3 Identificar las principales API?s (Aplication Program Interface) y librerías y su uso para el desarrollo mediante programación estructurada.
    4. CE 1.4 Realizar la codificación del componente utilizando herramientas de programación y depuración adecuadas para optimizar la fase de desarrollo según unas especificaciones técnicas dadas.
    5. CE 1.5 Someter al componente a baterías de pruebas en réplicas de los posibles escenarios de su implantación posterior, para verificar la ausencia de conflictos y su integración con el resto de componentes del sistema, según unos criterios de calidad y seguridad dados.
    6. CE 1.6 Clasificar los estándares definidos para el desarrollo de servicios de comunicaciones entre sistemas según diferentes criterios: organizaciones de estandarización, tipos de servicios y protocolos soportados, entre otros.
    7. CE 1.7 Enumerar los principales problemas de seguridad en el ámbito de las comunicaciones y describir las estrategias a aplicar, para el desarrollo de componentes que implementen servicios seguros según estándares y especificaciones dadas.
    8. CE 1.8 En varios supuestos prácticos donde se van a desarrollar componentes para el establecimiento de servicios de comunicaciones entre sistemas, dadas unas especificaciones técnicas: - Seleccionar la herramienta adecuada para el desarrollo de los componentes de comunicaciones. - Diseñar el componente utilizando técnicas de desarrollo estructurado y los estándares definidos. - Codificar el elemento software utilizando la herramienta seleccionada, aplicando el diseño previamente obtenido y utilizando lenguajes estructurados. - Depurar y probar el componente garantizando su óptimo funcionamiento. - Diseñar baterías de posibles ataques contra el servicio y probarlas para detectar posibles vulnerabilidades. - Implantar los componentes para verificar el servicio de comunicaciones documentando los resultados e incidencias detectados. - Documentar el código desarrollado, las pruebas realizadas y el resultado de los procesos de implantación de los componentes.
Contenidos:
  1. Programación concurrente
    1. Programación de procesos e hilos de ejecución: - Gestión de procesos - Hilos y sincronización
    2. Programación de eventos asíncronos: - Señales - Temporizadores
    3. Mecanismos de comunicación entre procesos: - Tuberías (pipes) - Semáforos - Compartición de memoria - Mensajes
    4. Sincronización: - Funciones de sincronización entre hilos - Problemas de sincronización. Bloqueos (Deadlocks)
    5. Acceso a dispositivos: - Funciones de lectura y escritura - Puertos de entrada y salida
  1. Fundamentos de comunicaciones
    1. Modelos de programación en red: - El modelo cliente/servidor - El modelo de objetos distribuidos - Modelos basados en mensajes. Introducción a los Servicios web
    2. El nivel físico: - Dispositivos físicos - Protocolos de nivel físico
    3. El nivel de enlace: - Redes Ethernet - Direcciones físicas
    4. El nivel de transporte: - El protocolo TCP/IP - Esquemas de direccionamiento - El nivel de transporte. Protocolos TCP y UDP. Otros protocolos de uso común. - Puertos - Servicios de red básicos
  1. Programación de servicios de comunicaciones
    1. Aplicaciones y utilidades de comunicaciones. Estándares de comunicaciones: - Organismos de estandarización de comunicaciones - Comunicaciones en sistemas operativos de uso común - Tipos de servicios de comunicaciones - Protocolos de comunicaciones de uso común - Estándares de comunicaciones inalámbricas
    2. Librerías de comunicaciones de uso común: - APIs para entornos Windows - APIs para entornos Unix
    3. Programación de componentes de comunicaciones: - Programación de sockets: * Funciones básicas * Ejemplos de utilización. Sockets TCP y UDP * Programación cliente/servidor mediante sockets - Programación de manejadores de protocolos
    4. Técnicas de depuración de servicios de comunicaciones: - Directrices para el diseño de pruebas - Exploración de vulnerabilidades y puertos - Revisión de logs - Otras técnicas de depuración - Herramientas de prueba y depuración de servicios de comunicaciones
    5. Rendimiento en las comunicaciones: - Calidad de servicio IP - Control del ancho de banda - Herramientas de monitorización de redes
  1. Seguridad en las comunicaciones
    1. Principios de seguridad en las comunicaciones: - Mecanismos de seguridad - Principales vulnerabilidades y amenazas
    2. Herramientas para la gestión de la seguridad en red. Scanners
    3. Seguridad IP
    4. Seguridad en el nivel de aplicación. El protocolo SSL
    5. Seguridad en redes inalámbricas
-MF0964_3-Desarrollo de elementos software para gestión de sistemas Solicitar módulo
Nivel: 3 Tipo: formativo Nº Horas: 210 h
Contenidos:
-UF1286-Desarrollo y optimización de componentes software para tareas administrativas de sistemas Solicitar unidad
Capacidades y criterios:
  1. C1: Analizar las especificaciones técnicas proporcionadas para el desarrollo a realizar, comprobando su validez y optimización.
    1. CE 1.1 Clasificar las principales arquitecturas de sistemas operativos (monolítico, modular, microkernel, sistemas distribuidos) y sus características, para identificar las necesidades de gestión y administración de dichos sistemas según especificaciones técnicas.
    2. CE 1.2 Explicar los apartados de un análisis de requisitos, detallando los diagramas básicos utilizados para la especificación funcional y de datos según metodologías y estándares de diseño.
    3. CE 1.3 Analizar las especificaciones técnicas del servicio o herramienta de gestión que se desea implementar, para identificar los recursos requeridos del componente según las especificaciones funcionales dadas.
    4. CE 1.4 Realizar los diagramas previos a la fase de desarrollo siguiendo las especificaciones técnicas y criterios de calidad especificados.
    5. CE 1.5 En un supuesto práctico, para interpretar un análisis de requisitos dado para el desarrollo de un elemento software, teniendo en cuenta las necesidades de administración de los recursos del sistema informático: - Definir los módulos software a realizar a partir de las especificaciones técnicas y catálogo de requisitos. - Establecer las relaciones entre módulos determinando entradas, salidas y flujos de datos según el diseño funcional y las especificaciones del sistema. - Determinar las estructuras necesarias para representar la información especificada en los requisitos. - Crear las estructuras necesarias para realizar el seguimiento de requisitos durante la codificación del elemento software según unos criterios de calidad especificados.
  2. C2: Desarrollar elementos software destinados a la gestión de los recursos del sistema, mediante herramientas y lenguajes de programación de sistemas.
    1. CE 2.1 Enumerar las herramientas y lenguajes estructurados, orientados al desarrollo de programas para la gestión de recursos del sistema, detallando sus características.
    2. CE 2.2 Describir las técnicas de funcionamiento y principios de los sistemas de memoria, detallando su organización en jerarquías, para desarrollar elementos software que las utilicen según las especificaciones funcionales aportadas.
    3. CE 2.3 Clasificar las arquitecturas de entrada/salida, de buses y de microprocesadores en sistemas, explicando las técnicas y procesos funcionales utilizados para el desarrollo de los elementos software, según unas especificaciones funcionales dadas.
    4. CE 2.4 Distinguir las funciones de las librerías del sistema para la elaboración de nuevos componentes software, reutilizando el código ya desarrollado e implementando nuevos elementos en dichas librerías u obteniendo componentes aislados, según unos criterios de optimización y calidad especificados.
    5. CE 2.5 Describir los tipos de pruebas, tanto funcionales como estructurales, y los procesos de depuración a los que debe ser sometido un componente desarrollado y las herramientas utilizadas, para verificar su funcionalidad e integración con el resto de componentes del sistema, según unos criterios de calidad especificados.
    6. CE 2.6 Clasificar las herramientas utilizadas en las fases de desarrollo: generación del código, creación de los módulos ejecutables, control de versiones, depuración y pruebas, documentación y empaquetado para su distribución para optimizar la generación y asegurar la calidad de los productos del desarrollo, según unos criterios de seguridad y calidad especificados.
    7. CE 2.7 En varios supuestos prácticos para desarrollar elementos software para la gestión de los recursos del sistema, dadas unas especificaciones técnicas: - Diseñar los algoritmos asociados al elemento software utilizando técnicas de desarrollo estructurado. - Codificar los módulos software a partir de los algoritmos diseñados utilizando herramientas y lenguajes estructurados. - Codificar estructuras de datos utilizando las funcionalidades proporcionadas por el lenguaje estructurado. - Utilizar los recursos y librerías disponibles en las herramientas de desarrollo para realizar la codificación de los algoritmos. - Diseñar y codificar los manejadores de errores necesarios para garantizar el óptimo funcionamiento del módulo software. - Diseñar y codificar componentes que permitan el acceso concurrente a los recursos del sistema. - Depurar los módulos desarrollados utilizando las herramientas disponibles. - Diseñar y aplicar baterías de pruebas sobre los módulos desarrollados para comprobar su correcto funcionamiento y documentar los resultados obtenidos. - Documentar los módulos desarrollados para facilitar su revisión y futuras modificaciones y ampliaciones. - Realizar la implantación de los módulos documentando el proceso y las incidencias detectadas.
    8. CE 2.8 Interpretar la documentación técnica asociada a las herramientas y lenguajes de programación, incluso si está editada en la lengua extranjera de uso más frecuente en el sector, utilizándola de ayuda en el desarrollo.
Contenidos:
  1. Descripción de los servicios, estructura y administración de Sistemas Operativos.
    1. Definición y conceptos básicos sobre Sistemas Operativos: - Descripción de los servicios básicos ofrecidos por un Sistema Operativo - Gestión de memoria. Memoria virtual - Ejecución de programas y gestión de procesos - Gestión del almacenamiento. Sistemas de Archivos - Gestión de dispositivos de entrada/salida - Gestión de red - Gestión de errores - Gestión de la seguridad - Auditoría (logs del sistema) - Procesos de arranque (boot) y finalización del sistema (shutdown)
    2. Características estructurales de los Sistemas Operativos: - Sistemas monolíticos - Microkernels - Sistemas modulares y por capas - Máquinas virtuales - Sistemas distribuidos
    3. Herramientas administrativas de uso común en Sistemas Operativos: - Interfaces de usuario gráficos - Intérpretes de comandos
  1. Programación de sistemas operativos. Lenguajes y librerías de uso común.
    1. Las llamadas al sistema (System Calls): - Definición - Uso directo y mediante Application Programming Interfaces (APIs) - Principales tipos de llamadas al sistema: * Control de procesos * Gestión de ficheros * Gestión de dispositivos * Información del sistema * Comunicaciones - Descripción y uso de las APIs estándar de uso común para llamadas a sistema: * Win32 API (Sistemas Windows) * POSIX API (Sistemas Unix, Linux, Mac) * Java API (Multiplataforma)
    2. Programas de utilidades y comandos del sistema: - Principales tipos: * Operaciones con ficheros y directorios * Funciones de estado Edición y manipulación de ficheros * Soporte para lenguajes de programación (compiladores, enlazadores, ensambladores, intérpretes, etc.) * Ejecución de programas * Comunicaciones, mensajería, intercambio remoto de archivos, etc. - Uso de utilidades y comandos mediante lenguajes de script de uso común * Windows scripting * Linux/Unix scripting
  1. El ciclo de vida del software de gestión de sistemas.
    1. Modelos del ciclo de vida del software. - En cascada (waterfall) - Iterativo - Incremental - En V - Basado en componentes (CBSE) - Desarrollo rápido (RAD) - Ventajas e inconvenientes. Pautas para la selección de la metodología más adecuada.
    2. Descripción de las fases en el ciclo de vida del software: - Análisis y especificación de requisitos * Tipos de requisitos : funcionales/ no funcionales, de usuario, de interfaz, de seguridad y de rendimiento * Modelos para el análisis de requisitos * Documentación de requisitos * Validación de requisitos * Gestión de requisitos - Diseño: * Modelos para el diseño de sistemas : contexto y arquitectura, procesos, datos, objetos, interfaces de usuario ,componentes y despliegues * Diagramas de diseño: diagramas de entidad-relación, diagramas de flujo, diagramas de contexto y UML. Diagramas UML de uso común en diseño de sistemas * Documentación: herramientas de generación de documentación y documentación el código - Implementación. Conceptos generales de desarrollo de software: * Principios básicos del desarrollo de software * Técnicas de desarrollo de software : basadas en prototipos, basadas en componentes, métodos de desarrollo rápido y otras técnicas de desarrollo - Validación, verificación y pruebas: * Validación y verificación de sistemas: planificación, métodos formales de verificación y métodos automatizados de análisis * Pruebas de software: tipos, diseño de pruebas, ámbito de aplicación, automatización de pruebas, herramientas y estándares sobre pruebas de software.
    3. Calidad del software: - Principios de calidad del software - Métricas y calidad del software: * Concepto de métrica y su importancia en la medición de la calidad * Principales métricas en las fases del ciclo de vida software - Estándares para la descripción de los factores de Calidad: * ISO-9126 * Otros estándares. Comparativa
  1. Desarrollo del software de gestión de sistemas
    1. Análisis de especificaciones para el desarrollo de software de gestión de sistemas: - Identificación de los componentes necesarios según las especificaciones - Análisis de los componentes reutilizables - Análisis de la integración de los componentes en la arquitectura del sistema - Identificación de los modelos funcionales y de datos de los componentes
    2. Técnicas de programación presentes en lenguajes de uso común aplicables al desarrollo de software de gestión de sistemas: - Programación estructurada: * Tipos primitivos y estructurados * Variables. Ámbito de utilización * Operadores aritméticos y lógicos * Estructuras de control. Bucles, condicionales y selectores * Funciones y procedimientos. Parámetros por valor y referencia. * Recursividad * Programación de elementos básicos: cadenas, fechas y ficheros. * Conversiones de tipos * Manejo de errores (excepciones) * Lenguajes estructurados de uso común - Programación orientada a objetos: * Clases y objetos * Herencia, polimorfismo y sobrecarga dinámica de métodos * Propiedades: selectores (get), modificadores (set) y referencias (let) * Lenguajes orientados a objetos de uso común
    3. Técnicas de programación de software de gestión de sistemas: - Reutilización de código. * Uso de librerías del sistema * Llamadas a utilidades y aplicaciones del sistema - Técnicas específicas aplicables a los servicios básicos del sistema: * Programación de la gestión de los procesos: multitarea, control de bloqueos(deadlock) y comunicación entre procesos * Programación de la gestión de memoria: jerarquías de memoria, paginación de memoria, segmentación de memoria, intercambio(swapping), compartición de memoria, seguridad y memoria virtual * Programación de los sistemas de archivos: acceso a archivos y directorios, atributos y mecanismos de protección * Programación de los sistemas de entrada y salida: gestión de interrupciones, acceso directo a memoria (DMA) , puertos de entrada/salida y asignación de memoria * Programación de la seguridad: control de variables, control de desbordamiento de búferes , aserciones, precondiciones y post-condiciones. - Técnicas de optimización
    4. Control de calidad del desarrollo del software de gestión de sistemas: - Métricas aplicables - Verificación de requisitos - Proceso de mejora continua
    5. Herramientas de uso común para el desarrollo de software de sistemas: - Editores orientados a lenguajes de programación - Compiladores y enlazadores - Generadores de programas - Depuradores - De prueba y validación de software - Optimizadores de código - Empaquetadores - Generadores de documentación de software - Despliegue de software: * Gestores y repositorios de paquetes. Versionado y control de dependencias * Distribución de software * Gestores de actualización de software - De control de versiones - Entornos integrados de desarrollo (IDE) de uso común: * Específicos de sistemas Windows * Específicos de sistemas Unix * Multiplataforma
-UF1287-Desarrollo de componentes software para el manejo de dispositivos (Drives) Solicitar unidad
Capacidades y criterios:
  1. C1: Utilizar las técnicas y estándares utilizadas en el desarrollo, distribución e implantación de manejadores de dispositivos (drivers), para la integración de periféricos en el sistema informático según especificaciones técnicas y funcionales dadas.
    1. CE 1.1 Interpretar la documentación técnica de las herramientas software a utilizar y del sistema operativo donde se implementará el manejador de dispositivo, incluso si está editada en la lengua extranjera de uso más frecuente en el sector, utilizándola de ayuda, para identificar las características y los parámetros para la programación del manejador de dispositivo de acuerdo al diseño suministrado.
    2. CE 1.2 Utilizar las técnicas, estándares y herramientas de programación para desarrollar el manejador de dispositivo y depurar los posibles errores en el código desarrollado, según especificaciones técnicas de las herramientas y necesidades funcionales dadas.
    3. CE 1.3 Realizar las pruebas del manejador del dispositivo elaborado en los posibles escenarios en los que puede ser implantado, para asegurar su funcionalidad y la ausencia de conflictos con el resto de los elementos del sistema según especificaciones técnicas y normativa de calidad dadas.
    4. CE 1.4 Confeccionar la documentación técnica y de usuario del manejador desarrollado según unos parámetros y una normativa dadas.
    5. CE 1.5 En un supuesto práctico para modificar un manejador de dispositivo en el que se va a realizar un cambio en su diseño, de acuerdo a unas especificaciones funcionales dadas: - Modificar el código para incorporar los cambios necesarios siguiendo los criterios de calidad especificados. - Comprobar, mediante la realización de pruebas, que la modificación ha sido incorporada con éxito y que no ha alterado la funcionalidad del resto de manejadores, en particular, y del sistema en general. - Realizar la actualización de toda la documentación que se vea afectada por el cambio propuesto. - Diseñar el manejador del dispositivo utilizando técnicas de desarrollo estructurado y los estándares adecuados para el tipo de dispositivo. - Codificar manejadores de dispositivos utilizando la herramienta seleccionada, aplicando el diseño previamente obtenido y utilizando lenguajes estructurados. - Implantar el manejador del dispositivo documentando el código generado, los resultados obtenidos y las incidencias detectados.
Contenidos:
  1. El núcleo del sistema operativo
    1. Arquitectura general del núcleo
    2. Subsistemas del núcleo: - Gestión de procesos - Gestión de memoria - Sistemas de ficheros - Control de dispositivos - Comunicaciones
    3. Aspectos de seguridad sobre el desarrollo de elementos del núcleo
    4. Consideraciones sobre compatibilidad de versiones del núcleo
  1. Programación de controladores de dispositivo
    1. Funcionamiento general de un controlador de dispositivo
    2. Principales tipos de controladores de dispositivo: - Carácter - Bloque - Paquete
    3. Técnicas básicas de programación de controladores de dispositivos - Estructuras básicas de datos de dispositivos - Gestión de errores de dispositivos - Gestión de memoria de dispositivos - Control de interrupciones - Gestión de puertos de entrada y salida - Uso de Acceso directo a memoria (DMA) y buses
    4. Técnicas de depuración y prueba: - Impresión de trazas - Monitorización de errores - Técnicas específicas de depuración de controladores en sistemas operativos de uso común: * Windows * Unix - Aplicación de estándares de calidad del software al desarrollo de controladores de dispositivos
    5. Compilación y carga de controladores de dispositivos
    6. Distribución de controladores de dispositivo
    7. Particularidades en el desarrollo de dispositivos en sistemas operativos de uso común: - Sistemas Windows - Sistemas Unix - Modos de instalación de controladores de dispositivo en sistemas operativos de uso común. Dispositivos Plug & Play: * Instalación de dispositivos en Windows * Instalación de dispositivos en Sistemas Unix
    8. Herramientas: - Entornos de desarrollo de controladores de dispositivo en sistemas operativos de uso común - Herramientas de depuración y verificación de controladores de dispositivos
    9. Documentación de manejadores de dispositivo: - Elaboración de especificaciones técnicas siguiendo directrices específicas de sistemas operativos de uso común - Elaboración de manual de instalación - Elaboración de manual de uso
-UF1288-Desarrollo de componentes software para servicios de comnicaciones Solicitar unidad
Capacidades y criterios:
  1. C1: Implementar servicios de comunicaciones entre sistemas aplicando las técnicas y estándares de desarrollo de elementos software, de acuerdo a unas especificaciones técnicas y funcionales dadas.
    1. CE 1.1 Clasificar las arquitecturas de servicios de comunicaciones para distinguir servicios prestados en entornos cliente/servidor de entornos entre iguales (punto a punto).
    2. CE 1.2 Describir los protocolos y puertos utilizados para la comunicación entre sistemas, teniendo en cuenta el soporte que ofrecen a los servicios de comunicaciones.
    3. CE 1.3 Identificar las principales API?s (Aplication Program Interface) y librerías y su uso para el desarrollo mediante programación estructurada.
    4. CE 1.4 Realizar la codificación del componente utilizando herramientas de programación y depuración adecuadas para optimizar la fase de desarrollo según unas especificaciones técnicas dadas.
    5. CE 1.5 Someter al componente a baterías de pruebas en réplicas de los posibles escenarios de su implantación posterior, para verificar la ausencia de conflictos y su integración con el resto de componentes del sistema, según unos criterios de calidad y seguridad dados.
    6. CE 1.6 Clasificar los estándares definidos para el desarrollo de servicios de comunicaciones entre sistemas según diferentes criterios: organizaciones de estandarización, tipos de servicios y protocolos soportados, entre otros.
    7. CE 1.7 Enumerar los principales problemas de seguridad en el ámbito de las comunicaciones y describir las estrategias a aplicar, para el desarrollo de componentes que implementen servicios seguros según estándares y especificaciones dadas.
    8. CE 1.8 En varios supuestos prácticos donde se van a desarrollar componentes para el establecimiento de servicios de comunicaciones entre sistemas, dadas unas especificaciones técnicas: - Seleccionar la herramienta adecuada para el desarrollo de los componentes de comunicaciones. - Diseñar el componente utilizando técnicas de desarrollo estructurado y los estándares definidos. - Codificar el elemento software utilizando la herramienta seleccionada, aplicando el diseño previamente obtenido y utilizando lenguajes estructurados. - Depurar y probar el componente garantizando su óptimo funcionamiento. - Diseñar baterías de posibles ataques contra el servicio y probarlas para detectar posibles vulnerabilidades. - Implantar los componentes para verificar el servicio de comunicaciones documentando los resultados e incidencias detectados. - Documentar el código desarrollado, las pruebas realizadas y el resultado de los procesos de implantación de los componentes.
Contenidos:
  1. Programación concurrente
    1. Programación de procesos e hilos de ejecución: - Gestión de procesos - Hilos y sincronización
    2. Programación de eventos asíncronos: - Señales - Temporizadores
    3. Mecanismos de comunicación entre procesos: - Tuberías (pipes) - Semáforos - Compartición de memoria - Mensajes
    4. Sincronización: - Funciones de sincronización entre hilos - Problemas de sincronización. Bloqueos (Deadlocks)
    5. Acceso a dispositivos: - Funciones de lectura y escritura - Puertos de entrada y salida
  1. Fundamentos de comunicaciones
    1. Modelos de programación en red: - El modelo cliente/servidor - El modelo de objetos distribuidos - Modelos basados en mensajes. Introducción a los Servicios web
    2. El nivel físico: - Dispositivos físicos - Protocolos de nivel físico
    3. El nivel de enlace: - Redes Ethernet - Direcciones físicas
    4. El nivel de transporte: - El protocolo TCP/IP - Esquemas de direccionamiento - El nivel de transporte. Protocolos TCP y UDP. Otros protocolos de uso común. - Puertos - Servicios de red básicos
  1. Programación de servicios de comunicaciones
    1. Aplicaciones y utilidades de comunicaciones. Estándares de comunicaciones: - Organismos de estandarización de comunicaciones - Comunicaciones en sistemas operativos de uso común - Tipos de servicios de comunicaciones - Protocolos de comunicaciones de uso común - Estándares de comunicaciones inalámbricas
    2. Librerías de comunicaciones de uso común: - APIs para entornos Windows - APIs para entornos Unix
    3. Programación de componentes de comunicaciones: - Programación de sockets: * Funciones básicas * Ejemplos de utilización. Sockets TCP y UDP * Programación cliente/servidor mediante sockets - Programación de manejadores de protocolos
    4. Técnicas de depuración de servicios de comunicaciones: - Directrices para el diseño de pruebas - Exploración de vulnerabilidades y puertos - Revisión de logs - Otras técnicas de depuración - Herramientas de prueba y depuración de servicios de comunicaciones
    5. Rendimiento en las comunicaciones: - Calidad de servicio IP - Control del ancho de banda - Herramientas de monitorización de redes
  1. Seguridad en las comunicaciones
    1. Principios de seguridad en las comunicaciones: - Mecanismos de seguridad - Principales vulnerabilidades y amenazas
    2. Herramientas para la gestión de la seguridad en red. Scanners
    3. Seguridad IP
    4. Seguridad en el nivel de aplicación. El protocolo SSL
    5. Seguridad en redes inalámbricas
-MF0964_3-Desarrollo de elementos software para gestión de sistemas Solicitar módulo
Nivel: 3 Tipo: formativo Nº Horas: 210 h
Contenidos:
-UF1286-Desarrollo y optimización de componentes software para tareas administrativas de sistemas Solicitar unidad
Capacidades y criterios:
  1. C1: Analizar las especificaciones técnicas proporcionadas para el desarrollo a realizar, comprobando su validez y optimización.
    1. CE 1.1 Clasificar las principales arquitecturas de sistemas operativos (monolítico, modular, microkernel, sistemas distribuidos) y sus características, para identificar las necesidades de gestión y administración de dichos sistemas según especificaciones técnicas.
    2. CE 1.2 Explicar los apartados de un análisis de requisitos, detallando los diagramas básicos utilizados para la especificación funcional y de datos según metodologías y estándares de diseño.
    3. CE 1.3 Analizar las especificaciones técnicas del servicio o herramienta de gestión que se desea implementar, para identificar los recursos requeridos del componente según las especificaciones funcionales dadas.
    4. CE 1.4 Realizar los diagramas previos a la fase de desarrollo siguiendo las especificaciones técnicas y criterios de calidad especificados.
    5. CE 1.5 En un supuesto práctico, para interpretar un análisis de requisitos dado para el desarrollo de un elemento software, teniendo en cuenta las necesidades de administración de los recursos del sistema informático: - Definir los módulos software a realizar a partir de las especificaciones técnicas y catálogo de requisitos. - Establecer las relaciones entre módulos determinando entradas, salidas y flujos de datos según el diseño funcional y las especificaciones del sistema. - Determinar las estructuras necesarias para representar la información especificada en los requisitos. - Crear las estructuras necesarias para realizar el seguimiento de requisitos durante la codificación del elemento software según unos criterios de calidad especificados.
  2. C2: Desarrollar elementos software destinados a la gestión de los recursos del sistema, mediante herramientas y lenguajes de programación de sistemas.
    1. CE 2.1 Enumerar las herramientas y lenguajes estructurados, orientados al desarrollo de programas para la gestión de recursos del sistema, detallando sus características.
    2. CE 2.2 Describir las técnicas de funcionamiento y principios de los sistemas de memoria, detallando su organización en jerarquías, para desarrollar elementos software que las utilicen según las especificaciones funcionales aportadas.
    3. CE 2.3 Clasificar las arquitecturas de entrada/salida, de buses y de microprocesadores en sistemas, explicando las técnicas y procesos funcionales utilizados para el desarrollo de los elementos software, según unas especificaciones funcionales dadas.
    4. CE 2.4 Distinguir las funciones de las librerías del sistema para la elaboración de nuevos componentes software, reutilizando el código ya desarrollado e implementando nuevos elementos en dichas librerías u obteniendo componentes aislados, según unos criterios de optimización y calidad especificados.
    5. CE 2.5 Describir los tipos de pruebas, tanto funcionales como estructurales, y los procesos de depuración a los que debe ser sometido un componente desarrollado y las herramientas utilizadas, para verificar su funcionalidad e integración con el resto de componentes del sistema, según unos criterios de calidad especificados.
    6. CE 2.6 Clasificar las herramientas utilizadas en las fases de desarrollo: generación del código, creación de los módulos ejecutables, control de versiones, depuración y pruebas, documentación y empaquetado para su distribución para optimizar la generación y asegurar la calidad de los productos del desarrollo, según unos criterios de seguridad y calidad especificados.
    7. CE 2.7 En varios supuestos prácticos para desarrollar elementos software para la gestión de los recursos del sistema, dadas unas especificaciones técnicas: - Diseñar los algoritmos asociados al elemento software utilizando técnicas de desarrollo estructurado. - Codificar los módulos software a partir de los algoritmos diseñados utilizando herramientas y lenguajes estructurados. - Codificar estructuras de datos utilizando las funcionalidades proporcionadas por el lenguaje estructurado. - Utilizar los recursos y librerías disponibles en las herramientas de desarrollo para realizar la codificación de los algoritmos. - Diseñar y codificar los manejadores de errores necesarios para garantizar el óptimo funcionamiento del módulo software. - Diseñar y codificar componentes que permitan el acceso concurrente a los recursos del sistema. - Depurar los módulos desarrollados utilizando las herramientas disponibles. - Diseñar y aplicar baterías de pruebas sobre los módulos desarrollados para comprobar su correcto funcionamiento y documentar los resultados obtenidos. - Documentar los módulos desarrollados para facilitar su revisión y futuras modificaciones y ampliaciones. - Realizar la implantación de los módulos documentando el proceso y las incidencias detectadas.
    8. CE 2.8 Interpretar la documentación técnica asociada a las herramientas y lenguajes de programación, incluso si está editada en la lengua extranjera de uso más frecuente en el sector, utilizándola de ayuda en el desarrollo.
Contenidos:
  1. Descripción de los servicios, estructura y administración de Sistemas Operativos.
    1. Definición y conceptos básicos sobre Sistemas Operativos: - Descripción de los servicios básicos ofrecidos por un Sistema Operativo - Gestión de memoria. Memoria virtual - Ejecución de programas y gestión de procesos - Gestión del almacenamiento. Sistemas de Archivos - Gestión de dispositivos de entrada/salida - Gestión de red - Gestión de errores - Gestión de la seguridad - Auditoría (logs del sistema) - Procesos de arranque (boot) y finalización del sistema (shutdown)
    2. Características estructurales de los Sistemas Operativos: - Sistemas monolíticos - Microkernels - Sistemas modulares y por capas - Máquinas virtuales - Sistemas distribuidos
    3. Herramientas administrativas de uso común en Sistemas Operativos: - Interfaces de usuario gráficos - Intérpretes de comandos
  1. Programación de sistemas operativos. Lenguajes y librerías de uso común.
    1. Las llamadas al sistema (System Calls): - Definición - Uso directo y mediante Application Programming Interfaces (APIs) - Principales tipos de llamadas al sistema: * Control de procesos * Gestión de ficheros * Gestión de dispositivos * Información del sistema * Comunicaciones - Descripción y uso de las APIs estándar de uso común para llamadas a sistema: * Win32 API (Sistemas Windows) * POSIX API (Sistemas Unix, Linux, Mac) * Java API (Multiplataforma)
    2. Programas de utilidades y comandos del sistema: - Principales tipos: * Operaciones con ficheros y directorios * Funciones de estado Edición y manipulación de ficheros * Soporte para lenguajes de programación (compiladores, enlazadores, ensambladores, intérpretes, etc.) * Ejecución de programas * Comunicaciones, mensajería, intercambio remoto de archivos, etc. - Uso de utilidades y comandos mediante lenguajes de script de uso común * Windows scripting * Linux/Unix scripting
  1. El ciclo de vida del software de gestión de sistemas.
    1. Modelos del ciclo de vida del software. - En cascada (waterfall) - Iterativo - Incremental - En V - Basado en componentes (CBSE) - Desarrollo rápido (RAD) - Ventajas e inconvenientes. Pautas para la selección de la metodología más adecuada.
    2. Descripción de las fases en el ciclo de vida del software: - Análisis y especificación de requisitos * Tipos de requisitos : funcionales/ no funcionales, de usuario, de interfaz, de seguridad y de rendimiento * Modelos para el análisis de requisitos * Documentación de requisitos * Validación de requisitos * Gestión de requisitos - Diseño: * Modelos para el diseño de sistemas : contexto y arquitectura, procesos, datos, objetos, interfaces de usuario ,componentes y despliegues * Diagramas de diseño: diagramas de entidad-relación, diagramas de flujo, diagramas de contexto y UML. Diagramas UML de uso común en diseño de sistemas * Documentación: herramientas de generación de documentación y documentación el código - Implementación. Conceptos generales de desarrollo de software: * Principios básicos del desarrollo de software * Técnicas de desarrollo de software : basadas en prototipos, basadas en componentes, métodos de desarrollo rápido y otras técnicas de desarrollo - Validación, verificación y pruebas: * Validación y verificación de sistemas: planificación, métodos formales de verificación y métodos automatizados de análisis * Pruebas de software: tipos, diseño de pruebas, ámbito de aplicación, automatización de pruebas, herramientas y estándares sobre pruebas de software.
    3. Calidad del software: - Principios de calidad del software - Métricas y calidad del software: * Concepto de métrica y su importancia en la medición de la calidad * Principales métricas en las fases del ciclo de vida software - Estándares para la descripción de los factores de Calidad: * ISO-9126 * Otros estándares. Comparativa
  1. Desarrollo del software de gestión de sistemas
    1. Análisis de especificaciones para el desarrollo de software de gestión de sistemas: - Identificación de los componentes necesarios según las especificaciones - Análisis de los componentes reutilizables - Análisis de la integración de los componentes en la arquitectura del sistema - Identificación de los modelos funcionales y de datos de los componentes
    2. Técnicas de programación presentes en lenguajes de uso común aplicables al desarrollo de software de gestión de sistemas: - Programación estructurada: * Tipos primitivos y estructurados * Variables. Ámbito de utilización * Operadores aritméticos y lógicos * Estructuras de control. Bucles, condicionales y selectores * Funciones y procedimientos. Parámetros por valor y referencia. * Recursividad * Programación de elementos básicos: cadenas, fechas y ficheros. * Conversiones de tipos * Manejo de errores (excepciones) * Lenguajes estructurados de uso común - Programación orientada a objetos: * Clases y objetos * Herencia, polimorfismo y sobrecarga dinámica de métodos * Propiedades: selectores (get), modificadores (set) y referencias (let) * Lenguajes orientados a objetos de uso común
    3. Técnicas de programación de software de gestión de sistemas: - Reutilización de código. * Uso de librerías del sistema * Llamadas a utilidades y aplicaciones del sistema - Técnicas específicas aplicables a los servicios básicos del sistema: * Programación de la gestión de los procesos: multitarea, control de bloqueos(deadlock) y comunicación entre procesos * Programación de la gestión de memoria: jerarquías de memoria, paginación de memoria, segmentación de memoria, intercambio(swapping), compartición de memoria, seguridad y memoria virtual * Programación de los sistemas de archivos: acceso a archivos y directorios, atributos y mecanismos de protección * Programación de los sistemas de entrada y salida: gestión de interrupciones, acceso directo a memoria (DMA) , puertos de entrada/salida y asignación de memoria * Programación de la seguridad: control de variables, control de desbordamiento de búferes , aserciones, precondiciones y post-condiciones. - Técnicas de optimización
    4. Control de calidad del desarrollo del software de gestión de sistemas: - Métricas aplicables - Verificación de requisitos - Proceso de mejora continua
    5. Herramientas de uso común para el desarrollo de software de sistemas: - Editores orientados a lenguajes de programación - Compiladores y enlazadores - Generadores de programas - Depuradores - De prueba y validación de software - Optimizadores de código - Empaquetadores - Generadores de documentación de software - Despliegue de software: * Gestores y repositorios de paquetes. Versionado y control de dependencias * Distribución de software * Gestores de actualización de software - De control de versiones - Entornos integrados de desarrollo (IDE) de uso común: * Específicos de sistemas Windows * Específicos de sistemas Unix * Multiplataforma
-UF1287-Desarrollo de componentes software para el manejo de dispositivos (Drives) Solicitar unidad
Capacidades y criterios:
  1. C1: Utilizar las técnicas y estándares utilizadas en el desarrollo, distribución e implantación de manejadores de dispositivos (drivers), para la integración de periféricos en el sistema informático según especificaciones técnicas y funcionales dadas.
    1. CE 1.1 Interpretar la documentación técnica de las herramientas software a utilizar y del sistema operativo donde se implementará el manejador de dispositivo, incluso si está editada en la lengua extranjera de uso más frecuente en el sector, utilizándola de ayuda, para identificar las características y los parámetros para la programación del manejador de dispositivo de acuerdo al diseño suministrado.
    2. CE 1.2 Utilizar las técnicas, estándares y herramientas de programación para desarrollar el manejador de dispositivo y depurar los posibles errores en el código desarrollado, según especificaciones técnicas de las herramientas y necesidades funcionales dadas.
    3. CE 1.3 Realizar las pruebas del manejador del dispositivo elaborado en los posibles escenarios en los que puede ser implantado, para asegurar su funcionalidad y la ausencia de conflictos con el resto de los elementos del sistema según especificaciones técnicas y normativa de calidad dadas.
    4. CE 1.4 Confeccionar la documentación técnica y de usuario del manejador desarrollado según unos parámetros y una normativa dadas.
    5. CE 1.5 En un supuesto práctico para modificar un manejador de dispositivo en el que se va a realizar un cambio en su diseño, de acuerdo a unas especificaciones funcionales dadas: - Modificar el código para incorporar los cambios necesarios siguiendo los criterios de calidad especificados. - Comprobar, mediante la realización de pruebas, que la modificación ha sido incorporada con éxito y que no ha alterado la funcionalidad del resto de manejadores, en particular, y del sistema en general. - Realizar la actualización de toda la documentación que se vea afectada por el cambio propuesto. - Diseñar el manejador del dispositivo utilizando técnicas de desarrollo estructurado y los estándares adecuados para el tipo de dispositivo. - Codificar manejadores de dispositivos utilizando la herramienta seleccionada, aplicando el diseño previamente obtenido y utilizando lenguajes estructurados. - Implantar el manejador del dispositivo documentando el código generado, los resultados obtenidos y las incidencias detectados.
Contenidos:
  1. El núcleo del sistema operativo
    1. Arquitectura general del núcleo
    2. Subsistemas del núcleo: - Gestión de procesos - Gestión de memoria - Sistemas de ficheros - Control de dispositivos - Comunicaciones
    3. Aspectos de seguridad sobre el desarrollo de elementos del núcleo
    4. Consideraciones sobre compatibilidad de versiones del núcleo
  1. Programación de controladores de dispositivo
    1. Funcionamiento general de un controlador de dispositivo
    2. Principales tipos de controladores de dispositivo: - Carácter - Bloque - Paquete
    3. Técnicas básicas de programación de controladores de dispositivos - Estructuras básicas de datos de dispositivos - Gestión de errores de dispositivos - Gestión de memoria de dispositivos - Control de interrupciones - Gestión de puertos de entrada y salida - Uso de Acceso directo a memoria (DMA) y buses
    4. Técnicas de depuración y prueba: - Impresión de trazas - Monitorización de errores - Técnicas específicas de depuración de controladores en sistemas operativos de uso común: * Windows * Unix - Aplicación de estándares de calidad del software al desarrollo de controladores de dispositivos
    5. Compilación y carga de controladores de dispositivos
    6. Distribución de controladores de dispositivo
    7. Particularidades en el desarrollo de dispositivos en sistemas operativos de uso común: - Sistemas Windows - Sistemas Unix - Modos de instalación de controladores de dispositivo en sistemas operativos de uso común. Dispositivos Plug & Play: * Instalación de dispositivos en Windows * Instalación de dispositivos en Sistemas Unix
    8. Herramientas: - Entornos de desarrollo de controladores de dispositivo en sistemas operativos de uso común - Herramientas de depuración y verificación de controladores de dispositivos
    9. Documentación de manejadores de dispositivo: - Elaboración de especificaciones técnicas siguiendo directrices específicas de sistemas operativos de uso común - Elaboración de manual de instalación - Elaboración de manual de uso
-UF1288-Desarrollo de componentes software para servicios de comnicaciones Solicitar unidad
Capacidades y criterios:
  1. C1: Implementar servicios de comunicaciones entre sistemas aplicando las técnicas y estándares de desarrollo de elementos software, de acuerdo a unas especificaciones técnicas y funcionales dadas.
    1. CE 1.1 Clasificar las arquitecturas de servicios de comunicaciones para distinguir servicios prestados en entornos cliente/servidor de entornos entre iguales (punto a punto).
    2. CE 1.2 Describir los protocolos y puertos utilizados para la comunicación entre sistemas, teniendo en cuenta el soporte que ofrecen a los servicios de comunicaciones.
    3. CE 1.3 Identificar las principales API?s (Aplication Program Interface) y librerías y su uso para el desarrollo mediante programación estructurada.
    4. CE 1.4 Realizar la codificación del componente utilizando herramientas de programación y depuración adecuadas para optimizar la fase de desarrollo según unas especificaciones técnicas dadas.
    5. CE 1.5 Someter al componente a baterías de pruebas en réplicas de los posibles escenarios de su implantación posterior, para verificar la ausencia de conflictos y su integración con el resto de componentes del sistema, según unos criterios de calidad y seguridad dados.
    6. CE 1.6 Clasificar los estándares definidos para el desarrollo de servicios de comunicaciones entre sistemas según diferentes criterios: organizaciones de estandarización, tipos de servicios y protocolos soportados, entre otros.
    7. CE 1.7 Enumerar los principales problemas de seguridad en el ámbito de las comunicaciones y describir las estrategias a aplicar, para el desarrollo de componentes que implementen servicios seguros según estándares y especificaciones dadas.
    8. CE 1.8 En varios supuestos prácticos donde se van a desarrollar componentes para el establecimiento de servicios de comunicaciones entre sistemas, dadas unas especificaciones técnicas: - Seleccionar la herramienta adecuada para el desarrollo de los componentes de comunicaciones. - Diseñar el componente utilizando técnicas de desarrollo estructurado y los estándares definidos. - Codificar el elemento software utilizando la herramienta seleccionada, aplicando el diseño previamente obtenido y utilizando lenguajes estructurados. - Depurar y probar el componente garantizando su óptimo funcionamiento. - Diseñar baterías de posibles ataques contra el servicio y probarlas para detectar posibles vulnerabilidades. - Implantar los componentes para verificar el servicio de comunicaciones documentando los resultados e incidencias detectados. - Documentar el código desarrollado, las pruebas realizadas y el resultado de los procesos de implantación de los componentes.
Contenidos:
  1. Programación concurrente
    1. Programación de procesos e hilos de ejecución: - Gestión de procesos - Hilos y sincronización
    2. Programación de eventos asíncronos: - Señales - Temporizadores
    3. Mecanismos de comunicación entre procesos: - Tuberías (pipes) - Semáforos - Compartición de memoria - Mensajes
    4. Sincronización: - Funciones de sincronización entre hilos - Problemas de sincronización. Bloqueos (Deadlocks)
    5. Acceso a dispositivos: - Funciones de lectura y escritura - Puertos de entrada y salida
  1. Fundamentos de comunicaciones
    1. Modelos de programación en red: - El modelo cliente/servidor - El modelo de objetos distribuidos - Modelos basados en mensajes. Introducción a los Servicios web
    2. El nivel físico: - Dispositivos físicos - Protocolos de nivel físico
    3. El nivel de enlace: - Redes Ethernet - Direcciones físicas
    4. El nivel de transporte: - El protocolo TCP/IP - Esquemas de direccionamiento - El nivel de transporte. Protocolos TCP y UDP. Otros protocolos de uso común. - Puertos - Servicios de red básicos
  1. Programación de servicios de comunicaciones
    1. Aplicaciones y utilidades de comunicaciones. Estándares de comunicaciones: - Organismos de estandarización de comunicaciones - Comunicaciones en sistemas operativos de uso común - Tipos de servicios de comunicaciones - Protocolos de comunicaciones de uso común - Estándares de comunicaciones inalámbricas
    2. Librerías de comunicaciones de uso común: - APIs para entornos Windows - APIs para entornos Unix
    3. Programación de componentes de comunicaciones: - Programación de sockets: * Funciones básicas * Ejemplos de utilización. Sockets TCP y UDP * Programación cliente/servidor mediante sockets - Programación de manejadores de protocolos
    4. Técnicas de depuración de servicios de comunicaciones: - Directrices para el diseño de pruebas - Exploración de vulnerabilidades y puertos - Revisión de logs - Otras técnicas de depuración - Herramientas de prueba y depuración de servicios de comunicaciones
    5. Rendimiento en las comunicaciones: - Calidad de servicio IP - Control del ancho de banda - Herramientas de monitorización de redes
  1. Seguridad en las comunicaciones
    1. Principios de seguridad en las comunicaciones: - Mecanismos de seguridad - Principales vulnerabilidades y amenazas
    2. Herramientas para la gestión de la seguridad en red. Scanners
    3. Seguridad IP
    4. Seguridad en el nivel de aplicación. El protocolo SSL
    5. Seguridad en redes inalámbricas
-MF0964_3-Desarrollo de elementos software para gestión de sistemas Solicitar módulo
Nivel: 3 Tipo: formativo Nº Horas: 210 h
Contenidos:
-UF1286-Desarrollo y optimización de componentes software para tareas administrativas de sistemas Solicitar unidad
Capacidades y criterios:
  1. C1: Analizar las especificaciones técnicas proporcionadas para el desarrollo a realizar, comprobando su validez y optimización.
    1. CE 1.1 Clasificar las principales arquitecturas de sistemas operativos (monolítico, modular, microkernel, sistemas distribuidos) y sus características, para identificar las necesidades de gestión y administración de dichos sistemas según especificaciones técnicas.
    2. CE 1.2 Explicar los apartados de un análisis de requisitos, detallando los diagramas básicos utilizados para la especificación funcional y de datos según metodologías y estándares de diseño.
    3. CE 1.3 Analizar las especificaciones técnicas del servicio o herramienta de gestión que se desea implementar, para identificar los recursos requeridos del componente según las especificaciones funcionales dadas.
    4. CE 1.4 Realizar los diagramas previos a la fase de desarrollo siguiendo las especificaciones técnicas y criterios de calidad especificados.
    5. CE 1.5 En un supuesto práctico, para interpretar un análisis de requisitos dado para el desarrollo de un elemento software, teniendo en cuenta las necesidades de administración de los recursos del sistema informático: - Definir los módulos software a realizar a partir de las especificaciones técnicas y catálogo de requisitos. - Establecer las relaciones entre módulos determinando entradas, salidas y flujos de datos según el diseño funcional y las especificaciones del sistema. - Determinar las estructuras necesarias para representar la información especificada en los requisitos. - Crear las estructuras necesarias para realizar el seguimiento de requisitos durante la codificación del elemento software según unos criterios de calidad especificados.
  2. C2: Desarrollar elementos software destinados a la gestión de los recursos del sistema, mediante herramientas y lenguajes de programación de sistemas.
    1. CE 2.1 Enumerar las herramientas y lenguajes estructurados, orientados al desarrollo de programas para la gestión de recursos del sistema, detallando sus características.
    2. CE 2.2 Describir las técnicas de funcionamiento y principios de los sistemas de memoria, detallando su organización en jerarquías, para desarrollar elementos software que las utilicen según las especificaciones funcionales aportadas.
    3. CE 2.3 Clasificar las arquitecturas de entrada/salida, de buses y de microprocesadores en sistemas, explicando las técnicas y procesos funcionales utilizados para el desarrollo de los elementos software, según unas especificaciones funcionales dadas.
    4. CE 2.4 Distinguir las funciones de las librerías del sistema para la elaboración de nuevos componentes software, reutilizando el código ya desarrollado e implementando nuevos elementos en dichas librerías u obteniendo componentes aislados, según unos criterios de optimización y calidad especificados.
    5. CE 2.5 Describir los tipos de pruebas, tanto funcionales como estructurales, y los procesos de depuración a los que debe ser sometido un componente desarrollado y las herramientas utilizadas, para verificar su funcionalidad e integración con el resto de componentes del sistema, según unos criterios de calidad especificados.
    6. CE 2.6 Clasificar las herramientas utilizadas en las fases de desarrollo: generación del código, creación de los módulos ejecutables, control de versiones, depuración y pruebas, documentación y empaquetado para su distribución para optimizar la generación y asegurar la calidad de los productos del desarrollo, según unos criterios de seguridad y calidad especificados.
    7. CE 2.7 En varios supuestos prácticos para desarrollar elementos software para la gestión de los recursos del sistema, dadas unas especificaciones técnicas: - Diseñar los algoritmos asociados al elemento software utilizando técnicas de desarrollo estructurado. - Codificar los módulos software a partir de los algoritmos diseñados utilizando herramientas y lenguajes estructurados. - Codificar estructuras de datos utilizando las funcionalidades proporcionadas por el lenguaje estructurado. - Utilizar los recursos y librerías disponibles en las herramientas de desarrollo para realizar la codificación de los algoritmos. - Diseñar y codificar los manejadores de errores necesarios para garantizar el óptimo funcionamiento del módulo software. - Diseñar y codificar componentes que permitan el acceso concurrente a los recursos del sistema. - Depurar los módulos desarrollados utilizando las herramientas disponibles. - Diseñar y aplicar baterías de pruebas sobre los módulos desarrollados para comprobar su correcto funcionamiento y documentar los resultados obtenidos. - Documentar los módulos desarrollados para facilitar su revisión y futuras modificaciones y ampliaciones. - Realizar la implantación de los módulos documentando el proceso y las incidencias detectadas.
    8. CE 2.8 Interpretar la documentación técnica asociada a las herramientas y lenguajes de programación, incluso si está editada en la lengua extranjera de uso más frecuente en el sector, utilizándola de ayuda en el desarrollo.
Contenidos:
  1. Descripción de los servicios, estructura y administración de Sistemas Operativos.
    1. Definición y conceptos básicos sobre Sistemas Operativos: - Descripción de los servicios básicos ofrecidos por un Sistema Operativo - Gestión de memoria. Memoria virtual - Ejecución de programas y gestión de procesos - Gestión del almacenamiento. Sistemas de Archivos - Gestión de dispositivos de entrada/salida - Gestión de red - Gestión de errores - Gestión de la seguridad - Auditoría (logs del sistema) - Procesos de arranque (boot) y finalización del sistema (shutdown)
    2. Características estructurales de los Sistemas Operativos: - Sistemas monolíticos - Microkernels - Sistemas modulares y por capas - Máquinas virtuales - Sistemas distribuidos
    3. Herramientas administrativas de uso común en Sistemas Operativos: - Interfaces de usuario gráficos - Intérpretes de comandos
  1. Programación de sistemas operativos. Lenguajes y librerías de uso común.
    1. Las llamadas al sistema (System Calls): - Definición - Uso directo y mediante Application Programming Interfaces (APIs) - Principales tipos de llamadas al sistema: * Control de procesos * Gestión de ficheros * Gestión de dispositivos * Información del sistema * Comunicaciones - Descripción y uso de las APIs estándar de uso común para llamadas a sistema: * Win32 API (Sistemas Windows) * POSIX API (Sistemas Unix, Linux, Mac) * Java API (Multiplataforma)
    2. Programas de utilidades y comandos del sistema: - Principales tipos: * Operaciones con ficheros y directorios * Funciones de estado Edición y manipulación de ficheros * Soporte para lenguajes de programación (compiladores, enlazadores, ensambladores, intérpretes, etc.) * Ejecución de programas * Comunicaciones, mensajería, intercambio remoto de archivos, etc. - Uso de utilidades y comandos mediante lenguajes de script de uso común * Windows scripting * Linux/Unix scripting
  1. El ciclo de vida del software de gestión de sistemas.
    1. Modelos del ciclo de vida del software. - En cascada (waterfall) - Iterativo - Incremental - En V - Basado en componentes (CBSE) - Desarrollo rápido (RAD) - Ventajas e inconvenientes. Pautas para la selección de la metodología más adecuada.
    2. Descripción de las fases en el ciclo de vida del software: - Análisis y especificación de requisitos * Tipos de requisitos : funcionales/ no funcionales, de usuario, de interfaz, de seguridad y de rendimiento * Modelos para el análisis de requisitos * Documentación de requisitos * Validación de requisitos * Gestión de requisitos - Diseño: * Modelos para el diseño de sistemas : contexto y arquitectura, procesos, datos, objetos, interfaces de usuario ,componentes y despliegues * Diagramas de diseño: diagramas de entidad-relación, diagramas de flujo, diagramas de contexto y UML. Diagramas UML de uso común en diseño de sistemas * Documentación: herramientas de generación de documentación y documentación el código - Implementación. Conceptos generales de desarrollo de software: * Principios básicos del desarrollo de software * Técnicas de desarrollo de software : basadas en prototipos, basadas en componentes, métodos de desarrollo rápido y otras técnicas de desarrollo - Validación, verificación y pruebas: * Validación y verificación de sistemas: planificación, métodos formales de verificación y métodos automatizados de análisis * Pruebas de software: tipos, diseño de pruebas, ámbito de aplicación, automatización de pruebas, herramientas y estándares sobre pruebas de software.
    3. Calidad del software: - Principios de calidad del software - Métricas y calidad del software: * Concepto de métrica y su importancia en la medición de la calidad * Principales métricas en las fases del ciclo de vida software - Estándares para la descripción de los factores de Calidad: * ISO-9126 * Otros estándares. Comparativa
  1. Desarrollo del software de gestión de sistemas
    1. Análisis de especificaciones para el desarrollo de software de gestión de sistemas: - Identificación de los componentes necesarios según las especificaciones - Análisis de los componentes reutilizables - Análisis de la integración de los componentes en la arquitectura del sistema - Identificación de los modelos funcionales y de datos de los componentes
    2. Técnicas de programación presentes en lenguajes de uso común aplicables al desarrollo de software de gestión de sistemas: - Programación estructurada: * Tipos primitivos y estructurados * Variables. Ámbito de utilización * Operadores aritméticos y lógicos * Estructuras de control. Bucles, condicionales y selectores * Funciones y procedimientos. Parámetros por valor y referencia. * Recursividad * Programación de elementos básicos: cadenas, fechas y ficheros. * Conversiones de tipos * Manejo de errores (excepciones) * Lenguajes estructurados de uso común - Programación orientada a objetos: * Clases y objetos * Herencia, polimorfismo y sobrecarga dinámica de métodos * Propiedades: selectores (get), modificadores (set) y referencias (let) * Lenguajes orientados a objetos de uso común
    3. Técnicas de programación de software de gestión de sistemas: - Reutilización de código. * Uso de librerías del sistema * Llamadas a utilidades y aplicaciones del sistema - Técnicas específicas aplicables a los servicios básicos del sistema: * Programación de la gestión de los procesos: multitarea, control de bloqueos(deadlock) y comunicación entre procesos * Programación de la gestión de memoria: jerarquías de memoria, paginación de memoria, segmentación de memoria, intercambio(swapping), compartición de memoria, seguridad y memoria virtual * Programación de los sistemas de archivos: acceso a archivos y directorios, atributos y mecanismos de protección * Programación de los sistemas de entrada y salida: gestión de interrupciones, acceso directo a memoria (DMA) , puertos de entrada/salida y asignación de memoria * Programación de la seguridad: control de variables, control de desbordamiento de búferes , aserciones, precondiciones y post-condiciones. - Técnicas de optimización
    4. Control de calidad del desarrollo del software de gestión de sistemas: - Métricas aplicables - Verificación de requisitos - Proceso de mejora continua
    5. Herramientas de uso común para el desarrollo de software de sistemas: - Editores orientados a lenguajes de programación - Compiladores y enlazadores - Generadores de programas - Depuradores - De prueba y validación de software - Optimizadores de código - Empaquetadores - Generadores de documentación de software - Despliegue de software: * Gestores y repositorios de paquetes. Versionado y control de dependencias * Distribución de software * Gestores de actualización de software - De control de versiones - Entornos integrados de desarrollo (IDE) de uso común: * Específicos de sistemas Windows * Específicos de sistemas Unix * Multiplataforma
-UF1287-Desarrollo de componentes software para el manejo de dispositivos (Drives) Solicitar unidad
Capacidades y criterios:
  1. C1: Utilizar las técnicas y estándares utilizadas en el desarrollo, distribución e implantación de manejadores de dispositivos (drivers), para la integración de periféricos en el sistema informático según especificaciones técnicas y funcionales dadas.
    1. CE 1.1 Interpretar la documentación técnica de las herramientas software a utilizar y del sistema operativo donde se implementará el manejador de dispositivo, incluso si está editada en la lengua extranjera de uso más frecuente en el sector, utilizándola de ayuda, para identificar las características y los parámetros para la programación del manejador de dispositivo de acuerdo al diseño suministrado.
    2. CE 1.2 Utilizar las técnicas, estándares y herramientas de programación para desarrollar el manejador de dispositivo y depurar los posibles errores en el código desarrollado, según especificaciones técnicas de las herramientas y necesidades funcionales dadas.
    3. CE 1.3 Realizar las pruebas del manejador del dispositivo elaborado en los posibles escenarios en los que puede ser implantado, para asegurar su funcionalidad y la ausencia de conflictos con el resto de los elementos del sistema según especificaciones técnicas y normativa de calidad dadas.
    4. CE 1.4 Confeccionar la documentación técnica y de usuario del manejador desarrollado según unos parámetros y una normativa dadas.
    5. CE 1.5 En un supuesto práctico para modificar un manejador de dispositivo en el que se va a realizar un cambio en su diseño, de acuerdo a unas especificaciones funcionales dadas: - Modificar el código para incorporar los cambios necesarios siguiendo los criterios de calidad especificados. - Comprobar, mediante la realización de pruebas, que la modificación ha sido incorporada con éxito y que no ha alterado la funcionalidad del resto de manejadores, en particular, y del sistema en general. - Realizar la actualización de toda la documentación que se vea afectada por el cambio propuesto. - Diseñar el manejador del dispositivo utilizando técnicas de desarrollo estructurado y los estándares adecuados para el tipo de dispositivo. - Codificar manejadores de dispositivos utilizando la herramienta seleccionada, aplicando el diseño previamente obtenido y utilizando lenguajes estructurados. - Implantar el manejador del dispositivo documentando el código generado, los resultados obtenidos y las incidencias detectados.
Contenidos:
  1. El núcleo del sistema operativo
    1. Arquitectura general del núcleo
    2. Subsistemas del núcleo: - Gestión de procesos - Gestión de memoria - Sistemas de ficheros - Control de dispositivos - Comunicaciones
    3. Aspectos de seguridad sobre el desarrollo de elementos del núcleo
    4. Consideraciones sobre compatibilidad de versiones del núcleo
  1. Programación de controladores de dispositivo
    1. Funcionamiento general de un controlador de dispositivo
    2. Principales tipos de controladores de dispositivo: - Carácter - Bloque - Paquete
    3. Técnicas básicas de programación de controladores de dispositivos - Estructuras básicas de datos de dispositivos - Gestión de errores de dispositivos - Gestión de memoria de dispositivos - Control de interrupciones - Gestión de puertos de entrada y salida - Uso de Acceso directo a memoria (DMA) y buses
    4. Técnicas de depuración y prueba: - Impresión de trazas - Monitorización de errores - Técnicas específicas de depuración de controladores en sistemas operativos de uso común: * Windows * Unix - Aplicación de estándares de calidad del software al desarrollo de controladores de dispositivos
    5. Compilación y carga de controladores de dispositivos
    6. Distribución de controladores de dispositivo
    7. Particularidades en el desarrollo de dispositivos en sistemas operativos de uso común: - Sistemas Windows - Sistemas Unix - Modos de instalación de controladores de dispositivo en sistemas operativos de uso común. Dispositivos Plug & Play: * Instalación de dispositivos en Windows * Instalación de dispositivos en Sistemas Unix
    8. Herramientas: - Entornos de desarrollo de controladores de dispositivo en sistemas operativos de uso común - Herramientas de depuración y verificación de controladores de dispositivos
    9. Documentación de manejadores de dispositivo: - Elaboración de especificaciones técnicas siguiendo directrices específicas de sistemas operativos de uso común - Elaboración de manual de instalación - Elaboración de manual de uso
-UF1288-Desarrollo de componentes software para servicios de comnicaciones Solicitar unidad
Capacidades y criterios:
  1. C1: Implementar servicios de comunicaciones entre sistemas aplicando las técnicas y estándares de desarrollo de elementos software, de acuerdo a unas especificaciones técnicas y funcionales dadas.
    1. CE 1.1 Clasificar las arquitecturas de servicios de comunicaciones para distinguir servicios prestados en entornos cliente/servidor de entornos entre iguales (punto a punto).
    2. CE 1.2 Describir los protocolos y puertos utilizados para la comunicación entre sistemas, teniendo en cuenta el soporte que ofrecen a los servicios de comunicaciones.
    3. CE 1.3 Identificar las principales API?s (Aplication Program Interface) y librerías y su uso para el desarrollo mediante programación estructurada.
    4. CE 1.4 Realizar la codificación del componente utilizando herramientas de programación y depuración adecuadas para optimizar la fase de desarrollo según unas especificaciones técnicas dadas.
    5. CE 1.5 Someter al componente a baterías de pruebas en réplicas de los posibles escenarios de su implantación posterior, para verificar la ausencia de conflictos y su integración con el resto de componentes del sistema, según unos criterios de calidad y seguridad dados.
    6. CE 1.6 Clasificar los estándares definidos para el desarrollo de servicios de comunicaciones entre sistemas según diferentes criterios: organizaciones de estandarización, tipos de servicios y protocolos soportados, entre otros.
    7. CE 1.7 Enumerar los principales problemas de seguridad en el ámbito de las comunicaciones y describir las estrategias a aplicar, para el desarrollo de componentes que implementen servicios seguros según estándares y especificaciones dadas.
    8. CE 1.8 En varios supuestos prácticos donde se van a desarrollar componentes para el establecimiento de servicios de comunicaciones entre sistemas, dadas unas especificaciones técnicas: - Seleccionar la herramienta adecuada para el desarrollo de los componentes de comunicaciones. - Diseñar el componente utilizando técnicas de desarrollo estructurado y los estándares definidos. - Codificar el elemento software utilizando la herramienta seleccionada, aplicando el diseño previamente obtenido y utilizando lenguajes estructurados. - Depurar y probar el componente garantizando su óptimo funcionamiento. - Diseñar baterías de posibles ataques contra el servicio y probarlas para detectar posibles vulnerabilidades. - Implantar los componentes para verificar el servicio de comunicaciones documentando los resultados e incidencias detectados. - Documentar el código desarrollado, las pruebas realizadas y el resultado de los procesos de implantación de los componentes.
Contenidos:
  1. Programación concurrente
    1. Programación de procesos e hilos de ejecución: - Gestión de procesos - Hilos y sincronización
    2. Programación de eventos asíncronos: - Señales - Temporizadores
    3. Mecanismos de comunicación entre procesos: - Tuberías (pipes) - Semáforos - Compartición de memoria - Mensajes
    4. Sincronización: - Funciones de sincronización entre hilos - Problemas de sincronización. Bloqueos (Deadlocks)
    5. Acceso a dispositivos: - Funciones de lectura y escritura - Puertos de entrada y salida
  1. Fundamentos de comunicaciones
    1. Modelos de programación en red: - El modelo cliente/servidor - El modelo de objetos distribuidos - Modelos basados en mensajes. Introducción a los Servicios web
    2. El nivel físico: - Dispositivos físicos - Protocolos de nivel físico
    3. El nivel de enlace: - Redes Ethernet - Direcciones físicas
    4. El nivel de transporte: - El protocolo TCP/IP - Esquemas de direccionamiento - El nivel de transporte. Protocolos TCP y UDP. Otros protocolos de uso común. - Puertos - Servicios de red básicos
  1. Programación de servicios de comunicaciones
    1. Aplicaciones y utilidades de comunicaciones. Estándares de comunicaciones: - Organismos de estandarización de comunicaciones - Comunicaciones en sistemas operativos de uso común - Tipos de servicios de comunicaciones - Protocolos de comunicaciones de uso común - Estándares de comunicaciones inalámbricas
    2. Librerías de comunicaciones de uso común: - APIs para entornos Windows - APIs para entornos Unix
    3. Programación de componentes de comunicaciones: - Programación de sockets: * Funciones básicas * Ejemplos de utilización. Sockets TCP y UDP * Programación cliente/servidor mediante sockets - Programación de manejadores de protocolos
    4. Técnicas de depuración de servicios de comunicaciones: - Directrices para el diseño de pruebas - Exploración de vulnerabilidades y puertos - Revisión de logs - Otras técnicas de depuración - Herramientas de prueba y depuración de servicios de comunicaciones
    5. Rendimiento en las comunicaciones: - Calidad de servicio IP - Control del ancho de banda - Herramientas de monitorización de redes
  1. Seguridad en las comunicaciones
    1. Principios de seguridad en las comunicaciones: - Mecanismos de seguridad - Principales vulnerabilidades y amenazas
    2. Herramientas para la gestión de la seguridad en red. Scanners
    3. Seguridad IP
    4. Seguridad en el nivel de aplicación. El protocolo SSL
    5. Seguridad en redes inalámbricas
-MF0964_3-Desarrollo de elementos software para gestión de sistemas Solicitar módulo
Nivel: 3 Tipo: formativo Nº Horas: 210 h
Contenidos:
-UF1286-Desarrollo y optimización de componentes software para tareas administrativas de sistemas Solicitar unidad
Capacidades y criterios:
  1. C1: Analizar las especificaciones técnicas proporcionadas para el desarrollo a realizar, comprobando su validez y optimización.
    1. CE 1.1 Clasificar las principales arquitecturas de sistemas operativos (monolítico, modular, microkernel, sistemas distribuidos) y sus características, para identificar las necesidades de gestión y administración de dichos sistemas según especificaciones técnicas.
    2. CE 1.2 Explicar los apartados de un análisis de requisitos, detallando los diagramas básicos utilizados para la especificación funcional y de datos según metodologías y estándares de diseño.
    3. CE 1.3 Analizar las especificaciones técnicas del servicio o herramienta de gestión que se desea implementar, para identificar los recursos requeridos del componente según las especificaciones funcionales dadas.
    4. CE 1.4 Realizar los diagramas previos a la fase de desarrollo siguiendo las especificaciones técnicas y criterios de calidad especificados.
    5. CE 1.5 En un supuesto práctico, para interpretar un análisis de requisitos dado para el desarrollo de un elemento software, teniendo en cuenta las necesidades de administración de los recursos del sistema informático: - Definir los módulos software a realizar a partir de las especificaciones técnicas y catálogo de requisitos. - Establecer las relaciones entre módulos determinando entradas, salidas y flujos de datos según el diseño funcional y las especificaciones del sistema. - Determinar las estructuras necesarias para representar la información especificada en los requisitos. - Crear las estructuras necesarias para realizar el seguimiento de requisitos durante la codificación del elemento software según unos criterios de calidad especificados.
  2. C2: Desarrollar elementos software destinados a la gestión de los recursos del sistema, mediante herramientas y lenguajes de programación de sistemas.
    1. CE 2.1 Enumerar las herramientas y lenguajes estructurados, orientados al desarrollo de programas para la gestión de recursos del sistema, detallando sus características.
    2. CE 2.2 Describir las técnicas de funcionamiento y principios de los sistemas de memoria, detallando su organización en jerarquías, para desarrollar elementos software que las utilicen según las especificaciones funcionales aportadas.
    3. CE 2.3 Clasificar las arquitecturas de entrada/salida, de buses y de microprocesadores en sistemas, explicando las técnicas y procesos funcionales utilizados para el desarrollo de los elementos software, según unas especificaciones funcionales dadas.
    4. CE 2.4 Distinguir las funciones de las librerías del sistema para la elaboración de nuevos componentes software, reutilizando el código ya desarrollado e implementando nuevos elementos en dichas librerías u obteniendo componentes aislados, según unos criterios de optimización y calidad especificados.
    5. CE 2.5 Describir los tipos de pruebas, tanto funcionales como estructurales, y los procesos de depuración a los que debe ser sometido un componente desarrollado y las herramientas utilizadas, para verificar su funcionalidad e integración con el resto de componentes del sistema, según unos criterios de calidad especificados.
    6. CE 2.6 Clasificar las herramientas utilizadas en las fases de desarrollo: generación del código, creación de los módulos ejecutables, control de versiones, depuración y pruebas, documentación y empaquetado para su distribución para optimizar la generación y asegurar la calidad de los productos del desarrollo, según unos criterios de seguridad y calidad especificados.
    7. CE 2.7 En varios supuestos prácticos para desarrollar elementos software para la gestión de los recursos del sistema, dadas unas especificaciones técnicas: - Diseñar los algoritmos asociados al elemento software utilizando técnicas de desarrollo estructurado. - Codificar los módulos software a partir de los algoritmos diseñados utilizando herramientas y lenguajes estructurados. - Codificar estructuras de datos utilizando las funcionalidades proporcionadas por el lenguaje estructurado. - Utilizar los recursos y librerías disponibles en las herramientas de desarrollo para realizar la codificación de los algoritmos. - Diseñar y codificar los manejadores de errores necesarios para garantizar el óptimo funcionamiento del módulo software. - Diseñar y codificar componentes que permitan el acceso concurrente a los recursos del sistema. - Depurar los módulos desarrollados utilizando las herramientas disponibles. - Diseñar y aplicar baterías de pruebas sobre los módulos desarrollados para comprobar su correcto funcionamiento y documentar los resultados obtenidos. - Documentar los módulos desarrollados para facilitar su revisión y futuras modificaciones y ampliaciones. - Realizar la implantación de los módulos documentando el proceso y las incidencias detectadas.
    8. CE 2.8 Interpretar la documentación técnica asociada a las herramientas y lenguajes de programación, incluso si está editada en la lengua extranjera de uso más frecuente en el sector, utilizándola de ayuda en el desarrollo.
Contenidos:
  1. Descripción de los servicios, estructura y administración de Sistemas Operativos.
    1. Definición y conceptos básicos sobre Sistemas Operativos: - Descripción de los servicios básicos ofrecidos por un Sistema Operativo - Gestión de memoria. Memoria virtual - Ejecución de programas y gestión de procesos - Gestión del almacenamiento. Sistemas de Archivos - Gestión de dispositivos de entrada/salida - Gestión de red - Gestión de errores - Gestión de la seguridad - Auditoría (logs del sistema) - Procesos de arranque (boot) y finalización del sistema (shutdown)
    2. Características estructurales de los Sistemas Operativos: - Sistemas monolíticos - Microkernels - Sistemas modulares y por capas - Máquinas virtuales - Sistemas distribuidos
    3. Herramientas administrativas de uso común en Sistemas Operativos: - Interfaces de usuario gráficos - Intérpretes de comandos
  1. Programación de sistemas operativos. Lenguajes y librerías de uso común.
    1. Las llamadas al sistema (System Calls): - Definición - Uso directo y mediante Application Programming Interfaces (APIs) - Principales tipos de llamadas al sistema: * Control de procesos * Gestión de ficheros * Gestión de dispositivos * Información del sistema * Comunicaciones - Descripción y uso de las APIs estándar de uso común para llamadas a sistema: * Win32 API (Sistemas Windows) * POSIX API (Sistemas Unix, Linux, Mac) * Java API (Multiplataforma)
    2. Programas de utilidades y comandos del sistema: - Principales tipos: * Operaciones con ficheros y directorios * Funciones de estado Edición y manipulación de ficheros * Soporte para lenguajes de programación (compiladores, enlazadores, ensambladores, intérpretes, etc.) * Ejecución de programas * Comunicaciones, mensajería, intercambio remoto de archivos, etc. - Uso de utilidades y comandos mediante lenguajes de script de uso común * Windows scripting * Linux/Unix scripting
  1. El ciclo de vida del software de gestión de sistemas.
    1. Modelos del ciclo de vida del software. - En cascada (waterfall) - Iterativo - Incremental - En V - Basado en componentes (CBSE) - Desarrollo rápido (RAD) - Ventajas e inconvenientes. Pautas para la selección de la metodología más adecuada.
    2. Descripción de las fases en el ciclo de vida del software: - Análisis y especificación de requisitos * Tipos de requisitos : funcionales/ no funcionales, de usuario, de interfaz, de seguridad y de rendimiento * Modelos para el análisis de requisitos * Documentación de requisitos * Validación de requisitos * Gestión de requisitos - Diseño: * Modelos para el diseño de sistemas : contexto y arquitectura, procesos, datos, objetos, interfaces de usuario ,componentes y despliegues * Diagramas de diseño: diagramas de entidad-relación, diagramas de flujo, diagramas de contexto y UML. Diagramas UML de uso común en diseño de sistemas * Documentación: herramientas de generación de documentación y documentación el código - Implementación. Conceptos generales de desarrollo de software: * Principios básicos del desarrollo de software * Técnicas de desarrollo de software : basadas en prototipos, basadas en componentes, métodos de desarrollo rápido y otras técnicas de desarrollo - Validación, verificación y pruebas: * Validación y verificación de sistemas: planificación, métodos formales de verificación y métodos automatizados de análisis * Pruebas de software: tipos, diseño de pruebas, ámbito de aplicación, automatización de pruebas, herramientas y estándares sobre pruebas de software.
    3. Calidad del software: - Principios de calidad del software - Métricas y calidad del software: * Concepto de métrica y su importancia en la medición de la calidad * Principales métricas en las fases del ciclo de vida software - Estándares para la descripción de los factores de Calidad: * ISO-9126 * Otros estándares. Comparativa
  1. Desarrollo del software de gestión de sistemas
    1. Análisis de especificaciones para el desarrollo de software de gestión de sistemas: - Identificación de los componentes necesarios según las especificaciones - Análisis de los componentes reutilizables - Análisis de la integración de los componentes en la arquitectura del sistema - Identificación de los modelos funcionales y de datos de los componentes
    2. Técnicas de programación presentes en lenguajes de uso común aplicables al desarrollo de software de gestión de sistemas: - Programación estructurada: * Tipos primitivos y estructurados * Variables. Ámbito de utilización * Operadores aritméticos y lógicos * Estructuras de control. Bucles, condicionales y selectores * Funciones y procedimientos. Parámetros por valor y referencia. * Recursividad * Programación de elementos básicos: cadenas, fechas y ficheros. * Conversiones de tipos * Manejo de errores (excepciones) * Lenguajes estructurados de uso común - Programación orientada a objetos: * Clases y objetos * Herencia, polimorfismo y sobrecarga dinámica de métodos * Propiedades: selectores (get), modificadores (set) y referencias (let) * Lenguajes orientados a objetos de uso común
    3. Técnicas de programación de software de gestión de sistemas: - Reutilización de código. * Uso de librerías del sistema * Llamadas a utilidades y aplicaciones del sistema - Técnicas específicas aplicables a los servicios básicos del sistema: * Programación de la gestión de los procesos: multitarea, control de bloqueos(deadlock) y comunicación entre procesos * Programación de la gestión de memoria: jerarquías de memoria, paginación de memoria, segmentación de memoria, intercambio(swapping), compartición de memoria, seguridad y memoria virtual * Programación de los sistemas de archivos: acceso a archivos y directorios, atributos y mecanismos de protección * Programación de los sistemas de entrada y salida: gestión de interrupciones, acceso directo a memoria (DMA) , puertos de entrada/salida y asignación de memoria * Programación de la seguridad: control de variables, control de desbordamiento de búferes , aserciones, precondiciones y post-condiciones. - Técnicas de optimización
    4. Control de calidad del desarrollo del software de gestión de sistemas: - Métricas aplicables - Verificación de requisitos - Proceso de mejora continua
    5. Herramientas de uso común para el desarrollo de software de sistemas: - Editores orientados a lenguajes de programación - Compiladores y enlazadores - Generadores de programas - Depuradores - De prueba y validación de software - Optimizadores de código - Empaquetadores - Generadores de documentación de software - Despliegue de software: * Gestores y repositorios de paquetes. Versionado y control de dependencias * Distribución de software * Gestores de actualización de software - De control de versiones - Entornos integrados de desarrollo (IDE) de uso común: * Específicos de sistemas Windows * Específicos de sistemas Unix * Multiplataforma
-UF1287-Desarrollo de componentes software para el manejo de dispositivos (Drives) Solicitar unidad
Capacidades y criterios:
  1. C1: Utilizar las técnicas y estándares utilizadas en el desarrollo, distribución e implantación de manejadores de dispositivos (drivers), para la integración de periféricos en el sistema informático según especificaciones técnicas y funcionales dadas.
    1. CE 1.1 Interpretar la documentación técnica de las herramientas software a utilizar y del sistema operativo donde se implementará el manejador de dispositivo, incluso si está editada en la lengua extranjera de uso más frecuente en el sector, utilizándola de ayuda, para identificar las características y los parámetros para la programación del manejador de dispositivo de acuerdo al diseño suministrado.
    2. CE 1.2 Utilizar las técnicas, estándares y herramientas de programación para desarrollar el manejador de dispositivo y depurar los posibles errores en el código desarrollado, según especificaciones técnicas de las herramientas y necesidades funcionales dadas.
    3. CE 1.3 Realizar las pruebas del manejador del dispositivo elaborado en los posibles escenarios en los que puede ser implantado, para asegurar su funcionalidad y la ausencia de conflictos con el resto de los elementos del sistema según especificaciones técnicas y normativa de calidad dadas.
    4. CE 1.4 Confeccionar la documentación técnica y de usuario del manejador desarrollado según unos parámetros y una normativa dadas.
    5. CE 1.5 En un supuesto práctico para modificar un manejador de dispositivo en el que se va a realizar un cambio en su diseño, de acuerdo a unas especificaciones funcionales dadas: - Modificar el código para incorporar los cambios necesarios siguiendo los criterios de calidad especificados. - Comprobar, mediante la realización de pruebas, que la modificación ha sido incorporada con éxito y que no ha alterado la funcionalidad del resto de manejadores, en particular, y del sistema en general. - Realizar la actualización de toda la documentación que se vea afectada por el cambio propuesto. - Diseñar el manejador del dispositivo utilizando técnicas de desarrollo estructurado y los estándares adecuados para el tipo de dispositivo. - Codificar manejadores de dispositivos utilizando la herramienta seleccionada, aplicando el diseño previamente obtenido y utilizando lenguajes estructurados. - Implantar el manejador del dispositivo documentando el código generado, los resultados obtenidos y las incidencias detectados.
Contenidos:
  1. El núcleo del sistema operativo
    1. Arquitectura general del núcleo
    2. Subsistemas del núcleo: - Gestión de procesos - Gestión de memoria - Sistemas de ficheros - Control de dispositivos - Comunicaciones
    3. Aspectos de seguridad sobre el desarrollo de elementos del núcleo
    4. Consideraciones sobre compatibilidad de versiones del núcleo
  1. Programación de controladores de dispositivo
    1. Funcionamiento general de un controlador de dispositivo
    2. Principales tipos de controladores de dispositivo: - Carácter - Bloque - Paquete
    3. Técnicas básicas de programación de controladores de dispositivos - Estructuras básicas de datos de dispositivos - Gestión de errores de dispositivos - Gestión de memoria de dispositivos - Control de interrupciones - Gestión de puertos de entrada y salida - Uso de Acceso directo a memoria (DMA) y buses
    4. Técnicas de depuración y prueba: - Impresión de trazas - Monitorización de errores - Técnicas específicas de depuración de controladores en sistemas operativos de uso común: * Windows * Unix - Aplicación de estándares de calidad del software al desarrollo de controladores de dispositivos
    5. Compilación y carga de controladores de dispositivos
    6. Distribución de controladores de dispositivo
    7. Particularidades en el desarrollo de dispositivos en sistemas operativos de uso común: - Sistemas Windows - Sistemas Unix - Modos de instalación de controladores de dispositivo en sistemas operativos de uso común. Dispositivos Plug & Play: * Instalación de dispositivos en Windows * Instalación de dispositivos en Sistemas Unix
    8. Herramientas: - Entornos de desarrollo de controladores de dispositivo en sistemas operativos de uso común - Herramientas de depuración y verificación de controladores de dispositivos
    9. Documentación de manejadores de dispositivo: - Elaboración de especificaciones técnicas siguiendo directrices específicas de sistemas operativos de uso común - Elaboración de manual de instalación - Elaboración de manual de uso
-UF1288-Desarrollo de componentes software para servicios de comnicaciones Solicitar unidad
Capacidades y criterios:
  1. C1: Implementar servicios de comunicaciones entre sistemas aplicando las técnicas y estándares de desarrollo de elementos software, de acuerdo a unas especificaciones técnicas y funcionales dadas.
    1. CE 1.1 Clasificar las arquitecturas de servicios de comunicaciones para distinguir servicios prestados en entornos cliente/servidor de entornos entre iguales (punto a punto).
    2. CE 1.2 Describir los protocolos y puertos utilizados para la comunicación entre sistemas, teniendo en cuenta el soporte que ofrecen a los servicios de comunicaciones.
    3. CE 1.3 Identificar las principales API?s (Aplication Program Interface) y librerías y su uso para el desarrollo mediante programación estructurada.
    4. CE 1.4 Realizar la codificación del componente utilizando herramientas de programación y depuración adecuadas para optimizar la fase de desarrollo según unas especificaciones técnicas dadas.
    5. CE 1.5 Someter al componente a baterías de pruebas en réplicas de los posibles escenarios de su implantación posterior, para verificar la ausencia de conflictos y su integración con el resto de componentes del sistema, según unos criterios de calidad y seguridad dados.
    6. CE 1.6 Clasificar los estándares definidos para el desarrollo de servicios de comunicaciones entre sistemas según diferentes criterios: organizaciones de estandarización, tipos de servicios y protocolos soportados, entre otros.
    7. CE 1.7 Enumerar los principales problemas de seguridad en el ámbito de las comunicaciones y describir las estrategias a aplicar, para el desarrollo de componentes que implementen servicios seguros según estándares y especificaciones dadas.
    8. CE 1.8 En varios supuestos prácticos donde se van a desarrollar componentes para el establecimiento de servicios de comunicaciones entre sistemas, dadas unas especificaciones técnicas: - Seleccionar la herramienta adecuada para el desarrollo de los componentes de comunicaciones. - Diseñar el componente utilizando técnicas de desarrollo estructurado y los estándares definidos. - Codificar el elemento software utilizando la herramienta seleccionada, aplicando el diseño previamente obtenido y utilizando lenguajes estructurados. - Depurar y probar el componente garantizando su óptimo funcionamiento. - Diseñar baterías de posibles ataques contra el servicio y probarlas para detectar posibles vulnerabilidades. - Implantar los componentes para verificar el servicio de comunicaciones documentando los resultados e incidencias detectados. - Documentar el código desarrollado, las pruebas realizadas y el resultado de los procesos de implantación de los componentes.
Contenidos:
  1. Programación concurrente
    1. Programación de procesos e hilos de ejecución: - Gestión de procesos - Hilos y sincronización
    2. Programación de eventos asíncronos: - Señales - Temporizadores
    3. Mecanismos de comunicación entre procesos: - Tuberías (pipes) - Semáforos - Compartición de memoria - Mensajes
    4. Sincronización: - Funciones de sincronización entre hilos - Problemas de sincronización. Bloqueos (Deadlocks)
    5. Acceso a dispositivos: - Funciones de lectura y escritura - Puertos de entrada y salida
  1. Fundamentos de comunicaciones
    1. Modelos de programación en red: - El modelo cliente/servidor - El modelo de objetos distribuidos - Modelos basados en mensajes. Introducción a los Servicios web
    2. El nivel físico: - Dispositivos físicos - Protocolos de nivel físico
    3. El nivel de enlace: - Redes Ethernet - Direcciones físicas
    4. El nivel de transporte: - El protocolo TCP/IP - Esquemas de direccionamiento - El nivel de transporte. Protocolos TCP y UDP. Otros protocolos de uso común. - Puertos - Servicios de red básicos
  1. Programación de servicios de comunicaciones
    1. Aplicaciones y utilidades de comunicaciones. Estándares de comunicaciones: - Organismos de estandarización de comunicaciones - Comunicaciones en sistemas operativos de uso común - Tipos de servicios de comunicaciones - Protocolos de comunicaciones de uso común - Estándares de comunicaciones inalámbricas
    2. Librerías de comunicaciones de uso común: - APIs para entornos Windows - APIs para entornos Unix
    3. Programación de componentes de comunicaciones: - Programación de sockets: * Funciones básicas * Ejemplos de utilización. Sockets TCP y UDP * Programación cliente/servidor mediante sockets - Programación de manejadores de protocolos
    4. Técnicas de depuración de servicios de comunicaciones: - Directrices para el diseño de pruebas - Exploración de vulnerabilidades y puertos - Revisión de logs - Otras técnicas de depuración - Herramientas de prueba y depuración de servicios de comunicaciones
    5. Rendimiento en las comunicaciones: - Calidad de servicio IP - Control del ancho de banda - Herramientas de monitorización de redes
  1. Seguridad en las comunicaciones
    1. Principios de seguridad en las comunicaciones: - Mecanismos de seguridad - Principales vulnerabilidades y amenazas
    2. Herramientas para la gestión de la seguridad en red. Scanners
    3. Seguridad IP
    4. Seguridad en el nivel de aplicación. El protocolo SSL
    5. Seguridad en redes inalámbricas
-MF0964_3-Desarrollo de elementos software para gestión de sistemas Solicitar módulo
Nivel: 3 Tipo: formativo Nº Horas: 210 h
Contenidos:
-UF1286-Desarrollo y optimización de componentes software para tareas administrativas de sistemas Solicitar unidad
Capacidades y criterios:
  1. C1: Analizar las especificaciones técnicas proporcionadas para el desarrollo a realizar, comprobando su validez y optimización.
    1. CE 1.1 Clasificar las principales arquitecturas de sistemas operativos (monolítico, modular, microkernel, sistemas distribuidos) y sus características, para identificar las necesidades de gestión y administración de dichos sistemas según especificaciones técnicas.
    2. CE 1.2 Explicar los apartados de un análisis de requisitos, detallando los diagramas básicos utilizados para la especificación funcional y de datos según metodologías y estándares de diseño.
    3. CE 1.3 Analizar las especificaciones técnicas del servicio o herramienta de gestión que se desea implementar, para identificar los recursos requeridos del componente según las especificaciones funcionales dadas.
    4. CE 1.4 Realizar los diagramas previos a la fase de desarrollo siguiendo las especificaciones técnicas y criterios de calidad especificados.
    5. CE 1.5 En un supuesto práctico, para interpretar un análisis de requisitos dado para el desarrollo de un elemento software, teniendo en cuenta las necesidades de administración de los recursos del sistema informático: - Definir los módulos software a realizar a partir de las especificaciones técnicas y catálogo de requisitos. - Establecer las relaciones entre módulos determinando entradas, salidas y flujos de datos según el diseño funcional y las especificaciones del sistema. - Determinar las estructuras necesarias para representar la información especificada en los requisitos. - Crear las estructuras necesarias para realizar el seguimiento de requisitos durante la codificación del elemento software según unos criterios de calidad especificados.
  2. C2: Desarrollar elementos software destinados a la gestión de los recursos del sistema, mediante herramientas y lenguajes de programación de sistemas.
    1. CE 2.1 Enumerar las herramientas y lenguajes estructurados, orientados al desarrollo de programas para la gestión de recursos del sistema, detallando sus características.
    2. CE 2.2 Describir las técnicas de funcionamiento y principios de los sistemas de memoria, detallando su organización en jerarquías, para desarrollar elementos software que las utilicen según las especificaciones funcionales aportadas.
    3. CE 2.3 Clasificar las arquitecturas de entrada/salida, de buses y de microprocesadores en sistemas, explicando las técnicas y procesos funcionales utilizados para el desarrollo de los elementos software, según unas especificaciones funcionales dadas.
    4. CE 2.4 Distinguir las funciones de las librerías del sistema para la elaboración de nuevos componentes software, reutilizando el código ya desarrollado e implementando nuevos elementos en dichas librerías u obteniendo componentes aislados, según unos criterios de optimización y calidad especificados.
    5. CE 2.5 Describir los tipos de pruebas, tanto funcionales como estructurales, y los procesos de depuración a los que debe ser sometido un componente desarrollado y las herramientas utilizadas, para verificar su funcionalidad e integración con el resto de componentes del sistema, según unos criterios de calidad especificados.
    6. CE 2.6 Clasificar las herramientas utilizadas en las fases de desarrollo: generación del código, creación de los módulos ejecutables, control de versiones, depuración y pruebas, documentación y empaquetado para su distribución para optimizar la generación y asegurar la calidad de los productos del desarrollo, según unos criterios de seguridad y calidad especificados.
    7. CE 2.7 En varios supuestos prácticos para desarrollar elementos software para la gestión de los recursos del sistema, dadas unas especificaciones técnicas: - Diseñar los algoritmos asociados al elemento software utilizando técnicas de desarrollo estructurado. - Codificar los módulos software a partir de los algoritmos diseñados utilizando herramientas y lenguajes estructurados. - Codificar estructuras de datos utilizando las funcionalidades proporcionadas por el lenguaje estructurado. - Utilizar los recursos y librerías disponibles en las herramientas de desarrollo para realizar la codificación de los algoritmos. - Diseñar y codificar los manejadores de errores necesarios para garantizar el óptimo funcionamiento del módulo software. - Diseñar y codificar componentes que permitan el acceso concurrente a los recursos del sistema. - Depurar los módulos desarrollados utilizando las herramientas disponibles. - Diseñar y aplicar baterías de pruebas sobre los módulos desarrollados para comprobar su correcto funcionamiento y documentar los resultados obtenidos. - Documentar los módulos desarrollados para facilitar su revisión y futuras modificaciones y ampliaciones. - Realizar la implantación de los módulos documentando el proceso y las incidencias detectadas.
    8. CE 2.8 Interpretar la documentación técnica asociada a las herramientas y lenguajes de programación, incluso si está editada en la lengua extranjera de uso más frecuente en el sector, utilizándola de ayuda en el desarrollo.
Contenidos:
  1. Descripción de los servicios, estructura y administración de Sistemas Operativos.
    1. Definición y conceptos básicos sobre Sistemas Operativos: - Descripción de los servicios básicos ofrecidos por un Sistema Operativo - Gestión de memoria. Memoria virtual - Ejecución de programas y gestión de procesos - Gestión del almacenamiento. Sistemas de Archivos - Gestión de dispositivos de entrada/salida - Gestión de red - Gestión de errores - Gestión de la seguridad - Auditoría (logs del sistema) - Procesos de arranque (boot) y finalización del sistema (shutdown)
    2. Características estructurales de los Sistemas Operativos: - Sistemas monolíticos - Microkernels - Sistemas modulares y por capas - Máquinas virtuales - Sistemas distribuidos
    3. Herramientas administrativas de uso común en Sistemas Operativos: - Interfaces de usuario gráficos - Intérpretes de comandos
  1. Programación de sistemas operativos. Lenguajes y librerías de uso común.
    1. Las llamadas al sistema (System Calls): - Definición - Uso directo y mediante Application Programming Interfaces (APIs) - Principales tipos de llamadas al sistema: * Control de procesos * Gestión de ficheros * Gestión de dispositivos * Información del sistema * Comunicaciones - Descripción y uso de las APIs estándar de uso común para llamadas a sistema: * Win32 API (Sistemas Windows) * POSIX API (Sistemas Unix, Linux, Mac) * Java API (Multiplataforma)
    2. Programas de utilidades y comandos del sistema: - Principales tipos: * Operaciones con ficheros y directorios * Funciones de estado Edición y manipulación de ficheros * Soporte para lenguajes de programación (compiladores, enlazadores, ensambladores, intérpretes, etc.) * Ejecución de programas * Comunicaciones, mensajería, intercambio remoto de archivos, etc. - Uso de utilidades y comandos mediante lenguajes de script de uso común * Windows scripting * Linux/Unix scripting
  1. El ciclo de vida del software de gestión de sistemas.
    1. Modelos del ciclo de vida del software. - En cascada (waterfall) - Iterativo - Incremental - En V - Basado en componentes (CBSE) - Desarrollo rápido (RAD) - Ventajas e inconvenientes. Pautas para la selección de la metodología más adecuada.
    2. Descripción de las fases en el ciclo de vida del software: - Análisis y especificación de requisitos * Tipos de requisitos : funcionales/ no funcionales, de usuario, de interfaz, de seguridad y de rendimiento * Modelos para el análisis de requisitos * Documentación de requisitos * Validación de requisitos * Gestión de requisitos - Diseño: * Modelos para el diseño de sistemas : contexto y arquitectura, procesos, datos, objetos, interfaces de usuario ,componentes y despliegues * Diagramas de diseño: diagramas de entidad-relación, diagramas de flujo, diagramas de contexto y UML. Diagramas UML de uso común en diseño de sistemas * Documentación: herramientas de generación de documentación y documentación el código - Implementación. Conceptos generales de desarrollo de software: * Principios básicos del desarrollo de software * Técnicas de desarrollo de software : basadas en prototipos, basadas en componentes, métodos de desarrollo rápido y otras técnicas de desarrollo - Validación, verificación y pruebas: * Validación y verificación de sistemas: planificación, métodos formales de verificación y métodos automatizados de análisis * Pruebas de software: tipos, diseño de pruebas, ámbito de aplicación, automatización de pruebas, herramientas y estándares sobre pruebas de software.
    3. Calidad del software: - Principios de calidad del software - Métricas y calidad del software: * Concepto de métrica y su importancia en la medición de la calidad * Principales métricas en las fases del ciclo de vida software - Estándares para la descripción de los factores de Calidad: * ISO-9126 * Otros estándares. Comparativa
  1. Desarrollo del software de gestión de sistemas
    1. Análisis de especificaciones para el desarrollo de software de gestión de sistemas: - Identificación de los componentes necesarios según las especificaciones - Análisis de los componentes reutilizables - Análisis de la integración de los componentes en la arquitectura del sistema - Identificación de los modelos funcionales y de datos de los componentes
    2. Técnicas de programación presentes en lenguajes de uso común aplicables al desarrollo de software de gestión de sistemas: - Programación estructurada: * Tipos primitivos y estructurados * Variables. Ámbito de utilización * Operadores aritméticos y lógicos * Estructuras de control. Bucles, condicionales y selectores * Funciones y procedimientos. Parámetros por valor y referencia. * Recursividad * Programación de elementos básicos: cadenas, fechas y ficheros. * Conversiones de tipos * Manejo de errores (excepciones) * Lenguajes estructurados de uso común - Programación orientada a objetos: * Clases y objetos * Herencia, polimorfismo y sobrecarga dinámica de métodos * Propiedades: selectores (get), modificadores (set) y referencias (let) * Lenguajes orientados a objetos de uso común
    3. Técnicas de programación de software de gestión de sistemas: - Reutilización de código. * Uso de librerías del sistema * Llamadas a utilidades y aplicaciones del sistema - Técnicas específicas aplicables a los servicios básicos del sistema: * Programación de la gestión de los procesos: multitarea, control de bloqueos(deadlock) y comunicación entre procesos * Programación de la gestión de memoria: jerarquías de memoria, paginación de memoria, segmentación de memoria, intercambio(swapping), compartición de memoria, seguridad y memoria virtual * Programación de los sistemas de archivos: acceso a archivos y directorios, atributos y mecanismos de protección * Programación de los sistemas de entrada y salida: gestión de interrupciones, acceso directo a memoria (DMA) , puertos de entrada/salida y asignación de memoria * Programación de la seguridad: control de variables, control de desbordamiento de búferes , aserciones, precondiciones y post-condiciones. - Técnicas de optimización
    4. Control de calidad del desarrollo del software de gestión de sistemas: - Métricas aplicables - Verificación de requisitos - Proceso de mejora continua
    5. Herramientas de uso común para el desarrollo de software de sistemas: - Editores orientados a lenguajes de programación - Compiladores y enlazadores - Generadores de programas - Depuradores - De prueba y validación de software - Optimizadores de código - Empaquetadores - Generadores de documentación de software - Despliegue de software: * Gestores y repositorios de paquetes. Versionado y control de dependencias * Distribución de software * Gestores de actualización de software - De control de versiones - Entornos integrados de desarrollo (IDE) de uso común: * Específicos de sistemas Windows * Específicos de sistemas Unix * Multiplataforma
-UF1287-Desarrollo de componentes software para el manejo de dispositivos (Drives) Solicitar unidad
Capacidades y criterios:
  1. C1: Utilizar las técnicas y estándares utilizadas en el desarrollo, distribución e implantación de manejadores de dispositivos (drivers), para la integración de periféricos en el sistema informático según especificaciones técnicas y funcionales dadas.
    1. CE 1.1 Interpretar la documentación técnica de las herramientas software a utilizar y del sistema operativo donde se implementará el manejador de dispositivo, incluso si está editada en la lengua extranjera de uso más frecuente en el sector, utilizándola de ayuda, para identificar las características y los parámetros para la programación del manejador de dispositivo de acuerdo al diseño suministrado.
    2. CE 1.2 Utilizar las técnicas, estándares y herramientas de programación para desarrollar el manejador de dispositivo y depurar los posibles errores en el código desarrollado, según especificaciones técnicas de las herramientas y necesidades funcionales dadas.
    3. CE 1.3 Realizar las pruebas del manejador del dispositivo elaborado en los posibles escenarios en los que puede ser implantado, para asegurar su funcionalidad y la ausencia de conflictos con el resto de los elementos del sistema según especificaciones técnicas y normativa de calidad dadas.
    4. CE 1.4 Confeccionar la documentación técnica y de usuario del manejador desarrollado según unos parámetros y una normativa dadas.
    5. CE 1.5 En un supuesto práctico para modificar un manejador de dispositivo en el que se va a realizar un cambio en su diseño, de acuerdo a unas especificaciones funcionales dadas: - Modificar el código para incorporar los cambios necesarios siguiendo los criterios de calidad especificados. - Comprobar, mediante la realización de pruebas, que la modificación ha sido incorporada con éxito y que no ha alterado la funcionalidad del resto de manejadores, en particular, y del sistema en general. - Realizar la actualización de toda la documentación que se vea afectada por el cambio propuesto. - Diseñar el manejador del dispositivo utilizando técnicas de desarrollo estructurado y los estándares adecuados para el tipo de dispositivo. - Codificar manejadores de dispositivos utilizando la herramienta seleccionada, aplicando el diseño previamente obtenido y utilizando lenguajes estructurados. - Implantar el manejador del dispositivo documentando el código generado, los resultados obtenidos y las incidencias detectados.
Contenidos:
  1. El núcleo del sistema operativo
    1. Arquitectura general del núcleo
    2. Subsistemas del núcleo: - Gestión de procesos - Gestión de memoria - Sistemas de ficheros - Control de dispositivos - Comunicaciones
    3. Aspectos de seguridad sobre el desarrollo de elementos del núcleo
    4. Consideraciones sobre compatibilidad de versiones del núcleo
  1. Programación de controladores de dispositivo
    1. Funcionamiento general de un controlador de dispositivo
    2. Principales tipos de controladores de dispositivo: - Carácter - Bloque - Paquete
    3. Técnicas básicas de programación de controladores de dispositivos - Estructuras básicas de datos de dispositivos - Gestión de errores de dispositivos - Gestión de memoria de dispositivos - Control de interrupciones - Gestión de puertos de entrada y salida - Uso de Acceso directo a memoria (DMA) y buses
    4. Técnicas de depuración y prueba: - Impresión de trazas - Monitorización de errores - Técnicas específicas de depuración de controladores en sistemas operativos de uso común: * Windows * Unix - Aplicación de estándares de calidad del software al desarrollo de controladores de dispositivos
    5. Compilación y carga de controladores de dispositivos
    6. Distribución de controladores de dispositivo
    7. Particularidades en el desarrollo de dispositivos en sistemas operativos de uso común: - Sistemas Windows - Sistemas Unix - Modos de instalación de controladores de dispositivo en sistemas operativos de uso común. Dispositivos Plug & Play: * Instalación de dispositivos en Windows * Instalación de dispositivos en Sistemas Unix
    8. Herramientas: - Entornos de desarrollo de controladores de dispositivo en sistemas operativos de uso común - Herramientas de depuración y verificación de controladores de dispositivos
    9. Documentación de manejadores de dispositivo: - Elaboración de especificaciones técnicas siguiendo directrices específicas de sistemas operativos de uso común - Elaboración de manual de instalación - Elaboración de manual de uso
-UF1288-Desarrollo de componentes software para servicios de comnicaciones Solicitar unidad
Capacidades y criterios:
  1. C1: Implementar servicios de comunicaciones entre sistemas aplicando las técnicas y estándares de desarrollo de elementos software, de acuerdo a unas especificaciones técnicas y funcionales dadas.
    1. CE 1.1 Clasificar las arquitecturas de servicios de comunicaciones para distinguir servicios prestados en entornos cliente/servidor de entornos entre iguales (punto a punto).
    2. CE 1.2 Describir los protocolos y puertos utilizados para la comunicación entre sistemas, teniendo en cuenta el soporte que ofrecen a los servicios de comunicaciones.
    3. CE 1.3 Identificar las principales API?s (Aplication Program Interface) y librerías y su uso para el desarrollo mediante programación estructurada.
    4. CE 1.4 Realizar la codificación del componente utilizando herramientas de programación y depuración adecuadas para optimizar la fase de desarrollo según unas especificaciones técnicas dadas.
    5. CE 1.5 Someter al componente a baterías de pruebas en réplicas de los posibles escenarios de su implantación posterior, para verificar la ausencia de conflictos y su integración con el resto de componentes del sistema, según unos criterios de calidad y seguridad dados.
    6. CE 1.6 Clasificar los estándares definidos para el desarrollo de servicios de comunicaciones entre sistemas según diferentes criterios: organizaciones de estandarización, tipos de servicios y protocolos soportados, entre otros.
    7. CE 1.7 Enumerar los principales problemas de seguridad en el ámbito de las comunicaciones y describir las estrategias a aplicar, para el desarrollo de componentes que implementen servicios seguros según estándares y especificaciones dadas.
    8. CE 1.8 En varios supuestos prácticos donde se van a desarrollar componentes para el establecimiento de servicios de comunicaciones entre sistemas, dadas unas especificaciones técnicas: - Seleccionar la herramienta adecuada para el desarrollo de los componentes de comunicaciones. - Diseñar el componente utilizando técnicas de desarrollo estructurado y los estándares definidos. - Codificar el elemento software utilizando la herramienta seleccionada, aplicando el diseño previamente obtenido y utilizando lenguajes estructurados. - Depurar y probar el componente garantizando su óptimo funcionamiento. - Diseñar baterías de posibles ataques contra el servicio y probarlas para detectar posibles vulnerabilidades. - Implantar los componentes para verificar el servicio de comunicaciones documentando los resultados e incidencias detectados. - Documentar el código desarrollado, las pruebas realizadas y el resultado de los procesos de implantación de los componentes.
Contenidos:
  1. Programación concurrente
    1. Programación de procesos e hilos de ejecución: - Gestión de procesos - Hilos y sincronización
    2. Programación de eventos asíncronos: - Señales - Temporizadores
    3. Mecanismos de comunicación entre procesos: - Tuberías (pipes) - Semáforos - Compartición de memoria - Mensajes
    4. Sincronización: - Funciones de sincronización entre hilos - Problemas de sincronización. Bloqueos (Deadlocks)
    5. Acceso a dispositivos: - Funciones de lectura y escritura - Puertos de entrada y salida
  1. Fundamentos de comunicaciones
    1. Modelos de programación en red: - El modelo cliente/servidor - El modelo de objetos distribuidos - Modelos basados en mensajes. Introducción a los Servicios web
    2. El nivel físico: - Dispositivos físicos - Protocolos de nivel físico
    3. El nivel de enlace: - Redes Ethernet - Direcciones físicas
    4. El nivel de transporte: - El protocolo TCP/IP - Esquemas de direccionamiento - El nivel de transporte. Protocolos TCP y UDP. Otros protocolos de uso común. - Puertos - Servicios de red básicos
  1. Programación de servicios de comunicaciones
    1. Aplicaciones y utilidades de comunicaciones. Estándares de comunicaciones: - Organismos de estandarización de comunicaciones - Comunicaciones en sistemas operativos de uso común - Tipos de servicios de comunicaciones - Protocolos de comunicaciones de uso común - Estándares de comunicaciones inalámbricas
    2. Librerías de comunicaciones de uso común: - APIs para entornos Windows - APIs para entornos Unix
    3. Programación de componentes de comunicaciones: - Programación de sockets: * Funciones básicas * Ejemplos de utilización. Sockets TCP y UDP * Programación cliente/servidor mediante sockets - Programación de manejadores de protocolos
    4. Técnicas de depuración de servicios de comunicaciones: - Directrices para el diseño de pruebas - Exploración de vulnerabilidades y puertos - Revisión de logs - Otras técnicas de depuración - Herramientas de prueba y depuración de servicios de comunicaciones
    5. Rendimiento en las comunicaciones: - Calidad de servicio IP - Control del ancho de banda - Herramientas de monitorización de redes
  1. Seguridad en las comunicaciones
    1. Principios de seguridad en las comunicaciones: - Mecanismos de seguridad - Principales vulnerabilidades y amenazas
    2. Herramientas para la gestión de la seguridad en red. Scanners
    3. Seguridad IP
    4. Seguridad en el nivel de aplicación. El protocolo SSL
    5. Seguridad en redes inalámbricas
-MF0964_3-Desarrollo de elementos software para gestión de sistemas Solicitar módulo
Nivel: 3 Tipo: formativo Nº Horas: 210 h
Contenidos:
-UF1286-Desarrollo y optimización de componentes software para tareas administrativas de sistemas Solicitar unidad
Capacidades y criterios:
  1. C1: Analizar las especificaciones técnicas proporcionadas para el desarrollo a realizar, comprobando su validez y optimización.
    1. CE 1.1 Clasificar las principales arquitecturas de sistemas operativos (monolítico, modular, microkernel, sistemas distribuidos) y sus características, para identificar las necesidades de gestión y administración de dichos sistemas según especificaciones técnicas.
    2. CE 1.2 Explicar los apartados de un análisis de requisitos, detallando los diagramas básicos utilizados para la especificación funcional y de datos según metodologías y estándares de diseño.
    3. CE 1.3 Analizar las especificaciones técnicas del servicio o herramienta de gestión que se desea implementar, para identificar los recursos requeridos del componente según las especificaciones funcionales dadas.
    4. CE 1.4 Realizar los diagramas previos a la fase de desarrollo siguiendo las especificaciones técnicas y criterios de calidad especificados.
    5. CE 1.5 En un supuesto práctico, para interpretar un análisis de requisitos dado para el desarrollo de un elemento software, teniendo en cuenta las necesidades de administración de los recursos del sistema informático: - Definir los módulos software a realizar a partir de las especificaciones técnicas y catálogo de requisitos. - Establecer las relaciones entre módulos determinando entradas, salidas y flujos de datos según el diseño funcional y las especificaciones del sistema. - Determinar las estructuras necesarias para representar la información especificada en los requisitos. - Crear las estructuras necesarias para realizar el seguimiento de requisitos durante la codificación del elemento software según unos criterios de calidad especificados.
  2. C2: Desarrollar elementos software destinados a la gestión de los recursos del sistema, mediante herramientas y lenguajes de programación de sistemas.
    1. CE 2.1 Enumerar las herramientas y lenguajes estructurados, orientados al desarrollo de programas para la gestión de recursos del sistema, detallando sus características.
    2. CE 2.2 Describir las técnicas de funcionamiento y principios de los sistemas de memoria, detallando su organización en jerarquías, para desarrollar elementos software que las utilicen según las especificaciones funcionales aportadas.
    3. CE 2.3 Clasificar las arquitecturas de entrada/salida, de buses y de microprocesadores en sistemas, explicando las técnicas y procesos funcionales utilizados para el desarrollo de los elementos software, según unas especificaciones funcionales dadas.
    4. CE 2.4 Distinguir las funciones de las librerías del sistema para la elaboración de nuevos componentes software, reutilizando el código ya desarrollado e implementando nuevos elementos en dichas librerías u obteniendo componentes aislados, según unos criterios de optimización y calidad especificados.
    5. CE 2.5 Describir los tipos de pruebas, tanto funcionales como estructurales, y los procesos de depuración a los que debe ser sometido un componente desarrollado y las herramientas utilizadas, para verificar su funcionalidad e integración con el resto de componentes del sistema, según unos criterios de calidad especificados.
    6. CE 2.6 Clasificar las herramientas utilizadas en las fases de desarrollo: generación del código, creación de los módulos ejecutables, control de versiones, depuración y pruebas, documentación y empaquetado para su distribución para optimizar la generación y asegurar la calidad de los productos del desarrollo, según unos criterios de seguridad y calidad especificados.
    7. CE 2.7 En varios supuestos prácticos para desarrollar elementos software para la gestión de los recursos del sistema, dadas unas especificaciones técnicas: - Diseñar los algoritmos asociados al elemento software utilizando técnicas de desarrollo estructurado. - Codificar los módulos software a partir de los algoritmos diseñados utilizando herramientas y lenguajes estructurados. - Codificar estructuras de datos utilizando las funcionalidades proporcionadas por el lenguaje estructurado. - Utilizar los recursos y librerías disponibles en las herramientas de desarrollo para realizar la codificación de los algoritmos. - Diseñar y codificar los manejadores de errores necesarios para garantizar el óptimo funcionamiento del módulo software. - Diseñar y codificar componentes que permitan el acceso concurrente a los recursos del sistema. - Depurar los módulos desarrollados utilizando las herramientas disponibles. - Diseñar y aplicar baterías de pruebas sobre los módulos desarrollados para comprobar su correcto funcionamiento y documentar los resultados obtenidos. - Documentar los módulos desarrollados para facilitar su revisión y futuras modificaciones y ampliaciones. - Realizar la implantación de los módulos documentando el proceso y las incidencias detectadas.
    8. CE 2.8 Interpretar la documentación técnica asociada a las herramientas y lenguajes de programación, incluso si está editada en la lengua extranjera de uso más frecuente en el sector, utilizándola de ayuda en el desarrollo.
Contenidos:
  1. Descripción de los servicios, estructura y administración de Sistemas Operativos.
    1. Definición y conceptos básicos sobre Sistemas Operativos: - Descripción de los servicios básicos ofrecidos por un Sistema Operativo - Gestión de memoria. Memoria virtual - Ejecución de programas y gestión de procesos - Gestión del almacenamiento. Sistemas de Archivos - Gestión de dispositivos de entrada/salida - Gestión de red - Gestión de errores - Gestión de la seguridad - Auditoría (logs del sistema) - Procesos de arranque (boot) y finalización del sistema (shutdown)
    2. Características estructurales de los Sistemas Operativos: - Sistemas monolíticos - Microkernels - Sistemas modulares y por capas - Máquinas virtuales - Sistemas distribuidos
    3. Herramientas administrativas de uso común en Sistemas Operativos: - Interfaces de usuario gráficos - Intérpretes de comandos
  1. Programación de sistemas operativos. Lenguajes y librerías de uso común.
    1. Las llamadas al sistema (System Calls): - Definición - Uso directo y mediante Application Programming Interfaces (APIs) - Principales tipos de llamadas al sistema: * Control de procesos * Gestión de ficheros * Gestión de dispositivos * Información del sistema * Comunicaciones - Descripción y uso de las APIs estándar de uso común para llamadas a sistema: * Win32 API (Sistemas Windows) * POSIX API (Sistemas Unix, Linux, Mac) * Java API (Multiplataforma)
    2. Programas de utilidades y comandos del sistema: - Principales tipos: * Operaciones con ficheros y directorios * Funciones de estado Edición y manipulación de ficheros * Soporte para lenguajes de programación (compiladores, enlazadores, ensambladores, intérpretes, etc.) * Ejecución de programas * Comunicaciones, mensajería, intercambio remoto de archivos, etc. - Uso de utilidades y comandos mediante lenguajes de script de uso común * Windows scripting * Linux/Unix scripting
  1. El ciclo de vida del software de gestión de sistemas.
    1. Modelos del ciclo de vida del software. - En cascada (waterfall) - Iterativo - Incremental - En V - Basado en componentes (CBSE) - Desarrollo rápido (RAD) - Ventajas e inconvenientes. Pautas para la selección de la metodología más adecuada.
    2. Descripción de las fases en el ciclo de vida del software: - Análisis y especificación de requisitos * Tipos de requisitos : funcionales/ no funcionales, de usuario, de interfaz, de seguridad y de rendimiento * Modelos para el análisis de requisitos * Documentación de requisitos * Validación de requisitos * Gestión de requisitos - Diseño: * Modelos para el diseño de sistemas : contexto y arquitectura, procesos, datos, objetos, interfaces de usuario ,componentes y despliegues * Diagramas de diseño: diagramas de entidad-relación, diagramas de flujo, diagramas de contexto y UML. Diagramas UML de uso común en diseño de sistemas * Documentación: herramientas de generación de documentación y documentación el código - Implementación. Conceptos generales de desarrollo de software: * Principios básicos del desarrollo de software * Técnicas de desarrollo de software : basadas en prototipos, basadas en componentes, métodos de desarrollo rápido y otras técnicas de desarrollo - Validación, verificación y pruebas: * Validación y verificación de sistemas: planificación, métodos formales de verificación y métodos automatizados de análisis * Pruebas de software: tipos, diseño de pruebas, ámbito de aplicación, automatización de pruebas, herramientas y estándares sobre pruebas de software.
    3. Calidad del software: - Principios de calidad del software - Métricas y calidad del software: * Concepto de métrica y su importancia en la medición de la calidad * Principales métricas en las fases del ciclo de vida software - Estándares para la descripción de los factores de Calidad: * ISO-9126 * Otros estándares. Comparativa
  1. Desarrollo del software de gestión de sistemas
    1. Análisis de especificaciones para el desarrollo de software de gestión de sistemas: - Identificación de los componentes necesarios según las especificaciones - Análisis de los componentes reutilizables - Análisis de la integración de los componentes en la arquitectura del sistema - Identificación de los modelos funcionales y de datos de los componentes
    2. Técnicas de programación presentes en lenguajes de uso común aplicables al desarrollo de software de gestión de sistemas: - Programación estructurada: * Tipos primitivos y estructurados * Variables. Ámbito de utilización * Operadores aritméticos y lógicos * Estructuras de control. Bucles, condicionales y selectores * Funciones y procedimientos. Parámetros por valor y referencia. * Recursividad * Programación de elementos básicos: cadenas, fechas y ficheros. * Conversiones de tipos * Manejo de errores (excepciones) * Lenguajes estructurados de uso común - Programación orientada a objetos: * Clases y objetos * Herencia, polimorfismo y sobrecarga dinámica de métodos * Propiedades: selectores (get), modificadores (set) y referencias (let) * Lenguajes orientados a objetos de uso común
    3. Técnicas de programación de software de gestión de sistemas: - Reutilización de código. * Uso de librerías del sistema * Llamadas a utilidades y aplicaciones del sistema - Técnicas específicas aplicables a los servicios básicos del sistema: * Programación de la gestión de los procesos: multitarea, control de bloqueos(deadlock) y comunicación entre procesos * Programación de la gestión de memoria: jerarquías de memoria, paginación de memoria, segmentación de memoria, intercambio(swapping), compartición de memoria, seguridad y memoria virtual * Programación de los sistemas de archivos: acceso a archivos y directorios, atributos y mecanismos de protección * Programación de los sistemas de entrada y salida: gestión de interrupciones, acceso directo a memoria (DMA) , puertos de entrada/salida y asignación de memoria * Programación de la seguridad: control de variables, control de desbordamiento de búferes , aserciones, precondiciones y post-condiciones. - Técnicas de optimización
    4. Control de calidad del desarrollo del software de gestión de sistemas: - Métricas aplicables - Verificación de requisitos - Proceso de mejora continua
    5. Herramientas de uso común para el desarrollo de software de sistemas: - Editores orientados a lenguajes de programación - Compiladores y enlazadores - Generadores de programas - Depuradores - De prueba y validación de software - Optimizadores de código - Empaquetadores - Generadores de documentación de software - Despliegue de software: * Gestores y repositorios de paquetes. Versionado y control de dependencias * Distribución de software * Gestores de actualización de software - De control de versiones - Entornos integrados de desarrollo (IDE) de uso común: * Específicos de sistemas Windows * Específicos de sistemas Unix * Multiplataforma
-UF1287-Desarrollo de componentes software para el manejo de dispositivos (Drives) Solicitar unidad
Capacidades y criterios:
  1. C1: Utilizar las técnicas y estándares utilizadas en el desarrollo, distribución e implantación de manejadores de dispositivos (drivers), para la integración de periféricos en el sistema informático según especificaciones técnicas y funcionales dadas.
    1. CE 1.1 Interpretar la documentación técnica de las herramientas software a utilizar y del sistema operativo donde se implementará el manejador de dispositivo, incluso si está editada en la lengua extranjera de uso más frecuente en el sector, utilizándola de ayuda, para identificar las características y los parámetros para la programación del manejador de dispositivo de acuerdo al diseño suministrado.
    2. CE 1.2 Utilizar las técnicas, estándares y herramientas de programación para desarrollar el manejador de dispositivo y depurar los posibles errores en el código desarrollado, según especificaciones técnicas de las herramientas y necesidades funcionales dadas.
    3. CE 1.3 Realizar las pruebas del manejador del dispositivo elaborado en los posibles escenarios en los que puede ser implantado, para asegurar su funcionalidad y la ausencia de conflictos con el resto de los elementos del sistema según especificaciones técnicas y normativa de calidad dadas.
    4. CE 1.4 Confeccionar la documentación técnica y de usuario del manejador desarrollado según unos parámetros y una normativa dadas.
    5. CE 1.5 En un supuesto práctico para modificar un manejador de dispositivo en el que se va a realizar un cambio en su diseño, de acuerdo a unas especificaciones funcionales dadas: - Modificar el código para incorporar los cambios necesarios siguiendo los criterios de calidad especificados. - Comprobar, mediante la realización de pruebas, que la modificación ha sido incorporada con éxito y que no ha alterado la funcionalidad del resto de manejadores, en particular, y del sistema en general. - Realizar la actualización de toda la documentación que se vea afectada por el cambio propuesto. - Diseñar el manejador del dispositivo utilizando técnicas de desarrollo estructurado y los estándares adecuados para el tipo de dispositivo. - Codificar manejadores de dispositivos utilizando la herramienta seleccionada, aplicando el diseño previamente obtenido y utilizando lenguajes estructurados. - Implantar el manejador del dispositivo documentando el código generado, los resultados obtenidos y las incidencias detectados.
Contenidos:
  1. El núcleo del sistema operativo
    1. Arquitectura general del núcleo
    2. Subsistemas del núcleo: - Gestión de procesos - Gestión de memoria - Sistemas de ficheros - Control de dispositivos - Comunicaciones
    3. Aspectos de seguridad sobre el desarrollo de elementos del núcleo
    4. Consideraciones sobre compatibilidad de versiones del núcleo
  1. Programación de controladores de dispositivo
    1. Funcionamiento general de un controlador de dispositivo
    2. Principales tipos de controladores de dispositivo: - Carácter - Bloque - Paquete
    3. Técnicas básicas de programación de controladores de dispositivos - Estructuras básicas de datos de dispositivos - Gestión de errores de dispositivos - Gestión de memoria de dispositivos - Control de interrupciones - Gestión de puertos de entrada y salida - Uso de Acceso directo a memoria (DMA) y buses
    4. Técnicas de depuración y prueba: - Impresión de trazas - Monitorización de errores - Técnicas específicas de depuración de controladores en sistemas operativos de uso común: * Windows * Unix - Aplicación de estándares de calidad del software al desarrollo de controladores de dispositivos
    5. Compilación y carga de controladores de dispositivos
    6. Distribución de controladores de dispositivo
    7. Particularidades en el desarrollo de dispositivos en sistemas operativos de uso común: - Sistemas Windows - Sistemas Unix - Modos de instalación de controladores de dispositivo en sistemas operativos de uso común. Dispositivos Plug & Play: * Instalación de dispositivos en Windows * Instalación de dispositivos en Sistemas Unix
    8. Herramientas: - Entornos de desarrollo de controladores de dispositivo en sistemas operativos de uso común - Herramientas de depuración y verificación de controladores de dispositivos
    9. Documentación de manejadores de dispositivo: - Elaboración de especificaciones técnicas siguiendo directrices específicas de sistemas operativos de uso común - Elaboración de manual de instalación - Elaboración de manual de uso
-UF1288-Desarrollo de componentes software para servicios de comnicaciones Solicitar unidad
Capacidades y criterios:
  1. C1: Implementar servicios de comunicaciones entre sistemas aplicando las técnicas y estándares de desarrollo de elementos software, de acuerdo a unas especificaciones técnicas y funcionales dadas.
    1. CE 1.1 Clasificar las arquitecturas de servicios de comunicaciones para distinguir servicios prestados en entornos cliente/servidor de entornos entre iguales (punto a punto).
    2. CE 1.2 Describir los protocolos y puertos utilizados para la comunicación entre sistemas, teniendo en cuenta el soporte que ofrecen a los servicios de comunicaciones.
    3. CE 1.3 Identificar las principales API?s (Aplication Program Interface) y librerías y su uso para el desarrollo mediante programación estructurada.
    4. CE 1.4 Realizar la codificación del componente utilizando herramientas de programación y depuración adecuadas para optimizar la fase de desarrollo según unas especificaciones técnicas dadas.
    5. CE 1.5 Someter al componente a baterías de pruebas en réplicas de los posibles escenarios de su implantación posterior, para verificar la ausencia de conflictos y su integración con el resto de componentes del sistema, según unos criterios de calidad y seguridad dados.
    6. CE 1.6 Clasificar los estándares definidos para el desarrollo de servicios de comunicaciones entre sistemas según diferentes criterios: organizaciones de estandarización, tipos de servicios y protocolos soportados, entre otros.
    7. CE 1.7 Enumerar los principales problemas de seguridad en el ámbito de las comunicaciones y describir las estrategias a aplicar, para el desarrollo de componentes que implementen servicios seguros según estándares y especificaciones dadas.
    8. CE 1.8 En varios supuestos prácticos donde se van a desarrollar componentes para el establecimiento de servicios de comunicaciones entre sistemas, dadas unas especificaciones técnicas: - Seleccionar la herramienta adecuada para el desarrollo de los componentes de comunicaciones. - Diseñar el componente utilizando técnicas de desarrollo estructurado y los estándares definidos. - Codificar el elemento software utilizando la herramienta seleccionada, aplicando el diseño previamente obtenido y utilizando lenguajes estructurados. - Depurar y probar el componente garantizando su óptimo funcionamiento. - Diseñar baterías de posibles ataques contra el servicio y probarlas para detectar posibles vulnerabilidades. - Implantar los componentes para verificar el servicio de comunicaciones documentando los resultados e incidencias detectados. - Documentar el código desarrollado, las pruebas realizadas y el resultado de los procesos de implantación de los componentes.
Contenidos:
  1. Programación concurrente
    1. Programación de procesos e hilos de ejecución: - Gestión de procesos - Hilos y sincronización
    2. Programación de eventos asíncronos: - Señales - Temporizadores
    3. Mecanismos de comunicación entre procesos: - Tuberías (pipes) - Semáforos - Compartición de memoria - Mensajes
    4. Sincronización: - Funciones de sincronización entre hilos - Problemas de sincronización. Bloqueos (Deadlocks)
    5. Acceso a dispositivos: - Funciones de lectura y escritura - Puertos de entrada y salida
  1. Fundamentos de comunicaciones
    1. Modelos de programación en red: - El modelo cliente/servidor - El modelo de objetos distribuidos - Modelos basados en mensajes. Introducción a los Servicios web
    2. El nivel físico: - Dispositivos físicos - Protocolos de nivel físico
    3. El nivel de enlace: - Redes Ethernet - Direcciones físicas
    4. El nivel de transporte: - El protocolo TCP/IP - Esquemas de direccionamiento - El nivel de transporte. Protocolos TCP y UDP. Otros protocolos de uso común. - Puertos - Servicios de red básicos
  1. Programación de servicios de comunicaciones
    1. Aplicaciones y utilidades de comunicaciones. Estándares de comunicaciones: - Organismos de estandarización de comunicaciones - Comunicaciones en sistemas operativos de uso común - Tipos de servicios de comunicaciones - Protocolos de comunicaciones de uso común - Estándares de comunicaciones inalámbricas
    2. Librerías de comunicaciones de uso común: - APIs para entornos Windows - APIs para entornos Unix
    3. Programación de componentes de comunicaciones: - Programación de sockets: * Funciones básicas * Ejemplos de utilización. Sockets TCP y UDP * Programación cliente/servidor mediante sockets - Programación de manejadores de protocolos
    4. Técnicas de depuración de servicios de comunicaciones: - Directrices para el diseño de pruebas - Exploración de vulnerabilidades y puertos - Revisión de logs - Otras técnicas de depuración - Herramientas de prueba y depuración de servicios de comunicaciones
    5. Rendimiento en las comunicaciones: - Calidad de servicio IP - Control del ancho de banda - Herramientas de monitorización de redes
  1. Seguridad en las comunicaciones
    1. Principios de seguridad en las comunicaciones: - Mecanismos de seguridad - Principales vulnerabilidades y amenazas
    2. Herramientas para la gestión de la seguridad en red. Scanners
    3. Seguridad IP
    4. Seguridad en el nivel de aplicación. El protocolo SSL
    5. Seguridad en redes inalámbricas
-MF0964_3-Desarrollo de elementos software para gestión de sistemas Solicitar módulo
Nivel: 3 Tipo: formativo Nº Horas: 210 h
Contenidos:
-UF1286-Desarrollo y optimización de componentes software para tareas administrativas de sistemas Solicitar unidad
Capacidades y criterios:
  1. C1: Analizar las especificaciones técnicas proporcionadas para el desarrollo a realizar, comprobando su validez y optimización.
    1. CE 1.1 Clasificar las principales arquitecturas de sistemas operativos (monolítico, modular, microkernel, sistemas distribuidos) y sus características, para identificar las necesidades de gestión y administración de dichos sistemas según especificaciones técnicas.
    2. CE 1.2 Explicar los apartados de un análisis de requisitos, detallando los diagramas básicos utilizados para la especificación funcional y de datos según metodologías y estándares de diseño.
    3. CE 1.3 Analizar las especificaciones técnicas del servicio o herramienta de gestión que se desea implementar, para identificar los recursos requeridos del componente según las especificaciones funcionales dadas.
    4. CE 1.4 Realizar los diagramas previos a la fase de desarrollo siguiendo las especificaciones técnicas y criterios de calidad especificados.
    5. CE 1.5 En un supuesto práctico, para interpretar un análisis de requisitos dado para el desarrollo de un elemento software, teniendo en cuenta las necesidades de administración de los recursos del sistema informático: - Definir los módulos software a realizar a partir de las especificaciones técnicas y catálogo de requisitos. - Establecer las relaciones entre módulos determinando entradas, salidas y flujos de datos según el diseño funcional y las especificaciones del sistema. - Determinar las estructuras necesarias para representar la información especificada en los requisitos. - Crear las estructuras necesarias para realizar el seguimiento de requisitos durante la codificación del elemento software según unos criterios de calidad especificados.
  2. C2: Desarrollar elementos software destinados a la gestión de los recursos del sistema, mediante herramientas y lenguajes de programación de sistemas.
    1. CE 2.1 Enumerar las herramientas y lenguajes estructurados, orientados al desarrollo de programas para la gestión de recursos del sistema, detallando sus características.
    2. CE 2.2 Describir las técnicas de funcionamiento y principios de los sistemas de memoria, detallando su organización en jerarquías, para desarrollar elementos software que las utilicen según las especificaciones funcionales aportadas.
    3. CE 2.3 Clasificar las arquitecturas de entrada/salida, de buses y de microprocesadores en sistemas, explicando las técnicas y procesos funcionales utilizados para el desarrollo de los elementos software, según unas especificaciones funcionales dadas.
    4. CE 2.4 Distinguir las funciones de las librerías del sistema para la elaboración de nuevos componentes software, reutilizando el código ya desarrollado e implementando nuevos elementos en dichas librerías u obteniendo componentes aislados, según unos criterios de optimización y calidad especificados.
    5. CE 2.5 Describir los tipos de pruebas, tanto funcionales como estructurales, y los procesos de depuración a los que debe ser sometido un componente desarrollado y las herramientas utilizadas, para verificar su funcionalidad e integración con el resto de componentes del sistema, según unos criterios de calidad especificados.
    6. CE 2.6 Clasificar las herramientas utilizadas en las fases de desarrollo: generación del código, creación de los módulos ejecutables, control de versiones, depuración y pruebas, documentación y empaquetado para su distribución para optimizar la generación y asegurar la calidad de los productos del desarrollo, según unos criterios de seguridad y calidad especificados.
    7. CE 2.7 En varios supuestos prácticos para desarrollar elementos software para la gestión de los recursos del sistema, dadas unas especificaciones técnicas: - Diseñar los algoritmos asociados al elemento software utilizando técnicas de desarrollo estructurado. - Codificar los módulos software a partir de los algoritmos diseñados utilizando herramientas y lenguajes estructurados. - Codificar estructuras de datos utilizando las funcionalidades proporcionadas por el lenguaje estructurado. - Utilizar los recursos y librerías disponibles en las herramientas de desarrollo para realizar la codificación de los algoritmos. - Diseñar y codificar los manejadores de errores necesarios para garantizar el óptimo funcionamiento del módulo software. - Diseñar y codificar componentes que permitan el acceso concurrente a los recursos del sistema. - Depurar los módulos desarrollados utilizando las herramientas disponibles. - Diseñar y aplicar baterías de pruebas sobre los módulos desarrollados para comprobar su correcto funcionamiento y documentar los resultados obtenidos. - Documentar los módulos desarrollados para facilitar su revisión y futuras modificaciones y ampliaciones. - Realizar la implantación de los módulos documentando el proceso y las incidencias detectadas.
    8. CE 2.8 Interpretar la documentación técnica asociada a las herramientas y lenguajes de programación, incluso si está editada en la lengua extranjera de uso más frecuente en el sector, utilizándola de ayuda en el desarrollo.
Contenidos:
  1. Descripción de los servicios, estructura y administración de Sistemas Operativos.
    1. Definición y conceptos básicos sobre Sistemas Operativos: - Descripción de los servicios básicos ofrecidos por un Sistema Operativo - Gestión de memoria. Memoria virtual - Ejecución de programas y gestión de procesos - Gestión del almacenamiento. Sistemas de Archivos - Gestión de dispositivos de entrada/salida - Gestión de red - Gestión de errores - Gestión de la seguridad - Auditoría (logs del sistema) - Procesos de arranque (boot) y finalización del sistema (shutdown)
    2. Características estructurales de los Sistemas Operativos: - Sistemas monolíticos - Microkernels - Sistemas modulares y por capas - Máquinas virtuales - Sistemas distribuidos
    3. Herramientas administrativas de uso común en Sistemas Operativos: - Interfaces de usuario gráficos - Intérpretes de comandos
  1. Programación de sistemas operativos. Lenguajes y librerías de uso común.
    1. Las llamadas al sistema (System Calls): - Definición - Uso directo y mediante Application Programming Interfaces (APIs) - Principales tipos de llamadas al sistema: * Control de procesos * Gestión de ficheros * Gestión de dispositivos * Información del sistema * Comunicaciones - Descripción y uso de las APIs estándar de uso común para llamadas a sistema: * Win32 API (Sistemas Windows) * POSIX API (Sistemas Unix, Linux, Mac) * Java API (Multiplataforma)
    2. Programas de utilidades y comandos del sistema: - Principales tipos: * Operaciones con ficheros y directorios * Funciones de estado Edición y manipulación de ficheros * Soporte para lenguajes de programación (compiladores, enlazadores, ensambladores, intérpretes, etc.) * Ejecución de programas * Comunicaciones, mensajería, intercambio remoto de archivos, etc. - Uso de utilidades y comandos mediante lenguajes de script de uso común * Windows scripting * Linux/Unix scripting
  1. El ciclo de vida del software de gestión de sistemas.
    1. Modelos del ciclo de vida del software. - En cascada (waterfall) - Iterativo - Incremental - En V - Basado en componentes (CBSE) - Desarrollo rápido (RAD) - Ventajas e inconvenientes. Pautas para la selección de la metodología más adecuada.
    2. Descripción de las fases en el ciclo de vida del software: - Análisis y especificación de requisitos * Tipos de requisitos : funcionales/ no funcionales, de usuario, de interfaz, de seguridad y de rendimiento * Modelos para el análisis de requisitos * Documentación de requisitos * Validación de requisitos * Gestión de requisitos - Diseño: * Modelos para el diseño de sistemas : contexto y arquitectura, procesos, datos, objetos, interfaces de usuario ,componentes y despliegues * Diagramas de diseño: diagramas de entidad-relación, diagramas de flujo, diagramas de contexto y UML. Diagramas UML de uso común en diseño de sistemas * Documentación: herramientas de generación de documentación y documentación el código - Implementación. Conceptos generales de desarrollo de software: * Principios básicos del desarrollo de software * Técnicas de desarrollo de software : basadas en prototipos, basadas en componentes, métodos de desarrollo rápido y otras técnicas de desarrollo - Validación, verificación y pruebas: * Validación y verificación de sistemas: planificación, métodos formales de verificación y métodos automatizados de análisis * Pruebas de software: tipos, diseño de pruebas, ámbito de aplicación, automatización de pruebas, herramientas y estándares sobre pruebas de software.
    3. Calidad del software: - Principios de calidad del software - Métricas y calidad del software: * Concepto de métrica y su importancia en la medición de la calidad * Principales métricas en las fases del ciclo de vida software - Estándares para la descripción de los factores de Calidad: * ISO-9126 * Otros estándares. Comparativa
  1. Desarrollo del software de gestión de sistemas
    1. Análisis de especificaciones para el desarrollo de software de gestión de sistemas: - Identificación de los componentes necesarios según las especificaciones - Análisis de los componentes reutilizables - Análisis de la integración de los componentes en la arquitectura del sistema - Identificación de los modelos funcionales y de datos de los componentes
    2. Técnicas de programación presentes en lenguajes de uso común aplicables al desarrollo de software de gestión de sistemas: - Programación estructurada: * Tipos primitivos y estructurados * Variables. Ámbito de utilización * Operadores aritméticos y lógicos * Estructuras de control. Bucles, condicionales y selectores * Funciones y procedimientos. Parámetros por valor y referencia. * Recursividad * Programación de elementos básicos: cadenas, fechas y ficheros. * Conversiones de tipos * Manejo de errores (excepciones) * Lenguajes estructurados de uso común - Programación orientada a objetos: * Clases y objetos * Herencia, polimorfismo y sobrecarga dinámica de métodos * Propiedades: selectores (get), modificadores (set) y referencias (let) * Lenguajes orientados a objetos de uso común
    3. Técnicas de programación de software de gestión de sistemas: - Reutilización de código. * Uso de librerías del sistema * Llamadas a utilidades y aplicaciones del sistema - Técnicas específicas aplicables a los servicios básicos del sistema: * Programación de la gestión de los procesos: multitarea, control de bloqueos(deadlock) y comunicación entre procesos * Programación de la gestión de memoria: jerarquías de memoria, paginación de memoria, segmentación de memoria, intercambio(swapping), compartición de memoria, seguridad y memoria virtual * Programación de los sistemas de archivos: acceso a archivos y directorios, atributos y mecanismos de protección * Programación de los sistemas de entrada y salida: gestión de interrupciones, acceso directo a memoria (DMA) , puertos de entrada/salida y asignación de memoria * Programación de la seguridad: control de variables, control de desbordamiento de búferes , aserciones, precondiciones y post-condiciones. - Técnicas de optimización
    4. Control de calidad del desarrollo del software de gestión de sistemas: - Métricas aplicables - Verificación de requisitos - Proceso de mejora continua
    5. Herramientas de uso común para el desarrollo de software de sistemas: - Editores orientados a lenguajes de programación - Compiladores y enlazadores - Generadores de programas - Depuradores - De prueba y validación de software - Optimizadores de código - Empaquetadores - Generadores de documentación de software - Despliegue de software: * Gestores y repositorios de paquetes. Versionado y control de dependencias * Distribución de software * Gestores de actualización de software - De control de versiones - Entornos integrados de desarrollo (IDE) de uso común: * Específicos de sistemas Windows * Específicos de sistemas Unix * Multiplataforma
-UF1287-Desarrollo de componentes software para el manejo de dispositivos (Drives) Solicitar unidad
Capacidades y criterios:
  1. C1: Utilizar las técnicas y estándares utilizadas en el desarrollo, distribución e implantación de manejadores de dispositivos (drivers), para la integración de periféricos en el sistema informático según especificaciones técnicas y funcionales dadas.
    1. CE 1.1 Interpretar la documentación técnica de las herramientas software a utilizar y del sistema operativo donde se implementará el manejador de dispositivo, incluso si está editada en la lengua extranjera de uso más frecuente en el sector, utilizándola de ayuda, para identificar las características y los parámetros para la programación del manejador de dispositivo de acuerdo al diseño suministrado.
    2. CE 1.2 Utilizar las técnicas, estándares y herramientas de programación para desarrollar el manejador de dispositivo y depurar los posibles errores en el código desarrollado, según especificaciones técnicas de las herramientas y necesidades funcionales dadas.
    3. CE 1.3 Realizar las pruebas del manejador del dispositivo elaborado en los posibles escenarios en los que puede ser implantado, para asegurar su funcionalidad y la ausencia de conflictos con el resto de los elementos del sistema según especificaciones técnicas y normativa de calidad dadas.
    4. CE 1.4 Confeccionar la documentación técnica y de usuario del manejador desarrollado según unos parámetros y una normativa dadas.
    5. CE 1.5 En un supuesto práctico para modificar un manejador de dispositivo en el que se va a realizar un cambio en su diseño, de acuerdo a unas especificaciones funcionales dadas: - Modificar el código para incorporar los cambios necesarios siguiendo los criterios de calidad especificados. - Comprobar, mediante la realización de pruebas, que la modificación ha sido incorporada con éxito y que no ha alterado la funcionalidad del resto de manejadores, en particular, y del sistema en general. - Realizar la actualización de toda la documentación que se vea afectada por el cambio propuesto. - Diseñar el manejador del dispositivo utilizando técnicas de desarrollo estructurado y los estándares adecuados para el tipo de dispositivo. - Codificar manejadores de dispositivos utilizando la herramienta seleccionada, aplicando el diseño previamente obtenido y utilizando lenguajes estructurados. - Implantar el manejador del dispositivo documentando el código generado, los resultados obtenidos y las incidencias detectados.
Contenidos:
  1. El núcleo del sistema operativo
    1. Arquitectura general del núcleo
    2. Subsistemas del núcleo: - Gestión de procesos - Gestión de memoria - Sistemas de ficheros - Control de dispositivos - Comunicaciones
    3. Aspectos de seguridad sobre el desarrollo de elementos del núcleo
    4. Consideraciones sobre compatibilidad de versiones del núcleo
  1. Programación de controladores de dispositivo
    1. Funcionamiento general de un controlador de dispositivo
    2. Principales tipos de controladores de dispositivo: - Carácter - Bloque - Paquete
    3. Técnicas básicas de programación de controladores de dispositivos - Estructuras básicas de datos de dispositivos - Gestión de errores de dispositivos - Gestión de memoria de dispositivos - Control de interrupciones - Gestión de puertos de entrada y salida - Uso de Acceso directo a memoria (DMA) y buses
    4. Técnicas de depuración y prueba: - Impresión de trazas - Monitorización de errores - Técnicas específicas de depuración de controladores en sistemas operativos de uso común: * Windows * Unix - Aplicación de estándares de calidad del software al desarrollo de controladores de dispositivos
    5. Compilación y carga de controladores de dispositivos
    6. Distribución de controladores de dispositivo
    7. Particularidades en el desarrollo de dispositivos en sistemas operativos de uso común: - Sistemas Windows - Sistemas Unix - Modos de instalación de controladores de dispositivo en sistemas operativos de uso común. Dispositivos Plug & Play: * Instalación de dispositivos en Windows * Instalación de dispositivos en Sistemas Unix
    8. Herramientas: - Entornos de desarrollo de controladores de dispositivo en sistemas operativos de uso común - Herramientas de depuración y verificación de controladores de dispositivos
    9. Documentación de manejadores de dispositivo: - Elaboración de especificaciones técnicas siguiendo directrices específicas de sistemas operativos de uso común - Elaboración de manual de instalación - Elaboración de manual de uso
-UF1288-Desarrollo de componentes software para servicios de comnicaciones Solicitar unidad
Capacidades y criterios:
  1. C1: Implementar servicios de comunicaciones entre sistemas aplicando las técnicas y estándares de desarrollo de elementos software, de acuerdo a unas especificaciones técnicas y funcionales dadas.
    1. CE 1.1 Clasificar las arquitecturas de servicios de comunicaciones para distinguir servicios prestados en entornos cliente/servidor de entornos entre iguales (punto a punto).
    2. CE 1.2 Describir los protocolos y puertos utilizados para la comunicación entre sistemas, teniendo en cuenta el soporte que ofrecen a los servicios de comunicaciones.
    3. CE 1.3 Identificar las principales API?s (Aplication Program Interface) y librerías y su uso para el desarrollo mediante programación estructurada.
    4. CE 1.4 Realizar la codificación del componente utilizando herramientas de programación y depuración adecuadas para optimizar la fase de desarrollo según unas especificaciones técnicas dadas.
    5. CE 1.5 Someter al componente a baterías de pruebas en réplicas de los posibles escenarios de su implantación posterior, para verificar la ausencia de conflictos y su integración con el resto de componentes del sistema, según unos criterios de calidad y seguridad dados.
    6. CE 1.6 Clasificar los estándares definidos para el desarrollo de servicios de comunicaciones entre sistemas según diferentes criterios: organizaciones de estandarización, tipos de servicios y protocolos soportados, entre otros.
    7. CE 1.7 Enumerar los principales problemas de seguridad en el ámbito de las comunicaciones y describir las estrategias a aplicar, para el desarrollo de componentes que implementen servicios seguros según estándares y especificaciones dadas.
    8. CE 1.8 En varios supuestos prácticos donde se van a desarrollar componentes para el establecimiento de servicios de comunicaciones entre sistemas, dadas unas especificaciones técnicas: - Seleccionar la herramienta adecuada para el desarrollo de los componentes de comunicaciones. - Diseñar el componente utilizando técnicas de desarrollo estructurado y los estándares definidos. - Codificar el elemento software utilizando la herramienta seleccionada, aplicando el diseño previamente obtenido y utilizando lenguajes estructurados. - Depurar y probar el componente garantizando su óptimo funcionamiento. - Diseñar baterías de posibles ataques contra el servicio y probarlas para detectar posibles vulnerabilidades. - Implantar los componentes para verificar el servicio de comunicaciones documentando los resultados e incidencias detectados. - Documentar el código desarrollado, las pruebas realizadas y el resultado de los procesos de implantación de los componentes.
Contenidos:
  1. Programación concurrente
    1. Programación de procesos e hilos de ejecución: - Gestión de procesos - Hilos y sincronización
    2. Programación de eventos asíncronos: - Señales - Temporizadores
    3. Mecanismos de comunicación entre procesos: - Tuberías (pipes) - Semáforos - Compartición de memoria - Mensajes
    4. Sincronización: - Funciones de sincronización entre hilos - Problemas de sincronización. Bloqueos (Deadlocks)
    5. Acceso a dispositivos: - Funciones de lectura y escritura - Puertos de entrada y salida
  1. Fundamentos de comunicaciones
    1. Modelos de programación en red: - El modelo cliente/servidor - El modelo de objetos distribuidos - Modelos basados en mensajes. Introducción a los Servicios web
    2. El nivel físico: - Dispositivos físicos - Protocolos de nivel físico
    3. El nivel de enlace: - Redes Ethernet - Direcciones físicas
    4. El nivel de transporte: - El protocolo TCP/IP - Esquemas de direccionamiento - El nivel de transporte. Protocolos TCP y UDP. Otros protocolos de uso común. - Puertos - Servicios de red básicos
  1. Programación de servicios de comunicaciones
    1. Aplicaciones y utilidades de comunicaciones. Estándares de comunicaciones: - Organismos de estandarización de comunicaciones - Comunicaciones en sistemas operativos de uso común - Tipos de servicios de comunicaciones - Protocolos de comunicaciones de uso común - Estándares de comunicaciones inalámbricas
    2. Librerías de comunicaciones de uso común: - APIs para entornos Windows - APIs para entornos Unix
    3. Programación de componentes de comunicaciones: - Programación de sockets: * Funciones básicas * Ejemplos de utilización. Sockets TCP y UDP * Programación cliente/servidor mediante sockets - Programación de manejadores de protocolos
    4. Técnicas de depuración de servicios de comunicaciones: - Directrices para el diseño de pruebas - Exploración de vulnerabilidades y puertos - Revisión de logs - Otras técnicas de depuración - Herramientas de prueba y depuración de servicios de comunicaciones
    5. Rendimiento en las comunicaciones: - Calidad de servicio IP - Control del ancho de banda - Herramientas de monitorización de redes
  1. Seguridad en las comunicaciones
    1. Principios de seguridad en las comunicaciones: - Mecanismos de seguridad - Principales vulnerabilidades y amenazas
    2. Herramientas para la gestión de la seguridad en red. Scanners
    3. Seguridad IP
    4. Seguridad en el nivel de aplicación. El protocolo SSL
    5. Seguridad en redes inalámbricas
-MF0964_3-Desarrollo de elementos software para gestión de sistemas Solicitar módulo
Nivel: 3 Tipo: formativo Nº Horas: 210 h
Contenidos:
-UF1286-Desarrollo y optimización de componentes software para tareas administrativas de sistemas Solicitar unidad
Capacidades y criterios:
  1. C1: Analizar las especificaciones técnicas proporcionadas para el desarrollo a realizar, comprobando su validez y optimización.
    1. CE 1.1 Clasificar las principales arquitecturas de sistemas operativos (monolítico, modular, microkernel, sistemas distribuidos) y sus características, para identificar las necesidades de gestión y administración de dichos sistemas según especificaciones técnicas.
    2. CE 1.2 Explicar los apartados de un análisis de requisitos, detallando los diagramas básicos utilizados para la especificación funcional y de datos según metodologías y estándares de diseño.
    3. CE 1.3 Analizar las especificaciones técnicas del servicio o herramienta de gestión que se desea implementar, para identificar los recursos requeridos del componente según las especificaciones funcionales dadas.
    4. CE 1.4 Realizar los diagramas previos a la fase de desarrollo siguiendo las especificaciones técnicas y criterios de calidad especificados.
    5. CE 1.5 En un supuesto práctico, para interpretar un análisis de requisitos dado para el desarrollo de un elemento software, teniendo en cuenta las necesidades de administración de los recursos del sistema informático: - Definir los módulos software a realizar a partir de las especificaciones técnicas y catálogo de requisitos. - Establecer las relaciones entre módulos determinando entradas, salidas y flujos de datos según el diseño funcional y las especificaciones del sistema. - Determinar las estructuras necesarias para representar la información especificada en los requisitos. - Crear las estructuras necesarias para realizar el seguimiento de requisitos durante la codificación del elemento software según unos criterios de calidad especificados.
  2. C2: Desarrollar elementos software destinados a la gestión de los recursos del sistema, mediante herramientas y lenguajes de programación de sistemas.
    1. CE 2.1 Enumerar las herramientas y lenguajes estructurados, orientados al desarrollo de programas para la gestión de recursos del sistema, detallando sus características.
    2. CE 2.2 Describir las técnicas de funcionamiento y principios de los sistemas de memoria, detallando su organización en jerarquías, para desarrollar elementos software que las utilicen según las especificaciones funcionales aportadas.
    3. CE 2.3 Clasificar las arquitecturas de entrada/salida, de buses y de microprocesadores en sistemas, explicando las técnicas y procesos funcionales utilizados para el desarrollo de los elementos software, según unas especificaciones funcionales dadas.
    4. CE 2.4 Distinguir las funciones de las librerías del sistema para la elaboración de nuevos componentes software, reutilizando el código ya desarrollado e implementando nuevos elementos en dichas librerías u obteniendo componentes aislados, según unos criterios de optimización y calidad especificados.
    5. CE 2.5 Describir los tipos de pruebas, tanto funcionales como estructurales, y los procesos de depuración a los que debe ser sometido un componente desarrollado y las herramientas utilizadas, para verificar su funcionalidad e integración con el resto de componentes del sistema, según unos criterios de calidad especificados.
    6. CE 2.6 Clasificar las herramientas utilizadas en las fases de desarrollo: generación del código, creación de los módulos ejecutables, control de versiones, depuración y pruebas, documentación y empaquetado para su distribución para optimizar la generación y asegurar la calidad de los productos del desarrollo, según unos criterios de seguridad y calidad especificados.
    7. CE 2.7 En varios supuestos prácticos para desarrollar elementos software para la gestión de los recursos del sistema, dadas unas especificaciones técnicas: - Diseñar los algoritmos asociados al elemento software utilizando técnicas de desarrollo estructurado. - Codificar los módulos software a partir de los algoritmos diseñados utilizando herramientas y lenguajes estructurados. - Codificar estructuras de datos utilizando las funcionalidades proporcionadas por el lenguaje estructurado. - Utilizar los recursos y librerías disponibles en las herramientas de desarrollo para realizar la codificación de los algoritmos. - Diseñar y codificar los manejadores de errores necesarios para garantizar el óptimo funcionamiento del módulo software. - Diseñar y codificar componentes que permitan el acceso concurrente a los recursos del sistema. - Depurar los módulos desarrollados utilizando las herramientas disponibles. - Diseñar y aplicar baterías de pruebas sobre los módulos desarrollados para comprobar su correcto funcionamiento y documentar los resultados obtenidos. - Documentar los módulos desarrollados para facilitar su revisión y futuras modificaciones y ampliaciones. - Realizar la implantación de los módulos documentando el proceso y las incidencias detectadas.
    8. CE 2.8 Interpretar la documentación técnica asociada a las herramientas y lenguajes de programación, incluso si está editada en la lengua extranjera de uso más frecuente en el sector, utilizándola de ayuda en el desarrollo.
Contenidos:
  1. Descripción de los servicios, estructura y administración de Sistemas Operativos.
    1. Definición y conceptos básicos sobre Sistemas Operativos: - Descripción de los servicios básicos ofrecidos por un Sistema Operativo - Gestión de memoria. Memoria virtual - Ejecución de programas y gestión de procesos - Gestión del almacenamiento. Sistemas de Archivos - Gestión de dispositivos de entrada/salida - Gestión de red - Gestión de errores - Gestión de la seguridad - Auditoría (logs del sistema) - Procesos de arranque (boot) y finalización del sistema (shutdown)
    2. Características estructurales de los Sistemas Operativos: - Sistemas monolíticos - Microkernels - Sistemas modulares y por capas - Máquinas virtuales - Sistemas distribuidos
    3. Herramientas administrativas de uso común en Sistemas Operativos: - Interfaces de usuario gráficos - Intérpretes de comandos
  1. Programación de sistemas operativos. Lenguajes y librerías de uso común.
    1. Las llamadas al sistema (System Calls): - Definición - Uso directo y mediante Application Programming Interfaces (APIs) - Principales tipos de llamadas al sistema: * Control de procesos * Gestión de ficheros * Gestión de dispositivos * Información del sistema * Comunicaciones - Descripción y uso de las APIs estándar de uso común para llamadas a sistema: * Win32 API (Sistemas Windows) * POSIX API (Sistemas Unix, Linux, Mac) * Java API (Multiplataforma)
    2. Programas de utilidades y comandos del sistema: - Principales tipos: * Operaciones con ficheros y directorios * Funciones de estado Edición y manipulación de ficheros * Soporte para lenguajes de programación (compiladores, enlazadores, ensambladores, intérpretes, etc.) * Ejecución de programas * Comunicaciones, mensajería, intercambio remoto de archivos, etc. - Uso de utilidades y comandos mediante lenguajes de script de uso común * Windows scripting * Linux/Unix scripting
  1. El ciclo de vida del software de gestión de sistemas.
    1. Modelos del ciclo de vida del software. - En cascada (waterfall) - Iterativo - Incremental - En V - Basado en componentes (CBSE) - Desarrollo rápido (RAD) - Ventajas e inconvenientes. Pautas para la selección de la metodología más adecuada.
    2. Descripción de las fases en el ciclo de vida del software: - Análisis y especificación de requisitos * Tipos de requisitos : funcionales/ no funcionales, de usuario, de interfaz, de seguridad y de rendimiento * Modelos para el análisis de requisitos * Documentación de requisitos * Validación de requisitos * Gestión de requisitos - Diseño: * Modelos para el diseño de sistemas : contexto y arquitectura, procesos, datos, objetos, interfaces de usuario ,componentes y despliegues * Diagramas de diseño: diagramas de entidad-relación, diagramas de flujo, diagramas de contexto y UML. Diagramas UML de uso común en diseño de sistemas * Documentación: herramientas de generación de documentación y documentación el código - Implementación. Conceptos generales de desarrollo de software: * Principios básicos del desarrollo de software * Técnicas de desarrollo de software : basadas en prototipos, basadas en componentes, métodos de desarrollo rápido y otras técnicas de desarrollo - Validación, verificación y pruebas: * Validación y verificación de sistemas: planificación, métodos formales de verificación y métodos automatizados de análisis * Pruebas de software: tipos, diseño de pruebas, ámbito de aplicación, automatización de pruebas, herramientas y estándares sobre pruebas de software.
    3. Calidad del software: - Principios de calidad del software - Métricas y calidad del software: * Concepto de métrica y su importancia en la medición de la calidad * Principales métricas en las fases del ciclo de vida software - Estándares para la descripción de los factores de Calidad: * ISO-9126 * Otros estándares. Comparativa
  1. Desarrollo del software de gestión de sistemas
    1. Análisis de especificaciones para el desarrollo de software de gestión de sistemas: - Identificación de los componentes necesarios según las especificaciones - Análisis de los componentes reutilizables - Análisis de la integración de los componentes en la arquitectura del sistema - Identificación de los modelos funcionales y de datos de los componentes
    2. Técnicas de programación presentes en lenguajes de uso común aplicables al desarrollo de software de gestión de sistemas: - Programación estructurada: * Tipos primitivos y estructurados * Variables. Ámbito de utilización * Operadores aritméticos y lógicos * Estructuras de control. Bucles, condicionales y selectores * Funciones y procedimientos. Parámetros por valor y referencia. * Recursividad * Programación de elementos básicos: cadenas, fechas y ficheros. * Conversiones de tipos * Manejo de errores (excepciones) * Lenguajes estructurados de uso común - Programación orientada a objetos: * Clases y objetos * Herencia, polimorfismo y sobrecarga dinámica de métodos * Propiedades: selectores (get), modificadores (set) y referencias (let) * Lenguajes orientados a objetos de uso común
    3. Técnicas de programación de software de gestión de sistemas: - Reutilización de código. * Uso de librerías del sistema * Llamadas a utilidades y aplicaciones del sistema - Técnicas específicas aplicables a los servicios básicos del sistema: * Programación de la gestión de los procesos: multitarea, control de bloqueos(deadlock) y comunicación entre procesos * Programación de la gestión de memoria: jerarquías de memoria, paginación de memoria, segmentación de memoria, intercambio(swapping), compartición de memoria, seguridad y memoria virtual * Programación de los sistemas de archivos: acceso a archivos y directorios, atributos y mecanismos de protección * Programación de los sistemas de entrada y salida: gestión de interrupciones, acceso directo a memoria (DMA) , puertos de entrada/salida y asignación de memoria * Programación de la seguridad: control de variables, control de desbordamiento de búferes , aserciones, precondiciones y post-condiciones. - Técnicas de optimización
    4. Control de calidad del desarrollo del software de gestión de sistemas: - Métricas aplicables - Verificación de requisitos - Proceso de mejora continua
    5. Herramientas de uso común para el desarrollo de software de sistemas: - Editores orientados a lenguajes de programación - Compiladores y enlazadores - Generadores de programas - Depuradores - De prueba y validación de software - Optimizadores de código - Empaquetadores - Generadores de documentación de software - Despliegue de software: * Gestores y repositorios de paquetes. Versionado y control de dependencias * Distribución de software * Gestores de actualización de software - De control de versiones - Entornos integrados de desarrollo (IDE) de uso común: * Específicos de sistemas Windows * Específicos de sistemas Unix * Multiplataforma
-UF1287-Desarrollo de componentes software para el manejo de dispositivos (Drives) Solicitar unidad
Capacidades y criterios:
  1. C1: Utilizar las técnicas y estándares utilizadas en el desarrollo, distribución e implantación de manejadores de dispositivos (drivers), para la integración de periféricos en el sistema informático según especificaciones técnicas y funcionales dadas.
    1. CE 1.1 Interpretar la documentación técnica de las herramientas software a utilizar y del sistema operativo donde se implementará el manejador de dispositivo, incluso si está editada en la lengua extranjera de uso más frecuente en el sector, utilizándola de ayuda, para identificar las características y los parámetros para la programación del manejador de dispositivo de acuerdo al diseño suministrado.
    2. CE 1.2 Utilizar las técnicas, estándares y herramientas de programación para desarrollar el manejador de dispositivo y depurar los posibles errores en el código desarrollado, según especificaciones técnicas de las herramientas y necesidades funcionales dadas.
    3. CE 1.3 Realizar las pruebas del manejador del dispositivo elaborado en los posibles escenarios en los que puede ser implantado, para asegurar su funcionalidad y la ausencia de conflictos con el resto de los elementos del sistema según especificaciones técnicas y normativa de calidad dadas.
    4. CE 1.4 Confeccionar la documentación técnica y de usuario del manejador desarrollado según unos parámetros y una normativa dadas.
    5. CE 1.5 En un supuesto práctico para modificar un manejador de dispositivo en el que se va a realizar un cambio en su diseño, de acuerdo a unas especificaciones funcionales dadas: - Modificar el código para incorporar los cambios necesarios siguiendo los criterios de calidad especificados. - Comprobar, mediante la realización de pruebas, que la modificación ha sido incorporada con éxito y que no ha alterado la funcionalidad del resto de manejadores, en particular, y del sistema en general. - Realizar la actualización de toda la documentación que se vea afectada por el cambio propuesto. - Diseñar el manejador del dispositivo utilizando técnicas de desarrollo estructurado y los estándares adecuados para el tipo de dispositivo. - Codificar manejadores de dispositivos utilizando la herramienta seleccionada, aplicando el diseño previamente obtenido y utilizando lenguajes estructurados. - Implantar el manejador del dispositivo documentando el código generado, los resultados obtenidos y las incidencias detectados.
Contenidos:
  1. El núcleo del sistema operativo
    1. Arquitectura general del núcleo
    2. Subsistemas del núcleo: - Gestión de procesos - Gestión de memoria - Sistemas de ficheros - Control de dispositivos - Comunicaciones
    3. Aspectos de seguridad sobre el desarrollo de elementos del núcleo
    4. Consideraciones sobre compatibilidad de versiones del núcleo
  1. Programación de controladores de dispositivo
    1. Funcionamiento general de un controlador de dispositivo
    2. Principales tipos de controladores de dispositivo: - Carácter - Bloque - Paquete
    3. Técnicas básicas de programación de controladores de dispositivos - Estructuras básicas de datos de dispositivos - Gestión de errores de dispositivos - Gestión de memoria de dispositivos - Control de interrupciones - Gestión de puertos de entrada y salida - Uso de Acceso directo a memoria (DMA) y buses
    4. Técnicas de depuración y prueba: - Impresión de trazas - Monitorización de errores - Técnicas específicas de depuración de controladores en sistemas operativos de uso común: * Windows * Unix - Aplicación de estándares de calidad del software al desarrollo de controladores de dispositivos
    5. Compilación y carga de controladores de dispositivos
    6. Distribución de controladores de dispositivo
    7. Particularidades en el desarrollo de dispositivos en sistemas operativos de uso común: - Sistemas Windows - Sistemas Unix - Modos de instalación de controladores de dispositivo en sistemas operativos de uso común. Dispositivos Plug & Play: * Instalación de dispositivos en Windows * Instalación de dispositivos en Sistemas Unix
    8. Herramientas: - Entornos de desarrollo de controladores de dispositivo en sistemas operativos de uso común - Herramientas de depuración y verificación de controladores de dispositivos
    9. Documentación de manejadores de dispositivo: - Elaboración de especificaciones técnicas siguiendo directrices específicas de sistemas operativos de uso común - Elaboración de manual de instalación - Elaboración de manual de uso
-UF1288-Desarrollo de componentes software para servicios de comnicaciones Solicitar unidad
Capacidades y criterios:
  1. C1: Implementar servicios de comunicaciones entre sistemas aplicando las técnicas y estándares de desarrollo de elementos software, de acuerdo a unas especificaciones técnicas y funcionales dadas.
    1. CE 1.1 Clasificar las arquitecturas de servicios de comunicaciones para distinguir servicios prestados en entornos cliente/servidor de entornos entre iguales (punto a punto).
    2. CE 1.2 Describir los protocolos y puertos utilizados para la comunicación entre sistemas, teniendo en cuenta el soporte que ofrecen a los servicios de comunicaciones.
    3. CE 1.3 Identificar las principales API?s (Aplication Program Interface) y librerías y su uso para el desarrollo mediante programación estructurada.
    4. CE 1.4 Realizar la codificación del componente utilizando herramientas de programación y depuración adecuadas para optimizar la fase de desarrollo según unas especificaciones técnicas dadas.
    5. CE 1.5 Someter al componente a baterías de pruebas en réplicas de los posibles escenarios de su implantación posterior, para verificar la ausencia de conflictos y su integración con el resto de componentes del sistema, según unos criterios de calidad y seguridad dados.
    6. CE 1.6 Clasificar los estándares definidos para el desarrollo de servicios de comunicaciones entre sistemas según diferentes criterios: organizaciones de estandarización, tipos de servicios y protocolos soportados, entre otros.
    7. CE 1.7 Enumerar los principales problemas de seguridad en el ámbito de las comunicaciones y describir las estrategias a aplicar, para el desarrollo de componentes que implementen servicios seguros según estándares y especificaciones dadas.
    8. CE 1.8 En varios supuestos prácticos donde se van a desarrollar componentes para el establecimiento de servicios de comunicaciones entre sistemas, dadas unas especificaciones técnicas: - Seleccionar la herramienta adecuada para el desarrollo de los componentes de comunicaciones. - Diseñar el componente utilizando técnicas de desarrollo estructurado y los estándares definidos. - Codificar el elemento software utilizando la herramienta seleccionada, aplicando el diseño previamente obtenido y utilizando lenguajes estructurados. - Depurar y probar el componente garantizando su óptimo funcionamiento. - Diseñar baterías de posibles ataques contra el servicio y probarlas para detectar posibles vulnerabilidades. - Implantar los componentes para verificar el servicio de comunicaciones documentando los resultados e incidencias detectados. - Documentar el código desarrollado, las pruebas realizadas y el resultado de los procesos de implantación de los componentes.
Contenidos:
  1. Programación concurrente
    1. Programación de procesos e hilos de ejecución: - Gestión de procesos - Hilos y sincronización
    2. Programación de eventos asíncronos: - Señales - Temporizadores
    3. Mecanismos de comunicación entre procesos: - Tuberías (pipes) - Semáforos - Compartición de memoria - Mensajes
    4. Sincronización: - Funciones de sincronización entre hilos - Problemas de sincronización. Bloqueos (Deadlocks)
    5. Acceso a dispositivos: - Funciones de lectura y escritura - Puertos de entrada y salida
  1. Fundamentos de comunicaciones
    1. Modelos de programación en red: - El modelo cliente/servidor - El modelo de objetos distribuidos - Modelos basados en mensajes. Introducción a los Servicios web
    2. El nivel físico: - Dispositivos físicos - Protocolos de nivel físico
    3. El nivel de enlace: - Redes Ethernet - Direcciones físicas
    4. El nivel de transporte: - El protocolo TCP/IP - Esquemas de direccionamiento - El nivel de transporte. Protocolos TCP y UDP. Otros protocolos de uso común. - Puertos - Servicios de red básicos
  1. Programación de servicios de comunicaciones
    1. Aplicaciones y utilidades de comunicaciones. Estándares de comunicaciones: - Organismos de estandarización de comunicaciones - Comunicaciones en sistemas operativos de uso común - Tipos de servicios de comunicaciones - Protocolos de comunicaciones de uso común - Estándares de comunicaciones inalámbricas
    2. Librerías de comunicaciones de uso común: - APIs para entornos Windows - APIs para entornos Unix
    3. Programación de componentes de comunicaciones: - Programación de sockets: * Funciones básicas * Ejemplos de utilización. Sockets TCP y UDP * Programación cliente/servidor mediante sockets - Programación de manejadores de protocolos
    4. Técnicas de depuración de servicios de comunicaciones: - Directrices para el diseño de pruebas - Exploración de vulnerabilidades y puertos - Revisión de logs - Otras técnicas de depuración - Herramientas de prueba y depuración de servicios de comunicaciones
    5. Rendimiento en las comunicaciones: - Calidad de servicio IP - Control del ancho de banda - Herramientas de monitorización de redes
  1. Seguridad en las comunicaciones
    1. Principios de seguridad en las comunicaciones: - Mecanismos de seguridad - Principales vulnerabilidades y amenazas
    2. Herramientas para la gestión de la seguridad en red. Scanners
    3. Seguridad IP
    4. Seguridad en el nivel de aplicación. El protocolo SSL
    5. Seguridad en redes inalámbricas
-MF0964_3-Desarrollo de elementos software para gestión de sistemas Solicitar módulo
Nivel: 3 Tipo: formativo Nº Horas: 210 h
Contenidos:
-UF1286-Desarrollo y optimización de componentes software para tareas administrativas de sistemas Solicitar unidad
Capacidades y criterios:
  1. C1: Analizar las especificaciones técnicas proporcionadas para el desarrollo a realizar, comprobando su validez y optimización.
    1. CE 1.1 Clasificar las principales arquitecturas de sistemas operativos (monolítico, modular, microkernel, sistemas distribuidos) y sus características, para identificar las necesidades de gestión y administración de dichos sistemas según especificaciones técnicas.
    2. CE 1.2 Explicar los apartados de un análisis de requisitos, detallando los diagramas básicos utilizados para la especificación funcional y de datos según metodologías y estándares de diseño.
    3. CE 1.3 Analizar las especificaciones técnicas del servicio o herramienta de gestión que se desea implementar, para identificar los recursos requeridos del componente según las especificaciones funcionales dadas.
    4. CE 1.4 Realizar los diagramas previos a la fase de desarrollo siguiendo las especificaciones técnicas y criterios de calidad especificados.
    5. CE 1.5 En un supuesto práctico, para interpretar un análisis de requisitos dado para el desarrollo de un elemento software, teniendo en cuenta las necesidades de administración de los recursos del sistema informático: - Definir los módulos software a realizar a partir de las especificaciones técnicas y catálogo de requisitos. - Establecer las relaciones entre módulos determinando entradas, salidas y flujos de datos según el diseño funcional y las especificaciones del sistema. - Determinar las estructuras necesarias para representar la información especificada en los requisitos. - Crear las estructuras necesarias para realizar el seguimiento de requisitos durante la codificación del elemento software según unos criterios de calidad especificados.
  2. C2: Desarrollar elementos software destinados a la gestión de los recursos del sistema, mediante herramientas y lenguajes de programación de sistemas.
    1. CE 2.1 Enumerar las herramientas y lenguajes estructurados, orientados al desarrollo de programas para la gestión de recursos del sistema, detallando sus características.
    2. CE 2.2 Describir las técnicas de funcionamiento y principios de los sistemas de memoria, detallando su organización en jerarquías, para desarrollar elementos software que las utilicen según las especificaciones funcionales aportadas.
    3. CE 2.3 Clasificar las arquitecturas de entrada/salida, de buses y de microprocesadores en sistemas, explicando las técnicas y procesos funcionales utilizados para el desarrollo de los elementos software, según unas especificaciones funcionales dadas.
    4. CE 2.4 Distinguir las funciones de las librerías del sistema para la elaboración de nuevos componentes software, reutilizando el código ya desarrollado e implementando nuevos elementos en dichas librerías u obteniendo componentes aislados, según unos criterios de optimización y calidad especificados.
    5. CE 2.5 Describir los tipos de pruebas, tanto funcionales como estructurales, y los procesos de depuración a los que debe ser sometido un componente desarrollado y las herramientas utilizadas, para verificar su funcionalidad e integración con el resto de componentes del sistema, según unos criterios de calidad especificados.
    6. CE 2.6 Clasificar las herramientas utilizadas en las fases de desarrollo: generación del código, creación de los módulos ejecutables, control de versiones, depuración y pruebas, documentación y empaquetado para su distribución para optimizar la generación y asegurar la calidad de los productos del desarrollo, según unos criterios de seguridad y calidad especificados.
    7. CE 2.7 En varios supuestos prácticos para desarrollar elementos software para la gestión de los recursos del sistema, dadas unas especificaciones técnicas: - Diseñar los algoritmos asociados al elemento software utilizando técnicas de desarrollo estructurado. - Codificar los módulos software a partir de los algoritmos diseñados utilizando herramientas y lenguajes estructurados. - Codificar estructuras de datos utilizando las funcionalidades proporcionadas por el lenguaje estructurado. - Utilizar los recursos y librerías disponibles en las herramientas de desarrollo para realizar la codificación de los algoritmos. - Diseñar y codificar los manejadores de errores necesarios para garantizar el óptimo funcionamiento del módulo software. - Diseñar y codificar componentes que permitan el acceso concurrente a los recursos del sistema. - Depurar los módulos desarrollados utilizando las herramientas disponibles. - Diseñar y aplicar baterías de pruebas sobre los módulos desarrollados para comprobar su correcto funcionamiento y documentar los resultados obtenidos. - Documentar los módulos desarrollados para facilitar su revisión y futuras modificaciones y ampliaciones. - Realizar la implantación de los módulos documentando el proceso y las incidencias detectadas.
    8. CE 2.8 Interpretar la documentación técnica asociada a las herramientas y lenguajes de programación, incluso si está editada en la lengua extranjera de uso más frecuente en el sector, utilizándola de ayuda en el desarrollo.
Contenidos:
  1. Descripción de los servicios, estructura y administración de Sistemas Operativos.
    1. Definición y conceptos básicos sobre Sistemas Operativos: - Descripción de los servicios básicos ofrecidos por un Sistema Operativo - Gestión de memoria. Memoria virtual - Ejecución de programas y gestión de procesos - Gestión del almacenamiento. Sistemas de Archivos - Gestión de dispositivos de entrada/salida - Gestión de red - Gestión de errores - Gestión de la seguridad - Auditoría (logs del sistema) - Procesos de arranque (boot) y finalización del sistema (shutdown)
    2. Características estructurales de los Sistemas Operativos: - Sistemas monolíticos - Microkernels - Sistemas modulares y por capas - Máquinas virtuales - Sistemas distribuidos
    3. Herramientas administrativas de uso común en Sistemas Operativos: - Interfaces de usuario gráficos - Intérpretes de comandos
  1. Programación de sistemas operativos. Lenguajes y librerías de uso común.
    1. Las llamadas al sistema (System Calls): - Definición - Uso directo y mediante Application Programming Interfaces (APIs) - Principales tipos de llamadas al sistema: * Control de procesos * Gestión de ficheros * Gestión de dispositivos * Información del sistema * Comunicaciones - Descripción y uso de las APIs estándar de uso común para llamadas a sistema: * Win32 API (Sistemas Windows) * POSIX API (Sistemas Unix, Linux, Mac) * Java API (Multiplataforma)
    2. Programas de utilidades y comandos del sistema: - Principales tipos: * Operaciones con ficheros y directorios * Funciones de estado Edición y manipulación de ficheros * Soporte para lenguajes de programación (compiladores, enlazadores, ensambladores, intérpretes, etc.) * Ejecución de programas * Comunicaciones, mensajería, intercambio remoto de archivos, etc. - Uso de utilidades y comandos mediante lenguajes de script de uso común * Windows scripting * Linux/Unix scripting
  1. El ciclo de vida del software de gestión de sistemas.
    1. Modelos del ciclo de vida del software. - En cascada (waterfall) - Iterativo - Incremental - En V - Basado en componentes (CBSE) - Desarrollo rápido (RAD) - Ventajas e inconvenientes. Pautas para la selección de la metodología más adecuada.
    2. Descripción de las fases en el ciclo de vida del software: - Análisis y especificación de requisitos * Tipos de requisitos : funcionales/ no funcionales, de usuario, de interfaz, de seguridad y de rendimiento * Modelos para el análisis de requisitos * Documentación de requisitos * Validación de requisitos * Gestión de requisitos - Diseño: * Modelos para el diseño de sistemas : contexto y arquitectura, procesos, datos, objetos, interfaces de usuario ,componentes y despliegues * Diagramas de diseño: diagramas de entidad-relación, diagramas de flujo, diagramas de contexto y UML. Diagramas UML de uso común en diseño de sistemas * Documentación: herramientas de generación de documentación y documentación el código - Implementación. Conceptos generales de desarrollo de software: * Principios básicos del desarrollo de software * Técnicas de desarrollo de software : basadas en prototipos, basadas en componentes, métodos de desarrollo rápido y otras técnicas de desarrollo - Validación, verificación y pruebas: * Validación y verificación de sistemas: planificación, métodos formales de verificación y métodos automatizados de análisis * Pruebas de software: tipos, diseño de pruebas, ámbito de aplicación, automatización de pruebas, herramientas y estándares sobre pruebas de software.
    3. Calidad del software: - Principios de calidad del software - Métricas y calidad del software: * Concepto de métrica y su importancia en la medición de la calidad * Principales métricas en las fases del ciclo de vida software - Estándares para la descripción de los factores de Calidad: * ISO-9126 * Otros estándares. Comparativa
  1. Desarrollo del software de gestión de sistemas
    1. Análisis de especificaciones para el desarrollo de software de gestión de sistemas: - Identificación de los componentes necesarios según las especificaciones - Análisis de los componentes reutilizables - Análisis de la integración de los componentes en la arquitectura del sistema - Identificación de los modelos funcionales y de datos de los componentes
    2. Técnicas de programación presentes en lenguajes de uso común aplicables al desarrollo de software de gestión de sistemas: - Programación estructurada: * Tipos primitivos y estructurados * Variables. Ámbito de utilización * Operadores aritméticos y lógicos * Estructuras de control. Bucles, condicionales y selectores * Funciones y procedimientos. Parámetros por valor y referencia. * Recursividad * Programación de elementos básicos: cadenas, fechas y ficheros. * Conversiones de tipos * Manejo de errores (excepciones) * Lenguajes estructurados de uso común - Programación orientada a objetos: * Clases y objetos * Herencia, polimorfismo y sobrecarga dinámica de métodos * Propiedades: selectores (get), modificadores (set) y referencias (let) * Lenguajes orientados a objetos de uso común
    3. Técnicas de programación de software de gestión de sistemas: - Reutilización de código. * Uso de librerías del sistema * Llamadas a utilidades y aplicaciones del sistema - Técnicas específicas aplicables a los servicios básicos del sistema: * Programación de la gestión de los procesos: multitarea, control de bloqueos(deadlock) y comunicación entre procesos * Programación de la gestión de memoria: jerarquías de memoria, paginación de memoria, segmentación de memoria, intercambio(swapping), compartición de memoria, seguridad y memoria virtual * Programación de los sistemas de archivos: acceso a archivos y directorios, atributos y mecanismos de protección * Programación de los sistemas de entrada y salida: gestión de interrupciones, acceso directo a memoria (DMA) , puertos de entrada/salida y asignación de memoria * Programación de la seguridad: control de variables, control de desbordamiento de búferes , aserciones, precondiciones y post-condiciones. - Técnicas de optimización
    4. Control de calidad del desarrollo del software de gestión de sistemas: - Métricas aplicables - Verificación de requisitos - Proceso de mejora continua
    5. Herramientas de uso común para el desarrollo de software de sistemas: - Editores orientados a lenguajes de programación - Compiladores y enlazadores - Generadores de programas - Depuradores - De prueba y validación de software - Optimizadores de código - Empaquetadores - Generadores de documentación de software - Despliegue de software: * Gestores y repositorios de paquetes. Versionado y control de dependencias * Distribución de software * Gestores de actualización de software - De control de versiones - Entornos integrados de desarrollo (IDE) de uso común: * Específicos de sistemas Windows * Específicos de sistemas Unix * Multiplataforma
-UF1287-Desarrollo de componentes software para el manejo de dispositivos (Drives) Solicitar unidad
Capacidades y criterios:
  1. C1: Utilizar las técnicas y estándares utilizadas en el desarrollo, distribución e implantación de manejadores de dispositivos (drivers), para la integración de periféricos en el sistema informático según especificaciones técnicas y funcionales dadas.
    1. CE 1.1 Interpretar la documentación técnica de las herramientas software a utilizar y del sistema operativo donde se implementará el manejador de dispositivo, incluso si está editada en la lengua extranjera de uso más frecuente en el sector, utilizándola de ayuda, para identificar las características y los parámetros para la programación del manejador de dispositivo de acuerdo al diseño suministrado.
    2. CE 1.2 Utilizar las técnicas, estándares y herramientas de programación para desarrollar el manejador de dispositivo y depurar los posibles errores en el código desarrollado, según especificaciones técnicas de las herramientas y necesidades funcionales dadas.
    3. CE 1.3 Realizar las pruebas del manejador del dispositivo elaborado en los posibles escenarios en los que puede ser implantado, para asegurar su funcionalidad y la ausencia de conflictos con el resto de los elementos del sistema según especificaciones técnicas y normativa de calidad dadas.
    4. CE 1.4 Confeccionar la documentación técnica y de usuario del manejador desarrollado según unos parámetros y una normativa dadas.
    5. CE 1.5 En un supuesto práctico para modificar un manejador de dispositivo en el que se va a realizar un cambio en su diseño, de acuerdo a unas especificaciones funcionales dadas: - Modificar el código para incorporar los cambios necesarios siguiendo los criterios de calidad especificados. - Comprobar, mediante la realización de pruebas, que la modificación ha sido incorporada con éxito y que no ha alterado la funcionalidad del resto de manejadores, en particular, y del sistema en general. - Realizar la actualización de toda la documentación que se vea afectada por el cambio propuesto. - Diseñar el manejador del dispositivo utilizando técnicas de desarrollo estructurado y los estándares adecuados para el tipo de dispositivo. - Codificar manejadores de dispositivos utilizando la herramienta seleccionada, aplicando el diseño previamente obtenido y utilizando lenguajes estructurados. - Implantar el manejador del dispositivo documentando el código generado, los resultados obtenidos y las incidencias detectados.
Contenidos:
  1. El núcleo del sistema operativo
    1. Arquitectura general del núcleo
    2. Subsistemas del núcleo: - Gestión de procesos - Gestión de memoria - Sistemas de ficheros - Control de dispositivos - Comunicaciones
    3. Aspectos de seguridad sobre el desarrollo de elementos del núcleo
    4. Consideraciones sobre compatibilidad de versiones del núcleo
  1. Programación de controladores de dispositivo
    1. Funcionamiento general de un controlador de dispositivo
    2. Principales tipos de controladores de dispositivo: - Carácter - Bloque - Paquete
    3. Técnicas básicas de programación de controladores de dispositivos - Estructuras básicas de datos de dispositivos - Gestión de errores de dispositivos - Gestión de memoria de dispositivos - Control de interrupciones - Gestión de puertos de entrada y salida - Uso de Acceso directo a memoria (DMA) y buses
    4. Técnicas de depuración y prueba: - Impresión de trazas - Monitorización de errores - Técnicas específicas de depuración de controladores en sistemas operativos de uso común: * Windows * Unix - Aplicación de estándares de calidad del software al desarrollo de controladores de dispositivos
    5. Compilación y carga de controladores de dispositivos
    6. Distribución de controladores de dispositivo
    7. Particularidades en el desarrollo de dispositivos en sistemas operativos de uso común: - Sistemas Windows - Sistemas Unix - Modos de instalación de controladores de dispositivo en sistemas operativos de uso común. Dispositivos Plug & Play: * Instalación de dispositivos en Windows * Instalación de dispositivos en Sistemas Unix
    8. Herramientas: - Entornos de desarrollo de controladores de dispositivo en sistemas operativos de uso común - Herramientas de depuración y verificación de controladores de dispositivos
    9. Documentación de manejadores de dispositivo: - Elaboración de especificaciones técnicas siguiendo directrices específicas de sistemas operativos de uso común - Elaboración de manual de instalación - Elaboración de manual de uso
-UF1288-Desarrollo de componentes software para servicios de comnicaciones Solicitar unidad
Capacidades y criterios:
  1. C1: Implementar servicios de comunicaciones entre sistemas aplicando las técnicas y estándares de desarrollo de elementos software, de acuerdo a unas especificaciones técnicas y funcionales dadas.
    1. CE 1.1 Clasificar las arquitecturas de servicios de comunicaciones para distinguir servicios prestados en entornos cliente/servidor de entornos entre iguales (punto a punto).
    2. CE 1.2 Describir los protocolos y puertos utilizados para la comunicación entre sistemas, teniendo en cuenta el soporte que ofrecen a los servicios de comunicaciones.
    3. CE 1.3 Identificar las principales API?s (Aplication Program Interface) y librerías y su uso para el desarrollo mediante programación estructurada.
    4. CE 1.4 Realizar la codificación del componente utilizando herramientas de programación y depuración adecuadas para optimizar la fase de desarrollo según unas especificaciones técnicas dadas.
    5. CE 1.5 Someter al componente a baterías de pruebas en réplicas de los posibles escenarios de su implantación posterior, para verificar la ausencia de conflictos y su integración con el resto de componentes del sistema, según unos criterios de calidad y seguridad dados.
    6. CE 1.6 Clasificar los estándares definidos para el desarrollo de servicios de comunicaciones entre sistemas según diferentes criterios: organizaciones de estandarización, tipos de servicios y protocolos soportados, entre otros.
    7. CE 1.7 Enumerar los principales problemas de seguridad en el ámbito de las comunicaciones y describir las estrategias a aplicar, para el desarrollo de componentes que implementen servicios seguros según estándares y especificaciones dadas.
    8. CE 1.8 En varios supuestos prácticos donde se van a desarrollar componentes para el establecimiento de servicios de comunicaciones entre sistemas, dadas unas especificaciones técnicas: - Seleccionar la herramienta adecuada para el desarrollo de los componentes de comunicaciones. - Diseñar el componente utilizando técnicas de desarrollo estructurado y los estándares definidos. - Codificar el elemento software utilizando la herramienta seleccionada, aplicando el diseño previamente obtenido y utilizando lenguajes estructurados. - Depurar y probar el componente garantizando su óptimo funcionamiento. - Diseñar baterías de posibles ataques contra el servicio y probarlas para detectar posibles vulnerabilidades. - Implantar los componentes para verificar el servicio de comunicaciones documentando los resultados e incidencias detectados. - Documentar el código desarrollado, las pruebas realizadas y el resultado de los procesos de implantación de los componentes.
Contenidos:
  1. Programación concurrente
    1. Programación de procesos e hilos de ejecución: - Gestión de procesos - Hilos y sincronización
    2. Programación de eventos asíncronos: - Señales - Temporizadores
    3. Mecanismos de comunicación entre procesos: - Tuberías (pipes) - Semáforos - Compartición de memoria - Mensajes
    4. Sincronización: - Funciones de sincronización entre hilos - Problemas de sincronización. Bloqueos (Deadlocks)
    5. Acceso a dispositivos: - Funciones de lectura y escritura - Puertos de entrada y salida
  1. Fundamentos de comunicaciones
    1. Modelos de programación en red: - El modelo cliente/servidor - El modelo de objetos distribuidos - Modelos basados en mensajes. Introducción a los Servicios web
    2. El nivel físico: - Dispositivos físicos - Protocolos de nivel físico
    3. El nivel de enlace: - Redes Ethernet - Direcciones físicas
    4. El nivel de transporte: - El protocolo TCP/IP - Esquemas de direccionamiento - El nivel de transporte. Protocolos TCP y UDP. Otros protocolos de uso común. - Puertos - Servicios de red básicos
  1. Programación de servicios de comunicaciones
    1. Aplicaciones y utilidades de comunicaciones. Estándares de comunicaciones: - Organismos de estandarización de comunicaciones - Comunicaciones en sistemas operativos de uso común - Tipos de servicios de comunicaciones - Protocolos de comunicaciones de uso común - Estándares de comunicaciones inalámbricas
    2. Librerías de comunicaciones de uso común: - APIs para entornos Windows - APIs para entornos Unix
    3. Programación de componentes de comunicaciones: - Programación de sockets: * Funciones básicas * Ejemplos de utilización. Sockets TCP y UDP * Programación cliente/servidor mediante sockets - Programación de manejadores de protocolos
    4. Técnicas de depuración de servicios de comunicaciones: - Directrices para el diseño de pruebas - Exploración de vulnerabilidades y puertos - Revisión de logs - Otras técnicas de depuración - Herramientas de prueba y depuración de servicios de comunicaciones
    5. Rendimiento en las comunicaciones: - Calidad de servicio IP - Control del ancho de banda - Herramientas de monitorización de redes
  1. Seguridad en las comunicaciones
    1. Principios de seguridad en las comunicaciones: - Mecanismos de seguridad - Principales vulnerabilidades y amenazas
    2. Herramientas para la gestión de la seguridad en red. Scanners
    3. Seguridad IP
    4. Seguridad en el nivel de aplicación. El protocolo SSL
    5. Seguridad en redes inalámbricas
-MF0965_3-Desarrollo de software basado en tecnologías orientadas a componentes Solicitar módulo
Nivel: 3 Tipo: formativo Nº Horas: 210 h
Contenidos:
-UF1289-Diseño de elementos software con tecnologías basadas en componentes Solicitar unidad
Capacidades y criterios:
  1. C1: Identificar las características y arquitecturas de las tecnologías de desarrollo, orientadas a componentes para la creación y modificación de elementos software integrados en estos entornos, según estándares y normalizaciones existentes.
    1. CE 1.1 Describir las técnicas y métodos de desarrollo involucrados en el paradigma del desarrollo, orientado a componentes para la confección y modificación elementos software, según los estándares de esta tecnología.
    2. CE 1.2 Clasificar las herramientas y lenguajes orientados a objetos utilizados en el desarrollo orientado a componentes, describiendo sus características para identificar las que son específicas para la creación o modificación de los elementos software, según las especificaciones funcionales dadas.
    3. CE 1.3 Clasificar los estándares de modelos de componentes, describiendo las pasarelas para interoperar entre componentes heterogéneos, para realizar las tareas de integración de los elementos desarrollados según especificaciones funcionales y técnicas.
    4. CE 1.4 Identificar las técnicas de diagramación y documentación para el desarrollo de software basado en tecnologías orientadas a componentes, según estándares de diseño de metodologías orientadas a componentes.
    5. CE 1.5 En un caso práctico para desarrollar componentes dentro de una arquitectura dada y contando con unas especificaciones funcionales precisas: - Realizar la diagramación y documentación previa al desarrollo del componente, para optimizar los procesos de creación del componente según especificaciones recibidas. - Identificar los diferentes interfaces y técnicas utilizadas para la intercomunicación de componentes, para poder aplicarlas al desarrollo de nuevos componentes. - Definir los interfaces del componente software a desarrollar para la intercomunicación con el resto de componentes del sistema, según especificaciones técnicas de la arquitectura de componentes y necesidades funcionales. - Diseñar la estructura del componente utilizando los estándares de creación de componentes, según especificaciones técnicas de la arquitectura utilizada y necesidades funcionales. - Confeccionar la documentación del diseño realizado siguiendo los patrones, normativa y procedimientos especificados.
Contenidos:
  1. La orientación a objetos.
    1. Principios de la orientación a objetos. Comparación con la programación estructurada: - Ocultación de información (information hiding). - El tipo abstracto de datos (ADT). Encapsulado de datos. - Paso de mensajes.
    2. Conceptos básicos de orientación a objetos: - Clases: * Atributos, variables de estado y variables de clase. * Métodos. Requisitos e invariantes. * Gestión de excepciones. * Agregación de clases. - Objetos: * Creación y destrucción de objetos. * Llamada a métodos de un objeto. * Visibilidad y uso de las variables de estado. * Referencias a objetos. * Persistencia de objetos. * Optimización de memoria y recolección de basura (garbage collection). - Herencia: * Concepto de herencia. Superclases y subclases. * Herencia múltiple. * Clases abstractas. * Tipos de herencia: herencia de implementación, herencia de interfaces y de tipos y otros tipos de herencia. * Polimorfismo y enlace dinámico (dynamic binding). * Directrices para el uso correcto de la herencia. - Modularidad: * Librerías de clases. Ámbito de utilización de nombres. * Ventajas de la utilización de modulos o paquetes. - Genericidad y sobrecarga: * Concepto de genericidad. * Concepto de Sobrecarga. Tipos de sobrecarga. * Comparación entre genericidad y sobrecarga.
    3. Desarrollo orientado a objetos: - Lenguajes de desarrollo orientado a objetos de uso común. - Herramientas de desarrollo.
    4. Lenguajes de modelización en el desarrollo orientado a objetos: - El lenguaje unificado de modelado (UML). - Diagramas para la modelización de sistemas orientados a objetos.
  1. La orientación a componentes.
    1. Fundamentos conceptuales: - Definición de componente. - Comparación entre componentes y objetos. - Módulos. - Interfaces: * Tipos de interfaces. * Versionado de interfaces. * Interfaces como contratos. - Escalado de componentes. - Estado de componentes.
    2. Arquitecturas de componentes: - Basadas en objetos. Composición y uso de objetos. - Multicapa. - Basadas en middleware. - Basadas en objetos distribuidos.
    3. Diseño de componentes: - Principios de diseño de componentes: * Dependencias no cíclicas. * Principio ?open/closed?. * Reusabilidad. * Configurabilidad. * Abstracción. * Dependencias. - Técnicas de reusabilidad: * Patrones. * Librerías. * Interfaces. * Protocolos y esquemas de mensajes. * Uso de lenguajes de programación. * Estructuras y jerarquías de estructuras. * Arquitecturas de sistemas. - Modelo de componente: * Especificación de servicios: transacciones, seguridad, persistencia y acceso remoto. * Especificación de Interface. * Especificación de la implementación. * Especificación de las unidades de despliegue (modulos). - Modelos de integración de componentes: * Referencias e identidad de objetos, componentes e interfaces. * Servicios de localización. * Modelos de intercambio: objetos distribuidos, capa intermedia (Middleware) e interacción e integración mediante servicios web. * Comparación entre métodos de intercambio en las principales infraestructuras de componentes: OMG: CORBA, OMA, Java: JavaBeans, EJBs y Microsoft: COM, OLE/ActiveX, .NET - Diagramación y documentación de componentes: * Modelo de información: diagramas conceptuales, diagramas de arquitectura de componentes y diagramas de despliegue. * Modelo dinámico: diagramas de interacción y de actividad, diagramas de casos de uso y diagramas de estado.
-UF1290-Implementación e integración de elementos software con tecnologías basadas en componentes Solicitar unidad
Capacidades y criterios:
  1. C1: Construir elementos software a partir de las especificaciones de necesidades y con las condiciones de desarrollo de la tecnología de componentes utilizada.
    1. CE 1.1 Explicar los enfoques de desarrollo e implementación para la creación de componentes aplicando el principio de reutilización.
    2. CE 1.2 Describir el proceso de adaptación de un componente existente para incluirlo en la arquitectura en la que se quiere reutilizar, según especificaciones técnicas de la tecnología de componentes utilizada.
    3. CE 1.3 Enunciar las características del proceso de diseño de un nuevo componente para incluirlo en la arquitectura en la que se quiere utilizar, garantizando su futura reutilización.
    4. CE 1.4 Clasificar las herramientas de programación y depuración para optimizar la fase de desarrollo de los componentes según unas especificaciones dadas.
    5. CE 1.5 Identificar los elementos y parámetros de la interfaz del componente, para su desarrollo con herramientas y lenguajes específicos, para implementar la vía de comunicaciones con el resto de componentes según los estándares de definición de interfaces de la arquitectura.
    6. CE 1.6 Realizar los procesos de instalación del componente, comprobando que ejecuta las acciones requeridas y su disponibilidad para las aplicaciones que lo invoquen, según especificaciones técnicas de la arquitectura.
    7. CE 1.7 En un caso practico para desarrollar componentes software reutilizables, dadas unas especificaciones funcionales y técnicas: - Diseñar el nuevo componente para que cumpla las especificaciones funcionales dadas. - Comprobar que la funcionalidad del componente diseñado puede ser extendida para futuras reutilizaciones. - Implementar el componente utilizando herramientas y lenguajes orientados a objeto. - Depurar y probar el componente desarrollado utilizando las herramientas disponibles. - Documentar el componente y sus interfaces para facilitar su futura reutilización.
    8. CE 1.8 En un caso practico para desarrollar software reutilizando componentes, dadas unas especificaciones funcionales y técnicas: - Utilizar repositorios de componentes para localizar aquellos que se ajusten a las especificaciones dadas y puedan ser reutilizados. - Diseñar las modificaciones que se van a realizar sobre el componente existente para que cumpla las especificaciones dadas. - Modificar el componente utilizando herramientas y lenguajes orientados a objeto. - Depurar y probar el componente modificado utilizando las herramientas disponibles. - Documentar las modificaciones realizadas sobre el componente y sus interfaces para facilitar su futura reutilización.
    9. CE 1.9 Interpretar la documentación técnica asociada a las herramientas de programación, incluso si está editada en la lengua extranjera de uso más frecuente en el sector, utilizándola de ayuda en el desarrollo.
Contenidos:
  1. Desarrollo de componentes.
    1. Lenguajes de desarrollo de componentes.: - Comparativa con lenguajes orientados a objetos. - Lenguajes orientados a componentes: * Descripción de intefaces. * Ensamblado. * Descripción de arquitectura.
    2. Requisitos principales del desarrollo orientado a componentes: - Modularidad - Despliegue independiente. - Reemplazabilidad. - Seguridad. - Separación entre interfaz e implementación.
    3. Infraestructuras (frameworks) de componentes: - Modelos de infraestruturas de componentes: * Orientados a conexión. * Orientados a contexto. * Orientados a aspectos. - Descripción de las intraestructuras de componentes de uso común: * OMG: CORBA, OMA. * Java: JavaBeans, EJBs. * Microsoft: COM, OLE/ActiveX, .NET
    4. Métodos de desarrollo de componentes: - Uso de lenguajes orientados a objetos. - Selección de infraestructuras de componentes.
    5. Construcción de software mediante componentes: - Definición de interfaces. Lenguajes de descripción de interfaces. - Reutilización de componentes. - Técnicas de ensamblado en infraestructuras de uso común.
    6. Técnicas específicas de desarrollo: - Componentes en la capa de servidor web. Páginas dinámicas. - Componentes en la capa de servidor de aplicaciones. - Componentes en la capa de aplicación cliente: * Componentes de interfaz gráfico. * Componentes orientados a documento. - Componentes en la capa de servicios web. - Componentes para dispositivos móviles.
    7. Herramientas para el desarrollo de componentes: - Entornos integrados de desarrollo de componentes. - Configuración e instalación de herramientas de uso común: * Entorno Java. * Entorno .NET - Gestión del ciclo de vida en el desarrolo de componentes mediante herramientas de uso común: * Uso de repositorios de componentes. Registro de componentes. * Reutilización de componentes para la construcción de sistemas software. * Definición de metadatos de componente. Descriptores de interfaces. * Modelo de seguridad. * Instalación de componentes. * Depuración y prueba de componentes.
  1. Componentes distribuidos.
    1. Programación distribuida en infraestructuras de uso común: - Programación multihilo (multithreading). - Comunicaciones síncronas y asíncronas.
    2. Modelos de intercambio: - Llamadas a procedimientos remotos. - Orientados a mensajes. - Orientados a recursos.
-UF1291-Despliegue y puesta en funcionamiento de componentes software Solicitar unidad
Capacidades y criterios:
  1. C1: Aplicar los procedimientos de despliegue e integración del componente en un entorno de tecnología orientada a componentes, según especificaciones técnicas de la arquitectura.
    1. CE 1.1 Describir las técnicas disponibles para realizar el proceso de búsqueda de componentes, que satisfagan los requisitos impuestos en el diseño inicial.
    2. CE 1.2 Clasificar los métodos de evaluación y selección de componentes, basándose en una serie de requisitos impuestos por las especificaciones iniciales de diseño.
    3. CE 1.3 Realizar las pruebas estructurales para verificar que el componente seleccionado se comunica con el resto de componentes y que no produce conflictos, según criterios de calidad y seguridad dados, y del diseño preeliminar.
    4. CE 1.4 Definir los procedimientos para el despliegue y adaptación para realizar la implantación del elemento software, según requisitos del componente desarrollado y siguiendo criterios de calidad, seguridad y especificaciones de la arquitectura.
    5. CE 1.5 Describir los procesos de integración, configuración e interconexión de los componentes seleccionados, para que permitan construir la aplicación final según los criterios de calidad y seguridad especificados en el diseño inicial.
    6. CE 1.6 Monitorizar el rendimiento de los componentes desarrollados o seleccionados para asegurar su integración en el sistema, de acuerdo a criterios de calidad y seguridad.
    7. CE 1.7 Realizar la documentación del despliegue y la implantación siguiendo los patrones, normativa y procedimientos especificados.
    8. CE 1.8 En un supuesto práctico debidamente caracterizado, utilizar las herramientas de desarrollo para realizar el desarrollo y despliegue de un componente software según unas especificaciones funcionales y técnicas dadas: - Extraer la información relativa al diseño de un componente. - Codificar el componente según especificaciones funcionales y técnicas. - Realizar las pruebas estructurales según normativa y criterios de calidad establecidos. - Incorporar el despliegue, adaptación, configuración e integración del componente según especificaciones técnicas y de implantación del desarrollo. - Trazar las pruebas del componente según normativas de calidad y seguridad dadas. - Configurar la herramienta para la realización de baterías de pruebas automáticas según normativa y criterios de calidad dados. - Elaborar documentación mediante las plantillas facilitadas o incorporadas en la propia herramienta. - Generar informes de calidad y métricas, e interpretar los resultados.
Contenidos:
  1. Despliegue de componentes.
    1. Modelos de despliegue: - Diseño sin repositorio: * Diseño y ejecución sin despliegue. * Ejemplos: UML. - Diseño con repositorio sólo para el depósito de componentes: * Tipos de contenedores. * Ejemplos: EJBs, .NET, CCM, Servicios web. - Despliegue con repositorio: * Composición y depósito de componentes. * Ejemplo: JavaBean. - Diseño con repositorio: * Tipos de conectores. * Ejemplos: Koala.
  1. Selección de componentes.
    1. Tipos: - Componentes comerciales: * Sin posibilidad de modificaciones (COTS). * Con posibilidad de adaptaciones (MOTS). - Componentes de fuente abierta. - Ventajas e inconvenientes.
    2. Métodos de personalización de componentes: - Parametrización. - Uso de extensiones (plugins).
    3. Criterios de selección de componentes reutilizables: - Adaptabilidad. - Auditabilidad. - Estandarización. - Características de concurrencia. - Rendimiento. - Consumo de recursos. - Seguridad. - Características de mantenimiento y actualización.
    4. Proceso de selección de componentes: - Evaluación de componentes según requisitos. - Diseño y codificación (código de enlace): * Enlace de componentes con otros sistemas. * Integración. * Configuración. - Diseño de pruebas. - Detección de fallos. - Mantenimiento y gestión de configuraciones. - Actualización de componentes. - Métodos de selección de uso común: * CAP (COTS Acquisition Process). * RUP (Rational Unified Process).
  1. Control de calidad de componentes.
    1. Métodos de evaluación de calidad de componentes. Estándares de calidad.
    2. Categorías y métricas de evaluación.
    3. Proceso de validación y medición de calidad: - Pruebas de conformidad a requisitos funcionales. - Pruebas de integración con otros sistemas. - Pruebas de aspectos no funcionales: * Rendimiento. * Seguridad. * Integración.
    4. Documentación de componentes.
    5. Descripción funcional.
    6. Descripción de aspectos no funcionales.
    7. Descripción del proceso de instalación y despliegue: - Descripción del empaquetamiento (packaging). - Requisitos de implantación. - Parametrización y ajuste.
-MF0965_3-Desarrollo de software basado en tecnologías orientadas a componentes Solicitar módulo
Nivel: 3 Tipo: formativo Nº Horas: 210 h
Contenidos:
-UF1289-Diseño de elementos software con tecnologías basadas en componentes Solicitar unidad
Capacidades y criterios:
  1. C1: Identificar las características y arquitecturas de las tecnologías de desarrollo, orientadas a componentes para la creación y modificación de elementos software integrados en estos entornos, según estándares y normalizaciones existentes.
    1. CE 1.1 Describir las técnicas y métodos de desarrollo involucrados en el paradigma del desarrollo, orientado a componentes para la confección y modificación elementos software, según los estándares de esta tecnología.
    2. CE 1.2 Clasificar las herramientas y lenguajes orientados a objetos utilizados en el desarrollo orientado a componentes, describiendo sus características para identificar las que son específicas para la creación o modificación de los elementos software, según las especificaciones funcionales dadas.
    3. CE 1.3 Clasificar los estándares de modelos de componentes, describiendo las pasarelas para interoperar entre componentes heterogéneos, para realizar las tareas de integración de los elementos desarrollados según especificaciones funcionales y técnicas.
    4. CE 1.4 Identificar las técnicas de diagramación y documentación para el desarrollo de software basado en tecnologías orientadas a componentes, según estándares de diseño de metodologías orientadas a componentes.
    5. CE 1.5 En un caso práctico para desarrollar componentes dentro de una arquitectura dada y contando con unas especificaciones funcionales precisas: - Realizar la diagramación y documentación previa al desarrollo del componente, para optimizar los procesos de creación del componente según especificaciones recibidas. - Identificar los diferentes interfaces y técnicas utilizadas para la intercomunicación de componentes, para poder aplicarlas al desarrollo de nuevos componentes. - Definir los interfaces del componente software a desarrollar para la intercomunicación con el resto de componentes del sistema, según especificaciones técnicas de la arquitectura de componentes y necesidades funcionales. - Diseñar la estructura del componente utilizando los estándares de creación de componentes, según especificaciones técnicas de la arquitectura utilizada y necesidades funcionales. - Confeccionar la documentación del diseño realizado siguiendo los patrones, normativa y procedimientos especificados.
Contenidos:
  1. La orientación a objetos.
    1. Principios de la orientación a objetos. Comparación con la programación estructurada: - Ocultación de información (information hiding). - El tipo abstracto de datos (ADT). Encapsulado de datos. - Paso de mensajes.
    2. Conceptos básicos de orientación a objetos: - Clases: * Atributos, variables de estado y variables de clase. * Métodos. Requisitos e invariantes. * Gestión de excepciones. * Agregación de clases. - Objetos: * Creación y destrucción de objetos. * Llamada a métodos de un objeto. * Visibilidad y uso de las variables de estado. * Referencias a objetos. * Persistencia de objetos. * Optimización de memoria y recolección de basura (garbage collection). - Herencia: * Concepto de herencia. Superclases y subclases. * Herencia múltiple. * Clases abstractas. * Tipos de herencia: herencia de implementación, herencia de interfaces y de tipos y otros tipos de herencia. * Polimorfismo y enlace dinámico (dynamic binding). * Directrices para el uso correcto de la herencia. - Modularidad: * Librerías de clases. Ámbito de utilización de nombres. * Ventajas de la utilización de modulos o paquetes. - Genericidad y sobrecarga: * Concepto de genericidad. * Concepto de Sobrecarga. Tipos de sobrecarga. * Comparación entre genericidad y sobrecarga.
    3. Desarrollo orientado a objetos: - Lenguajes de desarrollo orientado a objetos de uso común. - Herramientas de desarrollo.
    4. Lenguajes de modelización en el desarrollo orientado a objetos: - El lenguaje unificado de modelado (UML). - Diagramas para la modelización de sistemas orientados a objetos.
  1. La orientación a componentes.
    1. Fundamentos conceptuales: - Definición de componente. - Comparación entre componentes y objetos. - Módulos. - Interfaces: * Tipos de interfaces. * Versionado de interfaces. * Interfaces como contratos. - Escalado de componentes. - Estado de componentes.
    2. Arquitecturas de componentes: - Basadas en objetos. Composición y uso de objetos. - Multicapa. - Basadas en middleware. - Basadas en objetos distribuidos.
    3. Diseño de componentes: - Principios de diseño de componentes: * Dependencias no cíclicas. * Principio ?open/closed?. * Reusabilidad. * Configurabilidad. * Abstracción. * Dependencias. - Técnicas de reusabilidad: * Patrones. * Librerías. * Interfaces. * Protocolos y esquemas de mensajes. * Uso de lenguajes de programación. * Estructuras y jerarquías de estructuras. * Arquitecturas de sistemas. - Modelo de componente: * Especificación de servicios: transacciones, seguridad, persistencia y acceso remoto. * Especificación de Interface. * Especificación de la implementación. * Especificación de las unidades de despliegue (modulos). - Modelos de integración de componentes: * Referencias e identidad de objetos, componentes e interfaces. * Servicios de localización. * Modelos de intercambio: objetos distribuidos, capa intermedia (Middleware) e interacción e integración mediante servicios web. * Comparación entre métodos de intercambio en las principales infraestructuras de componentes: OMG: CORBA, OMA, Java: JavaBeans, EJBs y Microsoft: COM, OLE/ActiveX, .NET - Diagramación y documentación de componentes: * Modelo de información: diagramas conceptuales, diagramas de arquitectura de componentes y diagramas de despliegue. * Modelo dinámico: diagramas de interacción y de actividad, diagramas de casos de uso y diagramas de estado.
-UF1290-Implementación e integración de elementos software con tecnologías basadas en componentes Solicitar unidad
Capacidades y criterios:
  1. C1: Construir elementos software a partir de las especificaciones de necesidades y con las condiciones de desarrollo de la tecnología de componentes utilizada.
    1. CE 1.1 Explicar los enfoques de desarrollo e implementación para la creación de componentes aplicando el principio de reutilización.
    2. CE 1.2 Describir el proceso de adaptación de un componente existente para incluirlo en la arquitectura en la que se quiere reutilizar, según especificaciones técnicas de la tecnología de componentes utilizada.
    3. CE 1.3 Enunciar las características del proceso de diseño de un nuevo componente para incluirlo en la arquitectura en la que se quiere utilizar, garantizando su futura reutilización.
    4. CE 1.4 Clasificar las herramientas de programación y depuración para optimizar la fase de desarrollo de los componentes según unas especificaciones dadas.
    5. CE 1.5 Identificar los elementos y parámetros de la interfaz del componente, para su desarrollo con herramientas y lenguajes específicos, para implementar la vía de comunicaciones con el resto de componentes según los estándares de definición de interfaces de la arquitectura.
    6. CE 1.6 Realizar los procesos de instalación del componente, comprobando que ejecuta las acciones requeridas y su disponibilidad para las aplicaciones que lo invoquen, según especificaciones técnicas de la arquitectura.
    7. CE 1.7 En un caso practico para desarrollar componentes software reutilizables, dadas unas especificaciones funcionales y técnicas: - Diseñar el nuevo componente para que cumpla las especificaciones funcionales dadas. - Comprobar que la funcionalidad del componente diseñado puede ser extendida para futuras reutilizaciones. - Implementar el componente utilizando herramientas y lenguajes orientados a objeto. - Depurar y probar el componente desarrollado utilizando las herramientas disponibles. - Documentar el componente y sus interfaces para facilitar su futura reutilización.
    8. CE 1.8 En un caso practico para desarrollar software reutilizando componentes, dadas unas especificaciones funcionales y técnicas: - Utilizar repositorios de componentes para localizar aquellos que se ajusten a las especificaciones dadas y puedan ser reutilizados. - Diseñar las modificaciones que se van a realizar sobre el componente existente para que cumpla las especificaciones dadas. - Modificar el componente utilizando herramientas y lenguajes orientados a objeto. - Depurar y probar el componente modificado utilizando las herramientas disponibles. - Documentar las modificaciones realizadas sobre el componente y sus interfaces para facilitar su futura reutilización.
    9. CE 1.9 Interpretar la documentación técnica asociada a las herramientas de programación, incluso si está editada en la lengua extranjera de uso más frecuente en el sector, utilizándola de ayuda en el desarrollo.
Contenidos:
  1. Desarrollo de componentes.
    1. Lenguajes de desarrollo de componentes.: - Comparativa con lenguajes orientados a objetos. - Lenguajes orientados a componentes: * Descripción de intefaces. * Ensamblado. * Descripción de arquitectura.
    2. Requisitos principales del desarrollo orientado a componentes: - Modularidad - Despliegue independiente. - Reemplazabilidad. - Seguridad. - Separación entre interfaz e implementación.
    3. Infraestructuras (frameworks) de componentes: - Modelos de infraestruturas de componentes: * Orientados a conexión. * Orientados a contexto. * Orientados a aspectos. - Descripción de las intraestructuras de componentes de uso común: * OMG: CORBA, OMA. * Java: JavaBeans, EJBs. * Microsoft: COM, OLE/ActiveX, .NET
    4. Métodos de desarrollo de componentes: - Uso de lenguajes orientados a objetos. - Selección de infraestructuras de componentes.
    5. Construcción de software mediante componentes: - Definición de interfaces. Lenguajes de descripción de interfaces. - Reutilización de componentes. - Técnicas de ensamblado en infraestructuras de uso común.
    6. Técnicas específicas de desarrollo: - Componentes en la capa de servidor web. Páginas dinámicas. - Componentes en la capa de servidor de aplicaciones. - Componentes en la capa de aplicación cliente: * Componentes de interfaz gráfico. * Componentes orientados a documento. - Componentes en la capa de servicios web. - Componentes para dispositivos móviles.
    7. Herramientas para el desarrollo de componentes: - Entornos integrados de desarrollo de componentes. - Configuración e instalación de herramientas de uso común: * Entorno Java. * Entorno .NET - Gestión del ciclo de vida en el desarrolo de componentes mediante herramientas de uso común: * Uso de repositorios de componentes. Registro de componentes. * Reutilización de componentes para la construcción de sistemas software. * Definición de metadatos de componente. Descriptores de interfaces. * Modelo de seguridad. * Instalación de componentes. * Depuración y prueba de componentes.
  1. Componentes distribuidos.
    1. Programación distribuida en infraestructuras de uso común: - Programación multihilo (multithreading). - Comunicaciones síncronas y asíncronas.
    2. Modelos de intercambio: - Llamadas a procedimientos remotos. - Orientados a mensajes. - Orientados a recursos.
-UF1291-Despliegue y puesta en funcionamiento de componentes software Solicitar unidad
Capacidades y criterios:
  1. C1: Aplicar los procedimientos de despliegue e integración del componente en un entorno de tecnología orientada a componentes, según especificaciones técnicas de la arquitectura.
    1. CE 1.1 Describir las técnicas disponibles para realizar el proceso de búsqueda de componentes, que satisfagan los requisitos impuestos en el diseño inicial.
    2. CE 1.2 Clasificar los métodos de evaluación y selección de componentes, basándose en una serie de requisitos impuestos por las especificaciones iniciales de diseño.
    3. CE 1.3 Realizar las pruebas estructurales para verificar que el componente seleccionado se comunica con el resto de componentes y que no produce conflictos, según criterios de calidad y seguridad dados, y del diseño preeliminar.
    4. CE 1.4 Definir los procedimientos para el despliegue y adaptación para realizar la implantación del elemento software, según requisitos del componente desarrollado y siguiendo criterios de calidad, seguridad y especificaciones de la arquitectura.
    5. CE 1.5 Describir los procesos de integración, configuración e interconexión de los componentes seleccionados, para que permitan construir la aplicación final según los criterios de calidad y seguridad especificados en el diseño inicial.
    6. CE 1.6 Monitorizar el rendimiento de los componentes desarrollados o seleccionados para asegurar su integración en el sistema, de acuerdo a criterios de calidad y seguridad.
    7. CE 1.7 Realizar la documentación del despliegue y la implantación siguiendo los patrones, normativa y procedimientos especificados.
    8. CE 1.8 En un supuesto práctico debidamente caracterizado, utilizar las herramientas de desarrollo para realizar el desarrollo y despliegue de un componente software según unas especificaciones funcionales y técnicas dadas: - Extraer la información relativa al diseño de un componente. - Codificar el componente según especificaciones funcionales y técnicas. - Realizar las pruebas estructurales según normativa y criterios de calidad establecidos. - Incorporar el despliegue, adaptación, configuración e integración del componente según especificaciones técnicas y de implantación del desarrollo. - Trazar las pruebas del componente según normativas de calidad y seguridad dadas. - Configurar la herramienta para la realización de baterías de pruebas automáticas según normativa y criterios de calidad dados. - Elaborar documentación mediante las plantillas facilitadas o incorporadas en la propia herramienta. - Generar informes de calidad y métricas, e interpretar los resultados.
Contenidos:
  1. Despliegue de componentes.
    1. Modelos de despliegue: - Diseño sin repositorio: * Diseño y ejecución sin despliegue. * Ejemplos: UML. - Diseño con repositorio sólo para el depósito de componentes: * Tipos de contenedores. * Ejemplos: EJBs, .NET, CCM, Servicios web. - Despliegue con repositorio: * Composición y depósito de componentes. * Ejemplo: JavaBean. - Diseño con repositorio: * Tipos de conectores. * Ejemplos: Koala.
  1. Selección de componentes.
    1. Tipos: - Componentes comerciales: * Sin posibilidad de modificaciones (COTS). * Con posibilidad de adaptaciones (MOTS). - Componentes de fuente abierta. - Ventajas e inconvenientes.
    2. Métodos de personalización de componentes: - Parametrización. - Uso de extensiones (plugins).
    3. Criterios de selección de componentes reutilizables: - Adaptabilidad. - Auditabilidad. - Estandarización. - Características de concurrencia. - Rendimiento. - Consumo de recursos. - Seguridad. - Características de mantenimiento y actualización.
    4. Proceso de selección de componentes: - Evaluación de componentes según requisitos. - Diseño y codificación (código de enlace): * Enlace de componentes con otros sistemas. * Integración. * Configuración. - Diseño de pruebas. - Detección de fallos. - Mantenimiento y gestión de configuraciones. - Actualización de componentes. - Métodos de selección de uso común: * CAP (COTS Acquisition Process). * RUP (Rational Unified Process).
  1. Control de calidad de componentes.
    1. Métodos de evaluación de calidad de componentes. Estándares de calidad.
    2. Categorías y métricas de evaluación.
    3. Proceso de validación y medición de calidad: - Pruebas de conformidad a requisitos funcionales. - Pruebas de integración con otros sistemas. - Pruebas de aspectos no funcionales: * Rendimiento. * Seguridad. * Integración.
    4. Documentación de componentes.
    5. Descripción funcional.
    6. Descripción de aspectos no funcionales.
    7. Descripción del proceso de instalación y despliegue: - Descripción del empaquetamiento (packaging). - Requisitos de implantación. - Parametrización y ajuste.
-MF0965_3-Desarrollo de software basado en tecnologías orientadas a componentes Solicitar módulo
Nivel: 3 Tipo: formativo Nº Horas: 210 h
Contenidos:
-UF1289-Diseño de elementos software con tecnologías basadas en componentes Solicitar unidad
Capacidades y criterios:
  1. C1: Identificar las características y arquitecturas de las tecnologías de desarrollo, orientadas a componentes para la creación y modificación de elementos software integrados en estos entornos, según estándares y normalizaciones existentes.
    1. CE 1.1 Describir las técnicas y métodos de desarrollo involucrados en el paradigma del desarrollo, orientado a componentes para la confección y modificación elementos software, según los estándares de esta tecnología.
    2. CE 1.2 Clasificar las herramientas y lenguajes orientados a objetos utilizados en el desarrollo orientado a componentes, describiendo sus características para identificar las que son específicas para la creación o modificación de los elementos software, según las especificaciones funcionales dadas.
    3. CE 1.3 Clasificar los estándares de modelos de componentes, describiendo las pasarelas para interoperar entre componentes heterogéneos, para realizar las tareas de integración de los elementos desarrollados según especificaciones funcionales y técnicas.
    4. CE 1.4 Identificar las técnicas de diagramación y documentación para el desarrollo de software basado en tecnologías orientadas a componentes, según estándares de diseño de metodologías orientadas a componentes.
    5. CE 1.5 En un caso práctico para desarrollar componentes dentro de una arquitectura dada y contando con unas especificaciones funcionales precisas: - Realizar la diagramación y documentación previa al desarrollo del componente, para optimizar los procesos de creación del componente según especificaciones recibidas. - Identificar los diferentes interfaces y técnicas utilizadas para la intercomunicación de componentes, para poder aplicarlas al desarrollo de nuevos componentes. - Definir los interfaces del componente software a desarrollar para la intercomunicación con el resto de componentes del sistema, según especificaciones técnicas de la arquitectura de componentes y necesidades funcionales. - Diseñar la estructura del componente utilizando los estándares de creación de componentes, según especificaciones técnicas de la arquitectura utilizada y necesidades funcionales. - Confeccionar la documentación del diseño realizado siguiendo los patrones, normativa y procedimientos especificados.
Contenidos:
  1. La orientación a objetos.
    1. Principios de la orientación a objetos. Comparación con la programación estructurada: - Ocultación de información (information hiding). - El tipo abstracto de datos (ADT). Encapsulado de datos. - Paso de mensajes.
    2. Conceptos básicos de orientación a objetos: - Clases: * Atributos, variables de estado y variables de clase. * Métodos. Requisitos e invariantes. * Gestión de excepciones. * Agregación de clases. - Objetos: * Creación y destrucción de objetos. * Llamada a métodos de un objeto. * Visibilidad y uso de las variables de estado. * Referencias a objetos. * Persistencia de objetos. * Optimización de memoria y recolección de basura (garbage collection). - Herencia: * Concepto de herencia. Superclases y subclases. * Herencia múltiple. * Clases abstractas. * Tipos de herencia: herencia de implementación, herencia de interfaces y de tipos y otros tipos de herencia. * Polimorfismo y enlace dinámico (dynamic binding). * Directrices para el uso correcto de la herencia. - Modularidad: * Librerías de clases. Ámbito de utilización de nombres. * Ventajas de la utilización de modulos o paquetes. - Genericidad y sobrecarga: * Concepto de genericidad. * Concepto de Sobrecarga. Tipos de sobrecarga. * Comparación entre genericidad y sobrecarga.
    3. Desarrollo orientado a objetos: - Lenguajes de desarrollo orientado a objetos de uso común. - Herramientas de desarrollo.
    4. Lenguajes de modelización en el desarrollo orientado a objetos: - El lenguaje unificado de modelado (UML). - Diagramas para la modelización de sistemas orientados a objetos.
  1. La orientación a componentes.
    1. Fundamentos conceptuales: - Definición de componente. - Comparación entre componentes y objetos. - Módulos. - Interfaces: * Tipos de interfaces. * Versionado de interfaces. * Interfaces como contratos. - Escalado de componentes. - Estado de componentes.
    2. Arquitecturas de componentes: - Basadas en objetos. Composición y uso de objetos. - Multicapa. - Basadas en middleware. - Basadas en objetos distribuidos.
    3. Diseño de componentes: - Principios de diseño de componentes: * Dependencias no cíclicas. * Principio ?open/closed?. * Reusabilidad. * Configurabilidad. * Abstracción. * Dependencias. - Técnicas de reusabilidad: * Patrones. * Librerías. * Interfaces. * Protocolos y esquemas de mensajes. * Uso de lenguajes de programación. * Estructuras y jerarquías de estructuras. * Arquitecturas de sistemas. - Modelo de componente: * Especificación de servicios: transacciones, seguridad, persistencia y acceso remoto. * Especificación de Interface. * Especificación de la implementación. * Especificación de las unidades de despliegue (modulos). - Modelos de integración de componentes: * Referencias e identidad de objetos, componentes e interfaces. * Servicios de localización. * Modelos de intercambio: objetos distribuidos, capa intermedia (Middleware) e interacción e integración mediante servicios web. * Comparación entre métodos de intercambio en las principales infraestructuras de componentes: OMG: CORBA, OMA, Java: JavaBeans, EJBs y Microsoft: COM, OLE/ActiveX, .NET - Diagramación y documentación de componentes: * Modelo de información: diagramas conceptuales, diagramas de arquitectura de componentes y diagramas de despliegue. * Modelo dinámico: diagramas de interacción y de actividad, diagramas de casos de uso y diagramas de estado.
-UF1290-Implementación e integración de elementos software con tecnologías basadas en componentes Solicitar unidad
Capacidades y criterios:
  1. C1: Construir elementos software a partir de las especificaciones de necesidades y con las condiciones de desarrollo de la tecnología de componentes utilizada.
    1. CE 1.1 Explicar los enfoques de desarrollo e implementación para la creación de componentes aplicando el principio de reutilización.
    2. CE 1.2 Describir el proceso de adaptación de un componente existente para incluirlo en la arquitectura en la que se quiere reutilizar, según especificaciones técnicas de la tecnología de componentes utilizada.
    3. CE 1.3 Enunciar las características del proceso de diseño de un nuevo componente para incluirlo en la arquitectura en la que se quiere utilizar, garantizando su futura reutilización.
    4. CE 1.4 Clasificar las herramientas de programación y depuración para optimizar la fase de desarrollo de los componentes según unas especificaciones dadas.
    5. CE 1.5 Identificar los elementos y parámetros de la interfaz del componente, para su desarrollo con herramientas y lenguajes específicos, para implementar la vía de comunicaciones con el resto de componentes según los estándares de definición de interfaces de la arquitectura.
    6. CE 1.6 Realizar los procesos de instalación del componente, comprobando que ejecuta las acciones requeridas y su disponibilidad para las aplicaciones que lo invoquen, según especificaciones técnicas de la arquitectura.
    7. CE 1.7 En un caso practico para desarrollar componentes software reutilizables, dadas unas especificaciones funcionales y técnicas: - Diseñar el nuevo componente para que cumpla las especificaciones funcionales dadas. - Comprobar que la funcionalidad del componente diseñado puede ser extendida para futuras reutilizaciones. - Implementar el componente utilizando herramientas y lenguajes orientados a objeto. - Depurar y probar el componente desarrollado utilizando las herramientas disponibles. - Documentar el componente y sus interfaces para facilitar su futura reutilización.
    8. CE 1.8 En un caso practico para desarrollar software reutilizando componentes, dadas unas especificaciones funcionales y técnicas: - Utilizar repositorios de componentes para localizar aquellos que se ajusten a las especificaciones dadas y puedan ser reutilizados. - Diseñar las modificaciones que se van a realizar sobre el componente existente para que cumpla las especificaciones dadas. - Modificar el componente utilizando herramientas y lenguajes orientados a objeto. - Depurar y probar el componente modificado utilizando las herramientas disponibles. - Documentar las modificaciones realizadas sobre el componente y sus interfaces para facilitar su futura reutilización.
    9. CE 1.9 Interpretar la documentación técnica asociada a las herramientas de programación, incluso si está editada en la lengua extranjera de uso más frecuente en el sector, utilizándola de ayuda en el desarrollo.
Contenidos:
  1. Desarrollo de componentes.
    1. Lenguajes de desarrollo de componentes.: - Comparativa con lenguajes orientados a objetos. - Lenguajes orientados a componentes: * Descripción de intefaces. * Ensamblado. * Descripción de arquitectura.
    2. Requisitos principales del desarrollo orientado a componentes: - Modularidad - Despliegue independiente. - Reemplazabilidad. - Seguridad. - Separación entre interfaz e implementación.
    3. Infraestructuras (frameworks) de componentes: - Modelos de infraestruturas de componentes: * Orientados a conexión. * Orientados a contexto. * Orientados a aspectos. - Descripción de las intraestructuras de componentes de uso común: * OMG: CORBA, OMA. * Java: JavaBeans, EJBs. * Microsoft: COM, OLE/ActiveX, .NET
    4. Métodos de desarrollo de componentes: - Uso de lenguajes orientados a objetos. - Selección de infraestructuras de componentes.
    5. Construcción de software mediante componentes: - Definición de interfaces. Lenguajes de descripción de interfaces. - Reutilización de componentes. - Técnicas de ensamblado en infraestructuras de uso común.
    6. Técnicas específicas de desarrollo: - Componentes en la capa de servidor web. Páginas dinámicas. - Componentes en la capa de servidor de aplicaciones. - Componentes en la capa de aplicación cliente: * Componentes de interfaz gráfico. * Componentes orientados a documento. - Componentes en la capa de servicios web. - Componentes para dispositivos móviles.
    7. Herramientas para el desarrollo de componentes: - Entornos integrados de desarrollo de componentes. - Configuración e instalación de herramientas de uso común: * Entorno Java. * Entorno .NET - Gestión del ciclo de vida en el desarrolo de componentes mediante herramientas de uso común: * Uso de repositorios de componentes. Registro de componentes. * Reutilización de componentes para la construcción de sistemas software. * Definición de metadatos de componente. Descriptores de interfaces. * Modelo de seguridad. * Instalación de componentes. * Depuración y prueba de componentes.
  1. Componentes distribuidos.
    1. Programación distribuida en infraestructuras de uso común: - Programación multihilo (multithreading). - Comunicaciones síncronas y asíncronas.
    2. Modelos de intercambio: - Llamadas a procedimientos remotos. - Orientados a mensajes. - Orientados a recursos.
-UF1291-Despliegue y puesta en funcionamiento de componentes software Solicitar unidad
Capacidades y criterios:
  1. C1: Aplicar los procedimientos de despliegue e integración del componente en un entorno de tecnología orientada a componentes, según especificaciones técnicas de la arquitectura.
    1. CE 1.1 Describir las técnicas disponibles para realizar el proceso de búsqueda de componentes, que satisfagan los requisitos impuestos en el diseño inicial.
    2. CE 1.2 Clasificar los métodos de evaluación y selección de componentes, basándose en una serie de requisitos impuestos por las especificaciones iniciales de diseño.
    3. CE 1.3 Realizar las pruebas estructurales para verificar que el componente seleccionado se comunica con el resto de componentes y que no produce conflictos, según criterios de calidad y seguridad dados, y del diseño preeliminar.
    4. CE 1.4 Definir los procedimientos para el despliegue y adaptación para realizar la implantación del elemento software, según requisitos del componente desarrollado y siguiendo criterios de calidad, seguridad y especificaciones de la arquitectura.
    5. CE 1.5 Describir los procesos de integración, configuración e interconexión de los componentes seleccionados, para que permitan construir la aplicación final según los criterios de calidad y seguridad especificados en el diseño inicial.
    6. CE 1.6 Monitorizar el rendimiento de los componentes desarrollados o seleccionados para asegurar su integración en el sistema, de acuerdo a criterios de calidad y seguridad.
    7. CE 1.7 Realizar la documentación del despliegue y la implantación siguiendo los patrones, normativa y procedimientos especificados.
    8. CE 1.8 En un supuesto práctico debidamente caracterizado, utilizar las herramientas de desarrollo para realizar el desarrollo y despliegue de un componente software según unas especificaciones funcionales y técnicas dadas: - Extraer la información relativa al diseño de un componente. - Codificar el componente según especificaciones funcionales y técnicas. - Realizar las pruebas estructurales según normativa y criterios de calidad establecidos. - Incorporar el despliegue, adaptación, configuración e integración del componente según especificaciones técnicas y de implantación del desarrollo. - Trazar las pruebas del componente según normativas de calidad y seguridad dadas. - Configurar la herramienta para la realización de baterías de pruebas automáticas según normativa y criterios de calidad dados. - Elaborar documentación mediante las plantillas facilitadas o incorporadas en la propia herramienta. - Generar informes de calidad y métricas, e interpretar los resultados.
Contenidos:
  1. Despliegue de componentes.
    1. Modelos de despliegue: - Diseño sin repositorio: * Diseño y ejecución sin despliegue. * Ejemplos: UML. - Diseño con repositorio sólo para el depósito de componentes: * Tipos de contenedores. * Ejemplos: EJBs, .NET, CCM, Servicios web. - Despliegue con repositorio: * Composición y depósito de componentes. * Ejemplo: JavaBean. - Diseño con repositorio: * Tipos de conectores. * Ejemplos: Koala.
  1. Selección de componentes.
    1. Tipos: - Componentes comerciales: * Sin posibilidad de modificaciones (COTS). * Con posibilidad de adaptaciones (MOTS). - Componentes de fuente abierta. - Ventajas e inconvenientes.
    2. Métodos de personalización de componentes: - Parametrización. - Uso de extensiones (plugins).
    3. Criterios de selección de componentes reutilizables: - Adaptabilidad. - Auditabilidad. - Estandarización. - Características de concurrencia. - Rendimiento. - Consumo de recursos. - Seguridad. - Características de mantenimiento y actualización.
    4. Proceso de selección de componentes: - Evaluación de componentes según requisitos. - Diseño y codificación (código de enlace): * Enlace de componentes con otros sistemas. * Integración. * Configuración. - Diseño de pruebas. - Detección de fallos. - Mantenimiento y gestión de configuraciones. - Actualización de componentes. - Métodos de selección de uso común: * CAP (COTS Acquisition Process). * RUP (Rational Unified Process).
  1. Control de calidad de componentes.
    1. Métodos de evaluación de calidad de componentes. Estándares de calidad.
    2. Categorías y métricas de evaluación.
    3. Proceso de validación y medición de calidad: - Pruebas de conformidad a requisitos funcionales. - Pruebas de integración con otros sistemas. - Pruebas de aspectos no funcionales: * Rendimiento. * Seguridad. * Integración.
    4. Documentación de componentes.
    5. Descripción funcional.
    6. Descripción de aspectos no funcionales.
    7. Descripción del proceso de instalación y despliegue: - Descripción del empaquetamiento (packaging). - Requisitos de implantación. - Parametrización y ajuste.
-MF0965_3-Desarrollo de software basado en tecnologías orientadas a componentes Solicitar módulo
Nivel: 3 Tipo: formativo Nº Horas: 210 h
Contenidos:
-UF1289-Diseño de elementos software con tecnologías basadas en componentes Solicitar unidad
Capacidades y criterios:
  1. C1: Identificar las características y arquitecturas de las tecnologías de desarrollo, orientadas a componentes para la creación y modificación de elementos software integrados en estos entornos, según estándares y normalizaciones existentes.
    1. CE 1.1 Describir las técnicas y métodos de desarrollo involucrados en el paradigma del desarrollo, orientado a componentes para la confección y modificación elementos software, según los estándares de esta tecnología.
    2. CE 1.2 Clasificar las herramientas y lenguajes orientados a objetos utilizados en el desarrollo orientado a componentes, describiendo sus características para identificar las que son específicas para la creación o modificación de los elementos software, según las especificaciones funcionales dadas.
    3. CE 1.3 Clasificar los estándares de modelos de componentes, describiendo las pasarelas para interoperar entre componentes heterogéneos, para realizar las tareas de integración de los elementos desarrollados según especificaciones funcionales y técnicas.
    4. CE 1.4 Identificar las técnicas de diagramación y documentación para el desarrollo de software basado en tecnologías orientadas a componentes, según estándares de diseño de metodologías orientadas a componentes.
    5. CE 1.5 En un caso práctico para desarrollar componentes dentro de una arquitectura dada y contando con unas especificaciones funcionales precisas: - Realizar la diagramación y documentación previa al desarrollo del componente, para optimizar los procesos de creación del componente según especificaciones recibidas. - Identificar los diferentes interfaces y técnicas utilizadas para la intercomunicación de componentes, para poder aplicarlas al desarrollo de nuevos componentes. - Definir los interfaces del componente software a desarrollar para la intercomunicación con el resto de componentes del sistema, según especificaciones técnicas de la arquitectura de componentes y necesidades funcionales. - Diseñar la estructura del componente utilizando los estándares de creación de componentes, según especificaciones técnicas de la arquitectura utilizada y necesidades funcionales. - Confeccionar la documentación del diseño realizado siguiendo los patrones, normativa y procedimientos especificados.
Contenidos:
  1. La orientación a objetos.
    1. Principios de la orientación a objetos. Comparación con la programación estructurada: - Ocultación de información (information hiding). - El tipo abstracto de datos (ADT). Encapsulado de datos. - Paso de mensajes.
    2. Conceptos básicos de orientación a objetos: - Clases: * Atributos, variables de estado y variables de clase. * Métodos. Requisitos e invariantes. * Gestión de excepciones. * Agregación de clases. - Objetos: * Creación y destrucción de objetos. * Llamada a métodos de un objeto. * Visibilidad y uso de las variables de estado. * Referencias a objetos. * Persistencia de objetos. * Optimización de memoria y recolección de basura (garbage collection). - Herencia: * Concepto de herencia. Superclases y subclases. * Herencia múltiple. * Clases abstractas. * Tipos de herencia: herencia de implementación, herencia de interfaces y de tipos y otros tipos de herencia. * Polimorfismo y enlace dinámico (dynamic binding). * Directrices para el uso correcto de la herencia. - Modularidad: * Librerías de clases. Ámbito de utilización de nombres. * Ventajas de la utilización de modulos o paquetes. - Genericidad y sobrecarga: * Concepto de genericidad. * Concepto de Sobrecarga. Tipos de sobrecarga. * Comparación entre genericidad y sobrecarga.
    3. Desarrollo orientado a objetos: - Lenguajes de desarrollo orientado a objetos de uso común. - Herramientas de desarrollo.
    4. Lenguajes de modelización en el desarrollo orientado a objetos: - El lenguaje unificado de modelado (UML). - Diagramas para la modelización de sistemas orientados a objetos.
  1. La orientación a componentes.
    1. Fundamentos conceptuales: - Definición de componente. - Comparación entre componentes y objetos. - Módulos. - Interfaces: * Tipos de interfaces. * Versionado de interfaces. * Interfaces como contratos. - Escalado de componentes. - Estado de componentes.
    2. Arquitecturas de componentes: - Basadas en objetos. Composición y uso de objetos. - Multicapa. - Basadas en middleware. - Basadas en objetos distribuidos.
    3. Diseño de componentes: - Principios de diseño de componentes: * Dependencias no cíclicas. * Principio ?open/closed?. * Reusabilidad. * Configurabilidad. * Abstracción. * Dependencias. - Técnicas de reusabilidad: * Patrones. * Librerías. * Interfaces. * Protocolos y esquemas de mensajes. * Uso de lenguajes de programación. * Estructuras y jerarquías de estructuras. * Arquitecturas de sistemas. - Modelo de componente: * Especificación de servicios: transacciones, seguridad, persistencia y acceso remoto. * Especificación de Interface. * Especificación de la implementación. * Especificación de las unidades de despliegue (modulos). - Modelos de integración de componentes: * Referencias e identidad de objetos, componentes e interfaces. * Servicios de localización. * Modelos de intercambio: objetos distribuidos, capa intermedia (Middleware) e interacción e integración mediante servicios web. * Comparación entre métodos de intercambio en las principales infraestructuras de componentes: OMG: CORBA, OMA, Java: JavaBeans, EJBs y Microsoft: COM, OLE/ActiveX, .NET - Diagramación y documentación de componentes: * Modelo de información: diagramas conceptuales, diagramas de arquitectura de componentes y diagramas de despliegue. * Modelo dinámico: diagramas de interacción y de actividad, diagramas de casos de uso y diagramas de estado.
-UF1290-Implementación e integración de elementos software con tecnologías basadas en componentes Solicitar unidad
Capacidades y criterios:
  1. C1: Construir elementos software a partir de las especificaciones de necesidades y con las condiciones de desarrollo de la tecnología de componentes utilizada.
    1. CE 1.1 Explicar los enfoques de desarrollo e implementación para la creación de componentes aplicando el principio de reutilización.
    2. CE 1.2 Describir el proceso de adaptación de un componente existente para incluirlo en la arquitectura en la que se quiere reutilizar, según especificaciones técnicas de la tecnología de componentes utilizada.
    3. CE 1.3 Enunciar las características del proceso de diseño de un nuevo componente para incluirlo en la arquitectura en la que se quiere utilizar, garantizando su futura reutilización.
    4. CE 1.4 Clasificar las herramientas de programación y depuración para optimizar la fase de desarrollo de los componentes según unas especificaciones dadas.
    5. CE 1.5 Identificar los elementos y parámetros de la interfaz del componente, para su desarrollo con herramientas y lenguajes específicos, para implementar la vía de comunicaciones con el resto de componentes según los estándares de definición de interfaces de la arquitectura.
    6. CE 1.6 Realizar los procesos de instalación del componente, comprobando que ejecuta las acciones requeridas y su disponibilidad para las aplicaciones que lo invoquen, según especificaciones técnicas de la arquitectura.
    7. CE 1.7 En un caso practico para desarrollar componentes software reutilizables, dadas unas especificaciones funcionales y técnicas: - Diseñar el nuevo componente para que cumpla las especificaciones funcionales dadas. - Comprobar que la funcionalidad del componente diseñado puede ser extendida para futuras reutilizaciones. - Implementar el componente utilizando herramientas y lenguajes orientados a objeto. - Depurar y probar el componente desarrollado utilizando las herramientas disponibles. - Documentar el componente y sus interfaces para facilitar su futura reutilización.
    8. CE 1.8 En un caso practico para desarrollar software reutilizando componentes, dadas unas especificaciones funcionales y técnicas: - Utilizar repositorios de componentes para localizar aquellos que se ajusten a las especificaciones dadas y puedan ser reutilizados. - Diseñar las modificaciones que se van a realizar sobre el componente existente para que cumpla las especificaciones dadas. - Modificar el componente utilizando herramientas y lenguajes orientados a objeto. - Depurar y probar el componente modificado utilizando las herramientas disponibles. - Documentar las modificaciones realizadas sobre el componente y sus interfaces para facilitar su futura reutilización.
    9. CE 1.9 Interpretar la documentación técnica asociada a las herramientas de programación, incluso si está editada en la lengua extranjera de uso más frecuente en el sector, utilizándola de ayuda en el desarrollo.
Contenidos:
  1. Desarrollo de componentes.
    1. Lenguajes de desarrollo de componentes.: - Comparativa con lenguajes orientados a objetos. - Lenguajes orientados a componentes: * Descripción de intefaces. * Ensamblado. * Descripción de arquitectura.
    2. Requisitos principales del desarrollo orientado a componentes: - Modularidad - Despliegue independiente. - Reemplazabilidad. - Seguridad. - Separación entre interfaz e implementación.
    3. Infraestructuras (frameworks) de componentes: - Modelos de infraestruturas de componentes: * Orientados a conexión. * Orientados a contexto. * Orientados a aspectos. - Descripción de las intraestructuras de componentes de uso común: * OMG: CORBA, OMA. * Java: JavaBeans, EJBs. * Microsoft: COM, OLE/ActiveX, .NET
    4. Métodos de desarrollo de componentes: - Uso de lenguajes orientados a objetos. - Selección de infraestructuras de componentes.
    5. Construcción de software mediante componentes: - Definición de interfaces. Lenguajes de descripción de interfaces. - Reutilización de componentes. - Técnicas de ensamblado en infraestructuras de uso común.
    6. Técnicas específicas de desarrollo: - Componentes en la capa de servidor web. Páginas dinámicas. - Componentes en la capa de servidor de aplicaciones. - Componentes en la capa de aplicación cliente: * Componentes de interfaz gráfico. * Componentes orientados a documento. - Componentes en la capa de servicios web. - Componentes para dispositivos móviles.
    7. Herramientas para el desarrollo de componentes: - Entornos integrados de desarrollo de componentes. - Configuración e instalación de herramientas de uso común: * Entorno Java. * Entorno .NET - Gestión del ciclo de vida en el desarrolo de componentes mediante herramientas de uso común: * Uso de repositorios de componentes. Registro de componentes. * Reutilización de componentes para la construcción de sistemas software. * Definición de metadatos de componente. Descriptores de interfaces. * Modelo de seguridad. * Instalación de componentes. * Depuración y prueba de componentes.
  1. Componentes distribuidos.
    1. Programación distribuida en infraestructuras de uso común: - Programación multihilo (multithreading). - Comunicaciones síncronas y asíncronas.
    2. Modelos de intercambio: - Llamadas a procedimientos remotos. - Orientados a mensajes. - Orientados a recursos.
-UF1291-Despliegue y puesta en funcionamiento de componentes software Solicitar unidad
Capacidades y criterios:
  1. C1: Aplicar los procedimientos de despliegue e integración del componente en un entorno de tecnología orientada a componentes, según especificaciones técnicas de la arquitectura.
    1. CE 1.1 Describir las técnicas disponibles para realizar el proceso de búsqueda de componentes, que satisfagan los requisitos impuestos en el diseño inicial.
    2. CE 1.2 Clasificar los métodos de evaluación y selección de componentes, basándose en una serie de requisitos impuestos por las especificaciones iniciales de diseño.
    3. CE 1.3 Realizar las pruebas estructurales para verificar que el componente seleccionado se comunica con el resto de componentes y que no produce conflictos, según criterios de calidad y seguridad dados, y del diseño preeliminar.
    4. CE 1.4 Definir los procedimientos para el despliegue y adaptación para realizar la implantación del elemento software, según requisitos del componente desarrollado y siguiendo criterios de calidad, seguridad y especificaciones de la arquitectura.
    5. CE 1.5 Describir los procesos de integración, configuración e interconexión de los componentes seleccionados, para que permitan construir la aplicación final según los criterios de calidad y seguridad especificados en el diseño inicial.
    6. CE 1.6 Monitorizar el rendimiento de los componentes desarrollados o seleccionados para asegurar su integración en el sistema, de acuerdo a criterios de calidad y seguridad.
    7. CE 1.7 Realizar la documentación del despliegue y la implantación siguiendo los patrones, normativa y procedimientos especificados.
    8. CE 1.8 En un supuesto práctico debidamente caracterizado, utilizar las herramientas de desarrollo para realizar el desarrollo y despliegue de un componente software según unas especificaciones funcionales y técnicas dadas: - Extraer la información relativa al diseño de un componente. - Codificar el componente según especificaciones funcionales y técnicas. - Realizar las pruebas estructurales según normativa y criterios de calidad establecidos. - Incorporar el despliegue, adaptación, configuración e integración del componente según especificaciones técnicas y de implantación del desarrollo. - Trazar las pruebas del componente según normativas de calidad y seguridad dadas. - Configurar la herramienta para la realización de baterías de pruebas automáticas según normativa y criterios de calidad dados. - Elaborar documentación mediante las plantillas facilitadas o incorporadas en la propia herramienta. - Generar informes de calidad y métricas, e interpretar los resultados.
Contenidos:
  1. Despliegue de componentes.
    1. Modelos de despliegue: - Diseño sin repositorio: * Diseño y ejecución sin despliegue. * Ejemplos: UML. - Diseño con repositorio sólo para el depósito de componentes: * Tipos de contenedores. * Ejemplos: EJBs, .NET, CCM, Servicios web. - Despliegue con repositorio: * Composición y depósito de componentes. * Ejemplo: JavaBean. - Diseño con repositorio: * Tipos de conectores. * Ejemplos: Koala.
  1. Selección de componentes.
    1. Tipos: - Componentes comerciales: * Sin posibilidad de modificaciones (COTS). * Con posibilidad de adaptaciones (MOTS). - Componentes de fuente abierta. - Ventajas e inconvenientes.
    2. Métodos de personalización de componentes: - Parametrización. - Uso de extensiones (plugins).
    3. Criterios de selección de componentes reutilizables: - Adaptabilidad. - Auditabilidad. - Estandarización. - Características de concurrencia. - Rendimiento. - Consumo de recursos. - Seguridad. - Características de mantenimiento y actualización.
    4. Proceso de selección de componentes: - Evaluación de componentes según requisitos. - Diseño y codificación (código de enlace): * Enlace de componentes con otros sistemas. * Integración. * Configuración. - Diseño de pruebas. - Detección de fallos. - Mantenimiento y gestión de configuraciones. - Actualización de componentes. - Métodos de selección de uso común: * CAP (COTS Acquisition Process). * RUP (Rational Unified Process).
  1. Control de calidad de componentes.
    1. Métodos de evaluación de calidad de componentes. Estándares de calidad.
    2. Categorías y métricas de evaluación.
    3. Proceso de validación y medición de calidad: - Pruebas de conformidad a requisitos funcionales. - Pruebas de integración con otros sistemas. - Pruebas de aspectos no funcionales: * Rendimiento. * Seguridad. * Integración.
    4. Documentación de componentes.
    5. Descripción funcional.
    6. Descripción de aspectos no funcionales.
    7. Descripción del proceso de instalación y despliegue: - Descripción del empaquetamiento (packaging). - Requisitos de implantación. - Parametrización y ajuste.
-MF0965_3-Desarrollo de software basado en tecnologías orientadas a componentes Solicitar módulo
Nivel: 3 Tipo: formativo Nº Horas: 210 h
Contenidos:
-UF1289-Diseño de elementos software con tecnologías basadas en componentes Solicitar unidad
Capacidades y criterios:
  1. C1: Identificar las características y arquitecturas de las tecnologías de desarrollo, orientadas a componentes para la creación y modificación de elementos software integrados en estos entornos, según estándares y normalizaciones existentes.
    1. CE 1.1 Describir las técnicas y métodos de desarrollo involucrados en el paradigma del desarrollo, orientado a componentes para la confección y modificación elementos software, según los estándares de esta tecnología.
    2. CE 1.2 Clasificar las herramientas y lenguajes orientados a objetos utilizados en el desarrollo orientado a componentes, describiendo sus características para identificar las que son específicas para la creación o modificación de los elementos software, según las especificaciones funcionales dadas.
    3. CE 1.3 Clasificar los estándares de modelos de componentes, describiendo las pasarelas para interoperar entre componentes heterogéneos, para realizar las tareas de integración de los elementos desarrollados según especificaciones funcionales y técnicas.
    4. CE 1.4 Identificar las técnicas de diagramación y documentación para el desarrollo de software basado en tecnologías orientadas a componentes, según estándares de diseño de metodologías orientadas a componentes.
    5. CE 1.5 En un caso práctico para desarrollar componentes dentro de una arquitectura dada y contando con unas especificaciones funcionales precisas: - Realizar la diagramación y documentación previa al desarrollo del componente, para optimizar los procesos de creación del componente según especificaciones recibidas. - Identificar los diferentes interfaces y técnicas utilizadas para la intercomunicación de componentes, para poder aplicarlas al desarrollo de nuevos componentes. - Definir los interfaces del componente software a desarrollar para la intercomunicación con el resto de componentes del sistema, según especificaciones técnicas de la arquitectura de componentes y necesidades funcionales. - Diseñar la estructura del componente utilizando los estándares de creación de componentes, según especificaciones técnicas de la arquitectura utilizada y necesidades funcionales. - Confeccionar la documentación del diseño realizado siguiendo los patrones, normativa y procedimientos especificados.
Contenidos:
  1. La orientación a objetos.
    1. Principios de la orientación a objetos. Comparación con la programación estructurada: - Ocultación de información (information hiding). - El tipo abstracto de datos (ADT). Encapsulado de datos. - Paso de mensajes.
    2. Conceptos básicos de orientación a objetos: - Clases: * Atributos, variables de estado y variables de clase. * Métodos. Requisitos e invariantes. * Gestión de excepciones. * Agregación de clases. - Objetos: * Creación y destrucción de objetos. * Llamada a métodos de un objeto. * Visibilidad y uso de las variables de estado. * Referencias a objetos. * Persistencia de objetos. * Optimización de memoria y recolección de basura (garbage collection). - Herencia: * Concepto de herencia. Superclases y subclases. * Herencia múltiple. * Clases abstractas. * Tipos de herencia: herencia de implementación, herencia de interfaces y de tipos y otros tipos de herencia. * Polimorfismo y enlace dinámico (dynamic binding). * Directrices para el uso correcto de la herencia. - Modularidad: * Librerías de clases. Ámbito de utilización de nombres. * Ventajas de la utilización de modulos o paquetes. - Genericidad y sobrecarga: * Concepto de genericidad. * Concepto de Sobrecarga. Tipos de sobrecarga. * Comparación entre genericidad y sobrecarga.
    3. Desarrollo orientado a objetos: - Lenguajes de desarrollo orientado a objetos de uso común. - Herramientas de desarrollo.
    4. Lenguajes de modelización en el desarrollo orientado a objetos: - El lenguaje unificado de modelado (UML). - Diagramas para la modelización de sistemas orientados a objetos.
  1. La orientación a componentes.
    1. Fundamentos conceptuales: - Definición de componente. - Comparación entre componentes y objetos. - Módulos. - Interfaces: * Tipos de interfaces. * Versionado de interfaces. * Interfaces como contratos. - Escalado de componentes. - Estado de componentes.
    2. Arquitecturas de componentes: - Basadas en objetos. Composición y uso de objetos. - Multicapa. - Basadas en middleware. - Basadas en objetos distribuidos.
    3. Diseño de componentes: - Principios de diseño de componentes: * Dependencias no cíclicas. * Principio ?open/closed?. * Reusabilidad. * Configurabilidad. * Abstracción. * Dependencias. - Técnicas de reusabilidad: * Patrones. * Librerías. * Interfaces. * Protocolos y esquemas de mensajes. * Uso de lenguajes de programación. * Estructuras y jerarquías de estructuras. * Arquitecturas de sistemas. - Modelo de componente: * Especificación de servicios: transacciones, seguridad, persistencia y acceso remoto. * Especificación de Interface. * Especificación de la implementación. * Especificación de las unidades de despliegue (modulos). - Modelos de integración de componentes: * Referencias e identidad de objetos, componentes e interfaces. * Servicios de localización. * Modelos de intercambio: objetos distribuidos, capa intermedia (Middleware) e interacción e integración mediante servicios web. * Comparación entre métodos de intercambio en las principales infraestructuras de componentes: OMG: CORBA, OMA, Java: JavaBeans, EJBs y Microsoft: COM, OLE/ActiveX, .NET - Diagramación y documentación de componentes: * Modelo de información: diagramas conceptuales, diagramas de arquitectura de componentes y diagramas de despliegue. * Modelo dinámico: diagramas de interacción y de actividad, diagramas de casos de uso y diagramas de estado.
-UF1290-Implementación e integración de elementos software con tecnologías basadas en componentes Solicitar unidad
Capacidades y criterios:
  1. C1: Construir elementos software a partir de las especificaciones de necesidades y con las condiciones de desarrollo de la tecnología de componentes utilizada.
    1. CE 1.1 Explicar los enfoques de desarrollo e implementación para la creación de componentes aplicando el principio de reutilización.
    2. CE 1.2 Describir el proceso de adaptación de un componente existente para incluirlo en la arquitectura en la que se quiere reutilizar, según especificaciones técnicas de la tecnología de componentes utilizada.
    3. CE 1.3 Enunciar las características del proceso de diseño de un nuevo componente para incluirlo en la arquitectura en la que se quiere utilizar, garantizando su futura reutilización.
    4. CE 1.4 Clasificar las herramientas de programación y depuración para optimizar la fase de desarrollo de los componentes según unas especificaciones dadas.
    5. CE 1.5 Identificar los elementos y parámetros de la interfaz del componente, para su desarrollo con herramientas y lenguajes específicos, para implementar la vía de comunicaciones con el resto de componentes según los estándares de definición de interfaces de la arquitectura.
    6. CE 1.6 Realizar los procesos de instalación del componente, comprobando que ejecuta las acciones requeridas y su disponibilidad para las aplicaciones que lo invoquen, según especificaciones técnicas de la arquitectura.
    7. CE 1.7 En un caso practico para desarrollar componentes software reutilizables, dadas unas especificaciones funcionales y técnicas: - Diseñar el nuevo componente para que cumpla las especificaciones funcionales dadas. - Comprobar que la funcionalidad del componente diseñado puede ser extendida para futuras reutilizaciones. - Implementar el componente utilizando herramientas y lenguajes orientados a objeto. - Depurar y probar el componente desarrollado utilizando las herramientas disponibles. - Documentar el componente y sus interfaces para facilitar su futura reutilización.
    8. CE 1.8 En un caso practico para desarrollar software reutilizando componentes, dadas unas especificaciones funcionales y técnicas: - Utilizar repositorios de componentes para localizar aquellos que se ajusten a las especificaciones dadas y puedan ser reutilizados. - Diseñar las modificaciones que se van a realizar sobre el componente existente para que cumpla las especificaciones dadas. - Modificar el componente utilizando herramientas y lenguajes orientados a objeto. - Depurar y probar el componente modificado utilizando las herramientas disponibles. - Documentar las modificaciones realizadas sobre el componente y sus interfaces para facilitar su futura reutilización.
    9. CE 1.9 Interpretar la documentación técnica asociada a las herramientas de programación, incluso si está editada en la lengua extranjera de uso más frecuente en el sector, utilizándola de ayuda en el desarrollo.
Contenidos:
  1. Desarrollo de componentes.
    1. Lenguajes de desarrollo de componentes.: - Comparativa con lenguajes orientados a objetos. - Lenguajes orientados a componentes: * Descripción de intefaces. * Ensamblado. * Descripción de arquitectura.
    2. Requisitos principales del desarrollo orientado a componentes: - Modularidad - Despliegue independiente. - Reemplazabilidad. - Seguridad. - Separación entre interfaz e implementación.
    3. Infraestructuras (frameworks) de componentes: - Modelos de infraestruturas de componentes: * Orientados a conexión. * Orientados a contexto. * Orientados a aspectos. - Descripción de las intraestructuras de componentes de uso común: * OMG: CORBA, OMA. * Java: JavaBeans, EJBs. * Microsoft: COM, OLE/ActiveX, .NET
    4. Métodos de desarrollo de componentes: - Uso de lenguajes orientados a objetos. - Selección de infraestructuras de componentes.
    5. Construcción de software mediante componentes: - Definición de interfaces. Lenguajes de descripción de interfaces. - Reutilización de componentes. - Técnicas de ensamblado en infraestructuras de uso común.
    6. Técnicas específicas de desarrollo: - Componentes en la capa de servidor web. Páginas dinámicas. - Componentes en la capa de servidor de aplicaciones. - Componentes en la capa de aplicación cliente: * Componentes de interfaz gráfico. * Componentes orientados a documento. - Componentes en la capa de servicios web. - Componentes para dispositivos móviles.
    7. Herramientas para el desarrollo de componentes: - Entornos integrados de desarrollo de componentes. - Configuración e instalación de herramientas de uso común: * Entorno Java. * Entorno .NET - Gestión del ciclo de vida en el desarrolo de componentes mediante herramientas de uso común: * Uso de repositorios de componentes. Registro de componentes. * Reutilización de componentes para la construcción de sistemas software. * Definición de metadatos de componente. Descriptores de interfaces. * Modelo de seguridad. * Instalación de componentes. * Depuración y prueba de componentes.
  1. Componentes distribuidos.
    1. Programación distribuida en infraestructuras de uso común: - Programación multihilo (multithreading). - Comunicaciones síncronas y asíncronas.
    2. Modelos de intercambio: - Llamadas a procedimientos remotos. - Orientados a mensajes. - Orientados a recursos.
-UF1291-Despliegue y puesta en funcionamiento de componentes software Solicitar unidad
Capacidades y criterios:
  1. C1: Aplicar los procedimientos de despliegue e integración del componente en un entorno de tecnología orientada a componentes, según especificaciones técnicas de la arquitectura.
    1. CE 1.1 Describir las técnicas disponibles para realizar el proceso de búsqueda de componentes, que satisfagan los requisitos impuestos en el diseño inicial.
    2. CE 1.2 Clasificar los métodos de evaluación y selección de componentes, basándose en una serie de requisitos impuestos por las especificaciones iniciales de diseño.
    3. CE 1.3 Realizar las pruebas estructurales para verificar que el componente seleccionado se comunica con el resto de componentes y que no produce conflictos, según criterios de calidad y seguridad dados, y del diseño preeliminar.
    4. CE 1.4 Definir los procedimientos para el despliegue y adaptación para realizar la implantación del elemento software, según requisitos del componente desarrollado y siguiendo criterios de calidad, seguridad y especificaciones de la arquitectura.
    5. CE 1.5 Describir los procesos de integración, configuración e interconexión de los componentes seleccionados, para que permitan construir la aplicación final según los criterios de calidad y seguridad especificados en el diseño inicial.
    6. CE 1.6 Monitorizar el rendimiento de los componentes desarrollados o seleccionados para asegurar su integración en el sistema, de acuerdo a criterios de calidad y seguridad.
    7. CE 1.7 Realizar la documentación del despliegue y la implantación siguiendo los patrones, normativa y procedimientos especificados.
    8. CE 1.8 En un supuesto práctico debidamente caracterizado, utilizar las herramientas de desarrollo para realizar el desarrollo y despliegue de un componente software según unas especificaciones funcionales y técnicas dadas: - Extraer la información relativa al diseño de un componente. - Codificar el componente según especificaciones funcionales y técnicas. - Realizar las pruebas estructurales según normativa y criterios de calidad establecidos. - Incorporar el despliegue, adaptación, configuración e integración del componente según especificaciones técnicas y de implantación del desarrollo. - Trazar las pruebas del componente según normativas de calidad y seguridad dadas. - Configurar la herramienta para la realización de baterías de pruebas automáticas según normativa y criterios de calidad dados. - Elaborar documentación mediante las plantillas facilitadas o incorporadas en la propia herramienta. - Generar informes de calidad y métricas, e interpretar los resultados.
Contenidos:
  1. Despliegue de componentes.
    1. Modelos de despliegue: - Diseño sin repositorio: * Diseño y ejecución sin despliegue. * Ejemplos: UML. - Diseño con repositorio sólo para el depósito de componentes: * Tipos de contenedores. * Ejemplos: EJBs, .NET, CCM, Servicios web. - Despliegue con repositorio: * Composición y depósito de componentes. * Ejemplo: JavaBean. - Diseño con repositorio: * Tipos de conectores. * Ejemplos: Koala.
  1. Selección de componentes.
    1. Tipos: - Componentes comerciales: * Sin posibilidad de modificaciones (COTS). * Con posibilidad de adaptaciones (MOTS). - Componentes de fuente abierta. - Ventajas e inconvenientes.
    2. Métodos de personalización de componentes: - Parametrización. - Uso de extensiones (plugins).
    3. Criterios de selección de componentes reutilizables: - Adaptabilidad. - Auditabilidad. - Estandarización. - Características de concurrencia. - Rendimiento. - Consumo de recursos. - Seguridad. - Características de mantenimiento y actualización.
    4. Proceso de selección de componentes: - Evaluación de componentes según requisitos. - Diseño y codificación (código de enlace): * Enlace de componentes con otros sistemas. * Integración. * Configuración. - Diseño de pruebas. - Detección de fallos. - Mantenimiento y gestión de configuraciones. - Actualización de componentes. - Métodos de selección de uso común: * CAP (COTS Acquisition Process). * RUP (Rational Unified Process).
  1. Control de calidad de componentes.
    1. Métodos de evaluación de calidad de componentes. Estándares de calidad.
    2. Categorías y métricas de evaluación.
    3. Proceso de validación y medición de calidad: - Pruebas de conformidad a requisitos funcionales. - Pruebas de integración con otros sistemas. - Pruebas de aspectos no funcionales: * Rendimiento. * Seguridad. * Integración.
    4. Documentación de componentes.
    5. Descripción funcional.
    6. Descripción de aspectos no funcionales.
    7. Descripción del proceso de instalación y despliegue: - Descripción del empaquetamiento (packaging). - Requisitos de implantación. - Parametrización y ajuste.
-MF0965_3-Desarrollo de software basado en tecnologías orientadas a componentes Solicitar módulo
Nivel: 3 Tipo: formativo Nº Horas: 210 h
Contenidos:
-UF1289-Diseño de elementos software con tecnologías basadas en componentes Solicitar unidad
Capacidades y criterios:
  1. C1: Identificar las características y arquitecturas de las tecnologías de desarrollo, orientadas a componentes para la creación y modificación de elementos software integrados en estos entornos, según estándares y normalizaciones existentes.
    1. CE 1.1 Describir las técnicas y métodos de desarrollo involucrados en el paradigma del desarrollo, orientado a componentes para la confección y modificación elementos software, según los estándares de esta tecnología.
    2. CE 1.2 Clasificar las herramientas y lenguajes orientados a objetos utilizados en el desarrollo orientado a componentes, describiendo sus características para identificar las que son específicas para la creación o modificación de los elementos software, según las especificaciones funcionales dadas.
    3. CE 1.3 Clasificar los estándares de modelos de componentes, describiendo las pasarelas para interoperar entre componentes heterogéneos, para realizar las tareas de integración de los elementos desarrollados según especificaciones funcionales y técnicas.
    4. CE 1.4 Identificar las técnicas de diagramación y documentación para el desarrollo de software basado en tecnologías orientadas a componentes, según estándares de diseño de metodologías orientadas a componentes.
    5. CE 1.5 En un caso práctico para desarrollar componentes dentro de una arquitectura dada y contando con unas especificaciones funcionales precisas: - Realizar la diagramación y documentación previa al desarrollo del componente, para optimizar los procesos de creación del componente según especificaciones recibidas. - Identificar los diferentes interfaces y técnicas utilizadas para la intercomunicación de componentes, para poder aplicarlas al desarrollo de nuevos componentes. - Definir los interfaces del componente software a desarrollar para la intercomunicación con el resto de componentes del sistema, según especificaciones técnicas de la arquitectura de componentes y necesidades funcionales. - Diseñar la estructura del componente utilizando los estándares de creación de componentes, según especificaciones técnicas de la arquitectura utilizada y necesidades funcionales. - Confeccionar la documentación del diseño realizado siguiendo los patrones, normativa y procedimientos especificados.
Contenidos:
  1. La orientación a objetos.
    1. Principios de la orientación a objetos. Comparación con la programación estructurada: - Ocultación de información (information hiding). - El tipo abstracto de datos (ADT). Encapsulado de datos. - Paso de mensajes.
    2. Conceptos básicos de orientación a objetos: - Clases: * Atributos, variables de estado y variables de clase. * Métodos. Requisitos e invariantes. * Gestión de excepciones. * Agregación de clases. - Objetos: * Creación y destrucción de objetos. * Llamada a métodos de un objeto. * Visibilidad y uso de las variables de estado. * Referencias a objetos. * Persistencia de objetos. * Optimización de memoria y recolección de basura (garbage collection). - Herencia: * Concepto de herencia. Superclases y subclases. * Herencia múltiple. * Clases abstractas. * Tipos de herencia: herencia de implementación, herencia de interfaces y de tipos y otros tipos de herencia. * Polimorfismo y enlace dinámico (dynamic binding). * Directrices para el uso correcto de la herencia. - Modularidad: * Librerías de clases. Ámbito de utilización de nombres. * Ventajas de la utilización de modulos o paquetes. - Genericidad y sobrecarga: * Concepto de genericidad. * Concepto de Sobrecarga. Tipos de sobrecarga. * Comparación entre genericidad y sobrecarga.
    3. Desarrollo orientado a objetos: - Lenguajes de desarrollo orientado a objetos de uso común. - Herramientas de desarrollo.
    4. Lenguajes de modelización en el desarrollo orientado a objetos: - El lenguaje unificado de modelado (UML). - Diagramas para la modelización de sistemas orientados a objetos.
  1. La orientación a componentes.
    1. Fundamentos conceptuales: - Definición de componente. - Comparación entre componentes y objetos. - Módulos. - Interfaces: * Tipos de interfaces. * Versionado de interfaces. * Interfaces como contratos. - Escalado de componentes. - Estado de componentes.
    2. Arquitecturas de componentes: - Basadas en objetos. Composición y uso de objetos. - Multicapa. - Basadas en middleware. - Basadas en objetos distribuidos.
    3. Diseño de componentes: - Principios de diseño de componentes: * Dependencias no cíclicas. * Principio ?open/closed?. * Reusabilidad. * Configurabilidad. * Abstracción. * Dependencias. - Técnicas de reusabilidad: * Patrones. * Librerías. * Interfaces. * Protocolos y esquemas de mensajes. * Uso de lenguajes de programación. * Estructuras y jerarquías de estructuras. * Arquitecturas de sistemas. - Modelo de componente: * Especificación de servicios: transacciones, seguridad, persistencia y acceso remoto. * Especificación de Interface. * Especificación de la implementación. * Especificación de las unidades de despliegue (modulos). - Modelos de integración de componentes: * Referencias e identidad de objetos, componentes e interfaces. * Servicios de localización. * Modelos de intercambio: objetos distribuidos, capa intermedia (Middleware) e interacción e integración mediante servicios web. * Comparación entre métodos de intercambio en las principales infraestructuras de componentes: OMG: CORBA, OMA, Java: JavaBeans, EJBs y Microsoft: COM, OLE/ActiveX, .NET - Diagramación y documentación de componentes: * Modelo de información: diagramas conceptuales, diagramas de arquitectura de componentes y diagramas de despliegue. * Modelo dinámico: diagramas de interacción y de actividad, diagramas de casos de uso y diagramas de estado.
-UF1290-Implementación e integración de elementos software con tecnologías basadas en componentes Solicitar unidad
Capacidades y criterios:
  1. C1: Construir elementos software a partir de las especificaciones de necesidades y con las condiciones de desarrollo de la tecnología de componentes utilizada.
    1. CE 1.1 Explicar los enfoques de desarrollo e implementación para la creación de componentes aplicando el principio de reutilización.
    2. CE 1.2 Describir el proceso de adaptación de un componente existente para incluirlo en la arquitectura en la que se quiere reutilizar, según especificaciones técnicas de la tecnología de componentes utilizada.
    3. CE 1.3 Enunciar las características del proceso de diseño de un nuevo componente para incluirlo en la arquitectura en la que se quiere utilizar, garantizando su futura reutilización.
    4. CE 1.4 Clasificar las herramientas de programación y depuración para optimizar la fase de desarrollo de los componentes según unas especificaciones dadas.
    5. CE 1.5 Identificar los elementos y parámetros de la interfaz del componente, para su desarrollo con herramientas y lenguajes específicos, para implementar la vía de comunicaciones con el resto de componentes según los estándares de definición de interfaces de la arquitectura.
    6. CE 1.6 Realizar los procesos de instalación del componente, comprobando que ejecuta las acciones requeridas y su disponibilidad para las aplicaciones que lo invoquen, según especificaciones técnicas de la arquitectura.
    7. CE 1.7 En un caso practico para desarrollar componentes software reutilizables, dadas unas especificaciones funcionales y técnicas: - Diseñar el nuevo componente para que cumpla las especificaciones funcionales dadas. - Comprobar que la funcionalidad del componente diseñado puede ser extendida para futuras reutilizaciones. - Implementar el componente utilizando herramientas y lenguajes orientados a objeto. - Depurar y probar el componente desarrollado utilizando las herramientas disponibles. - Documentar el componente y sus interfaces para facilitar su futura reutilización.
    8. CE 1.8 En un caso practico para desarrollar software reutilizando componentes, dadas unas especificaciones funcionales y técnicas: - Utilizar repositorios de componentes para localizar aquellos que se ajusten a las especificaciones dadas y puedan ser reutilizados. - Diseñar las modificaciones que se van a realizar sobre el componente existente para que cumpla las especificaciones dadas. - Modificar el componente utilizando herramientas y lenguajes orientados a objeto. - Depurar y probar el componente modificado utilizando las herramientas disponibles. - Documentar las modificaciones realizadas sobre el componente y sus interfaces para facilitar su futura reutilización.
    9. CE 1.9 Interpretar la documentación técnica asociada a las herramientas de programación, incluso si está editada en la lengua extranjera de uso más frecuente en el sector, utilizándola de ayuda en el desarrollo.
Contenidos:
  1. Desarrollo de componentes.
    1. Lenguajes de desarrollo de componentes.: - Comparativa con lenguajes orientados a objetos. - Lenguajes orientados a componentes: * Descripción de intefaces. * Ensamblado. * Descripción de arquitectura.
    2. Requisitos principales del desarrollo orientado a componentes: - Modularidad - Despliegue independiente. - Reemplazabilidad. - Seguridad. - Separación entre interfaz e implementación.
    3. Infraestructuras (frameworks) de componentes: - Modelos de infraestruturas de componentes: * Orientados a conexión. * Orientados a contexto. * Orientados a aspectos. - Descripción de las intraestructuras de componentes de uso común: * OMG: CORBA, OMA. * Java: JavaBeans, EJBs. * Microsoft: COM, OLE/ActiveX, .NET
    4. Métodos de desarrollo de componentes: - Uso de lenguajes orientados a objetos. - Selección de infraestructuras de componentes.
    5. Construcción de software mediante componentes: - Definición de interfaces. Lenguajes de descripción de interfaces. - Reutilización de componentes. - Técnicas de ensamblado en infraestructuras de uso común.
    6. Técnicas específicas de desarrollo: - Componentes en la capa de servidor web. Páginas dinámicas. - Componentes en la capa de servidor de aplicaciones. - Componentes en la capa de aplicación cliente: * Componentes de interfaz gráfico. * Componentes orientados a documento. - Componentes en la capa de servicios web. - Componentes para dispositivos móviles.
    7. Herramientas para el desarrollo de componentes: - Entornos integrados de desarrollo de componentes. - Configuración e instalación de herramientas de uso común: * Entorno Java. * Entorno .NET - Gestión del ciclo de vida en el desarrolo de componentes mediante herramientas de uso común: * Uso de repositorios de componentes. Registro de componentes. * Reutilización de componentes para la construcción de sistemas software. * Definición de metadatos de componente. Descriptores de interfaces. * Modelo de seguridad. * Instalación de componentes. * Depuración y prueba de componentes.
  1. Componentes distribuidos.
    1. Programación distribuida en infraestructuras de uso común: - Programación multihilo (multithreading). - Comunicaciones síncronas y asíncronas.
    2. Modelos de intercambio: - Llamadas a procedimientos remotos. - Orientados a mensajes. - Orientados a recursos.
-UF1291-Despliegue y puesta en funcionamiento de componentes software Solicitar unidad
Capacidades y criterios:
  1. C1: Aplicar los procedimientos de despliegue e integración del componente en un entorno de tecnología orientada a componentes, según especificaciones técnicas de la arquitectura.
    1. CE 1.1 Describir las técnicas disponibles para realizar el proceso de búsqueda de componentes, que satisfagan los requisitos impuestos en el diseño inicial.
    2. CE 1.2 Clasificar los métodos de evaluación y selección de componentes, basándose en una serie de requisitos impuestos por las especificaciones iniciales de diseño.
    3. CE 1.3 Realizar las pruebas estructurales para verificar que el componente seleccionado se comunica con el resto de componentes y que no produce conflictos, según criterios de calidad y seguridad dados, y del diseño preeliminar.
    4. CE 1.4 Definir los procedimientos para el despliegue y adaptación para realizar la implantación del elemento software, según requisitos del componente desarrollado y siguiendo criterios de calidad, seguridad y especificaciones de la arquitectura.
    5. CE 1.5 Describir los procesos de integración, configuración e interconexión de los componentes seleccionados, para que permitan construir la aplicación final según los criterios de calidad y seguridad especificados en el diseño inicial.
    6. CE 1.6 Monitorizar el rendimiento de los componentes desarrollados o seleccionados para asegurar su integración en el sistema, de acuerdo a criterios de calidad y seguridad.
    7. CE 1.7 Realizar la documentación del despliegue y la implantación siguiendo los patrones, normativa y procedimientos especificados.
    8. CE 1.8 En un supuesto práctico debidamente caracterizado, utilizar las herramientas de desarrollo para realizar el desarrollo y despliegue de un componente software según unas especificaciones funcionales y técnicas dadas: - Extraer la información relativa al diseño de un componente. - Codificar el componente según especificaciones funcionales y técnicas. - Realizar las pruebas estructurales según normativa y criterios de calidad establecidos. - Incorporar el despliegue, adaptación, configuración e integración del componente según especificaciones técnicas y de implantación del desarrollo. - Trazar las pruebas del componente según normativas de calidad y seguridad dadas. - Configurar la herramienta para la realización de baterías de pruebas automáticas según normativa y criterios de calidad dados. - Elaborar documentación mediante las plantillas facilitadas o incorporadas en la propia herramienta. - Generar informes de calidad y métricas, e interpretar los resultados.
Contenidos:
  1. Despliegue de componentes.
    1. Modelos de despliegue: - Diseño sin repositorio: * Diseño y ejecución sin despliegue. * Ejemplos: UML. - Diseño con repositorio sólo para el depósito de componentes: * Tipos de contenedores. * Ejemplos: EJBs, .NET, CCM, Servicios web. - Despliegue con repositorio: * Composición y depósito de componentes. * Ejemplo: JavaBean. - Diseño con repositorio: * Tipos de conectores. * Ejemplos: Koala.
  1. Selección de componentes.
    1. Tipos: - Componentes comerciales: * Sin posibilidad de modificaciones (COTS). * Con posibilidad de adaptaciones (MOTS). - Componentes de fuente abierta. - Ventajas e inconvenientes.
    2. Métodos de personalización de componentes: - Parametrización. - Uso de extensiones (plugins).
    3. Criterios de selección de componentes reutilizables: - Adaptabilidad. - Auditabilidad. - Estandarización. - Características de concurrencia. - Rendimiento. - Consumo de recursos. - Seguridad. - Características de mantenimiento y actualización.
    4. Proceso de selección de componentes: - Evaluación de componentes según requisitos. - Diseño y codificación (código de enlace): * Enlace de componentes con otros sistemas. * Integración. * Configuración. - Diseño de pruebas. - Detección de fallos. - Mantenimiento y gestión de configuraciones. - Actualización de componentes. - Métodos de selección de uso común: * CAP (COTS Acquisition Process). * RUP (Rational Unified Process).
  1. Control de calidad de componentes.
    1. Métodos de evaluación de calidad de componentes. Estándares de calidad.
    2. Categorías y métricas de evaluación.
    3. Proceso de validación y medición de calidad: - Pruebas de conformidad a requisitos funcionales. - Pruebas de integración con otros sistemas. - Pruebas de aspectos no funcionales: * Rendimiento. * Seguridad. * Integración.
    4. Documentación de componentes.
    5. Descripción funcional.
    6. Descripción de aspectos no funcionales.
    7. Descripción del proceso de instalación y despliegue: - Descripción del empaquetamiento (packaging). - Requisitos de implantación. - Parametrización y ajuste.
-MF0965_3-Desarrollo de software basado en tecnologías orientadas a componentes Solicitar módulo
Nivel: 3 Tipo: formativo Nº Horas: 210 h
Contenidos:
-UF1289-Diseño de elementos software con tecnologías basadas en componentes Solicitar unidad
Capacidades y criterios:
  1. C1: Identificar las características y arquitecturas de las tecnologías de desarrollo, orientadas a componentes para la creación y modificación de elementos software integrados en estos entornos, según estándares y normalizaciones existentes.
    1. CE 1.1 Describir las técnicas y métodos de desarrollo involucrados en el paradigma del desarrollo, orientado a componentes para la confección y modificación elementos software, según los estándares de esta tecnología.
    2. CE 1.2 Clasificar las herramientas y lenguajes orientados a objetos utilizados en el desarrollo orientado a componentes, describiendo sus características para identificar las que son específicas para la creación o modificación de los elementos software, según las especificaciones funcionales dadas.
    3. CE 1.3 Clasificar los estándares de modelos de componentes, describiendo las pasarelas para interoperar entre componentes heterogéneos, para realizar las tareas de integración de los elementos desarrollados según especificaciones funcionales y técnicas.
    4. CE 1.4 Identificar las técnicas de diagramación y documentación para el desarrollo de software basado en tecnologías orientadas a componentes, según estándares de diseño de metodologías orientadas a componentes.
    5. CE 1.5 En un caso práctico para desarrollar componentes dentro de una arquitectura dada y contando con unas especificaciones funcionales precisas: - Realizar la diagramación y documentación previa al desarrollo del componente, para optimizar los procesos de creación del componente según especificaciones recibidas. - Identificar los diferentes interfaces y técnicas utilizadas para la intercomunicación de componentes, para poder aplicarlas al desarrollo de nuevos componentes. - Definir los interfaces del componente software a desarrollar para la intercomunicación con el resto de componentes del sistema, según especificaciones técnicas de la arquitectura de componentes y necesidades funcionales. - Diseñar la estructura del componente utilizando los estándares de creación de componentes, según especificaciones técnicas de la arquitectura utilizada y necesidades funcionales. - Confeccionar la documentación del diseño realizado siguiendo los patrones, normativa y procedimientos especificados.
Contenidos:
  1. La orientación a objetos.
    1. Principios de la orientación a objetos. Comparación con la programación estructurada: - Ocultación de información (information hiding). - El tipo abstracto de datos (ADT). Encapsulado de datos. - Paso de mensajes.
    2. Conceptos básicos de orientación a objetos: - Clases: * Atributos, variables de estado y variables de clase. * Métodos. Requisitos e invariantes. * Gestión de excepciones. * Agregación de clases. - Objetos: * Creación y destrucción de objetos. * Llamada a métodos de un objeto. * Visibilidad y uso de las variables de estado. * Referencias a objetos. * Persistencia de objetos. * Optimización de memoria y recolección de basura (garbage collection). - Herencia: * Concepto de herencia. Superclases y subclases. * Herencia múltiple. * Clases abstractas. * Tipos de herencia: herencia de implementación, herencia de interfaces y de tipos y otros tipos de herencia. * Polimorfismo y enlace dinámico (dynamic binding). * Directrices para el uso correcto de la herencia. - Modularidad: * Librerías de clases. Ámbito de utilización de nombres. * Ventajas de la utilización de modulos o paquetes. - Genericidad y sobrecarga: * Concepto de genericidad. * Concepto de Sobrecarga. Tipos de sobrecarga. * Comparación entre genericidad y sobrecarga.
    3. Desarrollo orientado a objetos: - Lenguajes de desarrollo orientado a objetos de uso común. - Herramientas de desarrollo.
    4. Lenguajes de modelización en el desarrollo orientado a objetos: - El lenguaje unificado de modelado (UML). - Diagramas para la modelización de sistemas orientados a objetos.
  1. La orientación a componentes.
    1. Fundamentos conceptuales: - Definición de componente. - Comparación entre componentes y objetos. - Módulos. - Interfaces: * Tipos de interfaces. * Versionado de interfaces. * Interfaces como contratos. - Escalado de componentes. - Estado de componentes.
    2. Arquitecturas de componentes: - Basadas en objetos. Composición y uso de objetos. - Multicapa. - Basadas en middleware. - Basadas en objetos distribuidos.
    3. Diseño de componentes: - Principios de diseño de componentes: * Dependencias no cíclicas. * Principio ?open/closed?. * Reusabilidad. * Configurabilidad. * Abstracción. * Dependencias. - Técnicas de reusabilidad: * Patrones. * Librerías. * Interfaces. * Protocolos y esquemas de mensajes. * Uso de lenguajes de programación. * Estructuras y jerarquías de estructuras. * Arquitecturas de sistemas. - Modelo de componente: * Especificación de servicios: transacciones, seguridad, persistencia y acceso remoto. * Especificación de Interface. * Especificación de la implementación. * Especificación de las unidades de despliegue (modulos). - Modelos de integración de componentes: * Referencias e identidad de objetos, componentes e interfaces. * Servicios de localización. * Modelos de intercambio: objetos distribuidos, capa intermedia (Middleware) e interacción e integración mediante servicios web. * Comparación entre métodos de intercambio en las principales infraestructuras de componentes: OMG: CORBA, OMA, Java: JavaBeans, EJBs y Microsoft: COM, OLE/ActiveX, .NET - Diagramación y documentación de componentes: * Modelo de información: diagramas conceptuales, diagramas de arquitectura de componentes y diagramas de despliegue. * Modelo dinámico: diagramas de interacción y de actividad, diagramas de casos de uso y diagramas de estado.
-UF1290-Implementación e integración de elementos software con tecnologías basadas en componentes Solicitar unidad
Capacidades y criterios:
  1. C1: Construir elementos software a partir de las especificaciones de necesidades y con las condiciones de desarrollo de la tecnología de componentes utilizada.
    1. CE 1.1 Explicar los enfoques de desarrollo e implementación para la creación de componentes aplicando el principio de reutilización.
    2. CE 1.2 Describir el proceso de adaptación de un componente existente para incluirlo en la arquitectura en la que se quiere reutilizar, según especificaciones técnicas de la tecnología de componentes utilizada.
    3. CE 1.3 Enunciar las características del proceso de diseño de un nuevo componente para incluirlo en la arquitectura en la que se quiere utilizar, garantizando su futura reutilización.
    4. CE 1.4 Clasificar las herramientas de programación y depuración para optimizar la fase de desarrollo de los componentes según unas especificaciones dadas.
    5. CE 1.5 Identificar los elementos y parámetros de la interfaz del componente, para su desarrollo con herramientas y lenguajes específicos, para implementar la vía de comunicaciones con el resto de componentes según los estándares de definición de interfaces de la arquitectura.
    6. CE 1.6 Realizar los procesos de instalación del componente, comprobando que ejecuta las acciones requeridas y su disponibilidad para las aplicaciones que lo invoquen, según especificaciones técnicas de la arquitectura.
    7. CE 1.7 En un caso practico para desarrollar componentes software reutilizables, dadas unas especificaciones funcionales y técnicas: - Diseñar el nuevo componente para que cumpla las especificaciones funcionales dadas. - Comprobar que la funcionalidad del componente diseñado puede ser extendida para futuras reutilizaciones. - Implementar el componente utilizando herramientas y lenguajes orientados a objeto. - Depurar y probar el componente desarrollado utilizando las herramientas disponibles. - Documentar el componente y sus interfaces para facilitar su futura reutilización.
    8. CE 1.8 En un caso practico para desarrollar software reutilizando componentes, dadas unas especificaciones funcionales y técnicas: - Utilizar repositorios de componentes para localizar aquellos que se ajusten a las especificaciones dadas y puedan ser reutilizados. - Diseñar las modificaciones que se van a realizar sobre el componente existente para que cumpla las especificaciones dadas. - Modificar el componente utilizando herramientas y lenguajes orientados a objeto. - Depurar y probar el componente modificado utilizando las herramientas disponibles. - Documentar las modificaciones realizadas sobre el componente y sus interfaces para facilitar su futura reutilización.
    9. CE 1.9 Interpretar la documentación técnica asociada a las herramientas de programación, incluso si está editada en la lengua extranjera de uso más frecuente en el sector, utilizándola de ayuda en el desarrollo.
Contenidos:
  1. Desarrollo de componentes.
    1. Lenguajes de desarrollo de componentes.: - Comparativa con lenguajes orientados a objetos. - Lenguajes orientados a componentes: * Descripción de intefaces. * Ensamblado. * Descripción de arquitectura.
    2. Requisitos principales del desarrollo orientado a componentes: - Modularidad - Despliegue independiente. - Reemplazabilidad. - Seguridad. - Separación entre interfaz e implementación.
    3. Infraestructuras (frameworks) de componentes: - Modelos de infraestruturas de componentes: * Orientados a conexión. * Orientados a contexto. * Orientados a aspectos. - Descripción de las intraestructuras de componentes de uso común: * OMG: CORBA, OMA. * Java: JavaBeans, EJBs. * Microsoft: COM, OLE/ActiveX, .NET
    4. Métodos de desarrollo de componentes: - Uso de lenguajes orientados a objetos. - Selección de infraestructuras de componentes.
    5. Construcción de software mediante componentes: - Definición de interfaces. Lenguajes de descripción de interfaces. - Reutilización de componentes. - Técnicas de ensamblado en infraestructuras de uso común.
    6. Técnicas específicas de desarrollo: - Componentes en la capa de servidor web. Páginas dinámicas. - Componentes en la capa de servidor de aplicaciones. - Componentes en la capa de aplicación cliente: * Componentes de interfaz gráfico. * Componentes orientados a documento. - Componentes en la capa de servicios web. - Componentes para dispositivos móviles.
    7. Herramientas para el desarrollo de componentes: - Entornos integrados de desarrollo de componentes. - Configuración e instalación de herramientas de uso común: * Entorno Java. * Entorno .NET - Gestión del ciclo de vida en el desarrolo de componentes mediante herramientas de uso común: * Uso de repositorios de componentes. Registro de componentes. * Reutilización de componentes para la construcción de sistemas software. * Definición de metadatos de componente. Descriptores de interfaces. * Modelo de seguridad. * Instalación de componentes. * Depuración y prueba de componentes.
  1. Componentes distribuidos.
    1. Programación distribuida en infraestructuras de uso común: - Programación multihilo (multithreading). - Comunicaciones síncronas y asíncronas.
    2. Modelos de intercambio: - Llamadas a procedimientos remotos. - Orientados a mensajes. - Orientados a recursos.
-UF1291-Despliegue y puesta en funcionamiento de componentes software Solicitar unidad
Capacidades y criterios:
  1. C1: Aplicar los procedimientos de despliegue e integración del componente en un entorno de tecnología orientada a componentes, según especificaciones técnicas de la arquitectura.
    1. CE 1.1 Describir las técnicas disponibles para realizar el proceso de búsqueda de componentes, que satisfagan los requisitos impuestos en el diseño inicial.
    2. CE 1.2 Clasificar los métodos de evaluación y selección de componentes, basándose en una serie de requisitos impuestos por las especificaciones iniciales de diseño.
    3. CE 1.3 Realizar las pruebas estructurales para verificar que el componente seleccionado se comunica con el resto de componentes y que no produce conflictos, según criterios de calidad y seguridad dados, y del diseño preeliminar.
    4. CE 1.4 Definir los procedimientos para el despliegue y adaptación para realizar la implantación del elemento software, según requisitos del componente desarrollado y siguiendo criterios de calidad, seguridad y especificaciones de la arquitectura.
    5. CE 1.5 Describir los procesos de integración, configuración e interconexión de los componentes seleccionados, para que permitan construir la aplicación final según los criterios de calidad y seguridad especificados en el diseño inicial.
    6. CE 1.6 Monitorizar el rendimiento de los componentes desarrollados o seleccionados para asegurar su integración en el sistema, de acuerdo a criterios de calidad y seguridad.
    7. CE 1.7 Realizar la documentación del despliegue y la implantación siguiendo los patrones, normativa y procedimientos especificados.
    8. CE 1.8 En un supuesto práctico debidamente caracterizado, utilizar las herramientas de desarrollo para realizar el desarrollo y despliegue de un componente software según unas especificaciones funcionales y técnicas dadas: - Extraer la información relativa al diseño de un componente. - Codificar el componente según especificaciones funcionales y técnicas. - Realizar las pruebas estructurales según normativa y criterios de calidad establecidos. - Incorporar el despliegue, adaptación, configuración e integración del componente según especificaciones técnicas y de implantación del desarrollo. - Trazar las pruebas del componente según normativas de calidad y seguridad dadas. - Configurar la herramienta para la realización de baterías de pruebas automáticas según normativa y criterios de calidad dados. - Elaborar documentación mediante las plantillas facilitadas o incorporadas en la propia herramienta. - Generar informes de calidad y métricas, e interpretar los resultados.
Contenidos:
  1. Despliegue de componentes.
    1. Modelos de despliegue: - Diseño sin repositorio: * Diseño y ejecución sin despliegue. * Ejemplos: UML. - Diseño con repositorio sólo para el depósito de componentes: * Tipos de contenedores. * Ejemplos: EJBs, .NET, CCM, Servicios web. - Despliegue con repositorio: * Composición y depósito de componentes. * Ejemplo: JavaBean. - Diseño con repositorio: * Tipos de conectores. * Ejemplos: Koala.
  1. Selección de componentes.
    1. Tipos: - Componentes comerciales: * Sin posibilidad de modificaciones (COTS). * Con posibilidad de adaptaciones (MOTS). - Componentes de fuente abierta. - Ventajas e inconvenientes.
    2. Métodos de personalización de componentes: - Parametrización. - Uso de extensiones (plugins).
    3. Criterios de selección de componentes reutilizables: - Adaptabilidad. - Auditabilidad. - Estandarización. - Características de concurrencia. - Rendimiento. - Consumo de recursos. - Seguridad. - Características de mantenimiento y actualización.
    4. Proceso de selección de componentes: - Evaluación de componentes según requisitos. - Diseño y codificación (código de enlace): * Enlace de componentes con otros sistemas. * Integración. * Configuración. - Diseño de pruebas. - Detección de fallos. - Mantenimiento y gestión de configuraciones. - Actualización de componentes. - Métodos de selección de uso común: * CAP (COTS Acquisition Process). * RUP (Rational Unified Process).
  1. Control de calidad de componentes.
    1. Métodos de evaluación de calidad de componentes. Estándares de calidad.
    2. Categorías y métricas de evaluación.
    3. Proceso de validación y medición de calidad: - Pruebas de conformidad a requisitos funcionales. - Pruebas de integración con otros sistemas. - Pruebas de aspectos no funcionales: * Rendimiento. * Seguridad. * Integración.
    4. Documentación de componentes.
    5. Descripción funcional.
    6. Descripción de aspectos no funcionales.
    7. Descripción del proceso de instalación y despliegue: - Descripción del empaquetamiento (packaging). - Requisitos de implantación. - Parametrización y ajuste.
-MF0965_3-Desarrollo de software basado en tecnologías orientadas a componentes Solicitar módulo
Nivel: 3 Tipo: formativo Nº Horas: 210 h
Contenidos:
-UF1289-Diseño de elementos software con tecnologías basadas en componentes Solicitar unidad
Capacidades y criterios:
  1. C1: Identificar las características y arquitecturas de las tecnologías de desarrollo, orientadas a componentes para la creación y modificación de elementos software integrados en estos entornos, según estándares y normalizaciones existentes.
    1. CE 1.1 Describir las técnicas y métodos de desarrollo involucrados en el paradigma del desarrollo, orientado a componentes para la confección y modificación elementos software, según los estándares de esta tecnología.
    2. CE 1.2 Clasificar las herramientas y lenguajes orientados a objetos utilizados en el desarrollo orientado a componentes, describiendo sus características para identificar las que son específicas para la creación o modificación de los elementos software, según las especificaciones funcionales dadas.
    3. CE 1.3 Clasificar los estándares de modelos de componentes, describiendo las pasarelas para interoperar entre componentes heterogéneos, para realizar las tareas de integración de los elementos desarrollados según especificaciones funcionales y técnicas.
    4. CE 1.4 Identificar las técnicas de diagramación y documentación para el desarrollo de software basado en tecnologías orientadas a componentes, según estándares de diseño de metodologías orientadas a componentes.
    5. CE 1.5 En un caso práctico para desarrollar componentes dentro de una arquitectura dada y contando con unas especificaciones funcionales precisas: - Realizar la diagramación y documentación previa al desarrollo del componente, para optimizar los procesos de creación del componente según especificaciones recibidas. - Identificar los diferentes interfaces y técnicas utilizadas para la intercomunicación de componentes, para poder aplicarlas al desarrollo de nuevos componentes. - Definir los interfaces del componente software a desarrollar para la intercomunicación con el resto de componentes del sistema, según especificaciones técnicas de la arquitectura de componentes y necesidades funcionales. - Diseñar la estructura del componente utilizando los estándares de creación de componentes, según especificaciones técnicas de la arquitectura utilizada y necesidades funcionales. - Confeccionar la documentación del diseño realizado siguiendo los patrones, normativa y procedimientos especificados.
Contenidos:
  1. La orientación a objetos.
    1. Principios de la orientación a objetos. Comparación con la programación estructurada: - Ocultación de información (information hiding). - El tipo abstracto de datos (ADT). Encapsulado de datos. - Paso de mensajes.
    2. Conceptos básicos de orientación a objetos: - Clases: * Atributos, variables de estado y variables de clase. * Métodos. Requisitos e invariantes. * Gestión de excepciones. * Agregación de clases. - Objetos: * Creación y destrucción de objetos. * Llamada a métodos de un objeto. * Visibilidad y uso de las variables de estado. * Referencias a objetos. * Persistencia de objetos. * Optimización de memoria y recolección de basura (garbage collection). - Herencia: * Concepto de herencia. Superclases y subclases. * Herencia múltiple. * Clases abstractas. * Tipos de herencia: herencia de implementación, herencia de interfaces y de tipos y otros tipos de herencia. * Polimorfismo y enlace dinámico (dynamic binding). * Directrices para el uso correcto de la herencia. - Modularidad: * Librerías de clases. Ámbito de utilización de nombres. * Ventajas de la utilización de modulos o paquetes. - Genericidad y sobrecarga: * Concepto de genericidad. * Concepto de Sobrecarga. Tipos de sobrecarga. * Comparación entre genericidad y sobrecarga.
    3. Desarrollo orientado a objetos: - Lenguajes de desarrollo orientado a objetos de uso común. - Herramientas de desarrollo.
    4. Lenguajes de modelización en el desarrollo orientado a objetos: - El lenguaje unificado de modelado (UML). - Diagramas para la modelización de sistemas orientados a objetos.
  1. La orientación a componentes.
    1. Fundamentos conceptuales: - Definición de componente. - Comparación entre componentes y objetos. - Módulos. - Interfaces: * Tipos de interfaces. * Versionado de interfaces. * Interfaces como contratos. - Escalado de componentes. - Estado de componentes.
    2. Arquitecturas de componentes: - Basadas en objetos. Composición y uso de objetos. - Multicapa. - Basadas en middleware. - Basadas en objetos distribuidos.
    3. Diseño de componentes: - Principios de diseño de componentes: * Dependencias no cíclicas. * Principio ?open/closed?. * Reusabilidad. * Configurabilidad. * Abstracción. * Dependencias. - Técnicas de reusabilidad: * Patrones. * Librerías. * Interfaces. * Protocolos y esquemas de mensajes. * Uso de lenguajes de programación. * Estructuras y jerarquías de estructuras. * Arquitecturas de sistemas. - Modelo de componente: * Especificación de servicios: transacciones, seguridad, persistencia y acceso remoto. * Especificación de Interface. * Especificación de la implementación. * Especificación de las unidades de despliegue (modulos). - Modelos de integración de componentes: * Referencias e identidad de objetos, componentes e interfaces. * Servicios de localización. * Modelos de intercambio: objetos distribuidos, capa intermedia (Middleware) e interacción e integración mediante servicios web. * Comparación entre métodos de intercambio en las principales infraestructuras de componentes: OMG: CORBA, OMA, Java: JavaBeans, EJBs y Microsoft: COM, OLE/ActiveX, .NET - Diagramación y documentación de componentes: * Modelo de información: diagramas conceptuales, diagramas de arquitectura de componentes y diagramas de despliegue. * Modelo dinámico: diagramas de interacción y de actividad, diagramas de casos de uso y diagramas de estado.
-UF1290-Implementación e integración de elementos software con tecnologías basadas en componentes Solicitar unidad
Capacidades y criterios:
  1. C1: Construir elementos software a partir de las especificaciones de necesidades y con las condiciones de desarrollo de la tecnología de componentes utilizada.
    1. CE 1.1 Explicar los enfoques de desarrollo e implementación para la creación de componentes aplicando el principio de reutilización.
    2. CE 1.2 Describir el proceso de adaptación de un componente existente para incluirlo en la arquitectura en la que se quiere reutilizar, según especificaciones técnicas de la tecnología de componentes utilizada.
    3. CE 1.3 Enunciar las características del proceso de diseño de un nuevo componente para incluirlo en la arquitectura en la que se quiere utilizar, garantizando su futura reutilización.
    4. CE 1.4 Clasificar las herramientas de programación y depuración para optimizar la fase de desarrollo de los componentes según unas especificaciones dadas.
    5. CE 1.5 Identificar los elementos y parámetros de la interfaz del componente, para su desarrollo con herramientas y lenguajes específicos, para implementar la vía de comunicaciones con el resto de componentes según los estándares de definición de interfaces de la arquitectura.
    6. CE 1.6 Realizar los procesos de instalación del componente, comprobando que ejecuta las acciones requeridas y su disponibilidad para las aplicaciones que lo invoquen, según especificaciones técnicas de la arquitectura.
    7. CE 1.7 En un caso practico para desarrollar componentes software reutilizables, dadas unas especificaciones funcionales y técnicas: - Diseñar el nuevo componente para que cumpla las especificaciones funcionales dadas. - Comprobar que la funcionalidad del componente diseñado puede ser extendida para futuras reutilizaciones. - Implementar el componente utilizando herramientas y lenguajes orientados a objeto. - Depurar y probar el componente desarrollado utilizando las herramientas disponibles. - Documentar el componente y sus interfaces para facilitar su futura reutilización.
    8. CE 1.8 En un caso practico para desarrollar software reutilizando componentes, dadas unas especificaciones funcionales y técnicas: - Utilizar repositorios de componentes para localizar aquellos que se ajusten a las especificaciones dadas y puedan ser reutilizados. - Diseñar las modificaciones que se van a realizar sobre el componente existente para que cumpla las especificaciones dadas. - Modificar el componente utilizando herramientas y lenguajes orientados a objeto. - Depurar y probar el componente modificado utilizando las herramientas disponibles. - Documentar las modificaciones realizadas sobre el componente y sus interfaces para facilitar su futura reutilización.
    9. CE 1.9 Interpretar la documentación técnica asociada a las herramientas de programación, incluso si está editada en la lengua extranjera de uso más frecuente en el sector, utilizándola de ayuda en el desarrollo.
Contenidos:
  1. Desarrollo de componentes.
    1. Lenguajes de desarrollo de componentes.: - Comparativa con lenguajes orientados a objetos. - Lenguajes orientados a componentes: * Descripción de intefaces. * Ensamblado. * Descripción de arquitectura.
    2. Requisitos principales del desarrollo orientado a componentes: - Modularidad - Despliegue independiente. - Reemplazabilidad. - Seguridad. - Separación entre interfaz e implementación.
    3. Infraestructuras (frameworks) de componentes: - Modelos de infraestruturas de componentes: * Orientados a conexión. * Orientados a contexto. * Orientados a aspectos. - Descripción de las intraestructuras de componentes de uso común: * OMG: CORBA, OMA. * Java: JavaBeans, EJBs. * Microsoft: COM, OLE/ActiveX, .NET
    4. Métodos de desarrollo de componentes: - Uso de lenguajes orientados a objetos. - Selección de infraestructuras de componentes.
    5. Construcción de software mediante componentes: - Definición de interfaces. Lenguajes de descripción de interfaces. - Reutilización de componentes. - Técnicas de ensamblado en infraestructuras de uso común.
    6. Técnicas específicas de desarrollo: - Componentes en la capa de servidor web. Páginas dinámicas. - Componentes en la capa de servidor de aplicaciones. - Componentes en la capa de aplicación cliente: * Componentes de interfaz gráfico. * Componentes orientados a documento. - Componentes en la capa de servicios web. - Componentes para dispositivos móviles.
    7. Herramientas para el desarrollo de componentes: - Entornos integrados de desarrollo de componentes. - Configuración e instalación de herramientas de uso común: * Entorno Java. * Entorno .NET - Gestión del ciclo de vida en el desarrolo de componentes mediante herramientas de uso común: * Uso de repositorios de componentes. Registro de componentes. * Reutilización de componentes para la construcción de sistemas software. * Definición de metadatos de componente. Descriptores de interfaces. * Modelo de seguridad. * Instalación de componentes. * Depuración y prueba de componentes.
  1. Componentes distribuidos.
    1. Programación distribuida en infraestructuras de uso común: - Programación multihilo (multithreading). - Comunicaciones síncronas y asíncronas.
    2. Modelos de intercambio: - Llamadas a procedimientos remotos. - Orientados a mensajes. - Orientados a recursos.
-UF1291-Despliegue y puesta en funcionamiento de componentes software Solicitar unidad
Capacidades y criterios:
  1. C1: Aplicar los procedimientos de despliegue e integración del componente en un entorno de tecnología orientada a componentes, según especificaciones técnicas de la arquitectura.
    1. CE 1.1 Describir las técnicas disponibles para realizar el proceso de búsqueda de componentes, que satisfagan los requisitos impuestos en el diseño inicial.
    2. CE 1.2 Clasificar los métodos de evaluación y selección de componentes, basándose en una serie de requisitos impuestos por las especificaciones iniciales de diseño.
    3. CE 1.3 Realizar las pruebas estructurales para verificar que el componente seleccionado se comunica con el resto de componentes y que no produce conflictos, según criterios de calidad y seguridad dados, y del diseño preeliminar.
    4. CE 1.4 Definir los procedimientos para el despliegue y adaptación para realizar la implantación del elemento software, según requisitos del componente desarrollado y siguiendo criterios de calidad, seguridad y especificaciones de la arquitectura.
    5. CE 1.5 Describir los procesos de integración, configuración e interconexión de los componentes seleccionados, para que permitan construir la aplicación final según los criterios de calidad y seguridad especificados en el diseño inicial.
    6. CE 1.6 Monitorizar el rendimiento de los componentes desarrollados o seleccionados para asegurar su integración en el sistema, de acuerdo a criterios de calidad y seguridad.
    7. CE 1.7 Realizar la documentación del despliegue y la implantación siguiendo los patrones, normativa y procedimientos especificados.
    8. CE 1.8 En un supuesto práctico debidamente caracterizado, utilizar las herramientas de desarrollo para realizar el desarrollo y despliegue de un componente software según unas especificaciones funcionales y técnicas dadas: - Extraer la información relativa al diseño de un componente. - Codificar el componente según especificaciones funcionales y técnicas. - Realizar las pruebas estructurales según normativa y criterios de calidad establecidos. - Incorporar el despliegue, adaptación, configuración e integración del componente según especificaciones técnicas y de implantación del desarrollo. - Trazar las pruebas del componente según normativas de calidad y seguridad dadas. - Configurar la herramienta para la realización de baterías de pruebas automáticas según normativa y criterios de calidad dados. - Elaborar documentación mediante las plantillas facilitadas o incorporadas en la propia herramienta. - Generar informes de calidad y métricas, e interpretar los resultados.
Contenidos:
  1. Despliegue de componentes.
    1. Modelos de despliegue: - Diseño sin repositorio: * Diseño y ejecución sin despliegue. * Ejemplos: UML. - Diseño con repositorio sólo para el depósito de componentes: * Tipos de contenedores. * Ejemplos: EJBs, .NET, CCM, Servicios web. - Despliegue con repositorio: * Composición y depósito de componentes. * Ejemplo: JavaBean. - Diseño con repositorio: * Tipos de conectores. * Ejemplos: Koala.
  1. Selección de componentes.
    1. Tipos: - Componentes comerciales: * Sin posibilidad de modificaciones (COTS). * Con posibilidad de adaptaciones (MOTS). - Componentes de fuente abierta. - Ventajas e inconvenientes.
    2. Métodos de personalización de componentes: - Parametrización. - Uso de extensiones (plugins).
    3. Criterios de selección de componentes reutilizables: - Adaptabilidad. - Auditabilidad. - Estandarización. - Características de concurrencia. - Rendimiento. - Consumo de recursos. - Seguridad. - Características de mantenimiento y actualización.
    4. Proceso de selección de componentes: - Evaluación de componentes según requisitos. - Diseño y codificación (código de enlace): * Enlace de componentes con otros sistemas. * Integración. * Configuración. - Diseño de pruebas. - Detección de fallos. - Mantenimiento y gestión de configuraciones. - Actualización de componentes. - Métodos de selección de uso común: * CAP (COTS Acquisition Process). * RUP (Rational Unified Process).
  1. Control de calidad de componentes.
    1. Métodos de evaluación de calidad de componentes. Estándares de calidad.
    2. Categorías y métricas de evaluación.
    3. Proceso de validación y medición de calidad: - Pruebas de conformidad a requisitos funcionales. - Pruebas de integración con otros sistemas. - Pruebas de aspectos no funcionales: * Rendimiento. * Seguridad. * Integración.
    4. Documentación de componentes.
    5. Descripción funcional.
    6. Descripción de aspectos no funcionales.
    7. Descripción del proceso de instalación y despliegue: - Descripción del empaquetamiento (packaging). - Requisitos de implantación. - Parametrización y ajuste.
-MF0965_3-Desarrollo de software basado en tecnologías orientadas a componentes Solicitar módulo
Nivel: 3 Tipo: formativo Nº Horas: 210 h
Contenidos:
-UF1289-Diseño de elementos software con tecnologías basadas en componentes Solicitar unidad
Capacidades y criterios:
  1. C1: Identificar las características y arquitecturas de las tecnologías de desarrollo, orientadas a componentes para la creación y modificación de elementos software integrados en estos entornos, según estándares y normalizaciones existentes.
    1. CE 1.1 Describir las técnicas y métodos de desarrollo involucrados en el paradigma del desarrollo, orientado a componentes para la confección y modificación elementos software, según los estándares de esta tecnología.
    2. CE 1.2 Clasificar las herramientas y lenguajes orientados a objetos utilizados en el desarrollo orientado a componentes, describiendo sus características para identificar las que son específicas para la creación o modificación de los elementos software, según las especificaciones funcionales dadas.
    3. CE 1.3 Clasificar los estándares de modelos de componentes, describiendo las pasarelas para interoperar entre componentes heterogéneos, para realizar las tareas de integración de los elementos desarrollados según especificaciones funcionales y técnicas.
    4. CE 1.4 Identificar las técnicas de diagramación y documentación para el desarrollo de software basado en tecnologías orientadas a componentes, según estándares de diseño de metodologías orientadas a componentes.
    5. CE 1.5 En un caso práctico para desarrollar componentes dentro de una arquitectura dada y contando con unas especificaciones funcionales precisas: - Realizar la diagramación y documentación previa al desarrollo del componente, para optimizar los procesos de creación del componente según especificaciones recibidas. - Identificar los diferentes interfaces y técnicas utilizadas para la intercomunicación de componentes, para poder aplicarlas al desarrollo de nuevos componentes. - Definir los interfaces del componente software a desarrollar para la intercomunicación con el resto de componentes del sistema, según especificaciones técnicas de la arquitectura de componentes y necesidades funcionales. - Diseñar la estructura del componente utilizando los estándares de creación de componentes, según especificaciones técnicas de la arquitectura utilizada y necesidades funcionales. - Confeccionar la documentación del diseño realizado siguiendo los patrones, normativa y procedimientos especificados.
Contenidos:
  1. La orientación a objetos.
    1. Principios de la orientación a objetos. Comparación con la programación estructurada: - Ocultación de información (information hiding). - El tipo abstracto de datos (ADT). Encapsulado de datos. - Paso de mensajes.
    2. Conceptos básicos de orientación a objetos: - Clases: * Atributos, variables de estado y variables de clase. * Métodos. Requisitos e invariantes. * Gestión de excepciones. * Agregación de clases. - Objetos: * Creación y destrucción de objetos. * Llamada a métodos de un objeto. * Visibilidad y uso de las variables de estado. * Referencias a objetos. * Persistencia de objetos. * Optimización de memoria y recolección de basura (garbage collection). - Herencia: * Concepto de herencia. Superclases y subclases. * Herencia múltiple. * Clases abstractas. * Tipos de herencia: herencia de implementación, herencia de interfaces y de tipos y otros tipos de herencia. * Polimorfismo y enlace dinámico (dynamic binding). * Directrices para el uso correcto de la herencia. - Modularidad: * Librerías de clases. Ámbito de utilización de nombres. * Ventajas de la utilización de modulos o paquetes. - Genericidad y sobrecarga: * Concepto de genericidad. * Concepto de Sobrecarga. Tipos de sobrecarga. * Comparación entre genericidad y sobrecarga.
    3. Desarrollo orientado a objetos: - Lenguajes de desarrollo orientado a objetos de uso común. - Herramientas de desarrollo.
    4. Lenguajes de modelización en el desarrollo orientado a objetos: - El lenguaje unificado de modelado (UML). - Diagramas para la modelización de sistemas orientados a objetos.
  1. La orientación a componentes.
    1. Fundamentos conceptuales: - Definición de componente. - Comparación entre componentes y objetos. - Módulos. - Interfaces: * Tipos de interfaces. * Versionado de interfaces. * Interfaces como contratos. - Escalado de componentes. - Estado de componentes.
    2. Arquitecturas de componentes: - Basadas en objetos. Composición y uso de objetos. - Multicapa. - Basadas en middleware. - Basadas en objetos distribuidos.
    3. Diseño de componentes: - Principios de diseño de componentes: * Dependencias no cíclicas. * Principio ?open/closed?. * Reusabilidad. * Configurabilidad. * Abstracción. * Dependencias. - Técnicas de reusabilidad: * Patrones. * Librerías. * Interfaces. * Protocolos y esquemas de mensajes. * Uso de lenguajes de programación. * Estructuras y jerarquías de estructuras. * Arquitecturas de sistemas. - Modelo de componente: * Especificación de servicios: transacciones, seguridad, persistencia y acceso remoto. * Especificación de Interface. * Especificación de la implementación. * Especificación de las unidades de despliegue (modulos). - Modelos de integración de componentes: * Referencias e identidad de objetos, componentes e interfaces. * Servicios de localización. * Modelos de intercambio: objetos distribuidos, capa intermedia (Middleware) e interacción e integración mediante servicios web. * Comparación entre métodos de intercambio en las principales infraestructuras de componentes: OMG: CORBA, OMA, Java: JavaBeans, EJBs y Microsoft: COM, OLE/ActiveX, .NET - Diagramación y documentación de componentes: * Modelo de información: diagramas conceptuales, diagramas de arquitectura de componentes y diagramas de despliegue. * Modelo dinámico: diagramas de interacción y de actividad, diagramas de casos de uso y diagramas de estado.
-UF1290-Implementación e integración de elementos software con tecnologías basadas en componentes Solicitar unidad
Capacidades y criterios:
  1. C1: Construir elementos software a partir de las especificaciones de necesidades y con las condiciones de desarrollo de la tecnología de componentes utilizada.
    1. CE 1.1 Explicar los enfoques de desarrollo e implementación para la creación de componentes aplicando el principio de reutilización.
    2. CE 1.2 Describir el proceso de adaptación de un componente existente para incluirlo en la arquitectura en la que se quiere reutilizar, según especificaciones técnicas de la tecnología de componentes utilizada.
    3. CE 1.3 Enunciar las características del proceso de diseño de un nuevo componente para incluirlo en la arquitectura en la que se quiere utilizar, garantizando su futura reutilización.
    4. CE 1.4 Clasificar las herramientas de programación y depuración para optimizar la fase de desarrollo de los componentes según unas especificaciones dadas.
    5. CE 1.5 Identificar los elementos y parámetros de la interfaz del componente, para su desarrollo con herramientas y lenguajes específicos, para implementar la vía de comunicaciones con el resto de componentes según los estándares de definición de interfaces de la arquitectura.
    6. CE 1.6 Realizar los procesos de instalación del componente, comprobando que ejecuta las acciones requeridas y su disponibilidad para las aplicaciones que lo invoquen, según especificaciones técnicas de la arquitectura.
    7. CE 1.7 En un caso practico para desarrollar componentes software reutilizables, dadas unas especificaciones funcionales y técnicas: - Diseñar el nuevo componente para que cumpla las especificaciones funcionales dadas. - Comprobar que la funcionalidad del componente diseñado puede ser extendida para futuras reutilizaciones. - Implementar el componente utilizando herramientas y lenguajes orientados a objeto. - Depurar y probar el componente desarrollado utilizando las herramientas disponibles. - Documentar el componente y sus interfaces para facilitar su futura reutilización.
    8. CE 1.8 En un caso practico para desarrollar software reutilizando componentes, dadas unas especificaciones funcionales y técnicas: - Utilizar repositorios de componentes para localizar aquellos que se ajusten a las especificaciones dadas y puedan ser reutilizados. - Diseñar las modificaciones que se van a realizar sobre el componente existente para que cumpla las especificaciones dadas. - Modificar el componente utilizando herramientas y lenguajes orientados a objeto. - Depurar y probar el componente modificado utilizando las herramientas disponibles. - Documentar las modificaciones realizadas sobre el componente y sus interfaces para facilitar su futura reutilización.
    9. CE 1.9 Interpretar la documentación técnica asociada a las herramientas de programación, incluso si está editada en la lengua extranjera de uso más frecuente en el sector, utilizándola de ayuda en el desarrollo.
Contenidos:
  1. Desarrollo de componentes.
    1. Lenguajes de desarrollo de componentes.: - Comparativa con lenguajes orientados a objetos. - Lenguajes orientados a componentes: * Descripción de intefaces. * Ensamblado. * Descripción de arquitectura.
    2. Requisitos principales del desarrollo orientado a componentes: - Modularidad - Despliegue independiente. - Reemplazabilidad. - Seguridad. - Separación entre interfaz e implementación.
    3. Infraestructuras (frameworks) de componentes: - Modelos de infraestruturas de componentes: * Orientados a conexión. * Orientados a contexto. * Orientados a aspectos. - Descripción de las intraestructuras de componentes de uso común: * OMG: CORBA, OMA. * Java: JavaBeans, EJBs. * Microsoft: COM, OLE/ActiveX, .NET
    4. Métodos de desarrollo de componentes: - Uso de lenguajes orientados a objetos. - Selección de infraestructuras de componentes.
    5. Construcción de software mediante componentes: - Definición de interfaces. Lenguajes de descripción de interfaces. - Reutilización de componentes. - Técnicas de ensamblado en infraestructuras de uso común.
    6. Técnicas específicas de desarrollo: - Componentes en la capa de servidor web. Páginas dinámicas. - Componentes en la capa de servidor de aplicaciones. - Componentes en la capa de aplicación cliente: * Componentes de interfaz gráfico. * Componentes orientados a documento. - Componentes en la capa de servicios web. - Componentes para dispositivos móviles.
    7. Herramientas para el desarrollo de componentes: - Entornos integrados de desarrollo de componentes. - Configuración e instalación de herramientas de uso común: * Entorno Java. * Entorno .NET - Gestión del ciclo de vida en el desarrolo de componentes mediante herramientas de uso común: * Uso de repositorios de componentes. Registro de componentes. * Reutilización de componentes para la construcción de sistemas software. * Definición de metadatos de componente. Descriptores de interfaces. * Modelo de seguridad. * Instalación de componentes. * Depuración y prueba de componentes.
  1. Componentes distribuidos.
    1. Programación distribuida en infraestructuras de uso común: - Programación multihilo (multithreading). - Comunicaciones síncronas y asíncronas.
    2. Modelos de intercambio: - Llamadas a procedimientos remotos. - Orientados a mensajes. - Orientados a recursos.
-UF1291-Despliegue y puesta en funcionamiento de componentes software Solicitar unidad
Capacidades y criterios:
  1. C1: Aplicar los procedimientos de despliegue e integración del componente en un entorno de tecnología orientada a componentes, según especificaciones técnicas de la arquitectura.
    1. CE 1.1 Describir las técnicas disponibles para realizar el proceso de búsqueda de componentes, que satisfagan los requisitos impuestos en el diseño inicial.
    2. CE 1.2 Clasificar los métodos de evaluación y selección de componentes, basándose en una serie de requisitos impuestos por las especificaciones iniciales de diseño.
    3. CE 1.3 Realizar las pruebas estructurales para verificar que el componente seleccionado se comunica con el resto de componentes y que no produce conflictos, según criterios de calidad y seguridad dados, y del diseño preeliminar.
    4. CE 1.4 Definir los procedimientos para el despliegue y adaptación para realizar la implantación del elemento software, según requisitos del componente desarrollado y siguiendo criterios de calidad, seguridad y especificaciones de la arquitectura.
    5. CE 1.5 Describir los procesos de integración, configuración e interconexión de los componentes seleccionados, para que permitan construir la aplicación final según los criterios de calidad y seguridad especificados en el diseño inicial.
    6. CE 1.6 Monitorizar el rendimiento de los componentes desarrollados o seleccionados para asegurar su integración en el sistema, de acuerdo a criterios de calidad y seguridad.
    7. CE 1.7 Realizar la documentación del despliegue y la implantación siguiendo los patrones, normativa y procedimientos especificados.
    8. CE 1.8 En un supuesto práctico debidamente caracterizado, utilizar las herramientas de desarrollo para realizar el desarrollo y despliegue de un componente software según unas especificaciones funcionales y técnicas dadas: - Extraer la información relativa al diseño de un componente. - Codificar el componente según especificaciones funcionales y técnicas. - Realizar las pruebas estructurales según normativa y criterios de calidad establecidos. - Incorporar el despliegue, adaptación, configuración e integración del componente según especificaciones técnicas y de implantación del desarrollo. - Trazar las pruebas del componente según normativas de calidad y seguridad dadas. - Configurar la herramienta para la realización de baterías de pruebas automáticas según normativa y criterios de calidad dados. - Elaborar documentación mediante las plantillas facilitadas o incorporadas en la propia herramienta. - Generar informes de calidad y métricas, e interpretar los resultados.
Contenidos:
  1. Despliegue de componentes.
    1. Modelos de despliegue: - Diseño sin repositorio: * Diseño y ejecución sin despliegue. * Ejemplos: UML. - Diseño con repositorio sólo para el depósito de componentes: * Tipos de contenedores. * Ejemplos: EJBs, .NET, CCM, Servicios web. - Despliegue con repositorio: * Composición y depósito de componentes. * Ejemplo: JavaBean. - Diseño con repositorio: * Tipos de conectores. * Ejemplos: Koala.
  1. Selección de componentes.
    1. Tipos: - Componentes comerciales: * Sin posibilidad de modificaciones (COTS). * Con posibilidad de adaptaciones (MOTS). - Componentes de fuente abierta. - Ventajas e inconvenientes.
    2. Métodos de personalización de componentes: - Parametrización. - Uso de extensiones (plugins).
    3. Criterios de selección de componentes reutilizables: - Adaptabilidad. - Auditabilidad. - Estandarización. - Características de concurrencia. - Rendimiento. - Consumo de recursos. - Seguridad. - Características de mantenimiento y actualización.
    4. Proceso de selección de componentes: - Evaluación de componentes según requisitos. - Diseño y codificación (código de enlace): * Enlace de componentes con otros sistemas. * Integración. * Configuración. - Diseño de pruebas. - Detección de fallos. - Mantenimiento y gestión de configuraciones. - Actualización de componentes. - Métodos de selección de uso común: * CAP (COTS Acquisition Process). * RUP (Rational Unified Process).
  1. Control de calidad de componentes.
    1. Métodos de evaluación de calidad de componentes. Estándares de calidad.
    2. Categorías y métricas de evaluación.
    3. Proceso de validación y medición de calidad: - Pruebas de conformidad a requisitos funcionales. - Pruebas de integración con otros sistemas. - Pruebas de aspectos no funcionales: * Rendimiento. * Seguridad. * Integración.
    4. Documentación de componentes.
    5. Descripción funcional.
    6. Descripción de aspectos no funcionales.
    7. Descripción del proceso de instalación y despliegue: - Descripción del empaquetamiento (packaging). - Requisitos de implantación. - Parametrización y ajuste.
-MP0274-Módulo de prácticas profesionales no laborales de programación de sistemas informáticos
Tipo: practicas(centro) Nº Horas: 80 h
Contenidos:
-UD-Unidad Didáctica
Contenidos:
  1. Análisis del ciclo de vida de software.
    1. Definición de requisitos funcionales.
    2. Metodologías de diseño.
    3. Lenguajes y herramientas de desarrollo corporativos.
    4. Procedimientos de depuración y prueba de software.
    5. Procesos de instalación y despliegue.
    6. Normalización y reutilización de componentes corporativos.
    7. Criterios para la actualización del software.
    8. Normas de documentación.
-UD-Unidad Didáctica
Contenidos:
  1. Desarrollo y reutilización de componentes corporativos.
    1. Utilización de herramientas de desarrollo en las distintas fases del ciclo de vida software según las normas corporativas.
    2. Realización de diagramas de diseño.
    3. Validación de requisitos.
    4. Coordinación entre diferentes equipos o programadores para la construcción de sistemas software.
    5. Realización de pruebas y validación de requisitos.
-UD-Unidad Didáctica
Contenidos:
  1. Auditorías de calidad y seguridad.
    1. Aplicación de la normativa de calidad.
    2. Realización de planes de auditoría.
    3. Revisión de la seguridad del software.
    4. Análisis del rendimiento del software.
    5. Evaluación del nivel de integración y optimización en la construcción del software.
    6. Identificación de aspectos de mejora.
    7. Realización de informes.
-UD-Unidad Didáctica
Contenidos:
  1. Integración y comunicación en el centro de trabajo.
    1. Comportamiento responsable en el centro de trabajo.
    2. Respeto a los procedimientos y normas del centro de trabajo.
    3. Interpretación y ejecución con diligencia las instrucciones recibidas.
    4. Reconocimiento del proceso productivo de la organización.
    5. Utilización de los canales de comunicación establecidos en el centro de trabajo.
    6. Adecuación al ritmo de trabajo de la empresa.
    7. Seguimiento de las normativas de prevención de riesgos, salud laboral y protección del medio ambiente.
Más información en Google Plus
6 Comentarios


Certificados Profesionalidad
13/03/2014 18:18:49
Hola Antonio, ya tiene toda la información solicitada en su correo electrónico. Un saludo.

Antonio
13/03/2014 10:01:00
Hola, estoy interesado en el certificado de programación de sistemas informáticos y me gustaría recibir más información. Un saludo, gracias.

Certificados Profesionalidad
26/09/2013 13:29:06
Hola Miguel, ya tiene toda la información solicitada en su correo electrónico. Un saludo.

Miguel Tejado
26/09/2013 00:46:00
Hola. Estoy interesado en el certificado de programación de sistemas informáticos y me gustaría recibir más información. Gracias.

Certificados Profesionalidad
08/07/2013 17:30:54
Hola Manuel, ya tiene toda la información solicitada en su correo electrónico. Un saludo.