jueves, 13 de agosto de 2009

LA CAJA PERDIDA

La vida da muchas vueltas...cierto???

Hace mas de dos años llegue a una ciudad inospita la cual me trato como nunca antes me habia sentido...en realidad me maltrato como nunca antes me habia sentido....heavy...
Llegue a pensar que lo peor que me pudo haber sucedido en mi vida, fue el haber cambiado de ciudad. Llegue a cuestionar incluso el hecho de haber dejado toda mi vida hecha en otro pais y haberme decidido a venir a un lugar absolutamente inospito para mi...afortunadamente despues de 2 años 3meses me di cuenta que no es asi porque encontre una buena amiga, por esta razon esta carta es para ti...

Querida Amiga...
Muchas veces he pensado que la palabra amistad no tiene sentido.
Muchas veces llegue a dudar de que realmente hubiese alguien que se interesara realmente por mi.
Muchas veces llegue a pensar que era preferible morir antes que contarle a alguien mi vida
Muchas veces pense que el mundo no estaba preparado para recibirme a mi...
Afortunadamente te encontre,,, :)
Eres uno de mis cables a tierra, una de las pocas personas que me entiende y me respeta, no por lo que represento sino por lo que soy...
Muchas gracias amiga mia por respetar mis silencios y comprender mis virtudes
Por respetar mis espacios y no invadir mis misterios
Por caminar conmigo aunque no hablemos de nada
Por ser una buena amiga, aunque muchas veces yo no valga nada
Por comprender que hay palabras que lastiman el alma
y evitar decirlas en momentos cruciales
Por entender que soy humana ... antes que nada

Sin mas que decir ...gracias amiga por todo
Te quiero mucho :)

Definitivamente, es la primera vez despues de mucho tiempo en la que no deseo irme y luchar por lo que le dicen VIDA

Saludos a todos

MODULARIDAD

Definición de Modularidad

Concepto aplicado en el contexto de la informática, especialmente en la programación. Un módulo es un componente de un sistema más grande y opera dentro del sistema independientemente de las operaciones de otros componentes.La modularidad es una opción importante para la escalabilidad y comprensión de programas, además de ahorrar trabajo y tiempo en el desarrollo.

ACOPLAMIENTO

El acoplamiento, junto con la modularidad, la cohesión y otros factores, permiten mejorar la programación y el diseño de sistemas informáticos y aplicaciones, y son cruciales en el incremento de la reutilización de los códigos.
Definición de Acoplamiento
Grado de interdependencia entre las unidades de software (módulos, funciones, subrutinas, bibliotecas, etc.) de un sistema informático. El acoplamiento da la idea de lo dependiente que son las unidades de software entre sí, es decir, el grado en que una unidad puede funcionar sin recurrir a otras.Por ejemplo, dos funciones son absolutamente independientes entre sí (es decir, el nivel más bajo de acoplamiento) cuando una puede hacer su trabajo completamente sin recurrir a la otra. En este caso se dice que ambas están desacopladas.
El consenso general es que debe haber bajo acoplamiento entre las unidades de software para lograr una buena programación o un buen diseño. O sea, mientras menos dependientes sean entre sí las partes que constituyen un sistema informático, mejor será el resultado.
Obviamente es imposible un desacoplamiento total de las unidades. El bajo acoplamiento permite:
* Mejorar la mantenibilidad de las unidades de software.
* Aumentar la reutilización de las unidades de software.
* Evitar el efecto onda, ya que un defecto en una unidad puede propagarse a otras,haciendo incluso más difícil de detectar dónde está el problema.
* Minimiza el riesgo de tener que cambiar múltiples unidades de software cuando se debe alterar una.
El acoplamiento, junto con la modularidad, la cohesión y otros factores, permiten mejorar la programación y el diseño de sistemas informáticos y aplicaciones, y son cruciales en el incremento de la reutilización de los códigos.
Tipos de acoplamiento
* Acoplamiento normal: una unidad de software llama a otra de un nivel inferior y tan solo intercambian datos (por ejemplo: parámetros de entrada/salida). Dentro de este tipo de acoplamiento podemos encontrarnos 3 subtipos, dependiendo de los datos que intercambien las unidades de software.
* Acoplamiento externo: las unidades de software están ligadas a componentes externos, como por ejemplo dispositivos de entrada/salida, protocolos de comunicaciones, etc.
* Acoplamiento común: dos unidades de software acceden a un mismo recurso común, generalmente memoria compartida, una variable global o un fichero.
* Acoplamiento de contenido: ocurre cuando una unidad de software necesita acceder a una parte de otra unidad de software.

COHESION

Definición de Cohesión:
En informática, la cohesión hace referencia a la forma en que agrupamos unidades de software (módulos, subrutinas...) en una unidad mayor. Por ejemplo: la forma en que se agrupan funciones en una biblioteca de funciones o la forma en que se agrupan métodos en una clase, etc.
El consenso general para una buena programación o un buen diseño es que la cohesión debe ser alta. Es decir, mientras más cohesionados estén los elementos agrupados, mejor.
Tipos de Cohesion
* Cohesión funcional: Los elementos de la unidad de software están relacionados en el desarrollo de una única función. Es decir, las unidades de software trabajan juntas con un mismo fin. En general, es el criterio de agrupación más deseable. Probablemente haya entre las unidades un acoplamiento relativamente alto, por lo tanto es conveniente que estén juntas.
* Cohesión secuencial: Una unidad de software realiza distintas tareas en secuencia, de forma que las entradas de cada tarea son las salidas de la tarea anterior. En otras palabras, se agrupan las unidades que cumplen que los resultados o salidas que produce una sirven como entrada para que la próxima continúe trabajando.
* Cohesión comunicacional o de datos: La unidad de software realiza actividades paralelas usando los mismos datos de entrada y salida. En otras palabras, cuando todas las unidades agrupadas trabajan sobre el mismo conjunto de datos.
* Cohesión procedimental: La unidad de software tiene una serie de funciones relacionadas por un procedimiento efectuado por el código. Es similar a la secuencial, pero incluyendo el paso de controles.
* Cohesión lógica: Cuando las unidades de software agrupadas realizan un trabajo en una misma categoría lógica, pero no necesariamente tienen relación entre sí. Por ejemplo: bibliotecas de funciones matemáticas, sólo se agrupan porque realizan cálculos matemáticos, pero no tienen necesariamente relación entre ellas.
* Cohesión temporal: Los elementos de la unidad de software están implicados en actividades relacionadas con el tiempo. En otras palabras, se agrupan unidades de software que tienen que ejecutarse más o menos en el mismo período de tiempo, sin que haya otro tipo de relación entre ellas. En general debe evitarse.
* Cohesión casual o coincidente: Los elementos de la unidad de software contribuyen a las actividades relacionándose mutuamente de una manera poco significativa. En otras palabras, es cualquier criterio que no caiga dentro de los anteriores. Este tipo de cohesión viola el principio de independencia y de caja negra de las unidades de software, por lo tanto debe evitarse.