sábado, 19 de septiembre de 2015

DIAGRAMA DE CLASES CON UML

Sirve para visualizar las relaciones entre las clases que involucran el sistema, las cuales pueden ser asociativas, de herencia, de uso y de contenimiento.

Esta compuesto por los siguientes elementos:
  • Clase: atributos, métodos y visibilidad.
  • Relaciones: Herencia, Composición, Agregación, Asociación y Uso.
Elementos
  • Clase
Es la unidad básica que encapsula toda la información de un Objeto. A través de ella podemos modelar el entorno en estudio (una Casa, un Auto, una Cuenta Corriente, etc.).



En UML, una clase es representada por un rectángulo que posee tres divisiones:




En donde:
  • Superior: Contiene el nombre de la Clase
  • Intermedio: Contiene los atributos (o variables de instancia) que caracterizan a la Clase (pueden ser private, protected o public).
  • Inferior: Contiene los métodos u operaciones, los cuales son la forma como interactúa el objeto con su entorno (dependiendo de la visibilidad: private, protected o public).

Ejemplo:

Una Cuenta Corriente que posee como característica:
  • Balance
Puede realizar las operaciones de:
  • Depositar
  • Girar
  • y Balance
El diseño asociado es:



Atributos y Métodos:
  • Atributos:
    Los atributos o características de una Clase pueden ser de tres tipos, los que definen el grado de comunicación y visibilidad de ellos con el entorno, estos son:
    • public (+,): Indica que el atributo será visible tanto dentro como fuera de la clase, es decir, es accsesible desde todos lados.
    • private (-,): Indica que el atributo sólo será accesible desde dentro de la clase (sólo sus métodos lo pueden accesar).
    • protected (#,): Indica que el atributo no será accesible desde fuera de la clase, pero si podrá ser accesado por métodos de la clase además de las subclases que se deriven (ver herencia).

  • Métodos:
    Los métodos u operaciones de una clase son la forma en como ésta interactúa con su entorno, éstos pueden tener las características:
    • public (+,): Indica que el método será visible tanto dentro como fuera de la clase, es decir, es accsesible desde todos lados.
    • private (-,): Indica que el método sólo será accesible desde dentro de la clase (sólo otros métodos de la clase lo pueden accesar).
    • protected (#,): Indica que el método no será accesible desde fuera de la clase, pero si podrá ser accesado por métodos de la clase además de métodos de las subclases que se deriven (ver herencia).


  • Relaciones entre Clases:
    Ahora ya definido el concepto de Clase, es necesario explicar como se pueden interrelacionar dos o más clases (cada uno con características y objetivos diferentes).
    Antes es necesario explicar el concepto de cardinalidad de relaciones: En UML, la cardinalidad de las relaciones indica el grado y nivel de dependencia, se anotan en cada extremo de la relación y éstas pueden ser:
    • uno o muchos: 1..* (1..n)
    • 0 o muchos: 0..* (0..n)
    • número fijo: m (m denota el número).

    1. Herencia (Especialización/Generalización)
      Indica que una subclase hereda los métodos y atributos especificados por una Super Clase, por ende la Subclase además de poseer sus propios métodos y atributos, poseerá las características y atributos visibles de la Super Clase (public y protected), ejemplo:
      En la figura se especifica que Auto y Camioneta heredan de Vehículo, es decir, Auto posee las Características de Vehículo (Precio, VelMax, etc) además posee algo particular que es Descapotable, en cambio Camioneta también hereda las características de Vehiculo (Precio, VelMax, etc) pero posee como particularidad propia Acoplado, Tara y Carga.
      Cabe destacar que fuera de este entorno, lo único "visible" es el método Características aplicable a instancias de Vehículo, Auto y Camioneta, pues tiene definición publica, en cambio atributos como Descapotable no son visibles por ser privados.
    2. Agregación
      Para modelar objetos complejos, no bastan los tipos de datos básicos que proveen los lenguajes: enteros, reales y secuencias de caracteres. Cuando se requiere componer objetos que son instancias de clases definidas por el desarrollador de la aplicación, tenemos dos posibilidades:
      • Por Valor: Es un tipo de relación estática, en donde el tiempo de vida del objeto incluido esta condicionado por el tiempo de vida del que lo incluye. Este tipo de relación es comunmente llamada Composición (el Objeto base se contruye a partir del objeto incluido, es decir, es "parte/todo").
      • Por Referencia: Es un tipo de relación dinámica, en donde el tiempo de vida del objeto incluido es independiente del que lo incluye. Este tipo de relación es comunmente llamadaAgregación (el objeto base utiliza al incluido para su funcionamiento).
               Un Ejemplo es el siguiente:
      En donde se destaca que:
      • Un Almacen posee Clientes y Cuentas (los rombos van en el objeto que posee las referencias).
      • Cuando se destruye el Objeto Almacen también son destruidos los objetos Cuenta asociados, en cambio no son afectados los objetos Cliente asociados.
      • La composición (por Valor) se destaca por un rombo relleno.
      • La agregación (por Referencia) se destaca por un rombo transparente.
      La flecha en este tipo de relación indica la navegabilidad del objeto refereniado. Cuando no existe este tipo de particularidad la flecha se elimina.
    3. Asociación
      La relación entre clases conocida como Asociación, permite asociar objetos que colaboran entre si. Cabe destacar que no es una relación fuerte, es decir, el tiempo de vida de un objeto no depende del otro.
      Ejemplo:
      Un cliente puede tener asociadas muchas Ordenes de Compra, en cambio una orden de compra solo puede tener asociado un cliente.
    4. Dependencia o Instanciación (uso)
      Representa un tipo de relación muy particular, en la que una clase es instanciada (su instanciación es dependiente de otro objeto/clase). Se denota por una flecha punteada.
      El uso más particular de este tipo de relación es para denotar la dependencia que tiene una clase de otra, como por ejemplo una aplicación grafica que instancia una ventana (la creación del Objeto Ventana esta condicionado a la instanciación proveniente desde el objeto Aplicacion):
      Cabe destacar que el objeto creado (en este caso la Ventana gráfica) no se almacena dentro del objeto que lo crea (en este caso la Aplicación).

  • Casos Particulares:
    • Clase Abstracta:
      Una clase abstracta se denota con el nombre de la clase y de los métodos con letra "itálica". Esto indica que la clase definida no puede ser instanciada pues posee métodos abstractos (aún no han sido definidos, es decir, sin implementación). La única forma de utilizarla es definiendo subclases, que implementan los métodos abstractos definidos.

    • Clase parametrizada:
      Una clase parametrizada se denota con un subcuadro en el extremo superior de la clase, en donde se especifican los parámetros que deben ser pasados a la clase para que esta pueda ser instanciada. El ejemplo más típico es el caso de un Diccionario en donde una llave o palabra tiene asociado un significado, pero en este caso las llaves y elementos pueden ser genéricos. La genericidad puede venir dada de un Template (como en el caso de C++) o bien de alguna estructura predefinida (especialización a través de clases).
      En el ejemplo no se especificaron los atributos del Diccionario, pues ellos dependerán exclusivamente de la implementación que se le quiera dar.
Ejemplo:
Supongamos que tenemos tenemos un el caso del Diccionario implementado mediante un árbol binario, en donde cada nodo posee:
  • key: Variable por la cual se realiza la búsqueda, puede ser generica.
  • item: Contenido a almacenar en el diccionario asociado a "key", cuyo tipo también puede ser genérico.
Para este caso particular hemos definido un Diccionario para almacenar String y Personas, las cuales pueden funcionar como llaves o como item, solo se mostrarán las relaciones para la implementación del Diccionario:

DIAGRAMA DE CASOS DE USO CON UML

Es importante remarcar que UML es un "lenguaje de modelado" para especificar o para describir métodos o procesos. Se utiliza para definir un sistema, para detallar los artefactos en el sistema y para documentar y construir. En otras palabras, es el lenguaje en el que está descrito el modelo.

Diagrama de casos de uso
Representa la forma en como un Cliente (Actor) opera con el sistema en desarrollo, además de la forma, tipo y orden en como los elementos interactúan (operaciones o casos de uso).

Elementos 
  • Actor:

Es un rol que un usuario juega con respecto al sistema. Es importante destacar el uso de la palabra rol, pues con esto se especifica que un Actor no necesariamente representa a una persona en particular, sino más bien la labor que realiza frente al sistema.

  • Caso de Uso


Es una tarea específica que se realiza tras una orden de algún agente externo, sea desde una petición de un actor o bien desde la invocación desde otro caso de uso.

  • Relaciones

Asociación 

Es el tipo de relación más básica que indica la invocación desde un actor o caso de uso a otra operación (caso de uso). Dicha relación se denota con una flecha simple.

Dependencia o Instanciación 

Es una forma muy particular de relación entre clases, en la cual una clase depende de otra, es decir, se instancia (se crea). Dicha relación se denota con una flecha punteada.

Generalización 

Cumple una doble función dependiendo de su estereotipo, que puede ser de Uso (<<uses>>) o de Herencia (<<extends>>).
Este tipo de relación esta orientado exclusivamente para casos de uso y no para actores.
extends: Se recomienda utilizar cuando un caso de uso es similar a otro (características).
uses: Se recomienda utilizar cuando se tiene un conjunto de características que son similares en más de un caso de uso y no se desea mantener copiada la descripción de la característica.
De lo anterior cabe mencionar que tiene el mismo paradigma en diseño y modelado de clases, en donde esta la duda clásica de usar o heredar.

Ejemplo:

Caso de una Máquina Recicladora:

Sistema que controla una máquina de reciclamiento de botellas, tarros y jabas. El sistema debe controlar y/o aceptar:
  • Registrar el número de ítemes ingresados.
  • Imprimir un recibo cuando el usuario lo solicita:
    1. Describe lo depositado
    2. El valor de cada item
    3. Total
  • El usuario/cliente presiona el botón de comienzo
  • Existe un operador que desea saber lo siguiente:
    1. Cuantos ítemes han sido retornados en el día.
    2. Al final de cada día el operador solicita un resumen de todo lo depositado en el día.
  • El operador debe además poder cambiar:
    1. Información asociada a ítemes.
    2. Dar una alarma en el caso de que:
      1. Item se atora.
      2. No hay más papel.
Como una primera aproximación identificamos a los actores que interactúan con el sistema:


Luego, tenemos que un Cliente puede Depositar Itemes y un Operador puede cambiar la información de un Item o bien puede Imprimir un informe:


Además podemos notar que un item puede ser una Botella, un Tarro o una Jaba.


Otro aspecto es la impresión de comprobantes, que puede ser realizada después de depositar algún item por un cliente o bien puede ser realizada a petición de un operador.


Entonces, el diseño completo del diagrama Use Case es:





jueves, 10 de septiembre de 2015

¿QUÉ ES BUSINESS INTELLIGENCE?


Es la habilidad para transformar los datos en información, y la información en conocimiento, de forma que se pueda optimizar el proceso de toma de decisiones en los negocios.

      Datos, información y conocimiento      

Desde un punto de vista más pragmático, y asociándolo directamente con las tecnologías de la información, se puede definir Business Intelligence como el conjunto de metodologías, aplicaciones y tecnologías que permiten reunir, depurar y transformar datos de los sistemas transaccionales e información desestructurada (interna y externa a la compañía) en información estructurada, para su explotación directa o para su análisis y conversión en conocimiento, dando así soporte a la toma de decisiones sobre el negocio.

La inteligencia de negocio actúa como un factor estratégico para una empresa u organización, generando una potencial ventaja competitiva, que no es otra que proporcionar información privilegiada para responder a los problemas de negocio: entrada a nuevos mercados, promociones u ofertas de productos, eliminación de islas de información, control financiero, optimización de costos, planificación de la producción, análisis de perfiles de clientes, rentabilidad de un producto concreto, etc...


Los principales productos de Business Intelligence que existen hoy en día son:
  • Cuadros de Mando Integrales (CMI)
  • Sistemas de Soporte a la Decisión (DSS)
  • Sistemas de Información Ejecutiva (EIS)

Por otro lado, los principales componentes de orígenes de datos en el Business Intelligence que existen en la actualidad son:
  • Datamart
  • Datawarehouse
Los sistemas y componentes del BI se diferencian de los sistemas operacionales en que están optimizados para preguntar y divulgar sobre datos. Esto significa típicamente que, en un datawarehouse, los datos están desnormalizados para apoyar consultas de alto rendimiento, mientras que en los sistemas operacionales suelen encontrarse normalizados para apoyar operaciones continuas de inserción, modificación y borrado de datos. En este sentido, los procesos ETL (extracción, transformación y carga), que nutren los sistemas BI, tienen que traducir de uno o varios sistemas operacionales normalizados e independientes a un único sistema desnormalizado, cuyos datos estén completamente integrados.

En conclusión, una solución BI completa permite:

  • Observar ¿qué está ocurriendo?
  • Comprender ¿por qué ocurre?
  • Predecir ¿qué ocurriría?
  • Colaborar ¿qué debería hacer el equipo?
  • Decidir ¿qué camino se debe seguir?
        Ciclo de la información en la empresa

INFORMACIÓN, ACTIVO VALIOSO PARA LAS EMPRESAS

Te has preguntado, ¿cuánto vale la información de tu empresa?, ¿qué grado de importancia le has dado a la información en los últimos años? y ¿cuáles son los beneficios que esta ofrece?

Desde hace algunos años, la información ha llegado a ser considerada como el ACTIVO más valioso dentro de las empresas ya que juega un papel muy importante a la hora de la toma de decisiones y definición de nuevas estrategias de negocios, pues la información como fuente del conocimiento otorga un bien a quien la posee, incluso en la actualidad es común escuchar acerca del espionaje, tráfico y/o robo de información como delito grave, puesto que la información se ha convertido en un punto clave para el crecimiento, desarrollo o éxito personal, profesional y empresarial, ya que, entre mayor sea el conocimiento adquirido a través de la información mayor será el beneficio obtenido.
Un activo es un bien que tiene una empresa y que representa una cantidad monetaria, puede ser tangible o intangible, por otro lado, la información es un conjunto de datos ordenados de tal manera que sirven para dar solución a un problema y que es generada día a día durante las actividades de cualquier persona, empresa o institución, representa más que una cantidad monetaria, la existencia y permanencia de cualquier empresa en este mundo globalizado, pues la toma de decisiones estratégicas depende principalmente de ella. 

INFORMACION 1
La globalización ha obligado a las empresas a modificar sus procesos, a mejorar sus formas de trabajo  y a transformar la manera de hacer negocios, pero también les ha proporcionado la información necesaria y las herramientas exactas para adoptar nuevas estrategias basadas en las buenas prácticas empresariales, la administración correcta del conocimiento y el uso adecuado de las tecnologías de información. De esta manera se confirma que la información va más allá de ser un simple conjunto de datos, siendo un activo intangible y materia prima del conocimiento y del beneficio empresarial.

¿cómo lograr que la información se transforme en conocimiento y beneficio empresarial?

Llevando a cabo una buena Administración del Conocimiento, definiendo indicadores clave y la forma en que éstos serán medidos y presentados, basándose en:

1. Las MEJORES PRACTICAS del manejo de la información de la empresa y/o empresas homólogas que servirán de benchmarking o comparativo con la intención de adoptarlas. 
2. La recolección de PROPUESTAS DE MEJORA de los procesos, hechas por los operarios, quienes son los que conocen las necesidades y áreas de oportunidad que estos tienen.
3. La DOCUMENTACIÓN de soluciones a problemas presentados a fin de crear una BASE de CONOCIMIENTO que permita dar respuestas inmediatas a los problemas presentados.

La constante evolución de las tecnologías de información y de las herramientas informáticas, permite gestionar adecuadamente el acceso, obtención y manipulación de la información, así mismo, aumentar la capacidad de procesamiento para lograr de esta forma que la información pueda ser transformada en conocimiento en un tiempo más corto otorgándole a la empresa beneficios y ventajas competitivas como:

1. Reducción de costos, haciendo uso de las buenas prácticas, mejorando los procesos y reduciendo  el mantenimiento correctivo de la maquinaría o equipo, traduciéndose en ahorros.
2.  Mejora del Negocio, con la base de conocimiento creada y dada la información en tiempo real, permite llevar a cabo una toma de decisiones correcta al instante y/o anticipada para desarrollar estrategias que apoyen al crecimiento y desarrollo de la empresa.
3.  Aumento de la productividad, con el aprovechamiento de todos los recursos de la empresa.

sábado, 5 de septiembre de 2015

INFORMACIÓN E INTELIGENCIA PARA LA TOMA DE DECISIONES

Teniendo en cuenta la entrada anterior, quiero compartirles este pequeño video que refleja la importancia de la gestión de la información para una acertada toma de decisiones dependiendo la necesidad o el interés de quien vaya a hacer uso de ella.

Las empresas deben recoger el gran volumen de datos que se generan en la actualidad para mantenerse informadas, pero también necesitan identificar, entre todos esos datos, cuáles son los verdaderamente importantes. Hoy en día es posible gestionar de manera eficiente toda la información, pero se debe ir más allá, asegurando una distribución mucho más rápida y además, de la manera más segura.
Así combinando los datos de múltiples fuentes en un único almacén de datos, se consigue mejorar el rendimiento y reducir el tiempo para disponer de ellos proporcionando un acceso rápido a la información a quien lo necesite.



MODELOS Y TOMA DE DECISIONES

1. Decisiones empresariales: 
  • Alcanzar las metas de la organización.
  • Utilizar algún criterio o medida del rendimiento.
  • La medida más común del rendimiento es la unidad monetaria.  
  • El progreso general que se presenta a continuación es común para todos los tipos de situaciones de toma de decisiones: 
          a) Establecer el criterio que se usara. 
          b) Seleccionar un conjunto de alternativas para considerarlas.

          c) Determinar el modelo que se usará y los valores de los parámetros del proceso.
          d) Determinar cual de las alternativas optimiza.

