Fundamentos de Ingeniería del Software - Curso 10/11
3º de ITIG - Facultad de Informática



Material-Teoría

material
Planificación docente Teórico/Práctica de Fundamentos de Ingeniería del SW.
Material necesario
Temporalización de las Actividades: Calendario * (calendario y fechas provisionales sujetos a cambios)
 
Actividad
Fecha Prevista
Comienzo del curso
28-Septiembre-2010
Práctica 0: Seminario de System Architect 2001
05-Noviembre-2010
Entrega del Catálogo General de Requisitos
4-Noviembre-2010
Lista de Aptos y No Aptos del CGR
11-Noviembre-2010
Reentrega del CGR de los grupos No Aptos
18-Noviembre-2010
Convocatoria de Febrero - Examen T/P
19-Enero-2011
Convocatoria de Febrero - Prácticas
19-Enero-2011
Convocatoria de Junio - Examen T/P
2-Junio-2011
Convocatoria de Junio - Prácticas
2-Junio-2011
Convocatoria de Septiembre - Examen T/P
7-Septiembre-2011
Convocatoria de Septiembre - Prácticas
7-Septiembre-20011
Tema 1.- Introducción a la Ingeniería del Software.
Material necesario
  Abstract/Resumen:
 
Con Fundamentos de Ingeniería del Software (FIS) se pretende 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? .

MÉTRICA. Versión 3.
Introducción
Planificación de Sistemas de Información (Proceso PSI)
Estudio de Viabilidad del Sistema (Proceso EVS)
Análisis del Sistema de Información (Proceso ASI)
Diseño del Sistema de Información (Proceso DSI)
Construcción del Sistema de Información (Proceso CSI)
Implantación y Aceptación del Sistema (Proceso IAS)
Mantenimiento del Sistema de Información (Proceso MSI)

Tema 2.- Análisis Estructurado.
Material necesario
Catálogo General de Requisitos  
Catálogo General de Requisitos
  Abstract/Resumen:
 
Se pretente proporcionar una visión general de los procedimientos, herramientas, tareas y resultados del análisis esturcturado, el cual tiene como objetivo la obtención de una especificación detallada del sistema de información que satisfaga las necesidades de información de los usuarios y sirva de base para el posterior diseño del sistema. A pesar de que el elemento central del tema es el análisis estructurado se completa como una somera introducción a los procesos de Planificación y Estudio de Viabilidad, en este marco el Estudio de Viabilidad del Sistema nos propociona un conjunto concreto de necesidades para proponer una solución a corto plazo, que tenga en cuenta restricciones económicas, técnicas, legales y operativas y la Planificación de futuro sistema nos permitirá la obtención de un marco de referencia para el desarrollo de sistemas de información que responda a los objetivos estratégicos de la organización
Tema 3.- Prototipado.
Material necesario
  Abstract/Resumen:
 
En el desarrollo de un Sistema de Información la visión lógica de los requerimientos/requisitos del software presenta las funciones que ha de resolver y la información que ha de procesarse independientemente de los detalles de implementación, mientras que la visión física de los requerimientos del software presenta una manifestación del mundo real de dichas funciones y las estructuras de información. Como herramienta de trabajo en algunos casos se desarrolla una representación física como el primer paso del diseño del software, es decir un modelo o maqueta (PROTOTIPO) del sistema que se pretende construir para comprender mejor el problema y sus posibles soluciones.
En este ámbito y relacionado con el tema 6 "El Proceso Software. Paradigmas del Ciclo de Vida", nos encontramos con el Modelo de construcción de prototipos, paradigma de construcción de prototipos con tres pasos: (1) Escuchar al cliente. Recolección de requisitos. Se encuentran y definen los objetivos globales, se identifican los requisitos conocidos. (2) Construir y revisar la maqueta (prototipo). y (3) El cliente prueba la maqueta (prototipo) y lo utiliza para refinar los requisitos del software.
Este modelo es útil cuando el cliente no identifica los requisitos detallados y el responsable del desarrollo no está seguro de la eficiencia de un algoritmo, sistema operativo o de la interface hombre-máquina.
Tema 4.- Diseño Estructurado.
Material necesario Ejercicios
  Abstract/Resumen:
 
