Especificación  y  Desarrollo  de  sistemas  de  Software

+Info
DEPARTAMENTO PROFESOR/ES
MATEMÁTICAS Y COMPUTACIÓN Ana Romero Ibáñez
TITULACIONES EN LAS QUE SE IMPARTE LA ASIGNATURA
Titulación Carácter Curso Semestre Créditos Guía Docente
Grado en Ingeniería Informática Obligatoria 2 Segundo Semestre 6 pdf
Grado en Matemáticas Obligatoria 2 Segundo Semestre 6 pdf
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 estudiantes cierta familiaridad con nociones básicas sobre programación orientada a objetos (clase, objeto, herencia, etc.) y en concreto con el lenguaje de programación Java.
Dentro del módulo “Programación”, la asignatura pretende dotar a los estudiantes 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. Además, 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 estudiante 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 el lenguaje de programación Java 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. También se realizan algunos ejercicios de verificación formal de pequeños programas escritos en Java.
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.
TEMARIO
<ol>
Introducción: Abstracción y formalismo en Programación.
Especificación e implementación de tipos de datos.
Tipos abstractos y orientación a objetos. Nociones sobre eficiencia.
Especificación formal de algoritmos.
Sintaxis y semántica de un lenguaje imperativo sencillo.
Verificación formal de la corrección de algoritmos.</ol>