twitter
    Quieres saber más del Software Libre Sígueme...

Lenguaje Unificado de Modelado (UML)



Es un estándar que define reglas y notaciones para especificar sistemas y negocios. La notación proporciona un conjunto completo de elementos gráficos para modelar sistemas orientados a objetos, y establece las reglas de como estos elementos deben ser conectados y usados. UML no es una herramienta para crear sistemas software. Es un lenguaje visual para comunicar, modelar, especificar y definir sistemas.

UML no es un proceso prescriptivo para crear sistemas de software; no provee un método o proceso, simplemente el lenguaje. Por consiguiente, puede usar UML en una variedad de formas para especificar y desarrollar su proyecto de ingeniería de software. Este lenguaje está diseñado para ser flexible, extensible, y comprensible, sin embargo es lo suficientemente genérico para servir en todas las necesidades de modelado del sistemas. Con su especificación, hay una amplio rango de elementos caracterizados por los tipos de diagramas en donde se usan y los atributos que proveen. Todo se puede especificar aún más en profundidad usando estereotipos, etiquetas y perfiles.

Está definido por la especificación de UML 2.0 de Grupos de Desarrollo de Objetos. Como se puede ver, hay dos grupos mayoritarios de diagramas: diagramas Estructurales los cuales muestran una vista estática del modelo; y diagramas de Comportamiento los cuales muestran una vista dinámica del modelo.

Diagramas Estructurales
  • Diagrama de Clases
  • Diagrama de Objetos
  • Diagrama de Componentes
  • Diagrama de Estructura Compuesta
  • Diagrama de Despliegue
  • Diagrama de Paquetes

Diagrama de Comportamiento

  • Diagrama de Interacción

Diagrama de Secuencia

Diagrama de Comunicaciones

Diagrama de Descripción de la Interacción

Diagrama de Tiempos

  • Diagrama de Actividades
  • Diagrama de Casos de Uso
  • Diagrama de Máquina de Estados

Los modelos se construyen en UML a partir de elementos. Cada elemento tiene un propósito diferente, reglas diferentes y una notación diferente. Los elementos de modelado se usan en distintas etapas del proceso de diseño para diferentes propósitos. Los elementos incluyen Clases, Objetos, Interfaces, Casos de Uso, Componentes, Nodos.

¿Qué debemos saber del software libre?


¿Qué es Linux?
Linux es, en un sentido muy amplio, un sistema operativo. Sin embargo, más purista y específicamente, Linux es un kernel. El kernel de un sistema operativo, se refiere a su núcleo. El kernel de un sistema operativo se encarga de gestionar los recursos de la memoria, habilitar el acceso a los sistemas de archivos, administrar recursos de red, y muchas cosas más.

¿Y qué es GNU/Linux?
GNU/Linux es todo el conjunto de herramientas que hacen a Linux un sistema operativo. GNU significa GNU is Not Unix y es el proyecto mundial, de software libre, iniciado en 1984 por Richard M. Stallman. GNU es lo que hace a Linux ser libre y abierto.

¿Linux es gratis?
No: Linux es libre. El tipo de licencia que Linux posee es denominada GPL, que fue desarrollada por el proyecto GNU. La licencia GPL permite cuatro libertades fundamentales:

* Libertad de uso.
* Libertad de aprendizaje.
* Libertad de modificación.
* Libertad de redistribución.

¿Linux es software libre?
Así es. Precisamente por poseer la licencia GNU/GPL.

¿Dónde consigo Linux?
Cuando una persona "quiere Linux", lo que generalmente busca (o necesita) es una distribución (comúnmente llamada distro). Una distribución es un conjunto de aplicaciones y herramientas que conviven con el núcleo de Linux cumpliendo fundamentalmente tres funciones:

* Instalación del sistema operativo.
* Configuraciones del sistema operativo, principalmente de las piezas de hardware.
* Manejo de software.

Algunas Distribuciones se pueden conseguir en:
http://canaima.softwarelibre.gob.ve/cms/descargas
http://www.debian.org/distrib
http://www.ubuntu.com/GetUbuntu/download

¿Quién es el dueño de Linux?
Nadie. Comúnmente se confunde a Linux como una empresa, y se cree que como Microsoft.com pertenece a la empresa Microsoft, entonces Linux.com será el sitio oficial de la empresa Linux, o algo similar. Nada de ello. Linux no lo posee nadie, ni siquiera su creador, Linus Torvalds, es dueño de Linux. Él únicamente posee el registro del nombre, pero el proyecto como tal es 100% libre.

¿Hay que saber programar para usar Linux?
No.

Linux gráficamente, ¿es como MS-DOS?
Lo que mucha gente cree es que Linux, gráficamente, es como MS-DOS, es decir, con una interfaz de texto, de consola. No. Las diversas interfaces gráficas de Linux y sus escritorios, como GNOME o KDE superan enormemente a Windows®, tanto en desempeño, como en atractivo visual.

¿Tengo que ser un gurú de la computación para usar Linux?
No. Las versiones más recientes de distribuciones como RedHat y Mandrake dotan al usuario de una enorme facilidad de instalación y configuración de su sistema.