2. Abstracción y Simplificación: 
  • Los problemas del mundo real tienden a ser de complejidad enorme. 
  • El decisor puede optar por considerar específicamente y con detalle todos los usos alternativos posibles de los fondos en este periodo y los subsecuentes. 
  • La mente no puede considerar todos los aspectos de un problema empírico. 
  • Hay que omitir algunos de los atributos del problema para poder tomar una decisión.  
  • El decisor debe determinar cuales son los factores más relevantes para el problema.  
  • La abstracción y la simplificación son los pasos necesarios para resolver cualquier problema humano.

3. Construcción de modelos: 
  • Una vez que el decisor selecciona los factores decisivos, o variables, de la situación empírica, estos se combinan de manera lógica para que formen un modelo del problema real. 
  • Un modelo es una representación simplificada de una situación empírica. 
  • Si es más sencillo el modelo, es mejor para la persona que toma la decisión, siempre y cuando el modelo sea un símil razonablemente confiable del problema empírico.
  • Las ventajas de contar con un modelo sencillo son:
         a) Reduce la cantidad de tiempo y esfuerzo.
         b) El decisor puede comprenderlo rápidamente.
         c) Si es necesario, el modelo se puede modificar de manera rápida y efectiva.
     d) Se busca el modelo más sencillo que pronostique los resultados con precisión razonable y que sea consistente con la acción efectiva.




