Ministerio de Cultura y Educación
Universidad Nacional de San Luis
Facultad de Ciencias Físico Matemáticas y Naturales
Departamento: Informatica
Área: Area IV: Pr. y Met. de Des. del Soft.
(Programa del año 2009)
(Programa en trámite de aprobación)
(Programa presentado el 29/04/2009 16:07:48)
I - Oferta Académica
Materia Carrera Plan Año Periodo
INGENIERIA DE SOFTWARE I PROF.EN CS.DE LA COMPUTACIÓN 2009 1° cuatrimestre
INGENIERIA DE SOFTWARE I LIC.EN CS.DE LA COMPUTACION 2009 1° cuatrimestre
II - Equipo Docente
Docente Función Cargo Dedicación
FUNES, ANA MARIA Prof. Responsable P.Adj Exc 40 Hs
GARIS, ANA GABRIELA Responsable de Práctico JTP Semi 20 Hs
ABDELAHAD, CORINA NATALIA Auxiliar de Práctico A.1ra Semi 20 Hs
III - Características del Curso
Credito Horario Semanal Tipificación Duración
Teórico/Práctico Teóricas Prácticas de Aula Práct. de lab/ camp/ Resid/ PIP, etc. Total B - Teoria con prácticas de aula y laboratorio Desde Hasta Cantidad de Semanas Cantidad en Horas
Periodo
 Hs.  Hs.  Hs.  Hs. 8 Hs. 1º Cuatrimestre 09/03/2009 19/06/2009 15 120
IV - Fundamentación
Se introduce al alumno en el desarrollo de software como una actividad ingenieril y al trabajo en equipo.
Teniendo en cuenta que es la primer asignatura relacionada a dicho tema, se pretende que el alumno aprenda los fundamentos
básicos de cada una de las etapas que comprende el proceso de desarrollo de software así como las distintas técnicas y metodologías aplicables, con especial énfasis en el desarrollo de especificaciones tanto formales como semi-formales, conocimientos de los principios de diseño así como de las principales técnicas de validación y verificación del software.
V - Objetivos / Resultados de Aprendizaje
Al finalizar la asignatura el alumno debe ser capaz de haber asimilado los conceptos de naturaleza y cualidades del software,
principios de la Ingeniería del Software, el proceso de desarrollo de software, especificaciones, diseño, validación y verificación del software, asi como haberlo introducido en el uso de tecnologías de CASE.
VI - Contenidos
Bolilla 1: La Ingeniería de software.
Aspectos históricos. Crisis del software. El modelo tradicional de ciclo de vida de la Ingeniería de Software. El paradigma orientado a objetos. Fortalezas y debilidades de ambos paradigmas.

Bolilla 2: Modelos de ciclo de vida del software.
Modelo teórico. Modelo incremental e iterativo. Modelo en cascada. Modelo de desarrollo de prototipo. Modelos evolutivos. Modelo Incremental. Modelo en espiral. Otros modelos.

Bolilla 3: Especificaciones informales.
Especificaciones de software. Modelos del análisis clásico. Modelo de datos: diagramas de Entidad-Relación. Modelo de Comportamiento: diagramas de transición de estados. Modelo de procesos: diagramas de flujos de datos. Diccionario de datos.

Bolilla 4: Métodos Formales.
Los Métodos Formales en la Ingeniería de Software. Aplicabilidad. Estilos de desarrollo formal. Estilos de especificaciones. Grados de rigor. Pros y contras.

Bolilla 5: Especificaciones formales.
Especificaciones orientadas al comportamiento. Máquinas de estados finitos. Redes de Petri. Especificaciones orientadas a la propiedad y al modelo. Abstracción de datos y operaciones. Tipos y valores. Axiomas.

Bolilla 6: Diseño.
El proceso de Diseño. Abstracción. Refinamiento. Modularidad. Módulos. Cohesión y acoplamiento. Encapsulación de datos. Tipos de datos abstractos. Ocultamiento de la información. Objetos. Cohesión y acoplamiento de objetos.

Bolilla 7: Validación y verificación del software.
Conceptos de validación y verificación del software. El proceso de prueba (Testing). Estrategias: prueba de unidad, prueba de integración, prueba de validación, prueba de sistema. Prueba funcional y prueba estructural. JUnit.