¿Puedo tener Windows y Linux en la misma computadora?
Sí. Solo tienes que hacer 2 particiones en tu computadora

Instalando Linux, ¿podré hacer todo lo que hacía en Windows? Usar Word, Excel; navegar por Internet; chatear, etc.
Desde luego. Para cualquier tarea de oficina se pueden usar OpenOffice.org, KOffice, StarOffice, etc. Y puedes usar una gran cantidad de navegadores, y mensajeros instantáneos, como aMSN o GAIM.

Mapa Mental de Ingeneria del Software

Tabla Conversión de Windows a Linux


Una de las mas grandes dificultades en la migración de Windows a Linux es la carencia de software equivalente. Los Newbies por lo general buscan los software equivalentes de Windows para Linux, y los usuarios avanzados de Linux no pueden contestar sus preguntas ya que ellos a menudo no conocen demasiado sobre windows, es por ello que en el siguiente link
http://www.somoslibres.org/html.php?op=equivalencias.html
Se muestra una tabla de conversión de Aplicaciones de Windows y su equivalencia en Linux

Software Libre


www

Mantenemos esta definición de software libre para mostrar claramente qué debe cumplir un programa de software concreto para que se le considere software libre.

El "Software Libre'' es un asunto de libertad, no de precio. Para entender el concepto, debes pensar en “libre'' como en “libertad de expresión'', no como en "cerveza gratis'' [N. del T.: en inglés una misma palabra (free) significa tanto libre como gratis, lo que ha dado lugar a cierta confusión].

"Software Libre'' se refiere a la libertad de los usuarios para ejecutar, copiar, distribuir, estudiar, cambiar y mejorar el software. De modo más preciso, se refiere a cuatro libertades de los usuarios del software:

  • La libertad de usar el programa, con cualquier propósito (libertad 0).

  • La libertad de estudiar cómo funciona el programa, y adaptarlo a tus necesidades (libertad 1). El acceso al código fuente es una condición previa para esto.

  • La libertad de distribuir copias, con lo que puedes ayudar a tu vecino (libertad 2).

  • La libertad de mejorar el programa y hacer públicas las mejoras a los demás, de modo que toda la comunidad se beneficie. (libertad 3). El acceso al código fuente es un requisito previo para esto.

Un programa es software libre si los usuarios tienen todas estas libertades. Así pues, deberías tener la libertad de distribuir copias, sea con o sin modificaciones, sea gratis o cobrando una cantidad por la distribución, a cualquiera y a cualquier lugar. El ser libre de hacer esto significa (entre otras cosas) que no tienes que pedir o pagar permisos también deberías tener la libertad de hacer modificaciones y utilizarlas de manera privada en tu trabajo u ocio, sin ni siquiera tener que anunciar que dichas modificaciones existen. Si publicas tus cambios, no tienes por qué avisar a nadie en particular, ni de ninguna manera en particular.

La libertad para usar un programa significa la libertad para cualquier persona u organización de usarlo en cualquier tipo de sistema informático, para cualquier clase de trabajo, y sin tener obligación de comunicárselo al desarrollador o a alguna otra entidad específica.

La libertad de distribuir copias debe incluir tanto las formas binarias o ejecutables del programa como su código fuente, sean versiones modificadas o sin modificar (distribuir programas de modo ejecutable es necesario para que los sistemas operativos libres sean fáciles de instalar). Está bien si no hay manera de producir un binario o ejecutable de un programa concreto (ya que algunos lenguajes no tienen esta capacidad), pero debes tener la libertad de distribuir estos formatos si encontraras o desarrollaras la manera de crearlos.

Para que las libertades de hacer modificaciones y de publicar versiones mejoradas tengan sentido, debes tener acceso al código fuente del programa. Por lo tanto, la posibilidad de acceder al código fuente es una condición necesaria para el software libre.

Para que estas libertades sean reales, deben ser irrevocables mientras no hagas nada incorrecto; si el desarrollador del software tiene el poder de revocar la licencia aunque no le hayas dado motivos, el software no es libre.

Son aceptables, sin embargo, ciertos tipos de reglas sobre la manera de distribuir software libre, mientras no entren en conflicto con las libertades centrales. Por ejemplo, copyleft [``izquierdo de copia''] (expresado muy simplemente) es la regla que implica que, cuando se redistribuya el programa, no se pueden agregar restricciones para denegar a otras personas las libertades centrales. Esta regla no entra en conflicto con las libertades centrales, sino que más bien las protege.

Así pues, quizás hayas pagado para obtener copias de software GNU, o tal vez las hayas obtenido sin ningún coste. Pero independientemente de cómo hayas conseguido tus copias, siempre tienes la libertad de copiar y modificar el software, e incluso de vender copias.

“Software libre” no significa “no comercial”'. Un programa libre debe estar disponible para uso comercial, desarrollo comercial y distribución comercial. El desarrollo comercial del software libre ha dejado de ser inusual; el software comercial libre es muy importante.

