Especificación y desarrollo de sistemas de Software
GUÍA DOCENTE Curso 2016-17
Titulación: | Grado en Ingeniería Informática | 801G |
Asignatura: | Especificación y desarrollo de sistemas de Software | 830 |
Materia: | Programación |
Módulo: | Programación |
Modalidad de enseñanza de la titulación: | Presencial |
Carácter: | Obligatoria | Curso: | 2 | Duración: | Semestral |
Créditos ECTS: | 6,00 | Horas presenciales: | 60,00 | Horas estimadas de trabajo autónomo: | 90,00 |
Idiomas en que se imparte la asignatura: | Español |
Idiomas del material de lectura o audiovisual: | Inglés, Español |
Departamentos responsables de la docencia
MATEMÁTICAS Y COMPUTACIÓN | R111 |
Dirección: | C/ Luis de Ulloa, s/n | Código postal: | 26004 |
Localidad: | Logroño | Provincia: | La Rioja |
Teléfono: | 941299452 | Fax: | 941299460 | Correo electrónico: | |
Profesorado previsto
Profesor: | Romero Ibáñez, Ana | Responsable de la asignatura |
Teléfono: | 941299608 | Correo electrónico: | ana.romero@unirioja.es |
Despacho: | 3235 | Edificio: | CENTRO CIENTÍFICO TECNOLÓGICO | Tutorías: | Consultar |
Descripción de los contenidos
- Abstracción de datos. Especificación /implementación de tipos de datos. Relación con la orientación a objetos. Aplicaciones al diseño orientado a objetos (diseño basado en responsabilidades).
- Especificación de algoritmos.
- Conceptos sobre lenguajes: sintaxis y semántica.
- Análisis de algoritmos: eficiencia y corrección.
- Aplicación a la práctica de los principios fundamentales y técnicas básicas de los sistemas inteligentes.
Requisitos previos de conocimientos y competencias para poder cursar con éxito la asignatura
Recomendados para poder superar la asignatura.
Se aconseja conocer conocimientos y competencias relacionadas con la programación, especialmente con los fundamentos básicos del paradigma orientado a objetos.
Asignaturas que proporcionan los conocimientos y competencias:
- Metodología de la programación
- Programación orientada a objetos
- Tecnología de la programación
Contexto
La asignatura pertenece al módulo “Programación” y aparece en el segundo semestre del segundo curso. Dentro de dicho bloque, es la continuación natural de la asignatura “Programación Orientada a Objetos”. Se presupone a los alumnos cierta familiaridad con nociones básicas sobre programación orientada a objetos (clase, objeto, herencia, etc.). Por su parte, pretende revisar algunos conceptos básicos de programación desde un punto de vista más abstracto, haciendo de puente para la asignatura “Procesadores de lenguajes”.
Dentro del módulo “Programación”, la asignatura pretende dotar a los alumnos de las competencias necesarias para ser capaces de diseñar e implementar aplicaciones desde el paradigma orientado a objetos, viendo los elementos esenciales de la orientación a objetos como herramientas necesarias para dicho diseño. El otro punto esencial de la asignatura es aportar una perspectiva formal (mayor nivel de abstracción) sobre diferentes aspectos relacionados con la programación (sintaxis, semántica, corrección y eficiencia), buscando una mejora en los hábitos del alumno a la hora de programar, que mejore la calidad y fiabilidad de su trabajo.
Las prácticas de laboratorio de la asignatura consisten en el diseño y desarrollo (en un lenguaje que permita orientación a objetos) de los sistemas de clases necesarios para la construcción de pequeñas aplicaciones. Se pretende que, a lo largo de la asignatura, aparezcan involucrados en las prácticas los elementos centrales de la programación orientada a objetos, vistos aquí como elementos necesarios para el diseño.
Competencias
Competencias generales
CG2-Estar capacitado para, utilizando el nivel adecuado de abstracción, establecer y evaluar modelos que representen situaciones reales.
CG4-Estar capacitado para transmitir información, ideas, planteamiento de problemas y soluciones, tanto a otros profesionales tecnológicos y científicos, como a personas ajenas a esas disciplinas.
CG7-Haber desarrollado aquellas habilidades de aprendizaje necesarias para continuar su formación.
CG8-Capacidad para concebir, redactar, organizar, planificar, desarrollar y firmar proyectos en el ámbito de la ingeniería en informática que tengan por objeto, la concepción, el desarrollo o la explotación de sistemas, servicios y aplicaciones informáticas.
CG10-Capacidad para diseñar, desarrollar, evaluar y asegurar la accesibilidad, ergonomía, usabilidad y seguridad de los sistemas, servicios y aplicaciones informáticas, así como de la información que gestionan.
CG17-Conocimientos para la realización de mediciones, cálculos, valoraciones, tasaciones, peritaciones, estudios, informes, planificación de tareas y otros trabajos análogos de informática.
Competencias específicas
CE3-Capacidad para comprender y dominar los conceptos básicos de matemática discreta, lógica, algorítmica y complejidad computacional, y su aplicación para la resolución de problemas propios de la ingeniería.
CE7-Capacidad para diseñar, desarrollar, seleccionar y evaluar aplicaciones y sistemas informáticos, asegurando su fiabilidad, seguridad y calidad, conforme a principios éticos y a la legislación y normativa vigente.
CE12-Conocimiento y aplicación de los procedimientos algorítmicos básicos de las tecnologías informáticas para diseñar soluciones a problemas, analizando la idoneidad y complejidad de los algoritmos propuestos.
CE13-Conocimiento, diseño y utilización de forma eficiente los tipos y estructuras de datos más adecuados a la resolución de un problema.
CE14-Capacidad para analizar, diseñar, construir y mantener aplicaciones de forma robusta, segura y eficiente, eligiendo el paradigma y los lenguajes de programación más adecuados.
CE21-Conocimiento y aplicación de los principios fundamentales y técnicas básicas de los sistemas inteligentes y su aplicación práctica.
CE25-Capacidad para desarrollar, mantener y evaluar servicios y sistemas software que satisfagan todos los requisitos del usuario y se comporten de forma fiable y eficiente, sean asequibles de desarrollar y mantener y cumplan normas de calidad, aplicando las teorías, principios, métodos y prácticas de la Ingeniería del Software.
CE28-Capacidad de identificar y analizar problemas y diseñar, desarrollar, implementar, verificar y documentar soluciones software sobre la base de un conocimiento adecuado de las teorías, modelos y técnicas actuales.
Resultados del aprendizaje
- Aplicar los elementos característicos de la programación orientada a objetos en el diseño y la programación de aplicaciones.
- Utilizar los conceptos relacionados con la abstracción de datos para facilitar el desarrollo de aplicaciones desde un enfoque orientado a objetos.
- Comprender y aprender a establecer descripciones formales de algoritmos.
- Conocer algunos conceptos básicos sobre sintaxis y semántica de lenguajes de programación.
- Aprender a realizar pequeñas verificaciones formales de corrección de algoritmos, conocimiento enfocado a adquirir mejores hábitos de programación.
- Conocer y aplicar conceptos y herramientas relacionados con el análisis de la complejidad y la eficiencia.
- Usar con solvencia algún lenguaje que permita un enfoque orientado a objetos.
- Conocer y aplicar los principios fundamentales y técnicas básicas de los sistemas inteligentes.
Temario
-
Introducción: "Abstracción y formalismo en Programación".
-
Especificación/Implementación de tipos de datos.
-
Tipos abstractos y orientación a objetos.
-
Especificación de algoritmos.
-
Sintaxis y semántica de un lenguaje imperativo sencillo.
-
Nociones sobre eficiencia. Verificación formal de la corrección de algoritmos.
Bibliografía
Tipo: | Título |
Básica | A. Tucker, R. Noonan.
"Lenguajes de programación: principios y paradigmas".
Mc Graw Hill, 2003.
Absys Biba |
Básica | C. Muñoz, A. Niño, A. Vizcaíno.
"Introducción a la programación con orientación a objetos".
Prentice Halll, 2002
Absys Biba |
Básica | C.T. Wu.
"Introducción a la programación orientada a objetos con Java".
Mc Graw Hill, 2001.
Absys Biba |
Básica | F. Gutiérrez , F. Durán, E. Pimentel.
"Programación orientada a objetos con Java"
Thomson, 2007.
Absys Biba |
Básica | J. Bishop.
"Java: Fundamentos de programación".
Addison-Wesley, 1999.
Absys Biba |
Básica | J. Lewis, J. Chase.
"Estructuras de datos con Java. Diseño de estructuras y algoritmos".
Pearson Addison Wesley, 2006.
Absys Biba |
Básica | R. D. Tennent.
"Specifying software".
Cambridge University Press, 2002.
Absys Biba |
Básica | R. Peña.
"Diseño de programas: formalismo y abstracción".
Prentice Hall, 1997.
Absys Biba |
Básica | T. Budd.
"An introduction to object-oriented programming ".
Addison-Wesley, 2002.
Absys Biba |
Recursos en Internet |
Página oficial de Java.
|
Eclipse IDE para desarrolladores de Java |
Krakatoa-Why. Una herramienta para verificación formal de programas Java. |
Metodología
Modalidades organizativas
Clases teóricas
Clases prácticas
Estudio y trabajo autónomo individual
Métodos de enseñanza
Método expositivo - Lección magistral
Resolución de ejercicios y problemas
Aprendizaje basado en problemas
Organización
Actividades presenciales | Tamaño de grupo | Horas |
Clases prácticas de laboratorio o aula informática | Reducido | 28,00 |
Clases teóricas | Grande | 32,00 |
Total de horas presenciales | 60,00 |
Trabajo autónomo del estudiante | Horas |
Estudio autónomo individual o en grupo | 25,00 |
Preparación en grupo de trabajos, presentaciones (orales, debates,...), actividades en biblioteca | 15,00 |
Resolución individual de ejercicios, cuestiones u otros trabajos, actividades en biblioteca o similar | 50,00 |
Total de horas de trabajo autónomo | 90,00 |
Evaluación
Sistemas de evaluación | Recuperable | No Recup. |
Informes y memorias de prácticas | | 30% |
Pruebas escritas | 70% | |
Total | 100% |
Comentarios
La evaluación continua (30%) se realizará mediante la entrega de informes y memorias de prácticas. Las pruebas escritas corresponden al examen final de la asignatura.
El material didáctico (presentaciones de teoría, ejercicios, guiones de prácticas, etc.) se encontrará disponible en el aula virtual para todos los alumnos matriculados en esta asignatura.
Si necesitas buscar un laboratorio informático en el que se encuentre instalado el software necesario para esta asignatura, puedes consultar en la página http://www.unirioja.es/servicios/si/, enlace "Salas informáticas". Aquí tienes el listado del software disponible en cada uno de los laboratorios informáticos del campus
Para los estudiantes a tiempo parcial (reconocidos como tales por la Universidad), las actividades de evaluación no recuperable podrán ser sustituidas por otras, a especificar en cada caso. Esta posibilidad se habilitará siempre y cuando la causa que le impida la realización de la actividad de evaluación programada sea la que ha llevado al reconocimiento de la dedicación a tiempo parcial.
Criterios críticos para superar la asignatura
Para superar la asignatura será necesario obtener al menos un 4 sobre 10 en la calificación correspondiente a las pruebas escritas (examen final), y que la suma ponderada de las calificaciones de las dos partes de la evaluación sea mayor o igual que 5. En la nota de las prácticas, además de los informes que se deberán presentar, se tendrá en cuenta la asistencia y aprovechamiento a las sesiones de laboratorio.
31/01/17 09:48:42 - G 2016-17 - 801G - 830