Joaquín Nicolás Ros

Facultad de Informática. Universidad de Murcia
Campus de Espinardo. 30071 - Espinardo - Murcia (Spain)
Teléfono: +34 868 88 85 25. Fax: +34 868 88 41 51
e-mail: jnr [at] um [.] es

 

Ofertas de proyectos fin de carrera y trabajos fin de grado
 

09BK - FUNDAMENTOS DE INGENIERÍA DEL SOFTWARE
[Objetivos] [Teoría] [Prácticas] [Material didáctico adicional]
[Metodología] [Evaluación] [Prerrequisitos] [Bibliografía básica]
[Convocatorias examen] [
Exámenes de otras convocatorias][Tablón de anuncios]

 

[ Volver a Página Principal ]

 

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

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:

 

Los objetivos de prácticas de la asignatura son los siguientes: 

 


PROGRAMA DE TEORÍA

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

Tema 1. Introducción a la ingeniería del software

Tema 2. Introducción a los sistemas de informació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

  Parte 6. Prototipado

  Boletín de ejercicios de análisis

  Boletín de soluciones a ejercicios de análisis

Tema 4. Diseño del software
  Boletín de ejercicios de diseño

  Boletín de soluciones a ejercicios de diseño

Tema 5. Prueba del software
  Boletín de ejercicios de pruebas

  Boletín de soluciones a ejercicios de pruebas

BLOQUE III. MODELOS DE PROCESO DEL SOFTWARE

Tema 6. El proceso del software
En la  fotocopiadora de la Facultad de Informática os he dejado material complementario para este tema:
    - (Hilera et al. 97) José R. Hilera, José A. Gutiérrez, J. Javier Martínez. “Estándares en la Ingeniería del Software”. Novática. Nov./dic. 1997. Número 130.
    - (Esteban Piattini 95) J. L. Esteban, M. Piattini. “Procesos del ciclo de vida del software”. Novática, Nov./dic. 1995.
    - Un ejemplo de la descripción de  un proceso en el estándar IEEE 12207.

Tema 7. Modelos del ciclo de vida del software

BLOQUE IV. MÉTODOS DE DESARROLLO

Tema 8. Introducción a los métodos de desarrollo de software

Tema 9. Métrica 3

BLOQUE V. OTRAS CUESTIONES EN INGENIERÍA DEL SOFTWARE

Tema 10. Mantenimiento del software

Tema 11. Reutilización del software

Tema 12. Herramientas CASE

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

Bloque I. Introducción

Tema 1. Introducción a la ingeniería del software.

  1. 1.Motivación.
  2. El software.
  3. Factores de calidad del software.
  4. 4Problemas en el desarrollo de software.
  5. 5.La ingeniería del software.
  6. 6.Visión general del proceso de ingeniería del software.
  7. 7.Responsabilidad ética y profesional en ingeniería del software.

Tema 2. Introducción a los sistemas de información.

  1. 1.Concepto de sistema.
  2. 2.Información y datos.
  3. 3.Sistemas de información.
  4. 4.Sistema de información automatizado.
  5. 5.Sistema de información empresarial.
  6. 6.Elementos de un sistema de información.
  7. 7.Estructura de un sistema de información.
  8. 8.Otros conceptos útiles en sistemas de información.

Bloque II. El ciclo de desarrollo de software

Tema 3. Análisis de requisitos.

  1. 1.Actividades iniciales.
  2. 2.Técnicas de recogida de la información.
  3. 3.Requisitos y análisis de requisitos.
  4. 4.Actividades generales de análisis de requisitos.
  5. 5.Documentos de especificación de requisitos.
  6. 6.Análisis estructurado.
  7. 7.Casos de uso.
  8. 8.Prototipado.

Tema 4. Diseño del software. 

  1. El proceso de diseño.

  2. Modelos de diseño.

  3. Diseño estructurado.

  4. Métricas de calidad estructural.

  5. Heurísticas de diseño estructural

Tema 5. Prueba del software. 

  1. Objetivos de la prueba.

  2. Importancia de la prueba.

  3. Principios de la prueba.

  4. El proceso de prueba.

  5. Métodos de diseño de casos de prueba.

  6. Enfoque estructural.

  7. Enfoque funcional.

  8. Prueba de interfaces gráficas de usuario.

  9. Estrategias de prueba del software.

Bloque III. Modelos de proceso del software

Tema 6. El proceso del software.

  1. El proceso del software.

  2. Estándares en ingeniería del software.

  3. Estándares relacionados con el proceso software.

  4. Familia de estándares ISO 9000

  5. SEI's CMMI

  6. IEEE/ISO/IEC 12207

