Programa y Bibliografía

Programa

Bibliografía

La materia consiste de clases Teórico/Prácticas sobre los ítems del programa. Cuenta con guías de trabajos prácticos que los alumnos deberían resolver a medida que se cubran los temas dados. La aprobación requiere ademas del parcial escrito la realización de un trabajo práctico aplicando los conceptos de Programación por Contratos y que se realizará en el lenguaje Eiffel. (Se propone la utilización de VisualEiffel Little, que corre sobre Win32 (o pueden usar la versión para Linux) o el compilador GNU Eiffel particularmente la versión elj_win32 que tiene el editor SEEd. Las Prácticas estarán basadas en Visual Eiffel).

Programa

Unidad 1

Motivaciones: Seguridad y confiabilidad en el software. Correctitud. Robuztez. El rol de los métodos formales. Técnicas que favorecen a la seguridad y confiabilidad en la construcción de software. Programación por componentes. Programación orientada a objetos: bases y conceptos fundamentales. Estableciendo contratos para la seguridad y confiabilidad. Derechos y obligaciones.

Unidad 2

Bases teóricas de la programación por contratos: aserciones y semántica formal. Contratos en el contexto del software, alcances, la relación cliente-proveedor. Precondiciones. Postcondiciones. Implicaciones en la correctitud. Invariantes de clase. Diseño de la precondición demandante o tolerante. Relación entre objetos y contratos.

Unidad 3

Programación por contratos : soporte y recursos ofrecidos por Eiffel. Visión general del lenguaje para desarrolo de prácticas y proyecto. Análisis de otros lenguajes para soportar esta propuesta: Ada, extensiones de C++, Java.

Unidad 4

Relación cliente-proveedor y la herencia. Subtipificación. Renombramientos. Signaturas (signatures) y semántica de operaciones redefinidas. Polimorfismo. Binding dinámico. Herencia y clases genéricas. Herencia y encapsulamiento.

Unidad 5

Ruptura de contrato. Contratos y el tratamiento de casos anormales. Una base sólida para el manejo de excepciones.

Unidad 6

Contratos y componentes: aplicando con éxito la reusabilidad. Soporte y ambientes de desarrollo para la programación por contratos. Manejo de blbliotecas.

Unidad 7

Análisis y diseño basado en contratos. BON (Business Object Notation). Introducción al OCL (Object Constraint Languaje) de UML. Contratos y standares que impulsan la calidad de software.

Unidad 8

Una ventana para la investigación: Trabajos y artículos relacionados con el tema.. Estudio y análisis. ¿Qué puede haber más allá de los abordajes actuales?.

Arriba

Bibliografía

"Programming by Contract", Mc Kim James, IEEE Computer, vol 29, num 3, March 1996

"Class Interface Design and Programming by Contract", Mc Kim James, Tools 18, 1995

"Design by Contract: The Eiffel Method ", Meyer Bertrand, in Proceedings of Tools USA’98. IEEE Society Computer, Tools 26 - USA’98

"Programming by Contract", Meyer Bertrand, in Advances in Object Oriented Software Engineering,Prentice Hall, 1991.

"Object Oriented Software Construction" , 2nd. Edition, Meyer Bertrand. Prentice Hall PRT, 1997.

"Object-Oriented Programming in Eiffel" , Thomas Pete and Weedon Ray, Addison Wesley 1995.

"Using Interface Definition Languages to Support Path Expressions and Programming by Contract" , Watkins D., in Proceedings of Tools USA’98. IEEE Society Computer,Tools 26 - USA’98

"Seamless Object-Oriented Software Architecture - Analysis and Design of Reliable Systems" , Waldén Kim and Nerson Jean-Marc, Prentice Hall 1994

"Tool Support for Design by Contract " , Plösch R., in Proceedings of Tools USA’98. IEEE Society Computer, Tools 26 - USA’98

"BON: Seamless, Reversible, Contract-Based Analysis and Design" , Waldén Kim,in Proceedings of Tools USA’98. IEEE Society Computer, Tools 26 - USA’98

"Eiffel: The Language" , Meyer Bertrand. Prentice Hall, second printing, 1992

"OO Language Comparison: Java, Eiffel and C++" , Joyner Ian, in Proceedings of Tools USA’98. IEEE Society Computer, Tools 26 - USA’98

"iContract - The Java™ Design by Contract™ Tool", Kramer R., in Proceedings of Tools USA’98. IEEE Society Computer, Tools 26 - USA’98

"Analysis by Contract: An Introduction to UML's Object Constraint Language (OCL)" , Mitchell Richard, in Proceedings of Tools USA’98. IEEE Society Computer, Tools 26 - USA’98

"Uncapsulated Objects: Java ,Eiffel and C++" Joyner Ian 2000.

 

Arriba