PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web...

53
Programación del módulo Desarrollo de funciones en el sistema informático CICLOS FORMATIVOS DE GRADO SUPERIOR Autores: José Manuel Molina

Transcript of PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web...

Page 1: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

Programación del módulo

Desarrollo de funciones en el sistema informático

CICLOS FORMATIVOS DE GRADO SUPERIOR

Autores:

♦ José Manuel Molina

♦ Félix Chamorro

♦ Antonio Berlanga

♦ Araceli Sanchis

♦ Miguel Ángel Patricio

♦ Jesús García

Page 2: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

♦ INTRODUCCIÓN

♦ ORGANIZACIÓN DE LOS CONTENIDOS. TIPO Y ENUNCIADO DEL CONTENIDO ORGANIZADOR

♦ RELACIÓN SECUENCIADA DE UNIDADES

♦ RECOMENDACIONES PARA LA CONFECCIÓN Y EL DESARROLLO DE ACTIVIDADES

♦ DISTRIBUCIÓN DE LOS CONTENIDOS

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 2 de 42

ÍNDICE

Page 3: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

El módulo de Desarrollo de Funciones en el Sistema Informático se encuadra en el segundo curso del ciclo formativo de grado superior correspondiente al título de Técnico Superior en Administración de Sistemas Informáticos, y tiene una duración de 175 horas.

El título de Técnico Superior en Administración de Sistemas Informáticos y sus enseñanzas mínimas vienen establecidos en el Real Decreto 1660/1994 de 22 de julio (BOE de 30 de septiembre de 1994), y el currículo del ciclo formativo, en el Real Decreto 1675/1994, de 22 de julio (BOE de 6 de octubre de 1994).

El modelo de programación propuesto en esta guía tiene su origen en la publicación Desarrollo curricular del ciclo formativo de F. P. Administración de Sistemas Informáticos, de la Secretaría de Estado de Educación (ANELE, Madrid, 1995).

Todos los aspectos que atañen al sistema productivo, el perfil profesional, las capacidades profesionales, las unidades de competencia, las realizaciones y los dominios profesionales, la evolución de la competencia profesional y los cambios en los factores tecnológicos, entre otros, se ajustarán a lo dispuesto en la normativa anteriormente citada.

La referencia del sistema productivo de este módulo la encontramos en la Unidad de Competencia n.º 4 del R. D. correspondiente al título, que tiene el enunciado siguiente.

Proponer y coordinar cambios para mejorar la explotación del sistema y las aplicaciones.

Las realizaciones de esta Unidad de Competencia son las que se enuncian a continuación:

♦ Formular técnicamente los cambios y mejoras necesarios en el sistema y/o aplicaciones para proporcionar criterios de decisión a la persona autorizada.

♦ Realizar, a su nivel, los cambios propuestos en el sistema y/o aplicaciones de acuerdo con las prestaciones requeridas.

♦ Realizar pruebas funcionales y de usuario previas a la implantación de los cambios desarrollados en el sistema y/o aplicaciones.

♦ Elaborar y mantener la documentación y guías del usuario descriptivas de los cambios y mejoras introducidos en el sistema y/o aplicaciones según las normas y procedimientos establecidos.

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 3 de 42

INTRODUCCIÓN

Page 4: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

Las capacidades terminales de este módulo, de acuerdo con ese R. D., son las siguientes:

♦ Desarrollar un programa ejecutable utilizando las interfaces de programación que ofrece el soft-base de un sistema operativo monousuario, multiusuario y de red.

♦ Establecer procedimientos de prueba que permitan verificar el funcionamiento del sistema y de los programas desarrollados.

♦ Elaborar la documentación sobre la configuración del sistema y los cambios o mejoras desarrollados en el programa.

♦ Valorar técnica y económicamente la implicación que tienen los cambios sobre un sistema considerando su configuración.

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 4 de 42

Page 5: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

El modelo de programación propuesto se basa en la elección del contenido organizador, ya que este es el que define a grandes rasgos el proceso de aprendizaje relativo a un módulo profesional y el que, por tanto, va a constituir el eje de todos los contenidos y la secuencia de unidades de trabajo del módulo. En nuestro caso se trata de un contenido procedimental.

Este módulo da continuidad a los conocimientos de programación adquiridos en el módulo Fundamentos de Programación, de primer curso. Así pues, al término del presente módulo, el alumno se encontrará en condiciones de alcanzar las realizaciones de la Unidad de Competencia n.º 4 anteriormente citadas.

Como enunciado del contenido organizador reproducimos el título de la unidad de competencia de la que deriva este módulo:

Proponer y coordinar cambios para mejorar la explotación del sistema y las aplicaciones.

A este contenido de tipo procedimental se encuentran ligados una serie de contenidos conceptuales y actitudinales que originan los contenidos que dan apoyo a las destrezas y habilidades que debe adquirir el alumno.

A continuación se propone la organización de los contenidos, que se fundamenta en la naturaleza y el enunciado del contenido organizador y las variables más importantes relacionadas con el aumento de la complejidad de todo el procedimiento que se enseña. Partiendo de esta organización se obtiene la secuencia de unidades de trabajo, constituidas por bloques de conte-nidos, actividades de aprendizaje y actividades de evaluación.

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 5 de 42

ORGANIZACIÓN DE LOS CONTENIDOS. TIPO Y ENUNCIADO DEL CONTENIDO ORGANIZADOR

Page 6: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

Este módulo profesional, que tiene una duración de 175 horas, se distribuye a lo largo de los dos primeros trimestres del curso a razón de ocho horas semanales, lo que corresponde a unas 22 semanas lectivas. Es deseable que las horas semanales figuren agrupadas en bloques horarios de dos o tres periodos lectivos.

La propuesta de programación está constituida por una relación secuenciada de unidades de trabajo donde se integran y desarrollan, al mismo tiempo, alrededor de los procedimientos (contenidos organizadores), los conceptos (contenidos de soporte), las actividades de enseñanza-aprendizaje y los criterios de evaluación, huyendo de los clásicos temas o lecciones estancos que mediatizan el proceso de aprendizaje.

Para el diseño de la programación será preciso contemplar:

♦ Los conocimientos previos del alumno.

♦ Los recursos materiales del centro educativo.

♦ Los medios utilizados en el entorno productivo.

