No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Definición y requerimientos del sistema desde la perspectiva de negocio

7/25
Recursos

¿Cuál es el objetivo de la definición de los requerimientos del negocio?

Una de las habilidades más cruciales al iniciar un proyecto es saber definir claramente los requerimientos del negocio, es decir, entender exactamente qué es lo que necesita el cliente. En este caso, estamos hablando de un cliente ficticio que busca crear un sitio web de reseñas de cámaras fotográficas, donde profesionales comparten sus opiniones para ayudar a los usuarios a decidir qué cámara comprar.

El propósito principal de este proceso es obtener una interpretación clara y precisa de lo que el negocio demanda, lo cual nos guiará en el desarrollo, desde la codificación inicial hasta la implementación completa del sistema.

¿Cómo interpretar los requerimientos del cliente para un sitio web de reseñas?

Al desarrollar un sitio web de reseñas de cámaras, varios puntos deben ser considerados para cumplir con las expectativas del cliente. A continuación se enumeran las solicitudes y características clave:

  • Página web para reviews: El cliente desea una página donde editores compartan reseñas de cámaras.
    • Usuarios finales: Los usuarios consumen estas reseñas para tomar decisiones de compra.
    • Editores profesionales: Solo ellos pueden subir nuevas reseñas al sistema.
  • Componentes técnicos:
    • La empresa ya tiene un equipo de front-end; deberás encargarte del desarrollo del back-end.
    • Se requiere la creación de APIs que permitan estas funcionalidades.
  • Alcance geográfico:
    • El mercado principal está en América del Sur, pero el sitio también debe servir a usuarios en ubicaciones globales.

¿Cuáles son los casos de uso principales del sistema?

A medida que se desglosa la información proporcionada por el cliente, podemos identificar los casos de uso esenciales para el sistema:

  1. Editor sube reviews: Un editor envía una reseña al sistema en la nube.
    • Este proceso es fundamental para la entrada de nuevos contenidos.
  2. Usuarios acceden y leen reviews:
    • Los usuarios no requieren registro, pueden simplemente acceder al contenido de las reseñas.
    • Las operaciones principales son de obtención de datos, como "get content".

Estos casos de uso no solo describen las acciones básicas, sino que también ayudan a prever los desafíos técnicos que se deben enfrentar al diseñar el sistema.

¿Qué desafíos y consideraciones específicas implica este proyecto?

El desarrollo de este sistema implica enfrentar y planificar para ciertos desafíos:

  • Escalabilidad:

    • Imagina que crece la base de usuarios hacia miles o millones, accediendo diariamente a las reseñas.
    • Contrástalo con el número relativamente limitado de editores (aproximadamente 10) que crean contenido.
  • Distribución global:

    • Si bien los editores están localizados en Sudamérica, los usuarios estarán distribuidos globalmente.
    • Este aspecto requiere una infraestructura preparada para carga internacional.
  • Optimización de recursos:

    • Dado que el número de usuarios es alto y los editores son pocos, el sistema debe optimizar la gestión de recursos para lectura masiva sin saturar la capacidad de edición.

Estas consideraciones permiten prever y mitigar problemas antes de que se materialicen. Al abordar estos desafíos, se potencia la capacidad del sistema para ofrecer un servicio eficaz y adaptable al crecimiento en tiempo real.

Mediante este enfoque estructurado de interpretación y análisis de requerimientos, se puede asegurar que el desarrollo del sitio web cumpla con todos los requisitos del cliente y sea escalable y eficiente en su propósito. ¿Listo para seguir aprendiendo? ¡La aventura apenas comienza!

Aportes 15

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Los recursos se encuentran compartidos en la clase anterior

Les recomiendo Typora para leer y escribir Markdown.

El dato mas importante que se ha sacado aquí es:

  • Pocos editores solo ubicados en LATAM
  • Muchos usuarios provenientes de casi todo el mundo 👏🏼👏🏼

