Ir al contenido

Usuario:Cristiangomez23/Taller/Proyecto Educativo Smart Contracts

De Wikipedia, la enciclopedia libre

Esto es una página para pruebas Cristiangomez23. Esto es una página de usuario de Wikipedia. Esto no es un artículo enciclopédico.


 Vaciar esta subpágina de usuario 

Haga clic aquí y agregue en la parte superior de la página:
#REDIRECCIÓN [[Usuario:Cristiangomez23/Taller]]

Introducción[editar]

Este proyecto educativo está diseñado para la asignatura de Sistemas Distribuidos de Grado de Ingeniería Informática de la URJC. En dicha asignatura se tratan aspectos sobre el análisis, diseño y programación de elementos informáticos para el registro de los datos de forma distribuida en distintos entornos. Concretamente, la temática a tratar en este proyecto es la tecnología Blockchain, un sistema distribuido que empieza asomar la cabeza como medida revolucionadora para facilitar varios procesos actuales.

Podemos contemplar una blockchain como una red peer-to-peer en el que los nodos que la integran validan y registran transacciones en una base de datos inmutable y distribuida (el popular ledger) de forma consensuada [1]. Más allá de la popularidad de las criptomonedas que circulan por dichas redes, una de las aplicaciones más importantes de la tecnología blockchain es poder alojar y ejecutar contratos inteligentes.

Un contrato inteligente es un programa informático que ejecuta una serie de acciones sobre la base de datos distribuida que proporciona la blockchain, cuando se cumplen las pre-condiciones registradas en el contrato. Las principales ventajas de este tipo de contratos:

  • No requieren de un tercero (un intermediario) que vele por el cumplimiento de esas pre-condiciones y la ejecución de las acciones.
  • Es inmutable, por lo que las cláusulas recogidas en el programa informático una vez desplegado en la red no se pueden modificar.
  • Es público, cualquiera en cualquier momento puede consultar su especifi�cación que, al tratarse de código software, deja poco espacio a la interpretación

El objetivo general de este proyecto, es que los estudiantes sean capaces de analizar una problemática en un contexto real y sean capaces de solventarla mediante el desarrollo de un smart contract.

Equipo docente[editar]

  • Cristian Gómez

Metodología[editar]

Cada grupo de estudiantes formarán un equipo en el que se repartirán los roles semanalmente según la metodología ágil de desarrollo software. El profesor (product owner) seleccionará un caso de estudio en el que la incorporación de smart contracts como medio de transformación digital suponga un avance o mejora en el proceso de dicho de caso de estudio. Los usuarios deberán semanalmente intercambiar sus roles, siendo los posibles:

  • Scrum Máster: Será la voz del equipo y el encargado de intentar solucionar los problemas que puedan presentarse al equipo de trabajo.
  • Analyst: Analizará el caso de estudio, identificando ventajas y limitaciones a la hora de incorporar los smart contracts en el contexto otorgado por el product owner.
  • Developer: Realizará los smart contracts.
  • Tester: Desarrollará las pruebas unitarias para comprobar la funcionalidad del smart contract.

Todos los miembros del equipo mantendrán una reunión con el profesor durante el último día de la semana para conocer la evolución del trabajo y las necesidades que requiera el grupo de trabajo.

Se solicita la realización de los modelos e3value que representen el ecosistema seleccionado, tanto antes de la inclusión del smart contract como después, con el objetivo de reflejar los cambios que aporta dicha tecnología.

e3value model

Durante la realización de la experiencia, cada grupo de trabajo creará una página de wikipedia a modo taller, en el que describirán la fase de análisis y el proceso de trabajo semanal del grupo, con el fin, de que otros grupos puedan visualizar el proceso de trabajo de cada grupo, relacionando limitaciones de otros grupos con las suyas, posibilitando la opción a colaborar entre ellos de manera altruista. Además, subirán en un formato de tabla como el detallado en la sección de materiales entregables, la información que se solicita por cada apartado.

Por último, y como objetivo final de la experiencia, se deberá crear el smart contract (programa informático) que resuelva dicho problema.

Contenidos[editar]

A continuación, se exponen los contenidos sobre sistemas distribuidos que van a ser vistos durante la realización de la experiencia:

Programación:

  • Blockchain
  • Smart Contracts
  • Lenguaje Solidity

Análisis de sistemas:

  • e3value.