En cuanto al primer aspecto, se ha considerado que los conocimientos previos del alumno son los adquiridos en los módulos de primer curso y las materias cursadas en el Bachillerato.

En relación con el segundo aspecto, se ha considerado un aula de informática con el suficiente número de equipos como para que los alumnos puedan trabajar individualmente o en grupos de dos. Sería conveniente disponer en el aula de equipos de cierta envergadura, conectados en red y con la adecuada dotación de software, que incluirá sistemas operativos (UNIX, Linux, Windows, etc.), protocolos de redes de comunicaciones, y sistemas y herramientas de desarrollo de C, C++ y Java, de las versiones más recientes.

En cuanto al tercer aspecto, dado el/los sistema/s operativo/s utilizado/s y la portabilidad del lenguaje elegido, es el que menos problemas plantea.

De la estructura de contenidos resultan cinco grandes bloques que organizan visualmente de la siguiente manera:

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 6 de 42

RELACIÓN SECUENCIADA DE UNIDADES

Page 7: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

Fig. 1. Relación de unidades de trabajo por bloques.

Bloque 0 (B 0): Conocimientos de base

En este bloque se hace un rápido repaso de los aspectos más relevantes estudiados en el módulo de Fundamentos de Programación, para lo que remitimos al libro de dicho módulo.

Comprende los conocimientos sobre el lenguaje C adquiridos en el módulo Fundamentos de Programación de primer curso y los expuestos en una unidad de trabajo incluida en el CD que acompaña a esta guía: “Gestión de archivos y directorios en C” e “Introducción a la programación orientada a objetos en C++”. Con esta unidad se pretende, fundamentalmente, realizar un rápido repaso a los conocimientos sobre los lenguajes C y C++. Se trata de un bloque opcional que puede resultar conveniente, e incluso necesario, para introducir el presente módulo, si bien será el profesor quien debe decidirlo. En el caso de que finalmente se imparta, se le dedicarán 15 horas de clase; en caso contrario, estas horas deberán distribuirse entre el resto de las UT.

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 7 de 42

Page 8: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

Bloque 1 (B1): Programación del sistema en C

Este bloque se compone de cuatro unidades de trabajo: “Lenguaje C, sistema operativo y procesos”, “Sincronización de procesos en C”, “Mecanismos básicos de comunicación en C” y “Sockets en C”.

En este bloque se presentan los conceptos y las características más importantes de la programación con C sobre el sistema operativo UNIX, utilizando en la práctica uno de sus derivados, Linux, que es sin duda el más utilizado por la comunidad educativa. En las correspondientes unidades se exponen, en primer lugar, los conceptos de proceso y sus características y fun-cionamiento; a continuación se estudian los mecanismos que intervienen en la sincronización de procesos; seguidamente se aborda el estudio de los mecanismos básicos de comunicación en C, y finalmente se estudian los sockets en profundidad.

Bloque 2 (B2): Programación del sistema en Java

En este bloque se incluyen cuatro unidades de trabajo: “Programación en Java. Sintaxis básica”, “Objetos y clases en Java”, “Concurrencia en Java” y “Comunicaciones en Java”.

En este bloque se estudian los desarrollos con JavaTM en dos apartados claramente diferenciados:

♦ El primero, constituido por dos UT, está dedicado al estudio de la programación orientada a objetos y de los fundamentos de JavaTM, que es el objeto de la UT5, donde se presentan la sintaxis y los elementos básicos del lenguaje Java. La UT6, por otra parte, se dedica al estudio de los objetos y las clases en Java, incorporando y desarrollando ejemplos para poner en práctica los principales conceptos de la POO.

♦ En el segundo se aborda la programación en Java sobre el sistema, que se desarrolla en otras dos unidades: en la UT7 se presentan los elementos más característicos de la concurrencia en Java; en la UT8 se lleva a cabo el estudio de todo lo referente a la comunicación de procesos en Java.

Bloque 3 (B3): Programación en Internet con PHP.

Este bloque está constituido por una única unidad, la UT9, que se dedica, como reza su título, a la introducción del lenguaje PHP. PHP es un lenguaje de código abierto (open source), interpretado, de alto nivel, especialmente

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 8 de 42

Page 9: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

pensado para desarrollos Web y que puede ser incrustado en páginas HTML. La mayor parte de su sintaxis es similar a C, Java y Perl, y es fácil de aprender. El objetivo de este lenguaje es permitir a los diseñadores escribir páginas Web dinámicas de una manera rápida y sencilla.

En esta unidad se sintetizan los aspectos más sobresalientes de este lenguaje de programación de páginas Web, con la ayuda de una serie de ejemplos resueltos y tomando como base los conocimientos adquiridos sobre C y sobre Java.

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 9 de 42

Page 10: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

Debido a la metodología empleada en el libro, que pretende enseñar a través de la práctica, se han incluido gran número de preguntas de evaluación, ejercicios y actividades que deben facilitar la labor del profesor: por una parte, podrá utilizar estos recursos directamente en su tarea; por otro, le pueden servir de base para el diseño de nuevas actividades, cuestionarios y guiones de refuerzo de las actividades programadas, así como para la evaluación del aprendizaje. De este modo, si fuera necesario, en cada unidad didáctica, estos recursos le ayudarán a desarrollar la programación de actividades específicas de recuperación, para los alumnos que no alcancen las capacidades propuestas, y de consolidación, para el resto.

Las actividades y la distribución temporal de las unidades que se presentan deben ser consideradas como una guía u orientación general. Así pues, corresponderá al profesor adaptarlas, modificarlas o cambiarlas en función de las características inmediatas de su propio entorno de actividad: tipo de alumnos, conocimientos previos de estos, equipamiento del centro educativo, sistemas empleados en el entorno, etc.

A continuación se presenta la distribución de los elementos curriculares de cada unidad.

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 10 de 42

RECOMENDACIONES PARA LA CONFECCIÓN Y EL DESARROLLO DE ACTIVIDADES

Page 11: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

UNIDAD 01. LENGUAJE C: SISTEMA OPERATIVO Y PROCESOS

1. Capacidades profesionales

♦ Describir la estructura de los sistemas operativos multiproceso.

♦ Identificar los distintos elementos de un proceso.

♦ Utilizar las funciones de la biblioteca estándar de C.

♦ Controlar la ejecución y la finalización de un proceso.

♦ Ejecutar programas desde procesos.

