diseño-de-software-a-detalle

Diseño de Software a Detalle

Diseño de Software a Detalle

Llevamos ya 4 décadas en contacto con las tecnologías de la información y a través de estos cuarenta años hemos avanzado “mucho”, estamos creando diseño de software más y más complejos, de miles y miles de líneas de código, cientos de manos codificando, cientos de ojos desgastándose y desvelándose, todo para que podamos subir esa foto de la cena con nuestros amigos a Facebook.

Y es que en 40 años nos hemos movido de sistemas contables en líneas de comandos hacía apps de celular que nos permite aplicar un filtro a las fotos, de sencillas calculadoras hacía un conjunto de aplicaciones que puede mantener nuestros correos, fotos, archivos, agenda, entre otras cosas, a un solo toque en nuestros celulares.

Es por ésta complicación de sistemas que se vuelve una necesidad el poder tener una disciplina al momento de desarrollarlos. Hoy en día tenemos múltiples herramientas que nos facilitan el desarrollo rápido de sistemas complejos, aún y a pesar de esto nuestros sistemas siguen teniendo un sin número de bugs, una característica que no es para nada exclusiva en los sistemas a la medida, sino que está en toda la industria debido a la exponencial complejidad de diseño de software.

LEE:¿DESARROLLAR SOFTWARE INTERNAMENTE O CONTRATAR A UN PROVEEDOR?

Veamos por ejemplo la calculadora de Windows, si la abres en este momento y tecleas 4 seguido del botón raíz cuadrada, te debe dar un 2 ¿no es así? Entonces si le restamos 2 a nuestro resultado ¿cuánto es el total? Esto lo realizo para ejemplificar y debido a que Windows es un sistema tan complejo, este pequeño bug no ha sido prioridad para Microsoft (o por alguna otra razón no ha sido removido).

Ahora bien, una forma en la que podemos lograr disminuir (más no erradicar), nuestros bugs enviados al departamento de QA es mediante un diseño previo de nuestros elementos, a continuación, presento una pequeña analogía para poder explicar esto último.

Supongamos que tenemos 5 albañiles que nos ayudarán a construir una casa, ellos saben que la casa tendrá 2 baños, 3 recamarás, cocina, comedor y sala, sin embargo no les damos ni planos ni una guía para construir la casa, el resultado puede no ser lo que deseamos, dependiendo de la habilidad de los albañiles.

Lo mismo es con los sistemas: si no generamos un plano de nuestros elementos a construir ¿cómo vamos a saber que vamos a construir? Recién egresados estamos acostumbrados a diseñar al momento de codificar, trabajando de esta manera lo único que logramos es un código poco modular y con algunos bugs que no son de lógica sino más bien de arquitectura, debido al hecho que no diseñamos correctamente una arquitectura modular que nos diera un elemento pequeño, reutilizable y fácil de mantener.

Una práctica fácil, que nos puede tomar pocas horas, muy pocas a comparación con el tiempo que dedicaremos resolviendo bugs de no tomarlas, es realizar las especificaciones de Operación y Funcionalidad del elemento a desarrollar, por ejemplo:

LEE: 10 VENTAJAS DE MICROSOFT DYNAMICS AX EN EL SECTOR DE MANUFACTURA

Mountain View

Mediante este diseño previo tenemos ya un plano de lo que vamos a construir, claro que este es un ejemplo bastante burdo, quizás prefieras guardar el usuario y la contraseña en una clase Modelo separada, tal vez quieras simplificar la clase, pero el punto siempre será el mismo, desde este momento ya estás pensando en lo que se requiere construir, sin haber escrito una línea de código, y cuando tengas frente a ti tu ambiente de desarrollo abierto ya tienes una idea de lo que vas a hacer, ya no estarás codificando a prueba y error.

Este es un paso que puede ayudar a disminuir los defectos que mandas hacía QA y te servirá mucho a ti y a tu equipo. Hay más prácticas, como las revisiones de código tanto tuyas como las que tu equipo te puede realizar, mantener un estándar de código en todos los desarrollos de tu empresa, desarrollar casos de prueba desde antes de codificar, e incluso escribir pseudocódigo en la etapa de diseño de software antes de entrar a programar, pero cada uno de estos temas son muy extensos y deberán ser tratados de una manera más profunda siendo este el preámbulo.

Si estás pensando en desarrollar tu propio sistema o aplicación para controlar los procesos u operaciones de tu empresa y aún no estás seguro de qué decisión tomar, te invitamos a ver la grabación de nuestro webinar en el que nuestros expertos hablaron extensamente sobre las ventajas y desventajas de cada modalidad.


Webinar: Procesos de Automejora para Ingenieros de Software


Si estás próximo a arrancar un proyecto de Desarrollo de Software o estás buscando soluciones en Desarrollo de Aplicaciones Móviles y tienes dudas sobre este tema, te invito a que nos contactes.

Somos una Empresa de Desarrollo de Software, especialista en Desarrollo de Aplicaciones Web, Desarrollo de Apps, Microsoft Dynamics AX y Fábrica de Software. Desarrollamos software basado en Microsoft .NET, y aplicaciones nativas en iOS o Android; para aquellas empresas que solo requieren la contratación directa de especialistas, proveemos consultores por proyecto, temporales o fijos, con experiencia en las tecnologías más avanzadas para apoyar tu estrategia en desarrollo de sistemas y Desarrollo de Aplicaciones.