Objetivos[editar]

  1. Conocer los smart contracts y sus posibles ámbitos de aplicación.
  2. Descomponer tareas complejas en otras más simples.
  3. Priorizar tareas y planificar a futuro.
  4. Adoptar estrategias de trabajo que se llevan a cabo en empresas a la hora de desarrollar software.
  5. Desarrollar el trabajo colaborativo y la revisión por pares.

Temporalización[editar]

La experiencia se llevará a cabo durante 5 semanas. Siendo el inicio de la experiencia el 8/4/24 y su finalización el 10/5/24.

Herramientas[editar]

Editores de código Solidity[editar]

Para programar los smart contracts, los alumnos pueden hacer uso de las siguientes herramientas disponibles:

SmaC

Es una herramienta basada en ingeniería dirigida por modelos para la elaboración de smart contracts basados en el lenguaje Solidity. Ofrece mecanismos de autocompletado del smart contract, así como de asistencia al usuario a la hora de definir ciertos elementos como son: información sobre el elemento que se está definiendo, mecanismos de seguridad, etc.

Requiere de una distribución Eclipse para poder ser instalado.

  1. https://github.com/The4Fantastics/SmaC/tree/main

Remix

Es una herramienta online que dispone de un compilador y una serie de cuentas de usuario para poder comprobar el funcionamiento del smart contract.

  1. https://remix.ethereum.org/#optimize=false&version=soljson-v0.4.24+commit.e67f0147.js

Herramientas para publicación del caso de estudio[editar]

Wikipedia[editar]

Para la realización de la página del caso de estudio en Wikipedia, el grupo de trabajo deberá crearse una cuenta en dicha plataforma. Posteriormente, desde la sección Taller de la cuenta creada, podrán crear una página para recoger la información requerida del trabajo en grupo. La página, debe contar con al menos las siguientes secciones:

  • Introducción
  • Problemática
  • Argumentación de la solución (Justificación del uso de los smart contracts)
  • Organización del trabajo
    • Primera semana
    • Segunda semana
    • etc.
  • Solución desarrollada
  • Valoración general
    • Dificultades (Temporalización, dificultad de la actividad, contexto adecuado/inapropiado)
    • Trabajo en equipo
    • Posibles mejoras

La página se irá creando de manera continua con la evolución del trabajo, a modo de que todos los grupos puedan analizar el trabajo de cada equipo con el paso de las semanas.

Materiales entregables[editar]

Materiales entregables al finalizar la actividad

Los modelos e3value que reflejen el caso de estudio antes y el después de la inclusión del smart contract en el contexto.

El propio smart contract como medida o solución de transformación digital al caso de estudio abarcado.

La página del proyecto detallando el análisis, la justificación de la solución aportada y el proceso de trabajo semanal.

Material entregable semanalmente Semanalmente, los alumnos deben presentar al profesor una ficha similar a la que se muestra en la tabla a continuación. En dicha tabla, los alumnos deberán indicar que puesto de trabajo ocupan durante esa semana, el número de horas empleadas para la realización de las actividades, que actividades han sido ( o no) realizadas, dificultades/limitaciones encontradas durante la realización de las tareas y las opiniones de trabajo de cada miembro del equipo durante esa semana. La entrega de esta ficha se realizará el viernes de cada semana por parte del usuario que ocupe el rol de Scrum Master. Posteriormente, esta ficha semanal deberá ser subida en el mismo formato que se presenta a la página de wikipedia del proyecto.

FICHA SEMANA X
Product Owner Cristian Gómez
Scrum Master x
Analyst x
Developer x
Tester x.
Horas trabajadas x
Actividades realizadas x
Actividades no realizadas x
Limitaciones x
Opiniones x

Sistema de evaluación[editar]

La evaluación de la experiencia, será como se describe a continuación:

  • 25% Trabajo en equipo. El profesor se guiará en base a las fichas semanales entregables y a la reunión semanal que mantenga con cada grupo. El peso de este apartado se encuentra dividido de la siguiente forma:
    • La página de proyecto de Wikipedia con un 10%.
    • El trabajo semanal, del cual el profesor evaluará el rendimiento en la reunión semanal con cada grupo.
  • 15% Los modelos e3value. El profesor verificará la calidad de estos modelos para comprobar si el análisis del contexto del problema es el adecuado.
  • 60% El smart contract. El profesor verificará la funcionalidad del programa informático elaborado para comprobar si cubre la mayor parte de la problemática presentada en el caso de estudio.