© 2017 MECALUX Software Solutions
© 2017 MECALUX Software Solutions
Arquitectura y Calidad de un producto Software –
EasyWMS
Arquitectura de un producto real y extensible
© 2017 MECALUX Software Solutions
Parte I
Logística y Almacenes
© 2017 MECALUX Software Solutions 4
¿Para qué sirve un almacén?
Su uso es muy diverso, depende de las necesidades de la organización:
• Evitar costes de rotura de stock• Permite operativas de organización (etiquetado, inventario) de forma mucho más controlada y cómoda que teniendo que hacerlo en el destino final (tiendas, por ejemplo).
•Abastecimiento de cadena de suministro de forma eficiente
© 2017 MECALUX Software Solutions 5
• Hacer más con menos• Hacer cosas mejor (o en menos tiempo)• Obtener más beneficios
No perder de vista los objetivos
Almacenes y Cadena de Suministro (Supply Chain)
© 2017 MECALUX Software Solutions 6
El almacén puede integrarse en una organización que es la que gobierna la cadena de suministro
• El almacén y su contenido son recursos de una empresa / organización, luego son susceptibles de ser gestionados por un ERP (Enterprise Resource Planning).
• Íntimamente ligados con Supply Chain• Ejemplo: Los contenidos del almacén pueden ser directamente relacionados con las ordenes de compra – ventas a cliente, luego están relacionados con un CRM (Customer Relationship Management)
ERP y otros subsistemas empresariales
© 2017 MECALUX Software Solutions 7
Tipologías de Almacenes ‐Manuales
© 2017 MECALUX Software Solutions 8
Tipologías de Almacenes ‐Automáticos
© 2017 MECALUX Software Solutions 9
Tipologías de Almacenes por tipo de estantería, algunos ejemplos
© 2017 MECALUX Software Solutions 10
Atributos buscados
en un WMS
• Trazabilidad• Interconexión• Fiabilidad de las operativas• Rapidez de implantación*• Facilidad de uso*• Escalable*• Adaptable a los cambios de mercado*
Retos que plantea
• Cantidad de datos a almacenar muy alta
• Arquitectura lo más abierta posible
• Herramientas de ayuda a la configuración
• Interface de usuario muy simple
• Infinitas posibilidades de configuraciones
Importante: El ciclo de vida del software, va unido al del mercado
Atributos de calidad
© 2017 MECALUX Software Solutions 11
Parte II
Arquitectura de EasyWMS
© 2017 MECALUX Software Solutions 12
Envío / recepción de información
Sincronización entre aplicaciones en la empresa
Utilizando ficheros (.txt, .xml...), bases de datos, etc.
Extract, Transform, Load
Define un DSL con operaciones para:
‐ Procesar información recibida (Otros ‐> WMS)
‐ Enviar información (WMS ‐> Otros)
Lenguaje nativo de .NET
Fácilmente extensible
Sintaxis similar a Phyton
Comunicaciones: Interconexión con sistemas empresariales
Motor procesado
DSL que extiende
GNA
ETL
Boo
© 2017 MECALUX Software Solutions 13
Flexibilidad y Adaptación al entorno: EasyBuilder ‐WorkFlows
© 2017 MECALUX Software Solutions 14
Flexibilidad y Adaptación al entorno: EasyBuilder – Edición de vistas
© 2017 MECALUX Software Solutions 15
Flexibilidad y Adaptación al entorno: EasyS – Interfaz gráfico de configuración
© 2017 MECALUX Software Solutions 16
Flexibilidad y Adaptación al entorno: EasyS – Simulación
© 2017 MECALUX Software Solutions 17
Parte III
Calidad y Desarrollo
© 2017 MECALUX Software Solutions 18
• SVN• GIT• Operativas en Ramas
Control de versiones
• Control continuo del estado del producto• Ayudan a sincronizar el trabajo entre equipos• Evitan DLL Hell
Sistema de CI/CC
Herramientas de Desarrollo / Calidad
•Control de cambios / Test de regresión• Permiten probar muchas casuísticas en poco tiempo•Uso de tecnología de virtualización en contenedores
Test Automatizados
© 2017 MECALUX Software Solutions 19
https://jenkins.io/http://cruisecontrolnet.org/
Sistemas de IC / CC
© 2017 MECALUX Software Solutions 20
• Check‐Out• Build• Test• Rinse and Repeat• Prioridad: Arreglar el build lo antes posible
Integración Continua
© 2017 MECALUX Software Solutions 21
• Criterios de aceptación• SpecFlow (notación Gherkin)• Test distribuidos (Pruebas reales)
Test Automáticos
• Comprobación de escalado• Validación de virtualmente, infinidad de configuraciones
• Múltiples motores de BBDD soportados• Riesgo de no focalizar
Retos
Test Automatizados
© 2017 MECALUX Software Solutions 22
https://cucumber.io/docs/referencehttp://specflow.org/
Test de Aceptación
© 2017 MECALUX Software Solutions 23
Análisis de escalado
© 2017 MECALUX Software Solutions 24
Test distribuidos
© 2017 MECALUX Software Solutions 25
Otras herramientas de calidad: Revisión de código
© 2017 MECALUX Software Solutions 26
Issue tracker (redmine)• Fundamental para trazar la historia de modificaciones
• Enlaza los test de aceptación con las historias de usuario
• Permite seguimiento de problemáticas de clientes• http://www.redmine.org/
Otras herramientas de calidad: IssueTracker
© 2017 MECALUX Software Solutions 27
Parte IV
Evolución de la organización del desarrollo
© 2017 MECALUX Software Solutions 28
Metodologías usadas
ICONIX (http://www.iconixsw.com/)
Scrum (http://www.scrumguides.org/)
TDD / BDD
Kanban / JiT
Calidad y Desarrollo en Equipo
© 2017 MECALUX Software Solutions 29
Desarrollo en equipo único – monolítico ‐ ICONIX
•Ciclos de desarrollo muy largos•Tiempos de análisis demasiado largos para los requerimientos del mercado•Fase de pruebas estresante y con muchos retrasos•La documentación se quedaba obsoleta con facilidad
Pros ‐Cons
© 2017 MECALUX Software Solutions 30
Desarrollo con separación UI / Lógica de negocio ‐ ICONIX
•Ciclos de desarrollo aun muy largos•Perdida del sentido de propiedad para los desarrollos•Se crean islas de conocimiento muy específico•Los primeros test automáticos son muy complejos y muy dependientes. El mantenimiento de los mismos es demasiado costoso
Pros ‐Cons
© 2017 MECALUX Software Solutions 31
Desarrollo en Equipos ‐ SCRUM
• Calidad empieza a llevarse a desarrollo, su papel cambia• Los tiempos de iteración no son todo lo efectivos que quisiéramos• Se consiguen ciclos de publicación más cortosPros ‐Cons
© 2017 MECALUX Software Solutions 32
Desarrollo en equipos – Kanban / JiT
•Equipos autónomos, sentido de la propiedad del desarrollo•Los equipos deciden los plazos•Roles, no personas•Se evitan los valles en roles muy específicos, el equipo decide si pueden apoyar otras partes del desarrollo
Pros ‐Cons
© 2017 MECALUX Software Solutions 33
¡Fin!
¡Gracias por asistir!
MJF1