El objetivo del proceso de Diseño Del Sistema de Información es la definición de la arquitectura del sistema y del entorno tecnológico que le va a dar soporte, junto con la especificación detallada de los componentes del sistema de información. A partir de dicha información, se generan todas las especificaciones de construcción relativas al propio sistema, así como la descripción técnica del plan de pruebas, la definición de los requisitos de implantación y el diseño de los procedimientos de migración y carga inicial, éstos últimos cuando proceda.
En el diseño estructurado orientado al flujo de datos, partimos de la representación del flujo de la información obtenida en la fase de análisis, donde la información puede representarse como un flujo continuo que sufre una serie de transformaciones conforme va de la entrada a la salida. El diagrama de flujo de datos DFD se utiliza como herramienta gráfica para la descripción del flujo de la información.
El objetivo principal del diseño es desarrollar una estructura de programa modular y representar las relaciones de control entre los módulos. Mezcla la estructura de programas y la estructura de datos y define las relaciones que facilitan el flujo de los datos a lo largo del programa.
Tema 5.- Prueba Software.
Material necesario Ejercicios/Ejemplos
  Abstract/Resumen:
 
Las pruebas Sw han tomado importancia al ser reconocidas como parte del ciclo de desarrollo de un producto de Software, actualmente no hay una sola empresa interesada en calidad que se dedique al desarrollo de software que no haya implementado alguna metodología y/o tenga un equipo dedicado a verificar la calidad de sus productos.
Siendo este un campo relativamente nuevo es también generador de muchos empleos, teniendo como objetivo establecer las bases sólidas en técnicas y herramientas a emplear dando elementos para que el alumno ponga a prueba y sea capaz de identificar las áreas vulnerables de cualquier programa de software.
Al término de la materia, el alumno será capaz de generar un plan completo de pruebas y ejecutarlo para determinar si un desarrollo cumple con el objetivo para el que fue diseñado y es aceptable el nivel de calidad, además de dar sus recomendaciones para mejora. Establecerá un nuevo concepto de calidad que le permita cuestionar inclusive los programas que el mismo genera.
Ejercicios ADPSw.
Tema 6.- El Proceso Software. Paradigmas del Ciclo de Vida.
Material necesario
Abstract/Resumen:
El proceso SW es uno de los campos de la Ingeniería del Software que está teniendo más desarrollo en los últimos años. Esta materia aporta nuevas y más potentes maneras de abordar la complejidad del desarrollo y mantenimiento del software mediante la integración y automatización de los aspectos de gestión con los aspectos puramente ingenierles. Podemos definirlo como un conjunto coherente de políticas, estructuras organizacionales, tecnologías, procedimientos y artefactos que son necesarios para concebir, desarrollar, instalar y mantener un producto software.
Tema 7.- Métodos de desarrollo SW.
Material necesario
Abstract/Resumen:

Una metodología de desarrollo de software se refiere a un framework que es usado para estructurar, planear y controlar el proceso de desarrollo en sistemas de información. A lo largo del tiempo, una gran cantidad de métodos han sido desarrollado diferenciandose por su fortaleza y debilidad. El framework para metodológía de desarrollo de software consisten en: Una filosofía de desarrollo de software con el enfoque del proceso de desarrollo de software y Herramientas, modelos y métodos para asistir al proceso de desarrollo de software.

Tema 8.- Elementos básicos en la planificación y gestión de proyectos.
Material necesario
Abstract/Resumen:
Los gestores de proyectos informáticos juegan un papel cada vez más crítico en el éxito de las organizaciones actuales. Su conocimiento de las Tecnologías de la Información y las prácticas de gestión pueden determinar si una organización triunfa o fracasa en sus negocios.
Los mercados de hoy en día requieren que los productos se desarrollen o fabriquen en ciclos cada vez más cortos y que obedezcan a unos límites de recursos y costes, se dirijan a las necesidades específicas de los clientes, y sean de alta calidad. Los directores de proyectos que traten con estos objetivos desafiantes (y a menudo conflictivos) deben ser muy hábiles en la planificación, coordinación y dirección de los esfuerzos asociados a los proyectos informáticos. Deben conocer aproximaciones alternativas que puedan ser utilizadas, y saber cuando y como adaptar las mejores practicas para ajustarse al proyecto concreto. Han de aprovechar las experiencias anteriores de sus organizaciones cuando diseñen sus planes. Deben saber como establecer métricas, con objeto de monitorizar el progreso del proyecto y revisar la calidad de sus productos. El gestor de proyectos del futuro debe ser también un líder de equipo en un escenario multidisciplinar.
Por ello ejecutar un proyecto informático eficazmente es, evidentemente, una de las mayores preocupaciones de todo responsable informático. Misión difícil en la medida que cada proyecto relaciona numerosos actores con intereses diversos y variados, dentro de un contexto tecnológico cada vez más sofisticado.
La mejor manera de aproximarse a la gestión y planificación de proyectos informáticos es plantearse algunas preguntas, tales como:
¿Que es un proyecto informático?
¿Cómo encaja el proyecto informático dentro de la estrategia de la empresa?
¿Cómo podemos organizar y planificar un proyecto informático?
¿Cómo podemos estimar los costes en un proyecto informático?
¿Cómo podemos hacer el seguimiento a un proyecto informático?
¿Cómo debemos de organizar los equipos de proyectos?
¿Cómo podemos garantizar la calidad en los proyectos informáticos?
Tema 9.- Mantenimiento del SW.
Material necesario
Abstract/Resumen:

La calidad en el desarrollo y mantenimiento del software se ha convertido hoy en día en uno de los principales objetivos estratégicos de las organizaciones, debido a que cada vez más, los procesos principales de las organizaciones (y su supervivencia) dependen de los sistemas informáticos para su buen funcionamiento.
En la evolución experimentada por la calidad del software se ha pasado de un tratamiento centrado fundamentalmente en la inspección y detección de errores, a una aproximación más sistemática, dada la importancia que ha adquirido la calidad en la ingeniería del software. En los últimos años se han publicado diversos estudios y estándares en los que se exponen los principios que se deben seguir para la mejora tanto de productos como de procesos software. Todo ello ha influido de forma significativa en el papel que actualmente tiene la calidad en las organizaciones, que pasa a convertirse en una filosofía y una cultura que afecta a toda la organización.

Tema 10.- Reutilización del SW.
Material necesario
  Abstract/Resumen:
El concepto de reutilización software no es una idea nueva en el mundo de la informática. Los primero programadores ya copiaban y pegaban líneas de código realizadas en desarrollos anteriores. De hecho la reutilización es cualquier procedimiento que produce o ayuda a producir un sistema mediante el nuevo uso de algún elemento procedente de un esfuerzo de desarrollo anterior (Freeman, 1987). En un proyecto software intervienen una gran cantidad de procesos. La norma IEEE 12207 divide estos procesos en principales, de soporte, de organización y de adaptación. Estos a su vez se dividen en otros subprocesos. Por tanto, en el ciclo de vida del software son muchos los elementos susceptibles de ser reutilizados (Moore, 1997). En este marco tan extenso, este tema en mostrar que la reutilización no debe verse como una mera copia de código ya desarrollado sino cualquier producto sw. obtenido en el ciclo de vida del software, con independencia de su nivel de abstracción.

Tema 11.- Métrica versión 3.

Material-Práctica

material

Práctica 0: Seminario de System Architect 2001.
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.
Material necesario      Grupos de Prácticas

Práctica 1: Caso de estudio – ATSCarm "Adjudicación Telemática de Secundaria”
Resolución de un Caso Práctico centrado en los conceptos desarrollados en la parte teórica, fundamentalmente relacionados con el Bloque 2 “Desarrollo de SW” y el Bloque 4 “Planificación y Gestión de Proyectos informáticos.”. El enunciado de la práctica es el mismo para Fundamentos de Ingeniería del SW (05BM) y Diseño de Base de Datos (05BP).

  Enunciado de la Práctica     
Catálogo General de Requisitos  
Catálogo General de Requisitos
Ejemplo de CGR (2007/2008)
Anexos de la Práctica: ATSCarm

Descarga de las herramienta y documentos:

Descarga de "System Architect 2001 demo":

[sa2001i.exe] [clave de instalación]

Documentación de SA2001:

Página de Telelogic (que recientemente ha adquirido Popkin Software): http://www.telelogic.com/popkin

Breve presentación de SA2001: [sa2001doc]

Guía de instalación y fundamentos de manejo (en inglés): 
[Installation guide and quickstart]

Breve introducción al manejo de System Architect:
[man-sa99.zip]
Manuales de System Architect traducidos al castellano: [manualSA1.zip] [manualSA2.zip]