martes, 9 de abril de 2013

Diccionario de datos

Actualmente estoy participando como Arquitecto de solución en unos proyectos y debo realizar el diseño y especificación funcional de los sistemas que se convertirán posteriormente en aplicaciones. 

Cuando se modela un sistema se debe realizar el modelado de la información, lo cual debe ser agnóstico a cualquier tecnología, eso finalmente se decidirá en su implementación, quedando fuera del ambito de la arquitectura de la solución. Retomando temas de la escuela, me puse a re-estudiar lo referente al diccionario de datos... pero no el generado por una herramienta CASE, sino a la representación matemática de los datos. Búsque por internet y a continuación incluyo información que a mi me sirvio para retomar el tema. 

El diccionario de datos es un listado organizado de todos los datos que pertenecen a un sistema. 

El objetivo de un diccionario de datos es dar precisión sobre los datos que se manejan en un sistema, evitando así malas interpretaciones o ambigüedades.

Define con precisión los datos de entrada, salida, componentes de almacenes, flujos, detalles de las relaciones entre almacenes, etc.

Los diccionarios de datos son buenos complementos a los diagramas de flujo de datos, los diagramas de entidad-relación, etc.

Un diccionario de datos es un conjunto de metadatos que contiene las características lógicas de los datos que se van a utilizar en el sistema que se programa, incluyendo nombre, descripción, alias, contenido y organización. Estos diccionarios se desarrollan durante el análisis de flujo de datos y ayuda a los analistas que participan en la determinación de los requerimientos del sistema, su contenido también se emplea durante el diseño del proyecto. Identifica los procesos donde se emplean los datos y los sitios donde se necesita el acceso inmediato a la información, se desarrolla durante el análisis de flujo de datos y auxilia a los analistas que participan en la determinación de los requerimientos del sistema, su contenido también se emplea durante el diseño. En un diccionario de datos se encuentra la lista de todos los elementos que forman parte del flujo de datos de todo el sistema. Los elementos mas importantes son flujos de datos, almacenes de datos y procesos. El diccionario de datos guarda los detalles y descripción de todos estos elementos.

Estructuras de datos
Las estructuras de datos son descritas por lo general usando notación algebraica. La notación algebraica usa los siguientes símbolos: 1. Un signo de igual (=) significa “está compuesto de”. 2. Un signo de más (+) significa “y”. 3. Las llaves { } indican elementos repetidos, también llamados grupos repetidos o tablas. Puede haber uno o varios elementos repetidos dentro del grupo. El grupo repetido puede tener condiciones, tales como una cantidad fija de repeticiones o límites, superior e inferior para la cantidad de repeticiones. 4. Los corchetes [ ] representan una situación disyuntiva. Puede estar presente un elemento u otro, pero no ambos. Los elementos listados entre corchetes son mutuamente excluyentes, y se separan mediante barras ( | ). 5. Los paréntesis ( ) representan un elemento opcional. Los elementos opcionales pueden ser dejados en blanco en las pantallas de captura, y pueden contener espacios o ceros para los campos numéricos en las estructuras de archivo. 6. La “@” (o una definición subrayada) identifica la llave para un almacén de datos. 7. Una frase entre asteriscos es un comentario (* *). EJEMPLO: Nombre = Título + Primer-nombre + Apellido-paterno + Apellido-materno Título = [ Sr | Sra | Dr | Ing] Primer-nombre = {caracter} Apellido-paterno = {caracter} Apellido-materno = {caracter} caracter = [A-Z|a-z| |’] a DEFINICIONES Una definición de un dato se introduce mediante el símbolo “=”; en este contexto el “=” se lee como “está definido por”, o “está compuesto de”, o “significa”. Para definir un dato completamente, la definición debe incluir: • El significado del dato en el contexto de la aplicación. Esto se documenta en forma de comentario. • La composición del dato, si es que está compuesto de otros elementos significativos. • Los valores que el dato puede tomar, si se trata de un dato elemental que ya no puede ser descompuesto.