4. Soluciones: 

Después de construir el modelo, se pueden obtener conclusiones acerca de su comportamiento, por medio del análisis lógico. Quien toma la decisión basa sus acciones o decisiones en estas soluciones. Si es correcta la lógica para obtener las conclusiones a partir de las variables abstraidas, y si se abstrajeron las variables relevantes, entonces la solución del modelo servirá eficazmente para el problema empírico. 

5. Errores: 

Dos errores importantes que ocurren al usar modelos para la toma de decisiones son la exclusión de variables importantes y las equivocaciones al definir las relaciones entre variables.

6. Técnicas para la construcción de modelos: 

Los modelos se pueden representar de varias maneras. Problemas sencillos y repetitivos, todo el proceso de toma de decisiones puede ocurrir en la mente del decisor, quizás de manera informal e intuitiva. 
Técnica apropiada para describir y relacionar las variables seleccionadas depende de la naturaleza de las variables. Representación cuantitativa, usar una representación.

7. Matemática del modelo:

  • Se ha representado cuantitativamente, con éxito, gran numero de problemas empresariales, de donde surge el procedimiento general llamado análisis cuantitativo, investigación de operaciones.
  • Nunca deberán ser prisioneros de un modelo cuantitativo ni aceptar automáticamente sus conclusiones como si fueran la decisión correcta.
  • La conclusión que se obtiene de un modelo contiene cierto grado de error, debido al proceso de abstracción. 
  • La cuantificación es un auxiliar del juicio empresarial, no un sustituto.