♦ Utilizar las llamadas al sistema para crear funciones de usuario.

2. Contenidos

En esta unidad se describe la forma de crear procesos y de finalizarlos, así como de acceder a las variables de entorno y a los atributos de los procesos. El alumno debe adquirir conocimientos y destrezas que le permitan iniciarse en la programación de aplicaciones basadas en procesos.

A. Conceptos

♦ Proceso y programa.

♦ Atributos de los procesos.

♦ Jerarquía de procesos.

♦ Llamadas al sistema.

♦ Creación de procesos.

♦ Ejecución de procesos.

♦ Variables de entorno.

♦ Terminación de procesos.

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 11 de 42

DISTRIBUCIÓN DE LOS CONTENIDOS

Page 12: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

B. Procedimientos

♦ Manejo e interpretación de los manuales y del material bibliográfico.

♦ Gestión de procesos y determinación de las llamadas al sistema.

♦ Interpretación del problema.

♦ Construcción del algoritmo con la arquitectura de procesos.

♦ Codificación del algoritmo.

♦ Compilación del programa fuente.

♦ Realización de pruebas.

♦ Corrección de los errores observados.

♦ Documentación del programa.

C. Actitudes

♦ Evaluar la importancia de la claridad y legibilidad de los programas para facilitar el mantenimiento y el trabajo en equipo.

♦ Documentar y describir las estructuras de datos utilizadas en un proyecto o ejercicio realizado en el aula.

♦ Redactar guías de uso de las aplicaciones realizadas.

3. Criterios de evaluación

♦ Describir las funciones que ejecutan comandos del sistema operativo y las que modifican las variables de entorno, su utilidad y ámbito de aplicación.

♦ Conocer los estados de un proceso.

♦ Justificar la importancia de la programación con varios procesos para la resolución de problemas de programación.

♦ Describir las funciones que modifican el estado de un proceso.

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 12 de 42

Page 13: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

♦ Evaluar la importancia de la claridad y legibilidad de los programas para facilitar el mantenimiento y el trabajo en equipo.

♦ Documentar el código con comentarios significativos, concisos y legibles.

♦ Realizar pruebas para una aplicación.

4. Temporización

El tiempo estimado para la adquisición de las capacidades propuestas deberá ser de aproximadamente 16 horas.

5. Sugerencias metodológicas

♦ Utilización y consulta de libros, manuales y revistas.

♦ Utilización de listados de programas impresos en papel para la identificación de las funciones que crean procesos o modifican sus atributos.

♦ Planteamiento de ejercicios.

♦ Análisis de los problemas a desarrollar.

♦ Resolución de los problemas propuestos utilizando la creación de procesos.

♦ Discusión de los ejercicios resueltos.

♦ Puesta en común de las diferentes soluciones aportadas a los ejercicios propuestos.

♦ Documentación de los ejercicios resueltos de la forma que se estime más oportuna.

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 13 de 42

Page 14: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

UNIDAD 02. SINCRONIZACIÓN DE PROCESOS EN C

1. Capacidades profesionales

♦ Comprender los mecanismos de comunicación basados en señales.

♦ Conocer los tipos de señales definidos en Linux.

♦ Definir gestores de señales en un programa y enviar señales desde un proceso a otro.

♦ Desarrollar programas que requieran de una ejecución en paralelo sincronizada.

♦ Enviar datos entre dos aplicaciones.

♦ Desarrollar aplicaciones que se transmitan información de forma asíncrona.

♦ Desarrollar programas que requieran de una ejecución en paralelo para la que sea preciso compartir ciertos datos, o donde los resultados de uno sean necesarios para el otro.

2. Contenidos

En esta unidad se presentan los mecanismos de comunicación basados en señales, así como sus distintos tipos. Los alumnos aprenderán a gestionar señales en un programa y a enviar señales desde un proceso a otro, así como a desarrollar programas que requieran de una ejecución en paralelo sincronizada o transmitir información de forma asíncrona.

A. Conceptos

♦ Definición y tipos de señales.

♦ Comportamiento de un proceso ante una señal.

♦ Gestores de señales.

♦ Comunicación de señales entre procesos.

♦ Temporización y sincronización de procesos.

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 14 de 42

Page 15: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

B. Procedimientos

♦ Manejo e interpretación de los manuales y del material bibliográfico.

♦ Interpretación del problema.

♦ Elección de los gestores de señales adecuados al problema.

♦ Construcción del algoritmo utilizando señales.

♦ Codificación del algoritmo.

♦ Compilación del programa fuente.

♦ Realización de pruebas.

♦ Corrección de los errores observados.

♦ Documentación del programa.

C. Actitudes

♦ Evaluar la importancia de la claridad y legibilidad de los programas para facilitar el mantenimiento y el trabajo en equipo.

♦ Documentar y describir los gestores de señales utilizados en un proyecto o ejercicio realizado en el aula.

♦ Redactar guías de uso de las aplicaciones realizadas.

3. Criterios de evaluación

♦ Describir las señales y su utilidad.

♦ Justificar la importancia de la comunicación de datos entre procesos.

♦ Elaborar módulos, funciones o procedimientos utilizando señales.

♦ Documentar el código de un módulo de programación con comentarios significativos, concisos y legibles.

♦ Realizar pruebas para cada módulo de una aplicación y pruebas de integración.

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 15 de 42

Page 16: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

♦ Aplicar la temporización de procesos para solucionar problemas de programación.

♦ Elaborar los distintos documentos que deben acompañar una aplicación.

4. Temporización

El tiempo estimado para la adquisición de las capacidades propuestas deberá ser de aproximadamente 16 horas.

5. Sugerencias metodológicas

♦ Utilización y consulta de libros, manuales y revistas.

♦ Utilización de listados de programas impresos en papel con gestores de señales.

♦ Planteamiento de ejercicios.

♦ Creación de funciones de usuario.

♦ Análisis de los problemas a desarrollar proponiendo las estructuras dinámicas más adecuadas para su resolución.

♦ Resolución de los problemas propuestos.

♦ Discusión de los ejercicios resueltos.

♦ Puesta en común de las diferentes soluciones aportadas a los ejercicios propuestos.

♦ Documentación de los ejercicios resueltos de la forma en que se estime más oportuna.

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 16 de 42

Page 17: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

UNIDAD 03. MECANISMOS BÁSICOS DE COMUNICACIÓN EN C

