OBJETIVO 2: DISEÑO DE SOFTWARE Y DISEÑO DE INTERFAZ DE SOFTWARE
El desarrollo de un software va más allá de sus funciones y procesos. Detrás de la funcionalidad de un software, se resguardan parámetros de diseño que son de suma relevancia a la hora de ser utilizado, pues la relación entre el usuario y el software debe ser amigable, fácil e intuitiva para mejorar y resguardar los procesos. Por ello, la importancia del diseño de software hace presencia a la hora de crear y desarrollar sistemas.
Brevemente, definimos al diseño de software como un proceso que transforma los requisitos del usuario de una manera conveniente, lo que ayuda al programador en la codificación e implementación del software. Dicho proceso de diseño es evaluado a través de SRS (Software Requirement Specification, en español 'ERS' especificación de requisitos de software), que se crea tanto para codificar como para implementar, esto con la finalidad de tener un panorama más detallado del diseño a llevar a cabo.
El diseño de software es, en primera instancia, lo que lleva al SFDLC (Software Design Life Cycle, en español ciclo de vida del diseño de software), lo que cambia la atención e importancia desde problema de dominio a solución de dominio. Posterior a su aplicación, reúne tres posibles niveles para calificar los resultados obtenidos:
El diseño arquitectónico, el cual es la versión más abstracta del sistema. Identifica el software como un sistema con distintos componentes que interactúan entre ellos.
El diseño de alto nivel, el cual se centra en cómo el sistema junto con todos sus componentes se puede implementar en forma de módulos. Reconoce estructuras modulares de cada sub-sistema y su relación e interacción entre las mismas. El mismo rompe con el concepto de diseño arquitectónico que se refiere a ‘Componente de única entidad múltiple', y por lo contrario, tiene un punto de vista menos abstracto de los sub-sistemas y módulos y representa la existente interacción entre ellos.
El diseño detallado, el cual diseña acuerdos con la parte de implementación de lo que se ve como sistema y sus sub-sistemas con los dos tipos de diseño mencionados con anterioridad. Es más detallado en cuanto a los módulos y a su implementación. Define estructuras lógicas de cada módulo y de sus interfaces para comunicarse con los otros módulos.
Dichos niveles arrojan resultados que concluyen con su diseño, el cual no se cohíbe de estar en constante cambio para su adaptabilidad. La importancia de este proceso de diseño recae en la calidad que el software proporcione en relación a su durabilidad, efectividad y variabilidad.
El Diseño es la única manera de materializar con precisión los requerimientos del cliente, y es por ello que busca implementar todos los requisitos explícitos contenidos en el modelo de análisis y acumular todos los requisitos implícitos que desea el cliente.
El diseño de software no se aleja de diversos problemas, y es que se trata de un proceso complejo que debe ser llevado meticulosamente, de modo que se eviten la menor cantidad de errores a la hora de ser diseñado. Para contrarrestar estas problemáticas, se recomienda en su mayoría, generar patrones de diseño que simplifiquen sus módulos y hagan más sencilla su ejecución.
Los patrones de diseño son unas técnicas para resolver problemas comunes en el desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces. Éstas a su vez resultan una solución a los problemas más comunes enfrentados en el diseño, arrojando características claves del software. En su mayoría, una de ellas es que debe haber comprobado su efectividad resolviendo problemas similares en ocasiones anteriores. Otra es que debe ser reutilizable, lo que significa que es aplicable a diferentes problemas de diseño en distintas circunstancias.
Finalmente, cuando el diseño del software se ve culminado, lo ideal es aplicar un modelo de diseño que sintetice todo lo mostrado. Los modelos de diseños de software son esa abstracción de la implementación del sistema, que se utiliza para concebir y para documentar el diseño del sistema de software. Es un producto de trabajo integral y compuesto que abarca todas las clases de diseño, subsistemas, paquetes, colaboraciones y las relaciones entre ellos.
Esto, a su vez, lleva la fase de Evaluación del Diseño de Software donde se busca examinar, de manera detallada, el software sintetizado, en busca de problemas que puedan amenazar contra sus funciones, ciclo de vida, entre otros. En esa fase es usual hacer uso de cuestionarios o checklist para llevar un registro de los acontecimientos y cambios en el sistema, para así conocer de antemano cuáles son sus fallas o características desde una perspectiva diferente.
Concluyendo con este proceso, conociendo que el software en conjunto con el sistema funcionan a la par, es esencial crear un vínculo amigable entre los usuarios y la interfaz. Un principio muy importante del diseño de interfaz es captar la diferencia entre accesibilidad y usabilidad, los cuales son meramente similares, pero muy diferentes entre sí.
Cuando decimos que un software posee accesibilidad, nos referimos a un acceso universal, independientemente del tipo de hardware, software, infraestructura de red, idioma, cultura, localización geográfica y capacidades de los usuarios. Un software accesible lo será tanto para una persona con discapacidad, como para cualquier otra persona que se encuentre bajo circunstancias externas que dificulten su acceso a la información.
Por otro lado, la usabilidad comprende la forma en la cual los usuarios perciben el uso de las diferentes funciones del software. En esta parte se toma en cuenta los requisitos del software, ya que son los que guían al usuario en el uso del mismo y en su desenvolvimiento con el software. Un sistema debe poseer usabilidad, pues es un requisito indispensable ser útil y fácil de comprender para los usuarios.
Ambos parámetros comprenden los principios de interfaz de diseño, características indispensables a la hora de llevar a cabo el diseño de un software.
No obstante, es importante considerar aspectos visuales en el diseño de la interfaz que permitan que el software cuente con una mayor comprensión y legibilidad. Entre estos aspectos existe la manera de navegación, colores, iconos, la forma en la que se muestra información textual y audiovisual, entre otros. Estos los podemos enlistar de la siguiente manera:
Disposición o Layout: formatos, proporciones, y mallas (grids); organización: ya sea 2D y 3D.
Tipografía: selección de tipos de letra y estilos, incluyendo la anchura fija y variable.
Color y Textura: color, textura y luminancia aportan información compleja y realidad pictorial.
Imágenes: signos, iconos y símbolos, desde lo fotográficamente real a lo abstracto.
Animación: un display dinámico o cinético: muy importante en la utilización de imágenes relacionadas con el vídeo.
Secuenciamiento: el aproximamiento total del secuenciamiento visual al secuenciamiento lógico.
Sonido: abstracto, vocal, concreto, o musical.
Identidad Visual: las reglas adicionales y únicas que proporcionan consistencia de conjunto a una interfaz de usuario.
Otros factores a tomar en cuenta a la hora del diseño de software son la navegabilidad, la simplicidad, la fácil comprensión de la información mostrada, la claridad y la economización del espacio. Esto se logra mediante items, tipografias, imagenes, figuras y colores adecuados. El último mencionado juega un rol importante, ya que es el color el que transmite diferentes sensaciones y sentimientos a la hora de percibirlo.
Brevemente tomamos en consideración los siguientes términos a la hora de brindarle una definición a lo que es "color":
- Matiz (Hue) es la composición espectral de longitud de onda que produce percepciones de ser azul, naranja, verde, etc. por ejemplo.
- Valor (Value) es la cantidad relativa de claridad u oscuridad del color en un rango desde el negro al blanco (también llamado intensidad).
- Saturación (Chroma) es la pureza del color en una escala desde el gris a la variante mas viva del color percibido.
- Brillo (Brightness) es la cantidad de energía luminosa al crear el color.
Dichas definiciones antes mencionas toman un rol importante en el diseño de interfaz y en cómo se percibe la información transmitida. Estas mismas son las que acarrean diversas leyes y principios a tomar en cuenta; entre ellas, tres más resaltantes, como lo son:
- Organización del color, la cual influye en la consistencia de la organización. El color debe emplearse para agrupar los items relacionados.
- Economía del color, la cual sugiere usar un máximo de 5 +/- 2 colores cuando el significado tiene que ser recordado.
- Comunicación del color, la cual sugiere usar fuertes contrastes en valor y tono para centrar la atención del usuario en la información más importante. Cuando demasiadas figuras o campos del fondo compiten por la atención del usuario se produce cierta confusión. La jerarquía de los estados sobreiluminado, neutro e infrailuminado para todas las áreas de la pantalla deben ser cuidadosamente diseñadas para proporcionar la máxima sencillez y claridad.
Es importante tomar en cuenta que si se produce un cambio en el tamaño de los elementos coloreados, nuestra percepción sobre su luminancia o tono puede cambiar, y tomar las medidas oportunas.
También es preciso usar colores que difieran tanto en valor como en tono. Las combinaciones rojo/verde, azul/amarillo, verde/azul, y rojo/azul deben ser evitadas excepto si se necesita un efecto visual especial. Pueden crear vibraciones, ilusiones, sombras y postimágenes.
De igual forma, para situaciones con poca iluminación se recomienda texto claro, líneas finas y formas pequeñas o medianas sobre un fondo oscuro; para situaciones con iluminación abundante, por el contrario, texto oscuro (azul o negro), líneas finas y formas pequeñas sobre fondo claro.
Finalmente, teniendo en cuenta los principios antes mencionados, es de importancia seguir las siguientes recomendaciones a la hora de diseñar interfaces de software de calidad, efectividad y vida útil:
1.- Usar un máximo de cinco, más menos dos colores. Cuatro colores distintos son apropiados. Permite mayor sitio adicional en la memoria a corto plazo (memoria de trabajo). Los ordenadores pueden proporcionar alrededor de 16 millones de colores, pero los humanos sólo pueden discriminar entre 7,5 millones de colores.
2.- Usar colores centrales y periféricos de forma apropiada. Usar el color azul para áreas grandes, no para detalles o texto. El azul es apropiado para fondos de transparencias y pantallas. Usar el rojo y el verde para captar la atención es una buena medida, el campo visual se adapta fácilmente a esto.
3.- Usar el mismo color para agrupar elementos relacionados. La ciencia cognitiva ha avanzado en la noción de preparar y el proceso preatento. En este contexto, puedes preparar al usuario para eventos relacionados usando un código de color común. Un grupo de imágenes sucesivas puede mostrarse para relacionarse usando el mismo color. Colores similares pueden evocar significados similares. Es preciso mantener el color de fondo a no ser que exista una poderosa razón, por el mismo motivo.
4.- Usar un código de formas redundante de la misma manera que el color. Hace la pantalla más impermeable a distorsiones en el color. Los cambios en la claridad del ambiente pueden provocar cambios en el color percibido.
5.- Evitar azul para el texto, líneas finas, y formas pequeñas. Nuestro sistema visual no está únicamente diseñado para estímulos detallados y precisos en longitudes de onda corta. Sin embargo, el azul es muy aconsejable para el color de fondo, y se percibe de manera idónea en la periferia del campo visual.
6.- Evitar que los colores adyacentes difieran únicamente en la cantidad de azul. Los límites que difieran únicamente en la cantidad de azul se percibirán distintos.
7.- Evitar el rojo y el verde en la periferia de pantallas de gran escala. Debido a la insensibilidad de la periferia retinal al rojo y al verde, estos colores deben ser evitados en la periferia en su forma saturada. El amarillo y el azul son buenos colores periféricos.


















