ERP¶
Enterprise Resource Planning, es un sistema que permite gestionar y coordinar todos los recursos, información y funciones de una empresa para optimizar su flujo. Formado por: - Hardware - Software - Procesos - Personas (con quienes se comunican, partners...)
Sus características son que - Parametrizables / configurable - Modulares - Integrales
Tiene los datos centralizados Implementan cambios colaterales (la empresa se debe adaptar al ERP)
Factores críticos de éxito¶
- Define los objetivos del proyecto
- Debe haber un líder comprometido
- Total apoyo de la gerencia
- Disponibilidad a uniformizar los procesos del negocio
- Los usuarios finales deben estar involucrados
- Soluciona problemas de forma inmediata.
¿Qué es un buen diseño de interfaz?¶
La interfaz o UI, es el medio por el que el usuario final, interactúa con los clientes (sistemas manejando el back-end), un buen diseño, es aquel que es intuitivo y fácil de usar, mantiene consistencia y es coherente. Es estéticamente agradable y atractivo y es fácil de leer y seguir. Es adaptable a distintos dispositivos, y accesible a los usuarios que la usarán.
NOTAS: Responsivo + UX/UI;
¿Por qué es importante el diseño de software para una aplicación?¶
Diseñar no es solamente generar bocetos, es planificar todo el funcionamiento de un sistema, preparación, planificación y diseño del código de software. Diseñar permite comprender mejor el objetivo y tener un mayor nivel de abstracción
Beneficios¶
- Ayuda a conocer mejor los pasos posteriores y el cómo el paso actual afectará al paso posterior.
- Ayuda a planificar las funcionalidades que se irán completando y conocer cuales actividades son críticas.
- Planificar todo el código, ayuda a fomentar la modularidad y re-utilización del código.
- Hace que el sistema sea más comprensible
- Facilita el mantenimiento
- Ayuda a conocer si el sistema es escalabre vertical y horizontalmente.
- Ahorra dinero, tiempo y esfuerzo
Tipos de diseños¶
- Conceptual o arquitectónico: Explica teóricamente cómo funciona el sistema, las tecnologías... y la interconectividad de los módulos.
- De alto nivel: Es convertir todos los conceptos teóricos en entidades, y asegurarse de la existencia de interconectividad.
- Técnico o detallado: Se resuelve la implementación del diseño conceptual, se coordinan módulos y la interfaz, junto con la base de datos.
¿Existe una forma correcta de diseñar el software?¶
NO, aunque si existan algunos lineamientos, no hay una forma correcta, cada equipo encontrará su forma de trabajo ideal, lo importante es mantener comunicación, que todos conozcan los requerimientos y listar las ideas importantes.
12 leyes que todo programador debe conocer del UX/UI¶
LAS LEYES DE UX/UI SE PUEDEN CONSIDERAR PATRONES DE DISEÑO
Existen algunos patrones para el desarrollo de diseños, son bases.
UX¶
El usuario debe vivir la mejor experiencia posible, al entrar, no debe sentirse fatigado o cansado al ver nuestro diseño. Entran temas de psicología, para conocer mejor, cuánto tiempo debe tardar una animación y por qué...
UI¶
La forma en que la diseñamos, debe verse de manera atractiva, entra un poco de teoría de colores, y habla de qué colores se ven bien con cuales y por qué...
Leyes¶
Ley 1: Preattentive Processing¶
AKA, Pregnancia de Gestalt, las personas representan las imágenes complejas como algo simple. El humano reduce todo lo complejo en cosas más simples.
Simplificar estímulos es algo natural, por ende, busquemos simplificar las cosas, intentar evitar las cosas tardadas de procesar, a menos, que ese sea nuestro objetivo, pero esto será más difícil.
Ley 2: Ley de Hick¶
El tiempo de respuesta es directamente proporcional a la cantidad de estímulos. Cuando tenemos más alternativas, más tardamos en dar una respuesta.
Buscamos crear interfaces, en las que el usuario no se tarde en elegir lo que desea rellenar o presionar.
Ley 3: Ley de Tesler¶
Para cualquier sistema, existe un nivel de complejidad que no se puede reducir. Debemos intentar simplificar algo, pero sin pasarnos, hay un punto en el que simplificar más, hace más compleja una operación.
En todo sistema, hay un punto donde no se puede simplificar más, la ley de conservación de la complejidad forma parte de la ley de Tesler.
Mantener los requisitos mínimos que garantizan la funcionalidad mínima de nuestro producto.
Ley 4: Ley de proximidad¶
La mente tienen una disposición natural para agrupar elementos según su proximidad. Si algo está muy cerca de otra cosa, la mente los agrupa a un objeto único. Usar espacios en blanco, negritas... para decirle a la mente que hay separadores.
Tenemos distintos tipos de percepciones - Por proximidad - Por colores - Por formas
Ley 5: Ley de posición serial¶
La posición de un elemento en una secuencia afecta a la precisión de su recuerdo. Los usuarios tienden a recordar mejor el primer y último elemento de una serie.
Ley 6: Ley de Fitts¶
Los movimientos más rápidos hacia objetivos más pequeños dan mayor tasa de error. Es importante hacer que el usuario tenga acceso rápido a los botones, si es algo con lo que se interactúe, no debe estar tan lejos ni ser pequeño ni grande, reducir recorridos y ser accesibles y visibles.
Ley 7: Ley de Parkinson¶
Cuanto más tiempo tiene un usuario para realizar una tarea, más tiempo va tardar en realizarlo. No debemos dar mucho tiempo, que las tareas las hagan rápido.
Ley 8: Ley Von Restorff¶
En una lista de elementos, los humanos recuerdan los que destacan más, es más probable que se recuerde de lo que es más distinto del resto. Hacer que un color sea complementario si queremos destacarle, siempre, siguiendo una paleta de colores.
Ley 9: Ley de Paretto¶
El 80% de los efectos provienen del 20% de las causas. Una minoría de las cosas, realizan la mayoría de los resultados. Identificaremos las cosas que hacen que nuestra interfaz le de 80% de satisfacción al usuario.
Ley 10: Ley Zeigarnik¶
Las personas suelen recordar tareas incompletas mucho mejor que las completas. Cuando terminamos una tarea, es más probable que la olvidemos que si no la hemos olvidado.
Ley 11: Ley de Hiller¶
Un usuario suele recordar 7 elementos. Solo recodamos 7 cosas al mismo tiempo, podemos recordar 7 +- 2 elementos (la psicologia le llama chunks a estos elementos ).
Si un formulario es largo, dividirlo en varias partes para rellenarlos por partes.
Ley 12: Ley de Jakob¶
Los usuarios prefieren sitios que funcionen igual que los que ya conocen. A las personas no les gusta el cambio, les gusta la zona de confort, no debemos cambiar cosas a las que están acostumbradas a menos que tengamos un motivo.
Conceptos de Diseño¶
- Abstracción: Búsqueda de las cosas más genéricas hasta lo más específico (abstracción baja a la alta). Hay varios niveles de abstracción, externa, conceptual e interna.
- Arquitectura: Todas las características de un software, jerarquía de componentes y procedimientos + distribución de los datos.
- Los patrones de arquitectura expresan un esquema organizativo estructural del software, MVC, SOA, Tres niveles, Peer to Peer...
- Patrones: Guías que se siguen al desarrollar un software, promoviendo la modularidad y re utilización de código. Existen los creacionales, estructurales y de comportamiento.
- Los patrones de arquitectura afectan la estructura global del sistema
- Los patrones de diseño definen micro-arquitecturas de sub-sistemas de componentes
- División de problemas: Cualquier problema complejo puede ser abordado como la solución de pequeñas tareas.
- Modularidad: Pequeñas funcionalidades que forman parte de un sistema, anexados del sistema global y que funcionan al recibir entradas y devolver salidas.
- Ocultamiento de información: La información que un modulo usa, no debe ser mostrada a otros módulos, los módulos externos no deben requerir de esta información para funcionar, mas sin embargo, sí pueden implementar el módulo.
- implica restringir el acceso a los detalles internos de un módulo, de manera que otros módulos o componentes del sistema solo puedan interactuar con él a través de una interfaz pública bien definida.
- Independencia funcional: Capacidad de desarrollar módulos con funciones que no interactuen excesivamente con otros, para esto, usaremos cohesion y acoplamiento. Un modulo es un buen módulo si tiene alta cohesión y bajo acomplamiento.
- Cohesion es la fuerza funcional de un módulo, este ejecuta únicamente una tarea.
- Acomplamiento: Conexión que hay entre los módulos.
- Refinamiento: también conocido como refactorizar, se trata de agarrar un modulo ya existente, y mejorarlo, refinarlo o incluso volverlo a hacer desde cero.
- Aspectos: Surge cuando un módulo interfiere o involucra el refinamiento de otro módulo. Es una abstracción encapsulada en varios módulos, también podría ser una preocupación transversal. Si un aspecto existe, se debe evaluar la creación de otro módulo mediador.
- Rediseño: Se refiere al analizar un diseño existente de un sistema, y modificar sin afectar el resultado ya existente(diseño actual), generando un software más fácil de integrar, probar y mantener.
- Conceptos de Diseño OO
- Clases de diseño