Es aceptable que haya reglas acerca de cómo empaquetar una versión modificada, siempre que no bloqueen a consecuencia de ello tu libertad de publicar versiones modificadas. Reglas como ``Si haces disponible el programa de esta manera, debes hacerlo disponible también de esta otra'' pueden ser igualmente aceptables, bajo la misma condición. (Observa que una regla así todavía te deja decidir si publicar o no el programa). También es aceptable que la licencia requiera que, si has distribuido una versión modificada y el desarrollador anterior te pide una copia de ella, debas enviársela.

Obtenido de: http://www.gnu.org


Web 2.0



En los últimos años se ha venido hablando de la incursión de la Web 2.0, llamado el nuevo paradigma comunicacional, este modelo conlleva una mayor interactividad y colaboración entre millones de usuarios
Sabemos que la característica principal de las aplicaciones que trabajan en la Web 2.0 es que están disponibles en ambientes Web y son de fácil acceso, requiriendo solamente una conexión a Internet, por lo que a nivel de infraestructura (hardware) solo nos preocuparíamos por tener el ancho de banda adecuado. Siguiendo con la estrategia presentaría números reales en porcentajes, a través de un estudio por determinar, donde indique como aumentaría o mejorarían ciertos aspectos de la organización que lleven a impulsar la implementación de la Web 2.0, por ejemplo: 71% Mejora comunicación/colaboración entre colaboradores internos, 46% Mejora comunicación/colaboración con clientes, 21% Mejora comunicación/colaboración con Socios de negocios, 16% Reduce el tiempo de implementación tecnología aprovechando aplicaciones disponibles en línea, 15% Reducción del costo de TI mediante el uso de servicios gratuitos.
La Web 2.0 no debe tener mucho impacto a nivel operacional en la organización, por lo que su implementación no debe ser muy traumática, debido a que un alto porcentaje del personal tiene experiencia manejando aplicaciones interactivas (wikis, Facebook., herramientas colaborativas, servicios de publicidad, Etc…), sin embargo enfocaríamos la implementación por fases, donde en una primera se pueda solventar el primer punto de la tabla de porcentajes “Mejora comunicación/colaboración” y así sucesivamente hasta lograr complementar todos los porcentaje pero tratando de no pasar al siguiente hasta no haber logrado iniciar el anterior. Es importante tomar en consideración que unos de los focos principales aunque ya exista un nivel de conocimiento tiene que ser el entrenamiento de todo el personal que actualmente labora en la empresa.

Atributos de una organización moderna:

Atributos de una organización moderna Según Julio Cejas, estos atributos me pareció muy bueno compartirlo con todos ustedes mas en esta materia, el autor es una persona quien conozco tiene un blog muy bueno llamado mijao Blog.

•Las organizaciones modernas tienen un propósito y una dirección clara, visible, y transparente.

•Las organización modernas tienen una cultura organizacional que incentiva la innovación y el desarrollo de equipos de alto desempeño.

•Las organizaciones modernas diseminan, contagian, transmiten, comparten, y evangelizan su visión de negocio mediante estrategias de comunicación claras y precisas.

•Las organización modernas conocen que su valor descansa en las personas.

•Las organización modernas atraen y retienen a campeones.

•Las organizaciones modernas conocen el poder de los wikis, blogs, comunidades virtuales, etc.

•Las organizaciones modernas estimulan la participación.

•Las organizaciones modernas están conformadas por estructuras organizacionales horizontales.

•Las organizaciones modernas conocen el valor de las métricas.

•Las organizaciones modernas conocen el valor de los estándares.

•Las organizaciones modernas conocen el valor del software libre y Open Source.

•Las organizaciones inteligentes tienen claro los objetivos estratégicos, tácticos y operacionales y su relación con las actividades que desarrollan las personas que la integran.

•Las organizaciones modernas conocen la importancia de la formalización de sus procesos, pero consideran de mayor valor agregado su automatización.

•Las organizaciones modernas conocen la importancia del modelado de procesos de negocio,

•Las organizaciones modernas se centran en la mejora continua de sus procesos,

•Las organizaciones modernas miden el desempeño general de sus procesos para evaluar su eficiencia.

•Las organizaciones modernas conocen la relación entre el concepto de agilidad operacional y los diversos estilos de arquitectura y tecnologías como SOA, ESB, MOM, EDA, BRE, CEP, BPM, etc.

•Las organizaciones modernas desarrollan estrategias para diseminar e incentivar la utilización de las disciplinas BPM.

•Las organizaciones modernas utilizan SOA como estrategia para disminuir costos.

•Las organizaciones modernas utilizan SOA como estrategia para evitar la dependencia con sistemas de soporte operacional y de negocio.

•Las organizaciones modernas utilizan ESB como estrategia para implementar las necesidad de integración en ambientes heterogéneos de forma ágil y eficiente.

•Las organizaciones modernas utilizan BRE como estrategia para automatizar sus reglas de negocio

•Las organizaciones inteligentes conocen el valor de almacenar el conocimiento.

•Las organizaciones inteligentes incrementan exponencialmente su eficiencia de negocio mediante actividades de investigación y desarrollo.