Institución: Instituto Superior Politécnico Córdoba.
Tecnicatura en Desarrollo de Software
Materias: Programacion/Base de Datos/Etica y Deontologia
Profesores:
- Ing. Ivana Soledad Rojas Córsico
- Anahi Hernandez
- Gerlero Martin Alejandro
Año: 2024
Integrantes del grupo:
ARGBroker-Demo-Grupo-Seven
Proyecto Integrador Final
Proyecto Integrador: ARGBroker Demo
La empresa tecnológica ISPC Cba se ha inscripto como broker de bolsa para ser
intermediario entre los inversores y la Bolsa de Valores de Buenos Aires MERVAL.
Es por ello que le ha solicitado la creación de una aplicación para realizar las transacciones
entre los inversores (personas físicas, empresas o instituciones) y otros inversores dentro
del Mercado de Valores de Buenos Aires (Merval).
¿Qué es una acción de una empresa?
Una acción representa una participación en la propiedad de una empresa, que incluye un
derecho sobre las ganancias y los activos de la empresa. Como tal, los accionistas son
propietarios parciales de la empresa. Cuando el valor de la empresa aumenta o disminuye,
también sube el valor de sus acciones. Además, este valor aumenta o disminuye de
acuerdo a la oferta y demanda. Es una forma que tienen las empresas para poder
capitalizarse y poder crecer.
¿Qué es un broker?
Un bróker es un intermediario que ejecuta órdenes de compra y venta de activos en los
mercados financieros. Bróker puede denominarse tanto la empresa que ofrece estos
servicios como el corredor de bolsa particular que realiza las operaciones.
¿Cuáles son los distintos perfiles de los inversores?
El perfil del inversionista se refiere a las características de una persona que guían la manera
en que debiera tomar sus decisiones de inversión, incluido su nivel de tolerancia al riesgo,
en relación a los diversos instrumentos de inversión que existen en el mercado. Tiempo de
duración de la inversión. Algunos de ellos pueden ser conservador, medio o agresivos.
Diferencia entre renta fija y variable:
La renta fija y variable se diferencian en la rentabilidad conseguida con la inversión y el
riesgo asumido. La renta fija garantiza una rentabilidad limitada con un riesgo mínimo,
mientras que la renta variable ofrece mayor rentabilidad pero con un riesgo elevado.
Ejemplo de renta fija: plazo fijo tradicional luego de cierto tiempo estipulado se que me va a
dar una compensación por el dinero que deje inmovilizado en un banco con una tasa fijada
o en su defecto una tasa fijada más un monto variable de acuerdo a la inflación (plazo fijo
UVA).
Ejemplo de renta variable: la acción de una empresa es una renta variable porque no se
cuanto puedo ganar o perder al momento de venderla.
Requerimientos Funcionales:
La aplicación, en su primer etapa, contará con una versión demo (simulación de compra y
venta en la bolsa) que tendrá las siguientes funcionalidades:
- Partir de un saldo inicial de $1.000.000 (que se asigna al momento de crear un nuevo
usuario/inversor).
- Brindar un panel para consultar las cotizaciones de las acciones de empresas
Argentinas. Dicho panel deberá mostrar los siguientes datos para cada símbolo/título de
acción:
- Símbolo y nombre de la empresa de la acción. Ej.: (ALUA) Aluminio Argentino S.A
- Último Operado
- Cantidad Compra diaria
- Precio de Compra actual
- Precio Venta actual
- Cantidad Venta diaria
- Apertura (precio de la acción al momento de empezar la operación diaria en la bolsa)
- Mínimo diario
- Máximo diario
- Último Cierre.
- Permitir comprar y vender acciones a precio del mercado (en la imagen, precio
venta y precio de compra). Es decir que en esta etapa no se va a poder poner un precio
inferior o superior al que se está comercializando en este momento. Por lo general se pide
un precio superior para nuestra venta (hay un porcentaje máximo que se puede pedir) y un
precio inferior para nuestras compras intentando comprar al menor precio y vender al mayor
precio.
- Brindar un panel (Mi Portafolio) que muestre el total invertido, saldo de la cuenta demo, la
cantidad de acciones compradas con su respectivo símbolo/título, el valor comprometido y,
la Ganancia o Pérdida.
- La aplicación debe estar en español y operar en $ (pesos) con 2 decimales.
- Calcular la comisión del broker que es de 1.5% por operación de compra o venta.
Puesta en marcha:
Esta actividad formativa, tiene por objetivo integrar los saberes adquiridos en el módulo
Programador.
Una vez
conformados los equipos, la organización en github y, definido el repositorio de github, los
estudiantes deberán:
- Definir roles,
- Crear issues (tareas), distribuir y asignar tareas de manera que todos los integrantes
del equipo tengan trabajo para hacer. Tip. Distribuyan de manera que las tareas
sean independientes, con esto pueden trabajar en paralelo.
- Configurar el archivo readme especificando el propósito, el contexto, autores.
Programación I
Basándose en los requerimientos funcionales del proyecto ARGBroker Demo, se solicita:
- Identificar las clases del sistema, atributos y métodos.
- Nombrar las clases, atributos y métodos en base a la nomenclatura acordada con el
equipo.
- Identificar las relaciones entre clases.
- Realizar el diagrama de clases mediante herramientas como draw.io, lucidchart,
creately, miro u otro.
- Documentar el diseño especificando:
- Un título significativo. Debe reflejar el propósito del sistema.
- Una breve descripción que explique el contexto, objetivo y alcance del
diagrama.
- Nomenclatura elegida para nombres de clases, atributos y métodos.
- Comentarios y/o notas que se considere necesario para proporcionar
información adicional o explicar decisiones de diseño.
Notas:
En esta etapa, no es necesario programar las clases en Python, ni conectar con la base de
datos. El enfoque está en el diseño de clases del sistema y las relaciones entre ellas.
Entregable:
Documento que contenga el diagrama de clases y la documentación del diseño.
Base de datos
Basándose en los requerimientos funcionales del proyecto, se solicita realizar el diseño de
la base de datos para la aplicación ARGBroker Demo.
En esta etapa, se deberá:
- Identificar las entidades principales del sistema.
- Definir los atributos para cada entidad, considerando los datos necesarios para
cumplir con las funcionalidades especificadas.
- Establecer las relaciones entre las entidades identificadas.
- Aplicar el proceso de normalización a las entidades y sus atributos para eliminar
redundancias y dependencias funcionales. Se debe alcanzar la Tercera Forma
Normal (3FN).
- Crear el modelo relacional resultante de la normalización, representando las entidades
como tablas con sus respectivos atributos y relaciones. Definir las claves primarias y
foráneas necesarias para establecer las relaciones entre las tablas.
- Documentar el diseño de la base de datos, incluyendo una pequeña descripción de
cada tabla. Y las aclaraciones que creas necesarias en cada una de ellas. Por
ejemplo si se realizó una suposición de algo que no estaba en el enunciado y eso
determinó que una relación es uno a muchos, cuando se podría haber interpretado
por una ambigüedad que podía ser muchos a muchos, dejar asentada tal suposición.
Notas:
En esta etapa, no es necesario desarrollar consultas SQL. El enfoque está en el diseño y
estructura de la base de datos.
Se recomienda utilizar una herramienta de modelado de bases de datos, como draw.io, para
crear el diagrama del modelo relacional.
Entregable:
Documento que contenga el modelo relacional resultante y la documentación del diseño de
la base de datos.
Ética
Basándose en los requerimientos funcionales del proyecto y aplicando la legislación
revisada en la cursada:
- Describir cómo el grupo se conforma como instrumento legal (Empresa, Socios, CEO,
Empleados) y si tendrán un contrato con que cláusulas.
- Describir quiénes y ante quien deben matricularse a nivel provincial para ejercer la
Profesión.
- Describir que requerimientos deben cumplir el código programado y las bases de
datos según la legislación vigente
- Enumerar los pasos para que ARGBroker sea parte del Registro Nacional de
software.
- Si un integrante del grupo no realiza el trámite de matriculación, que pena le
corresponde a nivel provincial.
- Si el código es replicado, describir como la Ley de Propiedad Intelectual puede
salvaguardar a ARGBroker.
- Si un integrante del grupo divulga los datos de la base de datos interna, describir
como legalmente deberían accionar los demás.
- Si otro integrante del grupo reutiliza el código para fines personales, describir como legalmente
deberían accionar los demás según la Legislación de la Provincia de Córdoba y el
Código Penal Argentino.
- Si otro integrante del grupo reutiliza el código para fines personales a nivel
internacional, describir qué instrumento legal respalda a ARGBroker.
- Si la base de datos es adulterada de manera externa, a nivel nacional, describir qué
instrumento legal respalda a ARGBroker.
- Si los datos de la base de datos son adulterados de manera externa, a nivel
internacional, describir qué instrumento legal respalda a ARGBroker.
- Cuando los programadores de ARGBroker incurren en una negligencia, a que
instrumento legal se acude y quien.
- Cómo ARGBroker debe implementar seguridad según la Ley de Protección de Datos
Personales.
- Si el cliente decide reemplazar a ARGBroker por otro proveedor, describir cómo se
debe actuar de manera ética ante el cliente y los colegas.
- Si un usuario denuncia a ARGBroker por divulgación de sus datos personales, a que
legislación recurrió el mismo y como ARGBroker puede respaldarse jurídicamente.
Todos los integrantes del equipo deberán colaborar con el proyecto mediante tareas (issues) asignadas.