8. Factores cualitativos: 
  • Muchas decisiones empresariales, en particular las más importantes, comprenden algunas variables que son de naturaleza cualitativa. 
  • El modelo cuantitativo puede tratar de manera eficaz los aspectos mensurables del problema de decisión, y que el decisor también deberá contar con un modelo intuitivo que considere las variables cualitativas. 
  • El director deberá hallar un equilibrio adecuado entre los factores cualitativos y cuantitativos.

9. Decisiones e incertidumbres: 
  • Las decisiones empresariales ocurren en dos contextos esencialmente distintos: en condiciones que se aproximan a la incertidumbre y, lo más común, en condiciones de incertidumbre. 
  • El análisis cuantitativo que apoya la toma de decisiones en condiciones de certidumbre generalmente se refiere a la maximización de un objetivo sujeto a restricciones.

10. Clasificación de modelos: 
  • Los modelos se clasifican como ciertos si se supone que se conocen los factores principales, y como inciertos si se desconocen algunos factores.


  • Un modelo es una simplificación de un problema de decisión empresarial.
  • El primer paso en la construcción de un modelo es elegir los factores o las variables que el decisor considera importantes. Estos factores se pueden clasificar en cinco categorías:
Variables de decisión: 
  • Son aquellas que están bajo el control del decisor y representan alternativas para el director. Decide acerca de la introducción de un producto nuevo. 
  • Puede elegir entre introducir o no el producto; también puede elegir el precio de venta del producto y la cantidad que se invertirá en la publicidad.
  • Estas son las elecciones más importantes; por lo tanto, son las variables de decisión.