Datos elementales
Son aquellos para los cuales no hay una descomposición significativa. Por ejemplo, puede ser que no se requiera descomponer el nombre de una persona en primer-nombre, apellido-materno y apellido-paterno; esto depende del contexto del sistema que se esté modelando. Cuando se han identificado los datos elementales, deben ser introducidos en el DD y proveer una breve descripción que describa el significado del dato. En el caso de que el dato tenga un nombre significativo, se puede omitir la descripción, sin embargo, es importante especificar las unidades de medida que el dato puede tomar. Ejemplo: Peso = * peso del paciente al ingresar al hospital * • unidad: kilo, rango:2–150 * Altura = * unidad: cm, rango: 100–200 * Sexo = * valores : [F|M] * APGR Ingeniería de Software I Análisis Estructurado 24 DATOS OPCIONALES Un dato opcional es aquel que puede o no estar presente como componente de un dato compuesto. Ejemplo: Dirección = calle + número + (ciudad) + (país) + (código-postal) SELECCIÓN Indica que un elemento consiste de exactamente una opción de un conjunto de alternativas. Ejemplos: Sexo = [ Femenino | Masculino ] Tipo-de-cliente = [ Gubernamental | Académico | Industria | Otros ] ITERACIÓN Se usa para indicar ocurrencias repetidas de un componente en un elemento compuesto. Ejemplo: Orden-de compra = nombre-cliente + dirección-de-envío + {artículo} significa que una orden de compra siempre debe contener un nombre de cliente, una dirección de envío y cero o más ocurrencias de un artículo. Ejemplo: Se pueden especificar límites superiores e inferiores a las iteraciones. Orden-de compra = nombre-cliente + dirección-de-envío + 1{artículo}10 significa que una orden de compra siempre debe contener un nombre de cliente, una dirección de envío y de 1 a 10 artículos. APGR Ingeniería de Software I Análisis Estructurado 25 Ejemplos de iteraciones con límites: a = 1{b} a = {b}10 a = 1{b}10 a = {b}

sábado, 9 de marzo de 2013

Siete reglas en la vida

Un conocido publico la siguiente imagen en su perfil de facebook y quise compartirla... por lo menos yo lo quiero aplicar.




martes, 26 de febrero de 2013

¿Qué es el Big Data?

Cada día se crean 2,5 trillones de bytes de datos, Estos datos vienen de un sin fin de fuentes de datos dispares: sensores utilizados para recopilar información sobre el clima, publicaciones en sitios de redes sociales, fotos digitales y videos, registros de transacciones de compra y las señales de teléfonos celulares GPS para nombrar unos pocos.  La creación de datos ha crecido de manera exponencial hasta el punto de que el 90% de los datos actualmente en el mundo se han creado en los últimos dos años. A esta enorme cantidad de datos se la ha denominado Big Data.

El nombre acuñado de manera mercadológica, el término Big Data, se refiere a al sector de tecnologías de la información y la comunicación con respecto a los sistemas que manipulan grandes conjuntos de datos. Los retos más habituales en estos casos se centran en la captura, almacenamiento, búsqueda, análisis, y visualización de los datos.

Diferentes personas definen Big Data de diferentes maneras, pero se suele describir en términos de la tres Vs:

  • Volumen de la información;
  • Variedad de información, y
  • Velocidad de la información (que es la velocidad a la que los datos están disponibles y pueden ser analizadas).

Lo que hace a Big Data distinto al trabajo de minería de datos común es la capacidad de relacionar bases de datos muy grandes; por ejemplo, ventas al menudeo de un producto con cambios meteorológicos. Ejemplos de la aplicación de Big Data tienen que ver con patrones de consumo, crimen y efectos climáticos. Al final, de forma sobre simplificada, el Big Data es la herramienta de software y hardware que permite el análisis de estas grandes series de datos.