Bolilla 8: Planeamiento y estimación.
Planeamiento y desarrollo de software. Estimación de duración y costo. Métricas para el tamaño del producto. Técnicas de estimación de costo. El modelo COCOMO.

VII - Plan de Trabajos Prácticos
Practico 1: La Ingeniería de Software y los modelos de ciclo de vida del software.
Práctico 2: Especificaciones de software informales- Modelos del Análisis Clásico.
Práctico 3: Especificaciones de software formales I: Maq. de Estado Finitas y Redes de Petri.
Práctico 4: Especificaciones de software formales II: RSL.
Práctico 5: Pruebas Estructural.
Práctico 6: Pruebas Funcional.

Práctico de Máquina: Especificación formal de un caso de estudio haciendo uso de un lenguaje de especificación formal.
VIII - Regimen de Aprobación
Condiciones para regularizar la materia:
· Aprobar los prácticos de máquina con toda su documentación entregada en tiempo y forma, y dos exámenes parciales.

· Prácticos de máquina:
· Entregar y aprobar los prácticos de máquina.
· Un práctico de máquina se evalúa como aprobado o desaprobado, únicamente.
· Los prácticos se podrán realizar en grupos de hasta tres integrantes.

· Exámenes parciales:
· Aprobar dos exámenes parciales o sus respectivas recuperaciones, con nota mayor o igual que seis para su regularización.
· Se otorga, tal como lo expresa la reglamentación vigente, un recuperatorio por trabajo solamente a aquellos alumnos que
hayan acreditado tal condición en Sección Alumnos.
· En todos los exámenes parciales, sus recuperatorios, y por trabajo la última nota obtenida será la definitiva.

Condiciones para promocionar la materia:
· Regularizar la materia con la siguiente condición adicional:
· Aprobar los dos parciales o sus recuperatorios con nota mayor o igual que ocho.
· En caso de no promocionar el alumno deberá rendir un examen final.

EXAMENES LIBRES
· Solo se admiten exámenes libres de aquellos alumnos que hayan entregado y aprobado en tiempo y forma los trabajos
prácticos de máquina solicitados por la cátedra. Esta condición de admisión se mantendrá en vigencia hasta la presentación
del próximo programa de la materia.
IX - Bibliografía Básica
[1] Pressman, Roger, "Ingeniería del Software - Un enfoque práctico", Mc Graw Hill, 5ta Edición.2002.
[2] Sommerville, Ian; “Software Engineering”, Addison-Wesley, 5ta Edición. 1996.
[3] Ghezzi, Carlo y otros; "Fundamentals of Software Engineering", Prentice Hall, 1991.
[4] Jorgensen, Paul C.; “Software Testing, a Craftsman’s Approach”, CRC Press, 1995.
[5] Yourdon, Edward; “Análisis Estructurado Moderno”, Prentice-Hall Hispanoamericana, 1993.
X - Bibliografia Complementaria
[1] Bolaños, Javier. "Pruebas de Sofware y JUnit".Pearson Education, 2008.
[2] Pankaj Jalote. "An Integrated Approach to Software Engineering, 3rd ed.", Springer, 2005.
[3] Stephen Schach. "Ingeniería de Sofware Clásica y Orientada a Objetos, 6ta ed.", Mc Graw Hill, 2005.
XI - Resumen de Objetivos
Al finalizar la asignatura el alumno debe ser capaz de haber asimilado los conceptos de naturaleza y cualidades del software,
principios de la Ingeniería del Software, el proceso de desarrollo de software, especificaciones, diseño, validación y verificación del software, asi como haberlo introducido en el uso de tecnologías de CASE.
XII - Resumen del Programa
Se introduce al alumno en el desarrollo de software como una actividad ingenieril y al trabajo en equipo.
Teniendo en cuenta que es la primer asignatura relacionada a dicho tema, se pretende que el alumno aprenda los fundamentos
básicos de cada una de las etapas que comprende el proceso de desarrollo de software así como las distintas técnicas y metodologías aplicables, con especial énfasis en el desarrollo de especificaciones tanto formales como semi-formales, conocimientos de los principios de diseño así como de las principales técnicas de validación y verificación del software.
XIII - Imprevistos
.
XIV - Otros