29 Nov
Soluciones de Software Empresarial
El Contexto de las Soluciones
El software se ha transformado en un elemento clave y ha permitido avances indudables y significativos en el terreno de la gestión de la información. Es fundamental que las empresas seleccionen adecuadamente las herramientas de software que van a utilizar al momento de realizar sus actividades comerciales. El software de gestión empresarial se ha convertido en una herramienta necesaria; las empresas deben decidir si optan por software genérico o un sistema desarrollado a la medida. En gran parte, esta decisión depende de los recursos disponibles para implementar una u otra alternativa.
Software Genérico (Propietario)
Tiende a ser relativamente más económico en el corto plazo. Se trata de software sofisticado y estable, lo que hace que se convierta en una solución inmediata para cualquier tipo de negocio donde la forma de trabajo se caracterice por la simplicidad y el orden, ya que en estos casos solo se requieren modificaciones sencillas sobre los parámetros del sistema.
Muchas veces, la decisión de implementar un software genérico en lugar de llevar adelante un desarrollo a medida se debe a la escasez de recursos humanos que puedan conducir los procesos.
Es importante destacar que existen productos genéricos orientados a «mercados verticales», porque responden a todas las necesidades del negocio, y claramente lo podemos observar en el sector de la distribución. Obtener los mismos beneficios desarrollando soluciones a medida para estas áreas neurálgicas de las empresas de distribución es muy difícil y resultaría muy costoso.
Software a Medida
Es, básicamente, una solución diseñada de forma específica para las necesidades precisas de una empresa. Son herramientas que pueden ser perfectamente adaptadas para los requerimientos exactos que posee una organización. Siempre que sea posible, se debe contar con el código fuente de la aplicación, ya que, cuando no se dispone del código fuente del sistema de información, la empresa queda expuesta y se vuelve dependiente de los desarrolladores.
Una de las principales razones por las que gran cantidad de empresas se rehúsan a utilizar este tipo de solución reside en que la inversión necesaria para la adquisición de un software a medida suele ser mayor a la que se requiere para un software genérico.
Ventajas del Software a Medida
- Es una solución que se ajusta a las necesidades específicas de cada empresa, lo que proporciona mejoras en el rendimiento.
- Ofrece un sistema realmente flexible.
- Hace posible incorporar los procesos de negocio que son específicos para la organización.
- Permite el contacto directo con los desarrolladores, por lo que los requerimientos se canalizan de forma directa y se obtienen herramientas de gestión personalizadas.
- Es una solución que se puede ampliar y personalizar, ideal para empresas que llevan a cabo modificaciones frecuentes o cuyas normativas pueden cambiar.
El software a medida se orienta, en general, hacia grandes empresas que buscan solucionar problemas que no se resuelven mediante software ERP estándar.
Estandarización del Diseño
Hoy en día se cuenta con múltiples técnicas, herramientas y plataformas de desarrollo. La forma de enfrentar el diseño puede ser tan variada como se imagine; por lo tanto, es necesario documentar y establecer formas y mecanismos cuyo uso garantice que el diseño sea desarrollado desde perspectivas preestablecidas, de acuerdo al tipo de software que se quiera desarrollar.
Es recomendable seguir las siguientes fases al momento de estandarizar:
- Determinar el área a estandarizar.
- Seleccionar los estándares aplicables.
- Documentar el procedimiento de implementación.
- Implementar, capacitar y difundir.
- Aplicar y controlar.
Patrones de Diseño (Design Patterns)
Concepto de Patrón de Diseño
Los patrones de diseño o Design Patterns son soluciones simples y elegantes a problemas específicos y comunes del diseño orientado a objetos, basadas en la experiencia y el éxito en su utilización.
Patrones de Creación
- Abstract Factory
- Proporciona una interfaz para crear familias de objetos relacionados o que dependen entre sí, sin especificar sus clases concretas.
- Builder
- Separa la construcción de un objeto complejo de su representación, de forma que el mismo proceso de construcción pueda crear diferentes representaciones.
- Factory Method
- Define una interfaz para crear un objeto, pero deja que sean las subclases quienes decidan qué clase instanciar. Permite que una clase delegue en sus subclases la creación de objetos.
- Prototype
- Especifica los tipos de objetos a crear por medio de una instancia prototípica, y origina nuevos objetos copiando este prototipo.
- Singleton
- Garantiza que una clase solo tenga una instancia y proporciona un punto de acceso global a ella.
Patrones Estructurales
- Adapter
- Convierte la interfaz de una clase en una distinta, que es la esperada por los clientes, permitiendo que cooperen clases que de otra manera no podrían por tener interfaces incompatibles.
- Bridge
- Desvincula una abstracción de su implementación, de manera que ambas puedan variar de forma independiente.
- Composite
- Combina objetos en estructuras de árbol para representar jerarquías de parte-todo. Permite que los clientes traten de manera uniforme a los objetos individuales y a los compuestos.
- Decorator
- Añade dinámicamente nuevas responsabilidades a un objeto, proporcionando una alternativa flexible a la herencia para extender la funcionalidad.
- Facade
- Proporciona una interfaz unificada para un conjunto de interfaces de un subsistema. Define una interfaz de alto nivel que hace que el subsistema sea más fácil de usar.
- Flyweight
- Usa el compartimiento para permitir un gran número de objetos de grano fino de forma eficiente.
- Proxy
- Proporciona un sustituto o representante de otro objeto para controlar el acceso a este.
Patrones de Comportamiento
- Chain of Responsibility
- Evita acoplar el emisor de una petición a su receptor, al dar a más de un objeto la posibilidad de responder a la petición. Crea una cadena con los objetos receptores y pasa la petición a través de la cadena hasta que esta sea tratada por algún objeto.
- Command
- Encapsula una petición en un objeto, permitiendo así parametrizar a los clientes con distintas peticiones, encolar o llevar un registro de las peticiones y poder deshacer las operaciones.
- Interpreter
- Dado un lenguaje, define una representación de su gramática junto con un intérprete que usa dicha representación para interpretar las sentencias del lenguaje.
- Iterator
- Proporciona un modo de acceder secuencialmente a los elementos de un objeto agregado sin exponer su representación interna.
- Mediator
- Define un objeto que encapsula cómo interactúan un conjunto de objetos. Promueve un bajo acoplamiento al evitar que los objetos se refieran unos a otros explícitamente, y permite variar la interacción entre ellos de forma independiente.
- Memento
- Representa y externaliza el estado interno de un objeto sin violar la encapsulación, de forma que este puede volver a dicho estado más tarde.
- Observer
- Define una dependencia entre objetos, de uno-a-muchos, de forma que cuando un objeto cambia de estado se notifica y actualizan automáticamente todos los objetos dependientes.
- State
- Permite que un objeto modifique su comportamiento cada vez que cambia su estado interno. Parecerá que cambia la clase del objeto.
- Strategy
- Define una familia de algoritmos, encapsula cada uno de ellos y los hace intercambiables. Permite que un algoritmo varíe independientemente de los clientes que lo usan.
- Template Method
- Define en una operación el esqueleto de un algoritmo, delegando en las subclases algunos de sus pasos. Permite que las subclases redefinan ciertos pasos del algoritmo sin cambiar su estructura.
- Visitor
- Representa una operación sobre los elementos de una estructura de objetos. Permite definir una nueva operación sin cambiar las clases de los elementos sobre los que opera.
Ideas Clave
Al momento de realizar el diseño del software, es importante tener en consideración la forma como se implementarán las soluciones en la empresa, es decir, si se va a optar por software a medida o software genérico, puesto que cada cual suple necesidades específicas de las organizaciones.

Deja un comentario