Mostrar el registro sencillo del ítem
dc.contributor.advisor | Villanueva García, Alicia | es_ES |
dc.contributor.advisor | Alpuente Frasnedo, María | es_ES |
dc.contributor.author | Coroban, Raul Ionut | es_ES |
dc.date.accessioned | 2018-09-11T09:07:13Z | |
dc.date.available | 2018-09-11T09:07:13Z | |
dc.date.created | 2018-07-12 | |
dc.date.issued | 2018-09-11 | es_ES |
dc.identifier.uri | http://hdl.handle.net/10251/106990 | |
dc.description.abstract | [EN] In Software Engineering, software contracts allow the program behavior to be specified using formal axioms such as preconditions, postconditions and invariants. The current state of the art makes it possible to derive, from the program code, concise properties that can be then used as an input for program analyzers. However, such automatically derived contracts might not be fully precise and/or correct, leading to what is known as "abstract contracts", which may contain candidate axioms. In this project we propose two methods for the refinement of automatically inferred contracts, which in our case are generated by the automatic inference tool KindSpec 2.0. iii iv The first proposed technique is based on testing by using the automatic data generation tool QuickCheck. The second proposed technique translates candidate axioms into EACSL formulas that are dynamically verified by Frama-C. By exploting the synergy of the two methods, the abstract contract can be refined into correct (and often complete) software contracts. | es_ES |
dc.description.abstract | [ES] En Ingeniería de Software, el concepto de contrato está relacionado con la especificación del comportamiento de un programa utilizando axiomas formales como precondiciones, postcondiciones e invariantes. El estado del arte actual permite derivar propiedades concisas que pueden ser usadas como entrada para analizadores de código con funcionalidad creciente. Sin embargo, estos contratos derivados automáticamente pueden no ser completamente precisos o correctos, correspondiendo a lo que se conoce como “contratos abstractos“ que contienen axiomas candidatos. En este documento proponemos dos métodos para el refinamiento de dichos contratos, los cuales en nuestro caso están generados por la herramienta de inferencia automática de especificaciones para código C llamada KindSpec 2.0. La primera técnica propuesta se basa en la realización de pruebas con la herramienta de generación automática de juegos de datos QuickCheck. La segunda técnica propuesta traduce los axiomas candidatos a fórmulas E-ACSL que son verificadas dinámicamente por Frama-C. Gracias a la sinergia entre las dos técnicas es posible refinar contratos abstractos para derivar de ellos contratos correctos y, en muchas ocasiones, completos. | es_ES |
dc.description.abstract | [CA] En Engiyneria de Software, el concepte de contracte està relacionat amb l’especificació del comportament d’un programa emprant termes formals com precondicions, postcondicions i invariants. L’estat de l’art actual permet derivar propietats concisses que poden ser usades com entrada per analitzadors de codi. No obstant això, aquests contractes automàticament derivats poden no ser completament concissos o correctes, el que ens porta a el que coneixem com “contractes abstractes“, que poden contindre axiomes candidats. En aquest document proposem dos mètodes per al refinament de dits contractes, els quals en el nostre cas estàn generats per la ferramenta d’inferència automàtica d’especificacions denominada KindSpec 2.0. La primera proposta es basa en la realització de proves amb la ferramenta de generació automàtica de dades QuickCheck. La segona proposta, traduix els axiomes candidats a fòmules E-ACSL que son dinàmicament verificades per Frama-C. Explotant la sinergia dels mètodes, el contracte abstracte pot ser refinat i generar contractes software correctes (i sovint complets). | es_ES |
dc.format.extent | 74 | es_ES |
dc.language | Inglés | es_ES |
dc.publisher | Universitat Politècnica de València | es_ES |
dc.rights | Reserva de todos los derechos | es_ES |
dc.subject | Pruebas software automáticas | es_ES |
dc.subject | Verificación dinámica | es_ES |
dc.subject | Descubrimiento de especificaciones | es_ES |
dc.subject | Propiedades de un programa | es_ES |
dc.subject | Métodos formales en Ingeniería Informática | es_ES |
dc.subject | Automated Software Testing | es_ES |
dc.subject | Dynamic verification | es_ES |
dc.subject | Specification Discovery | es_ES |
dc.subject | Program Properties | es_ES |
dc.subject | Formal Methods in Computer Science | es_ES |
dc.subject.classification | LENGUAJES Y SISTEMAS INFORMATICOS | es_ES |
dc.subject.other | Grado en Ingeniería Informática-Grau en Enginyeria Informàtica | es_ES |
dc.title | Contract-based Analysis and Dynamic Verification of C code | es_ES |
dc.title.alternative | Análisis y Verificación Dinámica de código C a partir de Contratos | es_ES |
dc.type | Proyecto/Trabajo fin de carrera/grado | es_ES |
dc.rights.accessRights | Abierto | es_ES |
dc.contributor.affiliation | Universitat Politècnica de València. Departamento de Sistemas Informáticos y Computación - Departament de Sistemes Informàtics i Computació | es_ES |
dc.contributor.affiliation | Universitat Politècnica de València. Escola Tècnica Superior d'Enginyeria Informàtica | es_ES |
dc.description.bibliographicCitation | Coroban, RI. (2018). Contract-based Analysis and Dynamic Verification of C code. http://hdl.handle.net/10251/106990 | es_ES |
dc.description.accrualMethod | TFGM | es_ES |
dc.relation.pasarela | TFGM\77153 | es_ES |