Jorge Serrano
  • Home

Preparando y diseñando un proyecto informático para los Reyes Magos de Oriente

  • By jorge
  • Nov-22-2010
  • Sin categoría
  • 6 Comments.

P.D.: Véase Reyes Magos previamente si no está familiarizado con ellos [Reyes Magos de Oriente].

A veces hay que salirse un poco de lo normal y ser un poco friki en sus entradas… sin llegar al rigor extremo de lo que se publica pero con algo de cariño sobre todo por que se acercan las Navidades.
Aunque nos parezca que está lejos, apenas queda 1 mes para Navidad y ese mes pasa volando, y claro, un informático de pro, no puede dejar de pensar en un jefe de proyectos y un equipo de desarrollo navideño. la toma de requerimientos, el diseño técnico, es decir… lo que montaríamos tecnológicamente hablando, para facilitarles la vida a los Reyes Magos y llevar a buen puerto su proyecto navideño cargado de ilusiones y buenos deseos.

¿Cómo empezaría esta historia?. ¿Qué tecnologías entrarían en juego?. ¿Seremos capaces de llevarlo a cabo?

Déjenme que les diga que lo primero de todo es conocer a nuestros 3 Reyes Magos,… sí sí, Melchor, Gaspar y Baltasar, y entrar en una relación de confianza con ellos y saber bien cuales son sus propósitos.
También debemos recordar que deberán implicarse en el desarrollo del proyecto o casi seguro que resultará ser un fracaso.
Nosotros pondremos en juego toda nuestra experiencia y conocimientos, y con eso y algunos truquitos ocultos que siempre son buenos reservárselos para las ocasiones en las que estaríamos dispuestos a llamar al mismísimo McGiver o a los increíbles Equipo A, lograremos cumplir los objetivos en fechas.

Objetivos:

Parece ser que nuestros 3 Reyes Magos, conocedores de todas las tecnologías habidas y por haber, quieren valerse de la tecnología actual de Microsoft para repartir los regalos navideños de un modo eficiente, seguro y adecuado (¿se imaginan regalarle una triste peonza a Jaimito como hizo erróneamente Santa Claus?).
Han elegido Microsoft porque según ellos, es cool (yo sobre eso no tengo nada más que añadir, lo dice el cliente y además tiene razón).
Según sus pronósticos, los 3 Reyes Magos consideran que con las nuevas tecnologías podrán ser más eficientes para repartir los regalos, pudiendo estar en su pais antes de lo que lo han estado en estos últimos 2000 años.

Y yo creo que lo pueden y podemos hacer posible.

¿Cómo llevar a cabo estas tareas?.

Comenzaremos a tomar los requerimientos oportunos del proceso.
Para ello, nos hemos juntado con los Reyes Magos y con un equipo de tres pajes seleccionados por los propios Reyes Magos.
El equipo de trabajo está formado por lo tanto por 6 personas que nos ayudarán a tomar los requerimientos del proyecto.