1. Capacidades profesionales

♦ Desarrollar programas que requieran una ejecución en paralelo sincronizada.

♦ Comprender los mecanismos de comunicación basados en pipes, memoria compartida y colas de mensajes.

♦ Definir estructuras para determinar el procedimiento de comunicación.

♦ Explicar cómo enviar datos entre dos aplicaciones.

♦ Desarrollar aplicaciones que se transmitan información de forma asíncrona.

♦ Implementar programas que requieran una ejecución en paralelo para la que sea preciso compartir ciertos datos, o donde los resultados de un programa sean necesarios para el otro.Comprender los mecanismos de comunicación basados en señales.

2. Contenidos

Esta unidad presenta la manera de gestionar las señales y la forma como se realiza la comunicación entre procesos para desarrollar programas cuya ejecución se realice de forma sincronizada con otro proceso. Este desarrollo se llevará a cabo desde dos perspectivas: por un lado, sincronizando el proceso temporalmente con el kernel y, por otro, sincronizando dos procesos entre sí, de manera que la ejecución de uno dependa de la ejecución del otro.

A. Conceptos

♦ Diseño de aplicaciones mediante pipes.

♦ Generación de una aplicación básica con pipes.

♦ Posibilidades de comunicación con pipes.

♦ Diseño y generación de aplicaciones mediante colas de mensaje y semáforos.

♦ Diseño y generación de una aplicación básica con memoria compartida.

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 17 de 42

Page 18: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

B. Procedimientos

♦ Manejo e interpretación de los manuales y del material bibliográfico, así como de la ayuda de Linux.

♦ Identificación de los distintos tipos de procedimientos de comunicación.

♦ Identificación de las distintas estructuras que intervienen en el diseño de aplicaciones que hacen uso de pipes, mensajes y memoria compartida.

♦ Interpretación de las distintas clases de comunicación y casos en que debe utilizarse cada una de ellas.

C. Actitudes

♦ Evaluar la importancia de la claridad y legibilidad de los programas para facilitar el mantenimiento y el trabajo en equipo.

♦ Documentar y describir las funciones y estructuras de datos utilizadas en un proyecto o ejercicio realizado en el aula.

♦ Redactar guías de uso de las aplicaciones realizadas.

3. Criterios de evaluación

♦ Describir las posibles formas de comunicación presentadas en el capítulo, analizando sus capacidades para la transmisión de información.

♦ Citar las opciones que hay que utilizar para hacer uso de los distintos tipos de comunicaciones que se han presentado.

♦ Justificar la elección del tipo de comunicación en función de la información que se necesita transmitir y de la complejidad del método de comunicación elegido.

♦ Integrar correctamente el método de comunicación elegido en la aplicación.

♦ Analizar la carga que debe soportar el programador a partir de la especificación de las estructuras y las funciones.

♦ Utilizar correctamente las distintas estructuras y funciones.

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 18 de 42

Page 19: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

♦ Generar aplicaciones básicas con distintos tipos de comunicación.

♦ Documentar el diseño y las opciones elegidas para la aplicación.

♦ Realizar pruebas básicas de la aplicación.

4. Temporización

El tiempo estimado para la adquisición de las capacidades propuestas deberá ser de aproximadamente 15 horas.

5. Sugerencias metodológicas

♦ Discusión acerca del diseño de aplicaciones que necesitan del intercambio de datos entre sí.

♦ Utilización de listados de programas para la identificación de las estructuras que el programador debe conocer para poder utilizar comunicaciones entre aplicaciones.

♦ Análisis de los problemas que hay que desarrollar: a partir del diseño, proponer el tipo de comunicación que hay que utilizar.

♦ Resolución de ejercicios y actividades en grupo. Discusión de las soluciones.

♦ Análisis de las opciones de comunicación elegidas para la relación entre procesos.

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 19 de 42

Page 20: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

UNIDAD 04. SOCKETS EN C

1. Capacidades profesionales

♦ Conocer las funciones estándar para trabajar con sockets.

♦ Diseñar distintos sistemas de conexión entre aplicaciones.

♦ Describir las diferencias entre un servidor y un cliente.

♦ Diseñar protocolos a nivel de aplicación.

♦ Desarrollar servidores que proporcionen un servicio a un conjunto de clientes.

♦ Desarrollar un conjunto de clases en C++ que permita solucionar los problemas de desarrollo con sockets.

2. Contenidos

En esta unidad se presenta el modelo cliente/servidor y su utilidad para la creación de aplicaciones. Se definen los sockets como la principal herramienta para conectar aplicaciones y se describen las funciones que permiten crear un socket, escribir en él, leer, etc. Finalmente, se detallan ampliamente los aspectos más importantes tanto de clientes como de servidores.

A. Conceptos

♦ Diseño de aplicaciones mediante sockets.

♦ Generación de un cliente básico mediante sockets.

♦ Desarrollo de aplicaciones que se conectan mediante sockets.

♦ Manejo de los sockets en el desarrollo de servidores.

♦ Desarrollo de aplicaciones complejas que permiten el funcionamiento de aplicaciones altamente comunicadas.

♦ Fases de desarrollo de una aplicación que utiliza sockets.

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 20 de 42

Page 21: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

B. Procedimientos

♦ Manejo e interpretación de los manuales y del material bibliográfico, así como de la ayuda de Linux.

♦ Identificación de los distintos componentes de un socket.

♦ Identificación de las distintas estructuras que intervienen en el diseño de una aplicación que hace uso de sockets.

♦ Interpretación de los distintos tipos de programas que pueden desarrollarse mediante sockets.

C. Actitudes

♦ Evaluar la importancia del uso de los sockets para la creación de aplicaciones cliente/servidor.

♦ Documentar y describir las funciones y estructuras de datos utilizadas en un proyecto o ejercicio realizado en el aula.

♦ Redactar guías de uso de las aplicaciones desarrolladas.

3. Criterios de evaluación

♦ Describir la funcionalidad de la arquitectura cliente/servidor.

♦ Describir los tipos de aplicaciones que pueden hacer uso de la arquitectura cliente/servidor, así como el proceso de comunicación que siguen.

♦ Citar las posibilidades de diseño que tiene el programador a la hora de comunicarse mediante sockets.

♦ Justificar la elección de un tipo de cliente y de servidor para la generación del esqueleto base de una aplicación distribuida.

