Please use this identifier to cite or link to this item: http://cimat.repositorioinstitucional.mx/jspui/handle/1008/1054
IMPLEMENTACIÓN DE DBC Y REFINEMENT EN MANTIS
MIGUEL ANGEL IÑIGUEZ GONZALEZ
Acceso Abierto
Atribución-NoComercial
INGENIERÍA DEL SOFTWARE
Desde hace 9 años la cadena de bloques (blockchain) ha surgido como una tecnología y una revolución financiera iniciada por Bitcoin, desde entonces han aparecido muchas otras criptomonedas como por ejemplo Ethereum(ETH), Litecoin, Ripple. Originalmente ETH fue creada como una mejora a Bitcoin y junto con ella nació un nuevo modelo empresarial llamado Organización Autónoma Descentralizada (DAO). La DAO fue creada como un Smart Contract (contrato inteligente) dentro de la cadena de bloques de ETH y en principio no contaba con una estructura administrativa convencional ya que esta estructura estaba formada por los inversionistas de la DAO. Uno de los métodos del contrato inteligente de la DAO tenía una vulnerabilidad de seguridad (splitDAOfunction), el resultado de este fallo se traduce en el robo de 3,642,408.53 de Ethers y el nacimiento de una nueva moneda criptográfica llamada Ethereum Classic (ETC). Hoy en día ETC se ha afianzado dentro de las criptomonedas más usadas, tanto es así que a la fecha (abril de 2018) la capitalización de mercado de esta moneda se calcula en $2,240,739,489 USD (datos tomados de coinmarketcap.com). Todas las criptomonedas antes mencionadas tienen clientes que proporcionan interfaces gráficas o de consola que nos permiten interactuar con la blockchain, en las cuales es posible realizar bloques o transacciones. En ETC podemos encontrar al proyecto Mantis, el cual es un desarrollo realizado especialmente para esta moneda por la empresa IOHK. El cliente Mantis tienen un code coverage (cobertura de código) del 83% y ha sido sujeto a auditorías externas de seguridad. Con el objetivo de mejorar la calidad del software, los desarrolladores de IOHK se preguntaron si era posible utilizar precondiciones y postcondiciones en Mantis, esta es la pregunta que motiva este reporte técnico. Objetivo: Hacer refactoring (refactorización) del cliente de Mantis utilizando Design By Contract (DBC) e identificar si esta técnica realmente mejora la calidad de Mantis o si con el desarrollo que se tiene es suficiente y no vale la pena utilizar DBC.
26-10-2018
Trabajo de grado, maestría
OTRAS
Versión aceptada
acceptedVersion - Versión aceptada
Appears in Collections:Tesis del CIMAT

Upload archives


File Description SizeFormat 
ZAC TE 73.pdf1.19 MBAdobe PDFView/Open