Tema 7. Modelos del ciclo de vida del software.

  1. Concepto de modelo del ciclo de vida.

  2. Modelos del ciclo de vida

  3. Modelo en cascada.

  4. Modelo en cascada con prototipado desechable.

  5. Paradigma de programación por transformaciones.

  6. Ciclos de vida evolutivos.

  7. Modelo de ensamblaje de componentes.

  8. Técnicas de 4ª generación.

  9. Ciclos de vida orientados a objetos.

  10. Modelado del proceso software.

Bloque IV. Métodos de desarrollo

Tema 8. Introducción a los métodos de desarrollo de software.

  1. Definición.

  2. Beneficios.

  3. Adaptación del método.

  4. Características deseables.

  5. Métodos ágiles.

  6. Clasificación general.

  7. Ejemplos de métodos.

Tema 9. Métrica 3. 

  1. 1.MÉTRICA - Objetivos.
  2. 2.Ámbito de aplicación.
  3. 3.Alcance del método.
  4. 4.Versiones.
  5. 5.MÉTRICA V.3 - Objetivos.
  6. 6.Influencias.
  7. 7.Aportaciones.
  8. 8.Estructura de MÉTRICA V.3.
  9. 9.Procesos en MÉTRICA V.3.
  10. 10.PLANIFICACIÓN DE SISTEMAS DE INFORMACIÓN (PROCESO PSI).
  11. 11.ESTUDIO DE VIABILIDAD DEL SISTEMA (PROCESO EVS).
  12. 12.ANÁLISIS DEL SISTEMA DE INFORMACIÓN (PROCESO ASI).
  13. 13.DISEÑO DEL SISTEMA DE INFORMACIÓN (PROCESO DSI).
  14. 14.CONSTRUCCIÓN DEL SI (PROCESO CSI).
  15. 15.IMPLANTACIÓN Y ACEPTACIÓN DEL SISTEMA (PROCESO IAS).
  16. 16.MANTENIMIENTO DE SISTEMAS DE INFORMACIÓN (MSI).
 

Bloque V. Otras cuestiones en ingeniería del software

Tema 10. Mantenimiento del software. 

  1. 1.Introducción.
  2. 2.Tipos de mantenimiento.
  3. 3.Costes del mantenimiento.
  4. 4.Dificultades del mantenimiento.
  5. 5.El proceso de mantenimiento en el ciclo de vida del sw.
  6. 6.Métodos de mantenimiento del software.
  7. n
  8. 7.Mantenibilidad o facilidad de mantenimiento del sw.

 Tema 11. Reutilización del software. 

  1. Reutilización del software.

  2. Beneficios de la reutilización.

  3. Dificultades para la reutilización.

  4. Assets.

  5. Niveles de reutilización.

  6. Modelo de procesos con reutilización.

  7. Ingeniería de dominios.

  8. Ingeniería del software basada en componentes.

  9. Clasificación y recuperación de assets o componentes.

Tema 12. Herramientas CASE.

  1. Objetivos.

  2. Características deseables.

  3. Componentes de una herramienta CASE.

  4. Taxonomías de CASE.

  5. Situación actual.

  6. Criterios de selección.


PROGRAMA DE PRÁCTICAS

Los enunciados de prácticas serán los mismos en las tres convocatorias del curso.

Práctica 0: Seminario de System Architect   -pdf-

Objetivo

·        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.

 

Fecha de entrega

·        Esta práctica no produce resultados para evaluar

 

Práctica 1: Análisis con Métrica 3   -caso de estudio-   -entrega1-   -entrega2-   -entrega3-

Objetivos

·       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

 
Fechas de entrega (convocatorias de enero, mayo-junio y septiembre)

·        Ver Tablón de anuncios

 

 


 

Material didáctico adicional

 

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-

 

 

 


METODOLOGÍA

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.


EVALUACIÓN

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.


PRERREQUISITOS

·         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).  

Þ Si el alumno no ha cursado Bases de Datos, y no está matriculado en la misma, debe ponerse en contacto con el profesor.


BIBLIOGRAFÍA BÁSICA

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.

Todos estos libros se encuentran en la biblioteca. Al comenzar cada tema o cada sección del temario el profesor indicará los capítulos y apartados concretos de la bibliografía (básica y complementaria) que se pueden utilizar para seguir la asignatura. 

¡Recuerda que las transparencias no son los apuntes de la asignatura!


CONVOCATORIAS. Curso 2012/2013.

Convocatoria de enero 

31 de enero

Convocatoria de junio

20 de junio

Convocatoria de septiembre

2 de septiembre

 

 


Exámenes de otras convocatorias

A modo de ejemplo, aquí está un examen de una convocatoria anterior. El estilo del examen se mantendrá este curso:

Ejemplo de examen


TABLÓN DE ANUNCIOS

(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.)