MATERIA:Ingeniería de Software
CLAVE:COMP-520
SEMESTRE DE UBICACION:Quinto
AREA:Ciencias de la Computación
OBJETIVOS: Este curso presenta un estudio profundo de muchos de
los temas de ingeniería de software, incluyendo paradigmas de ingeniería
de software, especificación de requisitos, diseño funcional y orientación
de objetos, verificación y mantenimiento de software. Se discuten ambientes
y herramientas de software y se introduce a los estudiantes a su uso.
Se consideran también implicaciones sociales tales como el costo de las
fallas y las responsabilidades profesionales. El curso también comprende
una introducción a la interacción computadora - humano y una discusión
de algunas interfaces vistas desde la perspectiva del software. Este curso
requiere de la participación de los estudiantes en proyectos por equipos.
TEMARIO:
- Introducción: Conceptos a tratar
- Objetivos del diseño de software
- Documentación
- Control y administración de la configuración
- Aspectos de la confiabilidad del software: seguridad, responsabilidad, estimación del riesgo
- Mantenimiento
- Herramientas de especificación y diseño, herramientas de implementación
- La naturaleza y cualidades del software
- Clasificación de las distintas cualidades relativas al software
- Cualidades representativas
- Cualidades necesarias en distintas áreas de aplicación
- Medición de la calidad
- Principios de la Ingeniería de Software
- Rigor y formalismo
- Separación de problemas (concerns)
- Modularidad
- Abstracción
- Previsión para el cambio
- Generalidad
- Incrementabilidad
- Diseño de software
- La actividad de diseño y sus objetivos.
- Técnicas para la modularización
- Diseño funcional/orientado al proceso
- Diseño desde abajo; apoyo para la reutilización
- Estrategias de implementación (desde arriba, desde abajo, desarrollos en equipo)
- Tópicos de implementación; mejoría en el desempeño, depuración, prevención de problemas
- Diseño orientado a objetos
- Manejo de anomalías
- Software concurrente
- Especificación de requisitos de software
- El uso de las especificaciones
- Cualidades de las especificaciones
- Clasificación de estilos de especificaciones
- Especificaciones y verificación
- Especificaciones operativas
- Especificaciones descriptivas
- Construcción y uso de especificaciones en la práctica
- Verificación y Validación
- Metas y requisitos para la verificación
- Enfoques para la verificación
- Pruebas (Generación de un plan de pruebas, aceptación de las pruebas, pruebas por unidad, pruebas de integración, pruebas de regresión)
- Análisis. Técnicas informales contra pruebas de correctez
- Ejecución simbólica
- Depuración
- Otros aspectos: Desempeño, robustez, métricas del software
- Herramientas y ambientes para la ingeniería de software
- Desarrollo histórico de herramientas y ambientes
- Clasificación de herramientas y ambientes de software
- Herramientas más representativas: editores, ligadores, intérpretes, generadores de código, depuradores, herramientas para pruebas, analizadores estáticos, herramientas pasa el manejo de interfaces, configuración y administración; infraestructura para la ingeniería de software.
- El papel del lenguaje de programación en el ambiente
- Algunos ejemplos de herramientas
- Perspectiva
BIBLIOGRAFIA:
- Ghezzi, C.; Jazayeri, M.; Mandrioli, D., Fundamentals of Software Engineering, Prentice-Hall Inc., 1991.
- Ledgard, H.; Tauer, J., Professional Software, Software EngineeringConcepts, Vol. 1, Adison-Wesley Publishing company, 1988
BIBLIOGRAFIA COMPLEMENTARIA:
- Gilb, T., Principles of Software Engineering Management, Addison-Wesley Publishing Company, 1988
- Glass, R.L., Software Conflict, Essays on the Art and Science of Software Engineering, Yourdon Press Computing Series, 1991
- Hrietza, J.; Jackson, K., Computer Security Solutions, Blackwell Scientific Publications,1990
- Naur,P., Computing: A Human Activity, ACM Press, Addison Wesley Publishing Company, 1992
- Schulmeyer, G. G., Zero Defect Software, MaGraw-Hill, Inc., Software Engineering Series, 1990
- Thimbleby, H., User Interface Design, ACM Press, Addison-Wesley Publishing Company, 1990
- Nutt, G.J., Centralized and Distributed Operating Sistems, Prentice-Hall,1991
- Klerer, M., Design of Very High-Level Computer Languages, A User-Oriented Approach, 2nd. Edition, McGraw-Hill, Inc., 1991
- Tracz, W.; Editor, Software Reuse-Emerging Technology, IEEE Computer Society Press, 1988
|