♦ Integrar correctamente el esqueleto de comunicación mediante sockets con el funcionamiento deseado para la aplicación.

♦ Utilizar correctamente las distintas posibilidades de comunicación.

♦ Generar aplicaciones con distintos tipos de servidor y cliente.

♦ Documentar el diseño de la aplicación.

♦ Realizar pruebas básicas de la aplicación.

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 21 de 42

Page 22: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

4. Temporización

El tiempo estimado para la adquisición de las capacidades propuestas deberá ser de aproximadamente 15 horas.

5. Sugerencias metodológicas

♦ Discusión acerca de los tipos posibles de comunicación mediante aplicaciones.

♦ Utilización de listados de programas para la identificación de la secuencia de operaciones cuando se emplean sockets.

♦ Análisis de los problemas que hay que desarrollar: a partir del diseño, proponer la división de la aplicación en servidor y cliente.

♦ Resolución de ejercicios y actividades en grupo. Discusión de las soluciones.

Elaboración y análisis de las opciones elegidas para la generación del código.

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 22 de 42

Page 23: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

UNIDAD 05. PROGRAMACIÓN EN JAVA. SINTAXIS BÁSICA

1. Capacidades profesionales

♦ Conocer los principios y las características básicas de Java.

♦ Dominar la sintaxis de Java y comprender sus diferencias respecto a la sintaxis de C.

♦ Revisar y utilizar los tipos de datos, operadores y sentencias de control de flujo en Java mediante ejemplos sencillos.

♦ Identificar los elementos básicos del entorno de programación Java.

♦ Manejar los aspectos prácticos de entrada y salida de datos en Java, a través de consola y de ficheros.

2. Contenidos

En esta unidad se presenta un nuevo lenguaje de programación: Java. Se describirán sus características básicas, poniendo especial énfasis en la sintaxis, y se realizará una introducción a la entrada-salida de datos, lo que supone revisar también el mecanismo de generación de excepciones. Se subrayarán las principales diferencias que presenta respecto al lenguaje C, del que ya nos hemos ocupado y con el que guarda una estrecha relación en su sintaxis fundamental. El tratamiento estrictamente relacionado con la programación orientada a objetos, una de las principales fuentes de diferencias, se reserva para una unidad posterior, si bien en Java es inevitable tratar con objetos desde el principio.

A. Conceptos

♦ Lenguaje Java. Organización de los programas en clases.

♦ Entorno de desarrollo Java. JDK y JRE.

♦ Sintaxis básica. Palabras reservadas, tipos básicos, operadores e instrucciones.

♦ Arrays en Java.

♦ Métodos en Java.

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 23 de 42

Page 24: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

♦ Algunas clases de utilidad en Java. Envoltorios y clase String.

♦ Entrada-salida en Java a través de flujos (streams). Clases para entrada-salida estándar y con ficheros de texto.

♦ Introducción al mecanismo de excepciones en Java.

B. Procedimientos

♦ Manejo e interpretación de los manuales y del material bibliográfico.

♦ Presentación de las características principales del lenguaje de programación Java.

♦ Utilización de los componentes básicos para desarrollar, compilar y ejecutar programas en Java.

♦ Identificación de los principales elementos de la sintaxis Java mediante el análisis de ejemplos completos.

♦ Elección de las estructuras de programación necesarias para la resolución de problemas.

♦ Presentación de clases de utilidad de Java y explicación de su utilización para resolver problemas específicos.

C. Actitudes

♦ Reconocer la ventaja de dominar un nuevo lenguaje de programación que constituye la evolución de otro ya conocido y perfecciona algunos de sus aspectos.

♦ Mostrar paciencia a la hora de asimilar conceptos de un lenguaje que incorpora muchas novedades: variaciones en sintaxis, completa orientación a objetos, clases de utilidad, etc.

♦ Participar activamente en la resolución de los ejercicios y las actividades propuestas, proponiendo soluciones y comprobando el conocimiento adquirido.

♦ Reconocer la importancia de la claridad y legibilidad de los programas para facilitar el mantenimiento y el trabajo en equipo.

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 24 de 42

Page 25: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

♦ Reconocer la importancia de documentar el código de un módulo de programación con comentarios significativos, concisos y legibles.

♦ Mantener orden y precisión en la presentación de conceptos nuevos y su aplicación a las actividades propuestas.

3. Criterios de evaluación

♦ Describir las características básicas del lenguaje de programación Java.

♦ Identificar las diferencias entre Java y C en determinados aspectos, como arrays, funciones, punteros, entrada y salida, etc.

♦ Identificar las dos formas de representar los datos de un programa en Java: tipos predefinidos (básicos) y clases.

♦ Identificar los distintos tipos básicos de datos en Java, operadores y reglas de conversión.

♦ Justificar la importancia de la adecuada selección de estructuras de datos para la resolución de problemas de programación.

♦ Resolver ejemplos prácticos mediante la implementación de algoritmos con instrucciones y tipos de datos en Java.

♦ Describir las clases de utilidad para manipular cadenas de texto, extraer tipos básicos de texto, y hacer entrada-salida de estructuras de datos dinámicas que maneja un lenguaje estructurado, su utilidad y ámbito de aplicación.

♦ Describir el mecanismo de generación y tratamiento de excepciones en Java y su utilización en la entrada-salida.

♦ Comprobar que los formatos de entrada y salida de la aplicación son los esperados.

4. Temporización

El tiempo estimado para la adquisición de las capacidades propuestas deberá ser de aproximadamente 30 horas.

5. Sugerencias metodológicas

♦ Utilización y consulta de libros y manuales del lenguaje, y acceso a la API web con las clases de utilidad de Java (página web de Sun).

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 25 de 42

Page 26: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

♦ Utilización de listados de programas para la identificación y explicación de los elementos de los primeros programas completos en Java.

♦ Planteamiento de ejercicios y variantes de los ejemplos presentados en clase.

♦ Análisis de los problemas que se van a desarrollar proponiendo las estructuras y funciones adecuadas para su resolución, dejando que el alumno proponga y desarrolle con detalle la implementación adecuada.

♦ Resolución de las dudas surgidas después de que el alumno intente implementar las soluciones a los ejercicios en el ordenador.

♦ Resolución de los problemas propuestos utilizando distintas estructuras de datos, clases de utilidad y métodos desarrollados.