En palabras de Bob Gourley, CTO de la DIA (Defence Intelligence Agency): “Cuando se habla de Big Data, usualmente implica una nueva forma de hacer análisis para dar sentido a los datos”. Por lo tanto, no solo involucra el concentrar toda la posible información en un solo sitio, también es habilitar los mecanismos que permitan su procesamiento, correlación y fusión enfocados en producir resultados “accionables”, esto es, toma de decisiones.

Estos tres factores son comúnmente incompatibles con las soluciones de inteligencia (BI) e infraestructura actuales de las organizaciones, por lo que requieren hacer nuevas y, en algunos casos, cuantiosas inversiones en ambos rubros. Una encuesta realizada en Agosto de 2012 por el GIG (Goverment Information Group) destacó que el 63% de las dependencias estuvieron de acuerdo que “a menos que implementarán y usaran el Big Data, sería más difícil cumplir con su misión”. Estas organizaciones están conscientes de la complejidad de cumplir su misión (por entornos más cerrados, competitivos, cambiantes, mayores desafíos, entre otros) y de la necesidad de obtener información de un conjunto más diverso de fuentes - video, audio, redes sociales, prensa, datos transaccionales, entre otros - para crear conocimiento y poder tomar decisiones críticas y estratégicas.

Entre los beneficios identificados por la encuesta, se tiene:

  • Mejora la calidad y velocidad de la toma de decisiones.
  • Mejor planeación.
  • Mejorar la eficiencia de los procesos internos.
  • Mejor servicio al cliente.
  • Reducir los costos operacionales.
  • Mejorar la habilidad de predecir tendencias.
  • Detección de riesgos más rápido.
  • Detección de fraudes más eficiente.
  • Habilitar la decisión automática de los procesos.

En resumen: mayor precisión, velocidad, eficiencia en la toma de decisiones.

Fuentes de datos no tradicionales impactando el Big Data

  • Datos en tiempo real de sensores.
  • Datos geoespaciales.
  • Video
  • Audio
  • Llamadas telefónicas
  • SMS
  • Post en redes sociales
  • RFID
  • Páginas Web
  • Clicks



Riesgos en la implementación de soluciones para Big Data

  • Baja calidad e inconsistencia de los datos (57%)
  • Limitaciones de la infraestructura actual (57%)
  • Tiempo de implementación (55%)
  • Dificultad para obtener o analizar los datos en tiempo real (48%)
  • Dificultad para definir la arquitectura de la solución (48%)
  • Dificultad para integrar las iniciativas de Big Data en la infraestructura actual (47%)
  • Dificultad para identificar los datos que generen “resultados accionables”. (47%)

La falta de definición de una estrategía adecuada para la explotación del Big Data y la falta de capacidad técnica para diseñar la solución adecuada en base a la situación actual y futura de la organización son los grandes retos que se deben superar si se desea que la iniciativa sea exitosa.

sábado, 23 de febrero de 2013

Asertividad como cualidad del liderazgo

Un elemento que el gerente debe tomar en cuenta para ser efectivo, es la habilidad para ser asertivo, una persona tiene una conducta asertiva, cuando es directo, honesto y respetuoso al estar en contacto con las personas.

El lenguaje no verbal de una persona asertiva se caracteriza por sonreír constantemente, manos sueltas y en movimiento, postura erguida, contacto ocular directo y gestos firmes.

Un gerente con estilo asertivo, resuelve los problemas, está a gusto con los demás, se siente satisfecho, a gusto consigo, relajado, con control, crea y fabrica la mayoría de las oportunidades, se gusta y gusta a los demás, es bueno para todos. Sus palabras favoritas, pienso, siento, quiero, hagamos, ¿cómo podemos resolver esto?, ¿Qué piensas? O ¿Qué te parece?. El lenguaje no verbal de una persona asertiva se caracteriza por sonreír constantemente, manos sueltas y en movimiento, postura erguida, contacto ocular directo y gestos firmes.

Es por ello, que la asertividad, la creatividad, el manejo de conflictos, el trabajo en equipo, la administración del tiempo y el lenguaje corporal, son habilidades que los gerentes deben fortalecer y con ello lograr los compromisos establecidos.