Requerimientos:

  • Sólo se admitirán las cartas fechadas entre el día 7 de enero del año en el que se celebra la Navidad y el 6 de enero del año siguiente (año nuevo) [por ejemplo, del 07/01/2010-06/01/2011].

  • Se recogerán todas las notificaciones recibidas por los Reyes Magos:
    * Correos electrónicos.
    * Cartas y postales.
    * Sms.
    * Sobres que los niños van dejando en los centros comerciales y cabalgatas fundamentalmente.

  • Un escáner potente se encargará de leer cada una de las cartas y postales y mediante un proceso OCR de reconocimiento muy potente, se encargará de obtener la información que cada niño ha rellenado.
    Para ello, cada niño deberá haber escrito la carta en letra legible (no es válida la «letra de médico» ya que el sistema no podría reconocerla).
    Si no se reconoce la carta, se eliminará.
    También se entenderá que el niño habrá escrito bien sus datos personales (nombre, apellidos, dirección y edad).
    En caso contrario, la carta se eliminará igualmente.

  • En el caso de los correos electrónicos, esa información será leída por un proceso interno que estará operando durante todo el año.

  • Si un niño envía dos notificaciones, se entenderá que la última es la que tiene valor, suprimiéndose así la anterior.

  • Se deberá crear una base de datos relacional que permita tener bien identificados a los niños.
    El censo adecuado nos facilitará la identificación de la vivienda, dirección, etc del niño.
    En el caso de no disponer de esta dirección, se solicita una dirección alternativa como la dirección de los abuelos, los primos, los tíos o algún amigo o familiar que conozca a los niños en cuestión.

  • Se utilizarán los mapas electrónicos y de satélite para establecer un enlace de la vivienda en la que se pueden dejar los regalos del niño.
    Estos datos se incluirán junto al registro de cada niño (referencia: base de datos relacional anterior).
    Adicionalmente, se identificarán también las coordenadas de GPS de cada vivienda que irá incluida en la ficha del niño.

  • Cada Rey Mago llevará un dispositivo electrónico que identificará en todo momento su situación por GPS y le mostrará un aviso luminoso para que actúe adecuadamene.
    Para facilitar la labor, se le presentará en el dispositivo las coordenadas exactas de la casa en la que debe dejarlos y un listado de los regalos.
    Adicionalmente le mostrará si es posible, un mapa de la casa y una fotografía del edificio en el que debe realizar la entrega.

  • En el caso de que la casa disponga de alarma, se le notificará a uno de sus pajes el pin adecuado para neutralizarla y volverla a activar una vez termine el proceso (el proceso suele durar medio segundo entre que llega el Rey Mago y se realiza la entrega de regalos y sale corriendo, por lo que la alarma apenas percibirá la desconexión y conexión de la misma. Esto se realizará como motivo de seguridad).

  • Si existe algún animal o mascota que pueda poner la misión en peligro, le enviará a uno de sus pajes una señal lumínica de aviso para que le entretenga mientras el Rey Mago realiza sus acciones.

  • Según se vayan entregando los regalos, la aplicación permitirá enviar una marca o flag al gestor de contenido para que indique que la entrega ha quedado realizada.

  • Todos los Reyes Magos y pajes dispondrán de un canal seguro que permita una comunicación entre ellos por medio de algún programa de chateo, mensajes, voz, etc.

    Diseño Técnico:

    Una vez atendidos los requerimientos, vamos a ponernos manos a la obra.

    Sin entrar en demasiados detalles, debemos resumir nuestras tareas de la siguiente forma:

  • Se preparará un sistema con Windows 2008 Server y una base de datos en SQL Server 2008 R2 ó SQL Azure (esto dependerá en buena manera a los estudios económicos que todavía quedan pendientes con el departamento comercial).
    Habrá una base de datos por año.
    Cada información recibida se irá almacenando en su base de datos.
    Así, una petición recibida el 10 de Enero de 2011, irá a la base de datos del 2011 y no a la del 2010.
    El modelo de datos contendrá una tabla con el listado o censo de cada niño en el mundo.

    Esa tabla contendrá los siguientes datos generales:
    * Id
    * Nombre
    * Apellidos
    * Dirección
    * Número
    * Portal
    * Puerta
    * Ciudad
    * Provincia
    * Pais
    * Código Postal
    * Posición GPS de la vivienda
    * Pin Alarma
    * Tiene mascota

    Habrá otra tabla relacionada con la anterior y que contendrá la lista de regalos asociados a cada niño:
    * Id
    * Regalos
    * Flag (entregado, no entregado, imposible entregar)
    * Causa (si procede)

  • Otro sistema dotado con Windows 7 estará conectado a un escáner HP de última generación, capaz de reconocer más de 100 hojas y escritor OCR por minuto.
    Se creará una aplicaión Windows con WPF en Visual Studio 2010 que se encargará de lanzar el proceso de escaneado y de realizar a cabo toda la gestión del proceso.
    La inserción de datos a la base de datos se realizará a través de los servicios del servidor de aplicaciones.
    Para no entorpecer la acción de escaneado y reconocimiento OCR, se creará un servicio Windows en Visual Studio 2010 que se encargará de leer los correos electrónicos y realizar la misma acción de reconocimiento y escritura de datos en el modelo de datos.
    Se abordará un proyecto con WF y Visual Studio 2010 que permita establecer un flujo de trabajo con notificaciones, aprobaciones, etc., del proceso de reconocimiento.

  • Existirá otro sistema operativo Windows 2008 Server que tendrá alojados todos los servicios de la aplicación.
    Todos los servicios del servidor de aplicaciones será desarrollado con orientación a la nube. En este caso se abordará todo el desarrollo pensando en Windows Azure asumiendo las ventajas que nos aporta y la alta disponibilidad a la que tiene que estar el sistema.
    Uno de los servicios desarrollados en WCF y Visual Studio 2010 se encargará de realizar las acciones de registro de los datos escaneados y reconocidos por OCR de los niños con la base de datos.
    Este servicio recibirá tanto los datos de correos electrónicos como escaneados y reconocidos por el OCR de HP.

  • A cada Rey Mago y cada paje, se le suministrará un Windows Phone 7 con un desarrollo a medida para llevar a cabo las tareas encomendadas.
    La aplicación de Windows Phone 7 deberá conectarse con un servicio desarrollado con WCF y que le mostrará la siguiente información general:
    * Un mapa con Bing Maps de la zona en la que se encuentra y con puntos rojos que indican las viviendas en las que aún no ha realizado las entregas o en las que faltan por realizar entregas.
    * Seleccionará un punto rojo y aparecerá las coordenadas de la vivienda, una fotografía de la vivienda y un pequeño listado de las viviendas a visitar.
    * Al hacer clic sobre una vivienda, aparecerá un mapa de la misma y un listado de los regalos a entregar.
    * A cada paje, se le enviará una notificación de si la vivienda tiene alarma y el pin de seguridad de la misma, y si hay alguna mascota, con el fin de que colabore con el Rey Mago en la entrega de regalos sin ningún imprevisto.
    * Cuando el paje active nuevamente la alarma, deberá enviar un aviso de que la entrega se ha llevado a cabo. Es posible que la entrega no se pueda llevar a cabo, por lo que el paje deberá indicar no sólo que la entrega no se pudo llevar a cabo, sino incluso el motivo, para que el comité de seguimiento pueda estudiar el caso con el fin deque no se repita en el futuro.

  • Otro servicio desarrollado en WCF proveerá los servicios que serán consumidos por los dispositivos Windows Phone 7.
    Estos servicios utilizarán en todo momento un acceso y canal seguro para establecer la comunicación.
    Estos servicios registrarán además cada una de las acciones realizadas tal y como veremos más adelante.

  • Con el fin de que cada Rey Mago y los pajes se puedan comunicar entre ellos (por ejemplo, que un niño se despierte antes de tiempo o se haya levantado al servicio dentro de la casa), se habilitará en la aplicación un icono que cambiará de color y que permite idenficar rápidamente lo que ocurre.
    Un icono de color verde indicará que todo está tranquilo.
    Un icono de color naranja, que alguien quiere hablar o enviar un mensaje al Rey Mago o al paje.
    Un icono de color rojo, indica alarma y precaución.
    Cada Rey Mago y paje tendrán un usuario que les identifique entre ellos (a establecer por el cliente).
    Para la comunicación, se utilizará Windows Live Messenger para Windows Phone 7.

  • En todo momento, el servicio WCF principal recogerá un log de registro de sucesos.
    Un servicio de Windows se encargará de recoger la información del log y de alimentar unas tablas que van alojadas a la información anual de la base de datos.
    Ese log será estudiado posteriormente para aplicar mejoras de calidad en los procesos y estudiar posibles problemas y aquellas tareas que se han hecho según lo previsto.
    Para llevar a cabo esta tarea, existirá una aplicación desarrollada en Silverlight 4 que estará disponible en el servidor de aplicaciones.
    Esta aplicación se alimentará de datos extraídos en una minería de datos de la base de datos de SQL Server 2008 R2 y con informes elaborados con Reporting Services, mostrará la información de acuerdos a los filtros establecidos en la aplicación.

    Otros detalles:

  • Como metodología se ha decidido usar Scrum.

  • En todo momento se utilizará Visual Studio Team Foundation Server 2010. Todo lo referente a la metodología de Scrum se gestionará a través del TFS 2010.

  • Como herramientas de desarrollo se utilizará Visual Studio 2010.

  • Se desarrollará todo a través de .NET Framework 4.0.

  • Evidentemente, se llevarán a cabo todas las pruebas unitarias pertinentes.

  • Adicionalmente se preparará un checklist de pruebas funcionales para que sean aceptadas por la parte cliente.

  • Se ha ofrecido la casa de los programadores para la entrega de regalos en las pruebas unitarias, pero el cliente ha desestimado el ofrecimiento, así que ya se nos notificará como se llevarán a cabo esas pruebas cuando llegue el momento.

    Tecnologías utilizadas:

    Atentamente… el equipo de desarrollo de los Reyes Magos Inc.

  • Comments

    6 Responsesso far

    1. jtorrecilla dice:
      22 noviembre, 2010 a las 9:28 pm

      Jajajaja que buena entrada!!!
      Pintado así el proyecto me animo!!! 😀

      Responder
    2. jirigoyen dice:
      22 noviembre, 2010 a las 11:16 pm

      y cuando Windows Phone se ponga azul o se quede sin batería o el GPS con el error de 1 a 10 metros provoque que los camellos se tiren por el acantilado, entonces que…., deja a los pobrecitos que sigan con la estrella (principio kiss), que a este paso nos quedamos todos sin regalos…

      Creo que has pedido demasiados regalos y solo te van a traer Visual Basic 6 SP 35 🙂

      Responder
    3. adiazmartin dice:
      23 noviembre, 2010 a las 9:47 am

      Muy buenos, si señor!!!! para escribir un libro.

      Como te comenté, yo incluiría una gestión de riesgos, veo muchos en el proyecto. No me gustaría que tengamos un problema con el OCR y los niños se queden sin regalos. 🙂

      Responder
    4. anonymous dice:
      23 noviembre, 2010 a las 10:18 am

      Que bueno!!!!!, me pongo ahora mismo a escribir mi carta a los reyes, jajajaja.

      Responder
    5. anonymous dice:
      25 noviembre, 2010 a las 3:22 pm

      Estas loco, pero buena entrada.
      Saludos,

      Responder
    6. anonymous dice:
      29 diciembre, 2011 a las 10:41 pm

      Viendo el último post de Lluis Franco en Geeks me vienen a la mente algunas de las “Inocentadas

      Responder

    Responder a anonymous Cancelar respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    ← Previous Post Next Post →

    Jorge Serrano

    MVP Reconnect


    Donaciones
    Donation

    Entradas recientes

    • Go – Tipos de Datos
    • Go – Variables
    • Hello Go-rld!
    • Introducción a Go o Golang
    • JSON Patch en ASP.NET Core 5 Web API
    • Null Checking en C#
    • ¿Porqué mi página web por defecto de ASP.NET Core no se vé en mi Azure Web App y me da un 404?
    • .NET 5 lanzado oficialmente – detalles y consideraciones
    • Configurar el Pipeline de Azure DevOps para compilar proyectos .NET 5
    • ¿Cómo puedo probar .NET 5 y C# 9?

    Categorías

    • .NET 5
    • .NET Core
    • .NET Core 3.0
    • .NET Core 3.1
    • .NET Framework 2.0
    • .NET Framework 3.0
    • .NET Framework 3.5
    • .NET Framework 4.0
    • .NET Framework 4.5
    • .NET Framework 4.6
    • .NET Framework 4.7
    • .NET Framework 4.8
    • .NET Standard 2.0
    • .NET Standard 2.1
    • AMQP
    • Android
    • Angular
    • API REST
    • Apple
    • Apple iOS
    • Apple macOs
    • Arquitectura
    • ASP.NET
    • ASP.NET Core
    • ASP.NET Core 3
    • ASP.NET Core 5
    • AWS
    • Azure App Service
    • Azure Application Insights
    • Azure Cosmos DB
    • Azure Database Migration Service
    • Azure Databricks
    • Azure DevOps
    • Azure Event Grid
    • Azure Functions
    • Azure IoT
    • Azure Portal
    • Azure PowerShell
    • Azure Queue Storage
    • Azure SQL
    • Azure Storage
    • Azure Virtual Datacenter
    • Azure WebApps
    • Big Data
    • Bing
    • Blazor
    • Blog
    • Bots
    • C#
    • C# 7.0
    • C# 7.1
    • C# 7.2
    • C# 7.3
    • C# 8.0
    • C# 9.0
    • Channel 9
    • Codeplex
    • Codespaces
    • Containers
    • Debugging
    • DevOps
    • Docker
    • Electron
    • Entity Framework
    • Entity Framework Core
    • Entity Framework Core 3.0
    • Entity Framework Core 5
    • Eventos
    • F#
    • FaaS
    • FeatureFlags
    • FeatureToggles
    • Feeds
    • Fluent Assertions
    • General
    • GIMP
    • Git
    • GitHub
    • Go
    • Google
    • Google Analytics
    • Gradle
    • gRPC
    • GSA
    • Historia de la Informática
    • HoloLens
    • HtmlAgilityPack
    • IdentityServer4
    • Inkscape
    • Ionic
    • iOS
    • IoT
    • Java
    • JavaScript
    • JDBC
    • JSON
    • Kubernetes
    • Lenguajes de Programación
    • Libros y Cursos
    • LINQ
    • Linux
    • LiteDB
    • Machine Learning
    • macOS
    • Microservices
    • Microsoft
    • Microsoft .NET Framework 4.5
    • Microsoft 365
    • Microsoft Azure
    • Microsoft Build
    • Microsoft Ignite
    • Microsoft Learn
    • Microsoft Orleans
    • Microsoft Surface Go
    • Microsoft Teams
    • ML.NET
    • MQTT
    • MRO
    • MS-DOS
    • MsCoders Madrid
    • MVP
    • NancyFx
    • Node.js
    • NoSQL
    • NuGet
    • NUnit
    • OData
    • ODP.NET Core
    • Office 2007
    • Office 2010
    • Office 2013
    • Office 2016
    • Office 2019
    • Office 365
    • Open Source
    • Open XML SDK
    • Opinión
    • Orchard CMS
    • OT
    • PaaS
    • Patterns
    • PdfSharpCore
    • Performance
    • PHP
    • Postman
    • Power BI
    • PowerShell
    • PowerShell Core
    • Productividad
    • Project Server 2019
    • R
    • Rendimiento
    • Scala
    • Scraper
    • Security
    • Serverless
    • Service Fabric
    • SharePoint Server 2019
    • SignalR
    • Sin categoría
    • Sistemas Distribuidos
    • Skype
    • Skype for Business Server 2019
    • Small Basic Online
    • SQL Server 2005
    • SQL Server 2008
    • SQL Server 2012
    • SQL Server 2014
    • SQL Server 2016
    • SQL Server 2017
    • SQL Server 2019
    • STOMP
    • Swagger
    • Testing
    • TFS 2017
    • TFS 2018
    • Tools
    • TypeScript
    • Unity
    • UWP
    • UX
    • Visio
    • Visual Basic
    • Visual Studio 2010
    • Visual Studio 2012
    • Visual Studio 2013
    • Visual Studio 2015
    • Visual Studio 2017
    • Visual Studio 2017 for Mac
    • Visual Studio 2019
    • Visual Studio 2019 for Mac
    • Visual Studio App Center
    • Visual Studio Code
    • Visual Studio IntelliCode
    • Visual Studio Live Share
    • Visual Studio Live Share Audio
    • Visual Studio Online
    • VS Anywhere
    • Vue.js
    • Web API
    • WebAssembly
    • WinDbg
    • Windows
    • Windows 10
    • Windows Compatibility Pack
    • Windows Phone 10
    • Windows Phone 7
    • Windows Phone 8
    • Windows Server 2008
    • Windows Server 2012
    • Windows Server 2016
    • Windows Server 2019
    • Windows Service
    • WinForms
    • WinUI
    • WPF
    • Xamarin
    • Xbox
    • Xcode
    • Xiaomi Mi Band 2
    • xUnit
    • YAML

    Archivos

    • enero 2021
    • diciembre 2020
    • noviembre 2020
    • octubre 2020
    • septiembre 2020
    • agosto 2020
    • julio 2020
    • junio 2020
    • mayo 2020
    • abril 2020
    • marzo 2020
    • febrero 2020
    • enero 2020
    • diciembre 2019
    • noviembre 2019
    • octubre 2019
    • septiembre 2019
    • agosto 2019
    • julio 2019
    • junio 2019
    • mayo 2019
    • abril 2019
    • marzo 2019
    • febrero 2019
    • enero 2019
    • diciembre 2018
    • noviembre 2018
    • octubre 2018
    • septiembre 2018
    • agosto 2018
    • julio 2018
    • junio 2018
    • mayo 2018
    • abril 2018
    • marzo 2018
    • febrero 2018
    • enero 2018
    • diciembre 2017
    • noviembre 2017
    • octubre 2017
    • septiembre 2017
    • agosto 2017
    • julio 2017
    • junio 2017
    • febrero 2015
    • octubre 2014
    • junio 2014
    • marzo 2014
    • febrero 2014
    • enero 2014
    • diciembre 2013
    • septiembre 2013
    • agosto 2013
    • julio 2013
    • junio 2013
    • abril 2013
    • febrero 2013
    • enero 2013
    • diciembre 2012
    • noviembre 2012
    • septiembre 2012
    • agosto 2012
    • junio 2012
    • mayo 2012
    • abril 2012
    • marzo 2012
    • febrero 2012
    • enero 2012
    • diciembre 2011
    • noviembre 2011
    • octubre 2011
    • septiembre 2011
    • agosto 2011
    • julio 2011
    • junio 2011
    • mayo 2011
    • abril 2011
    • marzo 2011
    • enero 2011
    • diciembre 2010
    • noviembre 2010
    • octubre 2010
    • septiembre 2010
    • agosto 2010
    • julio 2010
    • junio 2010
    • mayo 2010
    • abril 2010
    • marzo 2010
    • febrero 2010
    • enero 2010
    • diciembre 2009
    • noviembre 2009
    • octubre 2009
    • septiembre 2009
    • agosto 2009
    • julio 2009
    • junio 2009
    • mayo 2009
    • abril 2009
    • marzo 2009
    • febrero 2009
    • enero 2009
    • diciembre 2008
    • noviembre 2008
    • octubre 2008
    • septiembre 2008
    • agosto 2008
    • julio 2008
    • junio 2008
    • mayo 2008
    • abril 2008
    • marzo 2008
    • febrero 2008
    • enero 2008
    • diciembre 2007
    • noviembre 2007
    • octubre 2007
    • septiembre 2007
    • agosto 2007
    • julio 2007
    • junio 2007
    • mayo 2007
    • abril 2007
    • marzo 2007
    • febrero 2007
    • enero 2007
    • diciembre 2006
    • noviembre 2006
    • octubre 2006
    • septiembre 2006
    • agosto 2006
    • julio 2006
    • junio 2006
    • mayo 2006
    About This Site

    A cras tincidunt, ut tellus et. Gravida scel ipsum sed iaculis, nunc non nam. Placerat sed phase llus, purus purus elit.

    Archives Widget
    • January 2010
    • December 2009
    • November 2009
    • October 2009
    Categories
    • Entertainment
    • Technology
    • Sports & Recreation
    • Jobs & Lifestyle
    Search
    • twitter

    Powered by WordPress  |  Business Directory by InkThemes.

    This site uses cookies: Find out more.