♦ Discusión de los ejercicios resueltos, con puesta en común y valoración de las diferentes soluciones aportadas.

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 26 de 42

Page 27: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

UNIDAD 06. OBJETOS Y CLASES EN JAVA

1. Capacidades profesionales

♦ Utilizar la sintaxis de Java para la definición de clases y objetos.

♦ Conocer la notación apropiada para construir clases, constructores, calificadores de acceso, herencia, etc. mediante el desarrollo de ejemplos prácticos.

♦ Subrayar las diferencias distintivas de Java con respecto al lenguaje C++, desarrollado en una unidad anterior.

♦ Desarrollar aplicaciones utilizando objetos en Java.

2. Contenidos

En esta unidad se presenta la creación de clases con el lenguaje Java como estructuras apropiadas para representar los elementos que aparecen en una aplicación real. Los conceptos básicos de la programación orientada a objetos se han introducido y desarrollado previamente con C++; los objetos se han presentado como una agrupación de atributos y métodos que hacen uso de su información e intercambian mensajes, y cuyas características comunes quedan definidas en las clases. Así pues, esta unidad se centra en la sintaxis que emplea Java para desarrollar los elementos, ya familiares para el alumno, de la programación orientada a objetos.

A. Conceptos

♦ Objetos y clases en Java. Instancias con operador new y destrucción automática.

♦ Constructores en Java para inicialización de instancias.

♦ Calificadores de acceso: atributos constantes y globales de clases.

♦ Arrays de objetos en Java.

♦ Clases derivadas en Java: constructores y acceso en las clases derivadas.

♦ Sobreescritura de métodos en clases derivadas y polimorfismo.

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 27 de 42

Page 28: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

B. Procedimientos

♦ Manejo e interpretación de los manuales y del material bibliográfico.

♦ Presentación de la sintaxis y las estructuras del lenguaje Java para construir programas con el paradigma de la programación orientada a objetos.

♦ Identificación de los elementos de la declaración de clases y construcción de objetos mediante el análisis de ejemplos completos

♦ Elección de las clases, las interfaces y los accesos apropiados de acuerdo con las características de los tipos de problemas que resolver.

♦ Ilustración de la utilidad de la herencia y el polimorfismo mediante casos prácticos.

C. Actitudes

♦ Mostrar interés por asimilar conceptos de programación orientada a objetos en un lenguaje nuevo de programación, para desarrollar aplicaciones que aprovechen la posibilidad de aplicar la abstracción y el encapsulamiento al diseño.

♦ Reconocer la importancia de un diseño con programación orientada a objetos para tener claridad y legibilidad de programas bien estructurados que faciliten su mantenimiento y distribución en equipos de trabajo.

♦ Mostrar una actitud abierta a aprender nuevas formas de resolver problemas que podrían ser abordados con el paradigma de programación funcional, valorando críticamente las ventajas y los inconvenientes de ambas aproximaciones.

♦ Participar activamente en la resolución de los ejercicios y las actividades propuestas, proponiendo soluciones y comprobando el conocimiento adquirido.

♦ Reconocer la importancia de documentar el código de un módulo de programación con comentarios significativos, concisos y legibles que permitan identificar las decisiones tomadas en el diseño y la implementación del programa.

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 28 de 42

Page 29: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

3. Criterios de evaluación

♦ Aplicar una metodología de desarrollo estructurado y modular para el diseño de algoritmos.

♦ Realizar pruebas para cada uno de los módulos de una aplicación y pruebas de integración.

♦ Justificar la importancia de la abstracción de datos.

♦ Describir las características principales de Java respecto a los conceptos de programación orientada a objetos y estructura de los programas.

♦ Identificar las diferencias entre Java y C++ en aspectos como los siguientes: arrays de objetos; creación, manipulación y destrucción de objetos; funciones de clase; punteros y referencias; herencia, herencia múltiple y polimorfismo; entrada-salida, etc.

♦ Utilizar la sintaxis y las palabras reservadas de Java en lo referente a clases, constructores calificadores y herencia.

♦ Justificar la importancia de un diseño adecuado de clases que ponga en práctica la abstracción para la resolución de problemas de programación.

♦ Resolver ejemplos prácticos mediante la implementación de clases con determinadas interfaces y mensajes intercambiados.

♦ Elaborar aplicaciones con una estructura modular en clases que permita realizar por separado pruebas para cada clase y pruebas de integración, con objeto de optimizar el mantenimiento de la aplicación final.

4. Temporización

El tiempo estimado para la adquisición de las capacidades propuestas deberá ser de aproximadamente 20 horas, si el alumno ya está familiarizado con la programación orientada a objetos. En caso contrario, habría que dedicar más tiempo a los conceptos fundamentales y ejemplos, con una dedicación de 30 horas.

5. Sugerencias metodológicas

♦ Utilización y consulta de libros y manuales del lenguaje, y acceso a la API web con las clases de utilidad de Java (página web de Sun).

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 29 de 42

Page 30: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

♦ Utilización de listados de programas completos para la identificación y explicación de los elementos del lenguaje Java para declarar clases y construir objetos.

♦ Planteamiento de ejercicios, proponiendo los objetos adecuados y sus funcionalidades, dejando que el alumno diseñe y desarrolle con detalle la implementación oportuna para cada clase.

♦ Resolución de las dudas surgidas después de que el alumno haya intentado implementar las soluciones a los ejercicios en el ordenador.

♦ Resolución de los problemas propuestos, valorando especialmente las diferentes alternativas posibles (mayor aún al descomponer un problema en objetos), y subrayando las ventajas de una solución que aplique un diseño orientado a objetos frente a una solución funcional.

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 30 de 42

Page 31: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

UNIDAD 07. CONCURRENCIA EN JAVA

1. Capacidades profesionales

♦ Conocer y diferenciar las arquitecturas multitarea y multihilo

♦ Conocer las propiedades y métodos de la clase Thread de Java.

♦ Comprender el ciclo de vida de un hilo y los eventos que provocan su cambio de estado.

♦ Conocer los mecanismos de sincronización entre hilos (regiones críticas, monitores, semáforos).

2. Contenidos

Uno de los factores destacables del lenguaje Java es que incorpora elementos para la programación multihilo. En esta unidad se describirán las características de la clase Thread, que permite ejecutar código en un hilo independiente. Asimismo, se detallarán los mecanismos de Java para la sincronización entre hilos, de modo que sea posible construir programas concurrentes donde distintos hilos de ejecución puedan sincronizarse utilizando directamente las primitivas que proporciona el lenguaje, sin necesidad de utilizar técnicas implementadas por los propios programadores.

