Enriqueciendo Code Contracts con Typestates
Por lo general un componente de software tiene requerimientos que no son para nada triviales cuando se trata del orden en que sus métodos o procedimientos pueden ser ejecutados. Esta situación es común, por ejemplo, en el caso de APIs que implementan protocolos. Este trabajo trata de ayudar en el pr...
Guardado en:
Autor principal: | |
---|---|
Otros Autores: | |
Formato: | Tesis de grado publishedVersion |
Lenguaje: | Español |
Publicado: |
Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales
2012
|
Acceso en línea: | https://hdl.handle.net/20.500.12110/seminario_nCOM000458_Zoppi |
Aporte de: |
id |
seminario:seminario_nCOM000458_Zoppi |
---|---|
record_format |
dspace |
spelling |
seminario:seminario_nCOM000458_Zoppi2023-09-12T13:13:22Z Enriqueciendo Code Contracts con Typestates Zoppi, Edgardo Julio Caso, Guido de Garbervetsky, Diego David Por lo general un componente de software tiene requerimientos que no son para nada triviales cuando se trata del orden en que sus métodos o procedimientos pueden ser ejecutados. Esta situación es común, por ejemplo, en el caso de APIs que implementan protocolos. Este trabajo trata de ayudar en el problema de validar si una implementación particular cumple con el comportamiento esperado en los casos en que su descripción es informal, parcial o directamente inexistente. Con esto en mente,presentamos Contractor.Net, una herramienta que permite construir especificaciones por contratos con información de typestate que puede ser utilizada para verificar código cliente. Contractor.Net usa y extiende Code Contracts para proveerespecicaciones por contratos más robustas. El proceso se realiza en dos etapas. Primero, el código fuente de una clase es analizado de forma estática para extraer un modelo abstracto finito de comportamiento (en la forma de typestate) adecuado para su validación y refinamiento por parte del programador. La segunda etapa consiste en aumentar la especificación por contratos original de la clase en cuestión con la información de typestate inferida en la etapa anterior, con el objetivo de proveer más datos para la verificación del código cliente. Los typestates inferidos cumplen con la propiedad enabledness preserving, un nivel de abstracción que mostró resultados positivos al momento de validar el modelo, ayudando a la detección de errores, ajustes en los requerimientos y la generación de documentación más completa y detallada. Fil: Zoppi, Edgardo Julio. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales 2012-12-28 info:eu-repo/semantics/bachelorThesis info:ar-repo/semantics/tesis de grado info:eu-repo/semantics/publishedVersion application/pdf spa info:eu-repo/semantics/openAccess https://creativecommons.org/licenses/by-nc-sa/2.5/ar https://hdl.handle.net/20.500.12110/seminario_nCOM000458_Zoppi |
institution |
Universidad de Buenos Aires |
institution_str |
I-28 |
repository_str |
R-134 |
collection |
Biblioteca Digital - Facultad de Ciencias Exactas y Naturales (UBA) |
language |
Español |
orig_language_str_mv |
spa |
description |
Por lo general un componente de software tiene requerimientos que no son para nada triviales cuando se trata del orden en que sus métodos o procedimientos pueden ser ejecutados. Esta situación es común, por ejemplo, en el caso de APIs que implementan protocolos. Este trabajo trata de ayudar en el problema de validar si una implementación particular cumple con el comportamiento esperado en los casos en que su descripción es informal, parcial o directamente inexistente. Con esto en mente,presentamos Contractor.Net, una herramienta que permite construir especificaciones por contratos con información de typestate que puede ser utilizada para verificar código cliente. Contractor.Net usa y extiende Code Contracts para proveerespecicaciones por contratos más robustas. El proceso se realiza en dos etapas. Primero, el código fuente de una clase es analizado de forma estática para extraer un modelo abstracto finito de comportamiento (en la forma de typestate) adecuado para su validación y refinamiento por parte del programador. La segunda etapa consiste en aumentar la especificación por contratos original de la clase en cuestión con la información de typestate inferida en la etapa anterior, con el objetivo de proveer más datos para la verificación del código cliente. Los typestates inferidos cumplen con la propiedad enabledness preserving, un nivel de abstracción que mostró resultados positivos al momento de validar el modelo, ayudando a la detección de errores, ajustes en los requerimientos y la generación de documentación más completa y detallada. |
author2 |
Caso, Guido de |
author_facet |
Caso, Guido de Zoppi, Edgardo Julio |
format |
Tesis de grado Tesis de grado publishedVersion |
author |
Zoppi, Edgardo Julio |
spellingShingle |
Zoppi, Edgardo Julio Enriqueciendo Code Contracts con Typestates |
author_sort |
Zoppi, Edgardo Julio |
title |
Enriqueciendo Code Contracts con Typestates |
title_short |
Enriqueciendo Code Contracts con Typestates |
title_full |
Enriqueciendo Code Contracts con Typestates |
title_fullStr |
Enriqueciendo Code Contracts con Typestates |
title_full_unstemmed |
Enriqueciendo Code Contracts con Typestates |
title_sort |
enriqueciendo code contracts con typestates |
publisher |
Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales |
publishDate |
2012 |
url |
https://hdl.handle.net/20.500.12110/seminario_nCOM000458_Zoppi |
work_keys_str_mv |
AT zoppiedgardojulio enriqueciendocodecontractscontypestates |
_version_ |
1782031587561439232 |