Manejo de conflictos

Para el manejo de conflictos en las empresas, el líder de proyecto debe:

1.- Escuchar todas las opiniones con respeto. No importa cuán vehemente sea el desacuerdo. Los conflictos, deben tratarse de modo profesional y no personal.
2.- Realizar lluvia de ideas para identificar la solución óptima. consiste en reunir a las partes, pedirles que aporten ideas para la solución, cuidando no descalificar ninguna de ellas, el objetivo es identificar las necesidades y soluciones que ambas partes aceptarán.
3.- Analizar las diferentes opciones. Identificar las opciones que presentaron, visualice qué resultados tendrá cada una de las soluciones planteadas y priorice acorde a la aceptación de las partes con relación a dichas opciones.
4.- Lograr un consenso. Es importante definir el objetivo, establecer indicadores de medición de resultados y el plan de seguimiento.

Factores que afectan la gestión de proyectos

Si consideramos que solo el 30% de los proyectos concluyen de forma "éxitosa" (en tiempo, costo y calidad), hay una alta probabilidad de que nuestro proyecto no sea exitoso (70%), requiriendo más tiempo, dinero o poniendo en duda su calidad. A continuación enlisto algunos de los factores que afectan de manera adversa la gestión de proyecto:

  • Empleados conflictivos
  • Heroismos
  • Añadir personal al proyecto retrasado
  • Expectativas irrealistas
  • Fricciones
  • Ausencia de apoyo de la dirección
  • Se debe buscar
  • Compromiso insuficiente de los participantes
  • Falta de definición de los requerimientos
  • Demasiados interlocutores (deben definirse al mínimo y con funciones bien definidas).
  • Intereses políticos
  • Planificación excesivamente optimista
  • Gestión de riesgos insuficientes
  • Fallos en la subcontratación
  • Abandonar la planificación ante presión del tiempo
  • Plantear demasiados objetivos a la vez
  • Cortar actividades ante el retraso (tiempo)
  • Diseño inadecuado (tiempo)
  • Control de calidad insuficiente (proceso definido, tareas planeadas, etc).
  • Control de gestión insuficiente (proceso definido, tareas planeadas, listas de revisión, etc).
  • Omitir aspectos relevantes para la estimación (funcionales y no funcionales).
  • Requerimientos inestables
Para minimizar el impacto de cada uno de ellos, hay que hacer uso de los procesos del PMBOK, Liderazgo y, en algunos casos, valorar el empleo de una metodología ágil que atienda la dinámica de un proyecto que la gestión tradicional no pueda.

lunes, 21 de enero de 2013

Esquema de lectura práctico, eficiente y potente

Me he vuelto un cliente asiduo de Amazon desde que descubrí, hace poco más de un año, la practicidad de la versión electrónica del libro y su costo menor. Además de que soy minimalista con los artefactos que me rodean, me gusta coleccionar libros pero no quiero tener estantes de ellos, me gustan las peliculas pero no quiero tener muchas coberturas regadas u ordenadas por ahi. En ambos casos opte por el formato electrónico, siendo el PDF el más común para el caso de los libros y contando con un acervo de más de mil libros que he ido reuniendo al pasar de los años.

Realmente me di a la tarea de “recolectar” cuanto libro en PDF estuviera a mi alcance y de una u otra forma le he sacado provecho al extraer segmentos o realizar consultar de temas puntuales. Más no se me había dado el interés de leer los libros en su totalidad. Por otro lado, inicie hace poco más de tres años con Dropbox, desde mi punto de vista la mejor aplicación para respaldar y acceder desde cualquier lugar a mi información. Coloque obviamente en dropbox mi colección de libros. Al principio estaban estos disgregados en diferentes directorios por lo que me di a la tarea de clasificarlos empleando para ello una estructura de directorios de varios niveles. No fue tarea fácil pero termine con un árbol extenso donde residían los libros. Uno de los problemas que me encontré fue la falta de flexibilidad de mi esquema de organización ya que un libro podía caer perfectamente en dos o tres categorías pero no iba a comenzar a crear copias por lo que decidi establecer de manera rigida una sola categoría para cada uno.