A. Conceptos

♦ Multitarea y multihilo.

♦ Creación de hilos mediante la clase Thread y mediante la interfaz Runnable.

♦ Terminación de un hilo.

♦ Estados de un hilo.

♦ Gestión de los hilos: método yield, dormido (sleep) y método join.

♦ Sincronización de hilos: regiones críticas (synchronized); métodos wait y notify.

♦ Asignación de prioridades a los hilos.

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 31 de 42

Page 32: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

B. Procedimientos

♦ Manejo de la documentación de la clase Thread suministrada por Sun.

♦ Diseño de alternativas para la creación de hilos.

♦ Análisis de los estados en que se puede encontrar un hilo durante su ciclo de vida.

♦ Definición de los métodos que provocan el cambio de estado en un hilo.

♦ Elaboración de programas multihilo donde se describen las capacidades nativas de Java para la gestión de la concurrencia entre hilos.

♦ Desarrollo de ejemplos sobre el manejo de los métodos de la clase Thread.

♦ Implementación de programas donde se demuestre el funcionamiento de los mecanismos más importantes de Java para la sincronización de hilos: regiones críticas, monitores y semáforos.

♦ Elaboración de programas que demuestren el funcionamiento del planificador de tareas de la máquina virtual de Java con las prioridades dentro de una arquitectura multihilo.

C. Actitudes

♦ Conocer la necesidad de diseñar aplicaciones multihilo.

♦ Reconocer las capacidades nativas del lenguaje Java para el desarrollo de aplicaciones multihilo.

♦ Valorar la importancia del diseño de las clases de una aplicación multihilo, que debe facilitar claridad y legibilidad a la hora de realizar tareas de mantenimiento y trabajar en equipo.

♦ Documentar y describir las aplicaciones desarrolladas a lo largo de la unidad.

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 32 de 42

Page 33: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

3. Criterios de evaluación

♦ Diferenciar las arquitecturas informáticas multihilo y multitarea.

♦ Describir las alternativas para la creación de hilos en Java y justificar su uso en determinadas circunstancias.

♦ Determinar el número de hilos que se están ejecutando en una aplicación multihilo.

♦ Describir el funcionamiento del planificador de hilos de la máquina virtual de Java.

♦ Determinar las posibilidades de finalización de un hilo.

♦ Describir los estados en que puede encontrarse un hilo durante su ciclo de vida.

♦ Definir los métodos que provocan un cambio de estado en el hilo.

♦ Definir mecanismos de sincronización entre hilos.

♦ Diseñar la estructura de un monitor.

♦ Describir la gestión de las prioridades en el planificador de hilos de la máquina virtual de Java.

♦ Construir un semáforo general y un semáforo binario. Describir casos de uso.

4. Temporización

El tiempo estimado para la adquisición de las capacidades propuestas deberá ser de aproximadamente 20 horas.

5. Sugerencias metodológicas

♦ Familiarización con la documentación sobre Thread suministrada por Sun.

♦ Búsqueda en Internet de foros especializados en programación Java y, en concreto, en la programación concurrente en Java.

♦ Utilización de libros y números especiales de revistas sobre la concurrencia en Java.

♦ Puesta en común de las distintas soluciones aportadas por los alumnos.

♦ Motivación a los alumnos para el planteamiento de nuevos enunciados.

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 33 de 42

Page 34: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

♦ Discusión de los ejercicios resueltos.

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 34 de 42

Page 35: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

UNIDAD 08. COMUNICACIONES EN JAVA

1. Capacidades profesionales

♦ Emplear distintas tecnologías para comunicar aplicaciones usando Java.

♦ Identificar las clases más significativas del paquete java.net

♦ Desarrollar arquitecturas cliente/servidor mediante sockets.

♦ Utilizar las herramientas disponibles en Java para la conexión a servidores Web.

♦ Desarrollar una aplicación distribuida mediante RMI (Remote Method Invocation).

2. Contenidos

Cada vez es más común encontrar aplicaciones cuya arquitectura se basa en un sistema distribuido compuesto por distintos componentes que se encuentran en máquinas distintas y distantes entre sí. El lenguaje Java nos proporciona un conjunto de clases básicas que nos permiten realizar todo tipo de de comunicaciones TCP/IP. En esta unidad se describirán los mecanismos que ofrece Java tanto de bajo nivel (sockets) como de alto nivel (URL, HTTP, etc.). La unidad terminará con la presentación del modelo RMI utilizado para diseñar aplicaciones distribuidas.

A. Conceptos

♦ El paquete java.net: direccionamiento, puertos, sockets, clase URL, clase URLConnection.

♦ Aplicaciones distribuidas con RMI (Remote Method Invocation): arquitectura RMI, serialización de objetos, creación de una aplicación RMI.

♦ Aplicaciones distribuidas con CORBA.

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 35 de 42

Page 36: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

B. Procedimientos

♦ Manejo de la documentación del paquete java.net suministrado por Sun.

♦ Diseño de programas utilizando la clase InetAddress de Java.

♦ Definición de los conceptos de dirección IP y puertos de comunicación.

♦ Diseño de aplicaciones cliente/servidor mediante sockets.

♦ Elaboración de programas para acceso a servidores Web mediante las clases URL y URLConnection.

♦ Implementación de arquitecturas informáticas distribuidas mediante técnicas RMI (Remote Method Invocation).

♦ Definición del concepto serializable de Java.

C. Actitudes

♦ Valorar las capacidades nativas del lenguaje Java para el desarrollo de aplicaciones distribuidas.

♦ Reconocer la elegancia y sencillez del desarrollo de aplicaciones distribuidas en el lenguaje Java.

♦ Mostrar satisfacción por la precisión y el orden en que se realizan las actividades.

♦ Documentar y describir las aplicaciones desarrolladas durante la unidad.

3. Criterios de evaluación

♦ Describir el funcionamiento de la clase InetAddress del paquete java.net.

♦ Determinar los distintos tipos de sockets existentes en una aplicación cliente/servidor.

♦ Definir la utilidad de los puertos de comunicación en Internet.

♦ Diseñar una aplicación distribuida mediante técnicas RMI (Remote Method Invocation)