Variables exógenos o externas: 
  • Son aquellas que tienen importancia para el problema de decisión pero están bajo el control de factores ajenos al decisor.
  •  Son las condiciones económicas, las acciones de los competidores, el precio de las materias primas y otros factores similares.
Políticas y restricciones:
  • Con frecuencia tiene que operar con ciertas restricciones impuestas por las políticas de la compañía, con cuestiones legales y con limitaciones físicas. 
  • Una política de la compañía puede especificar que se adquieran los materiales de ciertos proveedores o que se mantengan ciertos niveles de calidad. 
  • En ocasiones se pueden modificar las políticas o las restricciones, a veces puede existir confusión entre lo que se considera una variable de decisión y lo que es una restricción.
Medidas de rendimiento: 
  • Al tomar una decisión, los gerentes tienen metas u objetivos que tratan de alcanzar.
  • Los criterios o medidas de rendimiento son expresiones cuantitativas de estos objetivos; el nivel de los beneficios. Cuota de mercado y el rendimiento sobre inversiones. 
Variables intermedias: 
  • Con frecuencia se necesitan otras muchas variables para incluir todos los factores importantes para el problema de decisión. 
  • Muchas veces son variables contables relativas a los factores de costo o ingresos y que se usan para relacionar variables de decisión y los exógenos con las medidas de rendimiento.

EL MODELO Y LA RELACIÓN ENTRE VARIABLES 



RELACIONES: DIAGRAMAS DE INFLUENCIA

En ocasiones es útil dibujar un diagrama que muestre como se relacionan las variables o influyen en otras. Las líneas con flechas indican que variables se relacionan con otras. No es indispensable construir el diagrama, pero muchas veces sirve para comprender el modelo.