Ya estaba mi Biblioteca, perfectamente localizable en mi equipo, categorizada, respaldada en Dropbox y, por ende, disponible desde cualquier navegador.

Hace un año me compre mi primer Android. Apantallado por las grandes capacidades que brindaban su sinfín de aplicaciones, surgió en mí la meta de leer, ahora si, los libros y generar un hábito continuo de lectura, tanto de cultura general como de mi área profesional. Instale Dropbox en mi celular y un lector (Reader Go) de PDF. Todo iba muy bien, solo que el celular no es el mejor dispositivo para una lectura prolongada de PDF’s (con EBooks no he tenido problema), por lo que a los pocos meses compre una tableta (android también), momento en que empezó una nueva problemática a la cual encontrar una alternativa viable de solución. Los libros, aunque accedidos del dropbox, no sincronizaban los avances entre los dispositivos; de manera que lo que leía en el celular en el camino no aparecía de forma “automática” en la tableta para continuar mi lectura en casa. Era una gran decepción. Probé varias alternativas, entre ellas, Mantano (pague la aplicación y una cuenta por un año), encontrando que efectivamente sincronizaba pero aumentaba la complejidad de la administración al tener que manejar dos copias del libro (por lo menos, una en mantano y la otra en Dropbox (porque no hay integración entre estos). Después de varias pruebas con varios productos (y varias compras), encontré Moon+. Excelente aplicación que sincroniza con dropbox el avance entre los dispositivos. Ahora ya podía acceder desde cada dispositivo el PDF y de forma automática me informaba de cualquier avance entre estos y se colocaba en dicha posición.  

Ya había resuelto el problema, podía leer en mi celular durante la jornada laboral y en la noches, sin problema, podría continuar leyendo en mi tableta DESDE LA ÚLTIMA POSICIÓN.

Finalmente, conforme empecé a leer y revisar los libros, encontré que debía realizar una mejor categorización y depuración de los metadatos ya que muchas veces estaban incompletos y me complicaban definir que leer o que buscar. Es cuando encontré Calibre, una aplicación “gratuita” que permite importar libros PDF; CHM y Office en una sola librería. Es internamente administrada por la aplicación en cuanto a su estructura de directorios de almacenamiento, lo cual he entendido es lo mejor. El que yo tenga que dar mantenimiento a la estructura de directorios desvía un esfuerzo importante en esta labor en lugar de centrarme en el contenido, los libros, lo cual es precisamente lo que hace Calibre. Esta aplicación permite el crear una biblioteca, ir agregando metadatos a los libros para clasificarlo, pudiendo asignar más de una etiqueta el documento. Es importante mencionar que Calibre sólo habilita la administración de los libros, no es una aplicación para leerlos. Para ello se emplea Acrobat, Foxit y la aplicación que mejor le parezca a cada quien en el caso de la PC. Pero la razón principal del porqué adoptar Calibre fue que permite almacenar la biblioteca en dropbox. Todo lo que voy agregando automáticamente se ve en el Dropbox. La estructura de directorios que genera Calibre no es particularmente compleja pero significaba un reto ya que el primer nivel del árbol es por Autor. Empezaba a ver un problema en esto, sin embargo, existe la aplicación Leger Calibre para android que lee el archivo empleado por Calibre para generar la librería, que se encuentra en la raíz de la biblioteca y en el dropbox por ende, y muestra las cubiertas de los libros y las etiquetas para filtrar los contenidos.  A partir de ese momento, ha sido mucho más sencillo y productivo no solo acceder y leer mi biblioteca, además de facilitar su administración teniendo datos muchos más ricos de una forma más sencilla.

A continuación resumo lo que se requiere en cada dispositivo para implantar este esquema:

Movil/Tableta

  • Moon+
  • Dropsync (configurado para sincronizar toda la biblioteca al móvil).
  • Leger

PC
  • Cliente Dropbox
  • Calibre