♦ Relacionar los conceptos de número IP y nombre de dominio.

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 36 de 42

Page 37: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

♦ Definir el concepto de puerto well-known (‘bien conocido’).

♦ Describir la secuencia temporal de creación de distintos sockets en un entorno cliente/servidor.

♦ Identificar las relaciones entre las clases URL y URLConnection.

♦ Determinar la utilidad del Stub y el Skeleton en una aplicación distribuida RMI.

♦ Describir cómo se crean el Stub y el Skeleton en una aplicación distribuida RMI.

♦ Justificar la utilización de la herramienta rmiregistry en una aplicación distribuida RMI.

♦ Enumerar las diferencias entre una aplicación distribuida usando sockets y otra usando RMI.

♦ Determinar la necesidad de la clase serializable en aplicaciones distribuidas.

4. Temporización

El tiempo estimado para la adquisición de las capacidades propuestas deberá ser de aproximadamente 18 horas.

5. Sugerencias metodológicas

♦ Familiarización con la documentación sobre java.net suministrada por Sun.

♦ Búsqueda en Internet de foros especializados en la programación Java y, más concretamente, en la programación distribuida en Java.

♦ Utilización de libros y números especiales de revistas sobre comunicaciones en Java.

♦ Puesta en común de las distintas soluciones aportadas por los alumnos.

♦ Motivación a los alumnos para el planteamiento de nuevos enunciados.

♦ Discusión de los ejercicios resueltos.

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 37 de 42

Page 38: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

UNIDAD 09. INTRODUCCIÓN AL LENGUAJE PHP

1. Capacidades profesionales

♦ Conocer el origen y la historia del lenguaje de programación PHP.

♦ Descubrir las cualidades y particularidades del lenguaje de programación PHP.

♦ Aplicar la sintaxis del lenguaje de programación PHP.

♦ Entender las diferentes formas de incrustar código en páginas HTML.

♦ Utilizar las bibliotecas, clases y funciones más habituales.

2. Contenidos

PHP es un lenguaje de código abierto (Open Source), interpretado, de alto nivel, especialmente pensado para desarrollos Web y que puede ser incrustado en páginas HTML. La mayor parte de su sintaxis es similar a C, Java y Perl, y es fácil de aprender. El objetivo de este lenguaje es permitir que los diseñadores puedan escribir páginas Web dinámicas de una manera rápida y fácil. Además, cuenta con una biblioteca de funciones muy amplia y en continuo crecimiento. La presente unidad supone una introducción al lenguaje PHP mediante numerosos ejemplos prácticos que ilustrarán al alumno su potencial como herramienta de desarrollo de plataformas Web.

A. Conceptos

♦ Orígenes del lenguaje PHP.

♦ Características generales del lenguaje PHP.

♦ Sintaxis básica del lenguaje PHP.

♦ Trabajo con formularios Web.

♦ Manejo de las sesiones.

♦ Funciones para el tratamiento de fecha/hora.

♦ Trabajo con ficheros.

♦ Acceso a base de datos (MySQL).

♦ Correo electrónico.

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 38 de 42

Page 39: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

♦ Creación de documentos PDF dinámicos.

B. Procedimientos

♦ Definición de las distintas versiones del lenguaje PHP y su estado actual.

♦ Elaboración de ejercicios que ilustren el comportamiento de las funciones PHP para el diseño de sitios Web.

♦ Diseño de programas para el manejo de los distintos tipos soportados por el lenguaje PHP.

♦ Implementación de programas que ilustren las numerosas funciones predefinidas para la manipulación de cadenas de caracteres en el lenguaje PHP.

♦ Definición de los distintos tipos de matrices en el lenguaje PHP y las funciones asociadas.

♦ Utilización de las estructuras de control soportadas por el lenguaje PHP.

♦ Elaboración de proyectos para la gestión de formularios Web mediante las variables predefinidas integradas en el intérprete.

♦ Diseño de las aplicaciones más usuales en entornos Web.

C. Actitudes

♦ Valorar el lenguaje PHP como herramienta para el desarrollo de sitios Web.

♦ Diferenciar las aptitudes del lenguaje PHP para el diseño de aplicaciones Web respecto de otros lenguajes de script.

♦ Documentar y describir las aplicaciones desarrolladas durante la unidad.

♦ Reconocer la potencialidad descriptiva de las funciones PHP, que facilitan el desarrollo de aplicaciones Web.

♦ Participar activamente en la resolución de los ejercicios y las actividades propuestas, proponiendo soluciones y comprobando el conocimiento adquirido.

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 39 de 42

Page 40: PROGRAMACIÓN DE AULAspain-s3-mhe-prod.s3-website-eu-west-1.amazonaws.com/bcv/... · Web viewDescribir la estructura de los sistemas operativos multiproceso. Identificar los distintos

3. Criterios de evaluación

♦ Describir el funcionamiento de la clase InetAddress del paquete java.net.

♦ Diferenciar los distintos tipos soportados por el lenguaje PHP.

♦ Identificar las funciones asociadas al manejo de cadenas de caracteres.

♦ Determinar los distintos tipos de matrices: matrices simples, matrices asociativas y matrices multidimensionales.

♦ Describir las alternativas para la creación de estructuras de control en el lenguaje PHP.

♦ Utilizar las variables predefinidas para el desarrollo de aplicaciones Web.

♦ Diseñar programas orientados a la conexión mediante sesiones.

♦ Identificar las funciones PHP para el manejo de ficheros.

♦ Describir funciones avanzadas en PHP, como el acceso a bases de datos y generación de documentos en formato PDF.

4. Temporización

El tiempo estimado para la adquisición de las capacidades propuestas deberá ser de aproximadamente 20 horas.

5. Sugerencias metodológicas

♦ Utilización de los listados expuestos en la unidad y explicación paso a paso de las sentencias empleadas en los distintos programas.

♦ Búsqueda en Internet de foros especializados en la programación en el lenguaje PHP.

♦ Utilización de libros o números especiales de revistas sobre el lenguaje PHP.

♦ Puesta en común de las distintas soluciones aportadas por los alumnos.

♦ Motivación a los alumnos para que planteen nuevos enunciados.

♦ Discusión de los ejercicios resueltos.

McGraw-Hill/Interamericana Programación de módulo Desarrollo de funciones en el sistema informático 40 de 42