|
Joaquín Nicolás Ros |
|
Facultad de Informática.
Universidad de Murcia |
TITULACIÓN |
Ingeniero en Informática (1er Ciclo). Facultad de INFORMÁTICA. |
|
CRÉDITOS |
9 (6T+ 3P) OBLIGATORIA |
3er curso - PRIMER CUATRIMESTRE |
TEORÍA |
Ingeniero en Informática es un plan a extinguir y esta asignatura ya no cuenta con clases teóricas ni prácticas. |
|
PRÁCTICAS |
||
TUTORÍAS |
Presenciales: Jueves, de 11 a 14 h. Despacho 2.35. Facultad de Informática Tutoría electrónica |
Objetivos generales
El objetivo principal de la asignatura es
introducir al alumno en los conceptos fundamentales de la ingeniería del
software, prestando más atención al paradigma estructurado,
mostrando la necesidad de establecer un método disciplinado de desarrollo de
software, que se dirija a solucionar los problemas inherentes a la
producción del mismo, como por ejemplo: ¿Por
qué muchas veces no somos capaces de entregar el software que el cliente
requiere, dentro de los plazos y presupuestos establecidos? ¿Por qué es tan
difícil cuantificar el tiempo y recursos que va a necesitar un desarrollo de
software? ¿Por qué tantos proyectos de
desarrollo fracasan? ¿Por qué se dedican tantos recursos a mantenimiento?
Con esta asignatura se pretende contribuir a un objetivo general que concierne a todas las asignaturas de ingeniería del software, y que se puede expresar así: "Al terminar la carrera, el alumno debería ser capaz de seleccionar las notaciones, técnicas, modelos y métodos de desarrollo que mejor se adapten a un contexto de desarrollo determinado, teniendo en cuenta el dominio de aplicación del proyecto."
Esta asignatura ha de servir como una
especie de “guía” de la materia de ingeniería del software, a partir de la cual se puedan “ubicar”
los contenidos de las
asignaturas de ingeniería del software más avanzadas. Por tanto, durante el
desarrollo del programa, las referencias al resto de asignaturas de ingeniería
del software serán frecuentes.
Objetivos específicos
De forma más específica, los objetivos de teoría de la asignatura son los siguientes:
Conocer los procesos del ciclo de vida del software
y sus diferentes formas de organización en distintos modelos del ciclo de vida.
Conocer los conceptos y actividades fundamentales de
la ingeniería de requisitos, y ser consciente de la importancia que la
ingeniería de requisitos tiene en el desarrollo y mantenimiento
de software.
Conocer los conceptos fundamentales de sistemas de
información.
Conocer los conceptos, técnicas y diagramas básicos del
paradigma de desarrollo estructurado: desde el análisis a la prueba y el
despliegue.
Conocer un modelo de proceso de aplicación del
paradigma estructurado, que incluya el proceso de análisis y diseño
estructurado, heurísticas de transición entre ambos, y estrategias de prueba.
Conocer qué es un método (o metodología) de
desarrollo de software, y en concreto, conocer Métrica 3, la Metodología de
Planificación y Desarrollo de Sistemas de Información de la Administración
española.
Conocer las posibilidades que ofrece la
reutilización del software en todos los niveles del desarrollo.
Conocer el concepto de prototipo y sus diferentes
tipos.
Conocer algunos estándares internacionales en
ingeniería del software.
Los objetivos de prácticas de la asignatura son los siguientes:
Aplicar Métrica 3 (en su variante estructurada) en la especificación de una aplicación de cierto tamaño.
Conocer las posibilidades que ofrecen las
herramientas CASE y los entornos de desarrollo actuales.
Visión general
Para alcanzar los objetivos de la asignatura comenzaremos mostrando la necesidad de una disciplina como la ingeniería del software, y a continuación estudiaremos brevemente los conceptos fundamentales en sistemas de información, ya que a éstos sistemas será a los que más atención prestaremos en la asignatura.
Después dedicaremos buena parte del programa al estudio de los principales procesos de desarrollo de software: análisis, diseño, prueba y mantenimiento. A lo largo de la asignatura prestaremos más atención al paradigma estructurado o convencional: el análisis y diseño orientados a objetos se estudiarán en detalle en segundo ciclo. Nos ocuparemos especialmente del proceso más crítico en el desarrollo: el análisis, presentando distintas técnicas, y centrándonos en el análisis estructurado. A continuación trataremos el proceso de diseño, discutiremos las características generales de una aplicación bien diseñada, y el método de diseño estructurado. Posteriormente estudiaremos el proceso de pruebas del software (no tratamos en esta asignatura la codificación del software).
Después de estudiar cada proceso del desarrollo veremos cómo se lleva a la práctica en Métrica 3, que es la metodología estándar de planificación y desarrollo de sistemas de información de la administración nacional.
Una vez que tengamos una visión de los procesos principales del desarrollo, siguiendo una aproximación de abajo a arriba, se presentarán los principales modelos de ciclo de vida del software y algunos métodos de desarrollo.
Se finalizará mostrando varios temas de interés en ingeniería del software: mantenimiento del software (incluyendo reingeniería e ingeniería inversa), reutilización, y herramientas CASE (Computer-Aided Software Engineering).
Estructura del temario y transparencias
BLOQUE I. INTRODUCCIÓN |
BLOQUE II. EL CICLO DE DESARROLLO DE SOFTWARE |
Tema 3. Análisis de requisitos Parte 1. Actividades iniciales y análisis de requisitos Parte 2. Análisis estructurado. Visión panorámica y DFDs Parte 3. Análisis estructurado. DD, miniespecificaciones, DED, HVE Parte 4. Análisis estructurado. El proceso de Yourdon Parte 5. Introducción a los casos de uso |
Tema 4. Diseño del software |
Tema 5. Prueba del software |
BLOQUE III. MODELOS DE PROCESO DEL SOFTWARE |
Tema 6. El proceso del software |
BLOQUE IV. MÉTODOS DE DESARROLLO |
Tema 8. Introducción a los métodos de desarrollo de software |
BLOQUE V. OTRAS CUESTIONES EN INGENIERÍA DEL SOFTWARE |
El temario de teoría se imparte secuencialmente, con la excepción del Bloque IV, “Métodos de desarrollo”, que se va impartiendo gradualmente intercalado con el Bloque II, “El ciclo de desarrollo del software”. La idea es enseñar los procesos de Métrica 3 (por ejemplo, “Análisis del Sistema de Información”, “Diseño del Sistema de Información”, etc.) una vez se ha introducido el conocimiento general acerca de ese proceso en el tema correspondiente del Bloque II.
Estructura detallada del temario
Tema 1.
Introducción a la ingeniería del software.
Tema 2.
Introducción a los sistemas de información.
Tema 3. Análisis de requisitos.
Tema 4. Diseño del software.
El proceso de diseño.
Modelos de diseño.
Diseño estructurado.
Métricas de calidad estructural.
Heurísticas de diseño estructural
Tema 5. Prueba del software.
Objetivos de la prueba.
Importancia de la prueba.
Principios de la prueba.
El proceso de prueba.
Métodos de diseño de casos de prueba.
Enfoque estructural.
Enfoque funcional.
Prueba de interfaces gráficas de usuario.
Estrategias de prueba del software.
Tema 6. El proceso del software.
El proceso del software.
Estándares en ingeniería del software.
Estándares relacionados con el proceso software.
Familia de estándares ISO 9000
SEI's CMMI
IEEE/ISO/IEC 12207
Tema 7. Modelos del ciclo de vida del software.
Concepto de modelo del ciclo de vida.
Modelos del ciclo de vida
Modelo en cascada.
Modelo en cascada con prototipado desechable.
Paradigma de programación por transformaciones.
Ciclos de vida evolutivos.
Modelo de ensamblaje de componentes.
Técnicas de 4ª generación.
Ciclos de vida orientados a objetos.
Modelado del proceso software.
Tema 8. Introducción a los métodos de desarrollo de software.
Definición.
Beneficios.
Adaptación del método.
Características deseables.
Métodos ágiles.
Clasificación general.
Ejemplos de métodos.
Tema 9. Métrica 3.
Tema 10. Mantenimiento del software.
Tema 11. Reutilización del software.
Reutilización del software.
Beneficios de la reutilización
Dificultades para la reutilización
Assets.
Niveles de reutilización
Modelo de procesos con reutilización
Ingeniería de dominios.
Ingeniería del software basada en componentes
Clasificación y recuperación de assets o
componentes
Tema 12. Herramientas CASE.
Objetivos.
Características deseables.
Componentes de una herramienta CASE.
Taxonomías de CASE.
Situación actual.
Criterios de selección.
Los enunciados de prácticas serán los mismos en las tres convocatorias del curso.
Práctica 0: Seminario de System Architect -pdf-
· Aprender a manejar las funciones básicas de System Architect, la herramienta CASE (Computer-Aided Software Engineering) que vamos a utilizar en prácticas, a través de la introducción de la especificación estructurada de un problema sencillo, que se proporciona ya resuelto.
· Esta práctica no produce resultados para evaluar
Práctica 1: Análisis con Métrica 3 -caso de estudio- -entrega1- -entrega2- -entrega3-
· Utilizar la metodología Métrica 3 (en su vertiente estructurada) en la especificación de los requisitos de una aplicación.
· Dominar los conceptos fundamentales del análisis estructurado.
· Crear un prototipo de interfaz de la aplicación
· Ver Tablón de anuncios
Ejemplos de resolución de prácticas de años anteriores:
Ejemplo 1: Análisis con Métrica 3: "Basurillas S.L."
Enunciado -pdf-
Un ejemplo de resolución -pdf-
Ejemplo 2: Análisis con Métrica 3: "La MegaSubasta Pública"
Enunciado -pdf-
Un ejemplo de resolución -pdf-
Ejemplo 3: Análisis con Métrica 3: "Estudio de arquitectura EAQ SL"
Enunciado -pdf-
Un ejemplo de resolución -pdf-
La metodología docente que se seguirá durante el curso será la siguiente:
a) El temario de teoría se imparte a través de clases de teoría (metodología expositiva) complementadas con clases de problemas en el Bloque II del temario. En estas clases de problemas son los propios alumnos quienes resuelven ejercicios en la pizarra, de un boletín que se ha entregado al principio del tema.
En las clases de teoría se utilizarán transparencias. Las transparencias no son "los apuntes” de la asignatura. Al iniciar cada tema, el profesor indicará la bibliografía básica y complementaria del mismo.
b) El temario de prácticas se desarrollará de la siguiente manera:
b.1) Seminario de presentación de System Architect (Práctica 0)
b.2) Sesiones abiertas de dos horas semanales por grupo en el laboratorio, que los alumnos podrán utilizar para realizar las prácticas.
Las prácticas se organizan en grupos de dos personas.
Se realizará al menos una entrevista final a cada grupo, en la que se revisará cada práctica realizada. Durante el primer cuatrimestre se realizarán una serie de entregas y entrevistas parciales que estarán coordinadas con la asignatura de Bases de Datos.
En clase se establecerá el mecanismo de seguimiento de la misma por parte del profesor.
La nota final de la asignatura vendrá dada por la media de las notas de teoría y de prácticas:
Para hacer media será necesario aprobar las dos partes de la asignatura.
Si no se aprueba totalmente la asignatura, la nota de la parte de teoría o de prácticas aprobada en febrero se mantiene en las convocatorias de junio y septiembre.
· Se asume que el alumno domina la programación en un lenguaje imperativo de tercera generación como Pascal o C, y que posee los conceptos esenciales del diseño de algoritmos y estructuras de datos.
·
El alumno debe estar familiarizado con la creación
de modelos conceptuales utilizando diagramas Entidad/Relación, y con los
conocimientos sobre modelos lógicos y diseño lógico (que se obtienen en la asignatura
anual “Bases
de Datos”, que
se imparte también en tercer curso).
El texto básico de la asignatura. Presenta una visión muy completa de la disciplina, ligada a los estándares internacionales en ingeniería del software, que se corresponde bastante con el enfoque de la asignatura. El estilo es directo y resumido. Incluye un CD-ROM con ejercicios resueltos.
Probablemente se trata del libro de ingeniería del software más conocido, un auténtico diccionario enciclopédico de la disciplina. Proporciona una visión muy general, amplia y actualizada de la ingeniería del software, aunque nosotros preferimos recomendar en primer lugar el anterior y dejar este para aspectos más puntuales, debido a que en ocasiones la explicación es excesivamente abstracta.
El libro básico que recomendamos para seguir Análisis Estructurado. Un clásico.
La documentación de referencia para estudiar Métrica 3, que también se encuentra en la red en http://www.csi.map.es, junto con algunas herramientas metodológicas.
¡Recuerda que las transparencias no son los apuntes de la asignatura!
Convocatoria de enero |
31 de enero |
Convocatoria de junio |
20 de junio |
Convocatoria de septiembre |
2 de septiembre |
A modo de ejemplo, aquí está un examen de una convocatoria anterior. El estilo del examen se mantendrá este curso:
(18/09/2012)
TRANSPARENCIAS DE TEORÍA: tenéis todas las transparencias de la asignatura, en la sección "Teoría"
PRÁCTICAS DEL CURSO 2012/2013 (Titulación a extinguir)
Las prácticas son las mismas que las del curso 2011/2012, y tanto la Práctica 0 como las entregas 1, 2, y 3 de la Práctica 1 están disponibles en la sección "Prácticas".
En cada convocatoria, las fechas tope de entrega serán el día del examen. Así, tenemos:
Convocatoria de enero: 31 de enero.
Convocatoria de junio: 20 de junio.
Convocatoria de septiembre: 2 de septiembre.
(Para sucesivos anuncios haremos uso del Tablón de Anuncios del Aula Virtual.)