EUITI CURSO 2005/06 Dpto. El.A.I. ASIGNATURA: Informática Industrial Curso:2 Cuat.:4 Tipo:Troncal Créditos: Horas Semanales:7 Teoría:5 Prácticas:2 Profesores: Coordinador: Sr. Carlos Platero Otros: Sr. Miguel Hernando, Sr. Alfonso Reimóndez, Sr. Diego Rodríguez Programa: Esta asignatura está formada por dos áreas de conocimientos complementarias: Análisis y Diseño Orientado a Objetos (AOO/D), por un lado y de otro, la implementación en un lenguaje de Programación Orientado a Objetos (POO), como C++. Las dos materias se darán a la vez, con una dedicación, a la exposición teórica, de 2 horas/semana para la primera parte y 3 horas/semana, para la segunda parte. Temario de Análisis y Diseño Orientado a Objetos Capítulo 1: Introducción a la Ingeniería de la Programación: Qué es la Ingeniería de la Programación. El Paradigma Orientado a Objetos. Ciclo de vida del Software. El Proceso Unificado. Herramientas CASE. Capítulo 2: Recogida y documentos de requisitos: Comprensión de los requisitos. La secuencia de captura de los requisitos. Visión y Alcance del proyecto. Glosario. Casos de Uso. Especificaciones Complementarias. Capítulo 3: Análisis Orientado a Objetos: El Modelo del Dominio. Diagramas de Secuencias del Sistema. Los Contratos de Operación. Capítulo 4: El lenguaje unificado de modelado. Modelo estructural: OMG y UML. Clases en UML. Representación de los objetos. Tipos de relaciones. Comentarios. Paquetes. Diagramas de Casos de Uso. Capítulo 5: El lenguaje unificado de modelado. Modelo dinámico y de implementación: Los Diagramas de Interacción. Diagramas de Estados. El Diagrama de Actividades. La Vista Física. Capítulo 6: Diseño Orientado a Objetos: De los Diagramas de Clase de Diseño a la Implementación. Diseño de Objetos con responsabilidad. Patrones GRASP. Diseño con patrones GoF. Temario de Programación Orientado a Objetos (C++) Capítulo 1: Introducción a C++: Introducción a la OOP, evolución del C : ANSI C, C++ y C#. Capítulo 2: Modificaciones menores del lenguaje: Modificaciones en la sintaxis. Variables y especificadotes. Sobrecarga de funciones. Operadores new y delete. Entradas y Salidas. Capítulo 3: Clases, objetos y métodos: Conceptos básicos. Secciones públicas y privadas. Constructores y destructores. New y delete con clases. Clases y funciones friend. Sobrecarga de operadores. Variables y funciones miembro static. Capítulo 4: Herencia: Definición. Herencia simple y múltiple. Clases virtuales. Conversión entre objetos. Capítulo 5: Polimorfismo: Funciones virtuales. Funciones virtuales puras. Clases abstractas. Destructores virtuales. Capítulo 6: Plantillas: Concepto. Plantillas de funciones. Plantillas de clases. Capítulo 7: Entrada y Salida en C++: Entrada y salida con formato. Sobrecarga de operadores de entrada y salida. Ficheros. Capítulo 8: Manejo de excepciones: errores y excepciones en C++, throw, try. Bibliografía: Bibliografía de AOO/D Libro de texto: [Platero06] Platero C., Apuntes de Informática Industrial (Análisis y Diseño Orientado a Objetos), Servicio de Publicaciones EUITI-UPM, 2006. También disponible por capítulos en la página WEB del departamento ELAI: http://www.elai.upm.es. Bibliografía recomendada: [Larman02] Larman, C., UML y Patrones. Una introducción al análisis y diseño orientado a objetos y al proceso unificado, Segunda edición, Pearson Educación 2002. [Gamma03] Gamma, E., Helm, R., Jonson, R., Vlissides, J., Patrones de diseño, AddisonWesley, 2003. [Campderrich03] Campderrich, B., Ingeniería del Software, EDITORIAL UOC, S.L, 2003 [Jacobson 02] Ivar Jacobson, Grady Booch, James Rumbaugh, El Proceso Unificado de desarrollo del software, Addison-Wesly 2000 [Rumbaugh 00] James Rumbaugh, Ivar Jacobson, Grady Booch. El Lenguaje Unificado de Modelado. Addison-Wesly 2000. [Stevens 00] Stevens, A., Clayton, W., Programación con C++, Anaya Multimedia 2000. [Eckel 03] Bruce Eckel, Thinking in C++ 2nd Edition by Free Electronic Book Volume 1 & Volume 2 (http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html) Bibliografía de C++ Libro de texto: [Hernando 05] Programación C++. Servicio de Publicaciones EUITI-UPM, 2005. También disponible por capítulos en la página WEB del departamento ELAI: http://www.elai.upm.es. [Jalon 98] Aprenda C++ como si estuviera en primero. http://www.tayuda.com [Pozo 03] Curso C++ con clase. http://www.conclase.net Bibliografía recomendada: [Ellis 94] Ellis, M.A. y Stroustrup, B., Manual de Referencia C++ con Anotaciones, AddisonWesley/Díaz de Santos, Madrid, 1994. [Ceballos 97] Ceballos, F.J., Programación Orientada a Objetos con C++, 2ª edición, RAMA, 1997. Actividad Docente La tarea docente está formada por las clases de teoría, las prácticas y el trabajo de curso. Las tutorías se dedicarán a resolver las dudas de la asignatura y para marcar las pautas del trabajo de curso Prácticas de Laboratorio Control y Evaluación Exámenes El Laboratorio de Informática Industrial está destinado a dotar al alumno con conocimientos prácticos sobre metodología y programación orientada a objetos. Se realizarán 10 prácticas de dos horas de duración cada una. Las 9 primeras constarán de: una exposición teórica del tema tratado y una realización práctica sobre el ordenador. En la última práctica se efectuará un examen eliminatorio. La programación de las prácticas será: 1. Programación en C: Uso del depurador. 2. Programación en C: Uso de herramientas. 3. Gráficos tridimensionales con OpenGL. 4. Concepto de Clase en C++. 5. Ingeniería directa e inversa con Rational Rose y Visual C++. 6. Concepto de encapsulado y sobrecarga. 7. Concepto de herencia. 8. Polimorfismo y herencia. 9. Diseño con patrones Material de prácticas Se dispondrá de un guión de Prácticas de Informática Industrial. Además, los alumnos traerán consigo un diskette de alta densidad (31/2", 1.44 Mbytes), para guardar resultados de las prácticas. Se dispondrá de información actualizada en el servidor Web (www.elai.upm.es). Evaluación: Para obtener la calificación de APROBADO en las Prácticas de Informática Industrial será necesario: 1. Asistir a todas las prácticas programadas. 2. Entregar, antes de dar comienzo cada práctica, la resolución de las cuestiones teóricas de la misma, junto con la resolución de las cuestiones formuladas durante el transcurso de la práctica anterior. 3. Superar el examen de prácticas. NOTAS 1. Es imprescindible aprobar las Prácticas de Informática Industrial para aprobar la asignatura. 2. Solamente bajo condiciones muy excepcionales, y previa aprobación por parte de los profesores responsables, se podrá proceder al cambio de grupo para la realización de alguna práctica, y siempre respetando la capacidad máxima del aula. 3. Cada alumno ocupará el mismo puesto durante todo el curso, el cual será designado por el profesor. El alumno será responsable durante el curso del material correspondiente a dicho puesto. Al finalizar la práctica, el alumno se responsabilizará de ordenar el puesto. El examen teórico comprenderá toda la materia explicada durante el cuatrimestre. Se realizarán en las fechas y horas propuestas por Jefatura de Estudios. Las resoluciones de los exámenes serán expuestas en el tablón de anuncios y colgadas en las páginas web del departamento. En todos los exámenes cada alumno deberá disponer de los elementos de examen (calculadora, elementos de dibujo, etc. ) que considere necesarios. No se permitirá el intercambio de elementos de examen. Habrá de superar un trabajo de curso. Éste será realizado por un grupo de dos personas, las cuales deberán de resolver un problema de programación en C++ mediante las metodologías de Análisis y Diseño Orientado a Objetos. Su evaluación se realizará hasta cinco días después del examen teórico y constará de una defensa del programa y de una memoria. Para aprobar la asignatura será necesaria una calificación mínima de 3 puntos en el examen teórico y tener aprobado las prácticas de la asignatura y el trabajo de curso. La nota de la asignatura estará constituida por un 50% del examen teórico, un 25% de la nota de prácticas y de un 25% del trabajo de curso. Sólo se guardarán las calificaciones (teóricas, prácticas o de trabajo de examen) que tengan igual o más de cinco puntos. Las notas de prácticas aprobadas, para próximas convocatorias de cursos siguientes, se guardarán con 5 puntos.