A mí en lo personal me gusta hacer apuntes en Markdown, suelo poner cómo estará organizado el sitio, qué funciones requiere y demás dentro de un texto Markdown que agrego como el README.md en el repositorio del proyecto.
.
No había contemplado la parte de tener miles de usuarios que leen y solo 10 que escriben, esto puede llegar a ser importante tenerlo en cuenta, solamente leyendo el requerimiento de que la mayoría de los servidores son de América del Sur, yo optaría por poner un servidor muy cercano a América del Sur, pero no justamente ahí, ya que por lo que entiendo, otros usuarios de otros continentes también deben poder tener acceso al sistema 🤔

Aunque no lo dice en los requerimientos, una arquitectura distribuida en varios continentes es muy muy costosa y puede hacer inviable la implementación. Cada servidor que se despliegue en otra zona vele un mundo de plata, por eso de debe optimizar al maximo la arquitectura.

Interesante la forma de analisis de requerimientos del negocio…

Quiero pensar entonces que le daríamos prioridad a los clientes sobre los editores a la hora del performance, el servidor (o servidores) de BD va a tener muchas más acciones de lectura que de escritura y en este caso no afectaría tener un poco de latencia a la hora de subir las reviews de los editores.

Aquí sería el Planteamiento del problema

  • Comenzar a hacer preguntas
  • Hacer el mejor esfuerzo por traducir lo que se requiere (en este caso un diagrama de caso de uso casero)

En mi caso es un Software Contable

  • Global
  • Ventas globales - Principalmente Latinoamérica
  • Pocos Vendedores (HTTP - POST)

En esta clase de Platzi se explica la importancia de la definición y requerimientos del sistema desde la perspectiva del desarrollo de un backend. Se destaca que la definición del sistema es un paso crucial para entender el problema que se desea resolver y las necesidades del usuario. También se explica que los requerimientos del sistema son las funcionalidades y características que el sistema debe tener para cumplir con los objetivos del usuario.

El instructor menciona que la definición del sistema y los requerimientos deben ser claros y precisos, para evitar malentendidos y garantizar que el equipo de desarrollo esté trabajando en la misma dirección. También se enfatiza la importancia de involucrar al usuario en este proceso, para asegurarse de que sus necesidades están siendo cubiertas.

En cuanto a los requerimientos, se mencionan tres tipos: funcionales, no funcionales y de información. Los requerimientos funcionales son las características y funcionalidades que el sistema debe tener, los no funcionales son los aspectos técnicos que deben ser cumplidos (como la seguridad y la escalabilidad), y los de información son los datos que el sistema debe procesar.

En resumen, la definición y requerimientos del sistema son pasos importantes para el desarrollo de un backend efectivo y satisfactorio para el usuario, y deben ser claros y precisos para evitar malentendidos. También es importante involucrar al usuario en este proceso para garantizar que sus necesidades están siendo cubiertas.

Se simplifico y explico de manera muy facil

Primera vez en la historia, que veo mi nombre lo usan como ejemplo : v
Para ese problema de muchas operaciones read pero talvez pocas de write. Yo creo que la solución sería crear una **read replica** de la base de datos que pueda escalar horizontalmente en caso de ser necesario y la base de datos para escritura tendria que ser más pequeña, sin menos recursos computacionales. Sin embargo, para hacer un producto global pero con mayor trafico en una región en especifico, yo creo que la solución podria ser tener os servidores de bases de datos, así como los microservicios en la región con más demanda y aplicar una base de datos de cache, asi como cachear mucha de nuestra API en un CDN al rededor del mundo
![](https://static.platzi.com/media/user_upload/image-d6673df8-6ea2-4201-97ad-7661cc8c45af.jpg) Comparto mi diagrama inicial basado en el documento y lo dicho en esta clase

Me gusta manejar de esta forma los proyectos, de nada sirve aprender una herramienta sin llevarla a la práctica. Hasta ahora el curso está muy interesante.