jueves, 23 de enero de 2014

Migración y retos del Software Libre en Venezuela

Cómo migrar a SL

Es reconocida la trascendencia del movimiento del software libre tanto en el entorno empresarial como en el personal para las sociedades, sin embargo la alta complejidad que comprende la definición un proyecto de migración a una plataforma de software libre es necesario la aplicación de modelos de gestión que permitan integrar todos los aspectos generalizables de la migración, de forma tal que puedan trabajar de forma interrelacionada con el fin de facilitar la toma de decisiones y lograr los objetivos que garanticen la implementación correcta y progresiva de herramientas con estándares abiertos. La imagen que se muestra a continuación hace referencia a una propuesta de un modelo de gestión involucrando los diferentes factores que hacen vida en las empresas para la ejecución de proyectos de migración a plataforma de  software libre:



Retos y Oportunidades del SL en Vzla

Existen muchas oportunidades a ser desarrolladas en cuanto al fortalecimiento del movimiento del software libre en Venezuela, sin embargo, se destaca lo siguiente:

–Alta disponibilidad de ejecución a través de la construcción de herramientas de trabajo en los diferentes campos de aplicación
–Acceso a una amplia variedad de tecnologías innovadoras
– Potencian la autonomía tecnológica de las comunidades de software a nivel mundial en cuanto al desarrollo de herramientas, aplicaciones y sistemas informáticos,  de forma colaborativa accesando y participando en la construcción de las infraestructuras de los mismos promoviendo el aprendizaje colectivo
– Reducción de costos considerable en los sectores empresariales tanto públicos como privados en cuanto al licenciamiento

viernes, 17 de enero de 2014

Modelado UML


La técnica de modelado UML para los procesos de construcción de software, ha ganado protagonismo ya que define la visión del sistema con características altamente visuales facilitando la comunicación y la interoperabilidad de todos especialistas técnicos que participan. UML permite crear el plano para la construcción de software haciendo una abstracción de la solución final que se espera,capturando los requerimientos y convirtiéndolos en componentes tangibles de la solución.
Existen muchas formas de potenciar el uso de esta técnica, sin embargo considero que podemos aprovechar mejor su uso si tomamos en cuenta para la escogencia de las aplicaciones de modelado, los siguientes aspectos:
  • Es importante que sean altamente intuitivas y multi plataforma  ya que facilitan el proceso de diagramación
  • Para aprovechar el uso del internet como instrumento intercambio de información y conocimiento, es muy útil tener una herramienta de modelado que promueva la colaboración en línea para la integración continua
  • Por otra parte el aspecto del licenciamiento de la aplicación a escoger condicionará la generación y el acceso a las fuentes de conocimiento, por consiguiente se recomienda el uso de aplicaciones de software libre
  • Aunque el proceso de modelado UML, se encuentra más en la parte de diseño (Tomando en cuenta el ciclo de vida del software) que en la de desarrollo es importante tener en cuenta que su base radica en el  paradigma orientado a objetos, es por eso que se recomienda utilizar un lenguaje de programación orientado a objetos en la parte de desarrollo para facilitar el entendimiento del diseño.

Mi experiencia con la utilización de herramientas de modelado de UML inicialmente las hacía en ppt hasta que me tope con Dia (https://wiki.gnome.org/Apps/Dia/), es una aplicación libre excelente porque es bien sencilla y hace lo básico, he probado Umbrello(http://umbrello.kde.org/) también aunque en sistemas operativos como debian generan algunas excepciones, supongo que poco a poco potenciarán esa importante herramienta, pero Smart Draw(http://www.smartdraw.com/) me ha parecido el mejor aplicativo para modelado aunque tienen una versión Trial bastante limitada. Aunque ultimamente me gustan mucho las aplicaciones on line que ofrecen como extensión de google drive como Lucidchart(https://www.lucidchart.com/) que genera diagramas de todo tipo que se pueden compartir, les mando un videito bastante corto sobre esta herramienta de modelado colaborativa bastante buena https://www.youtube.com/watch?v=xtDym9Iasbo

Calidad de Software Libre


Actualmente, para tratar el aspecto de la calidad dentro del entorno de SL (Y para los sistemas de información en general), se esta incorporando la aplicación de modelos de Integración Continua, ya que permiten tener un  estatus frecuente del ciclo de desarrollo del producto, permitiéndole a las áreas encargadas del aseguramiento de la calidad centrarse en nuevas funcionalidades del sistema y diseñar las pruebas correspondientes para las mismas, manteniendo un continuo control de los ciclos de Desarrollo y Aseguramiento de la Calidad. En consecuencia es importante implementar y adaptar un instrumento que permita integrar las herramientas de automatización recientemente adquiridas con el código que se encuentra en el sistema de control de versiones. Un modelo de Integración Continua adaptado a las necesidades que presentan las comunidades y empresas de desarrollo, permitirá la ejecución planificada y periódica de las pruebas automatizadas basándose en las modificaciones del código en el sistema de control de versión.

Enfocados en el aspecto metodológico, se encuentra MeRinde que es una metodología de desarrollo que se centra en el aseguramiento y control de calidad del software libre. En las pruebas se destacan los objetivos:
  • Encontrar y documentar defectos en la calidad del software
  • Notificar la calidad percibida del software.
  • Proveer un medio de validación para las suposiciones hechas en el diseño y especificaciones de requerimientos por medio de demostraciones concretas.
  • Validar las funciones del producto de software según lo diseñado.
  • Validar que los requerimientos fueron implementados apropiadame

Caso de estudio UML: Aula Virtual

Caso de Estudio. Modelaje en UML
Proyecto: Biblioteca Virtual

En base al enunciado que se muestra a continuación, vamos a mostrar un ejemplo de como podemos modelar procesos de negocios de sistemas de información utilizando UML. Espero que sirva de ayuda para generar sus propios diagramas. Saludos...

Resultados:
1) Casos de Uso

1.1)Diagrama de Casos de Uso

1.2) Descripción de Casos de Uso

CU-01

Nombre
Registrar Usuario
Descripción
El usuario se registra en el sistema
Función
Crear un nuevo usuario en el sistema
Prioridad
Alta
Actores
Usuario
Referencia


CU-02

Nombre
Ingresar Usuario
Descripción
El usuario interactúa con sistema para solicitar ingreso
Función
Permitir al usuario ingresar al sistema
Prioridad
Alta
Actores
Usuario
Referencia
Registrar Usuario

CU-03

Nombre
Cambiar clave de Usuario
Descripción
El usuario registrado debe tener la capacidad de cambiar su clave de acceso posterior a su ingreso al sistema
Función
Realizar cambio de clave exitoso  para posteriores ingresos
Prioridad
Media
Actores
Usuario
Referencia
Ingresar Usuario

CU-04

Nombre
Consultar Material Bibliográfico
Descripción
Transacción que permite realizar diferentes tipos de búsqueda de material bibliográfico
Función
Permitir el ingreso al proceso de búsqueda de documento
Prioridad
Media
Actores
Usuario
Referencia
Ingresar Usuario, Autenticar Usuario

CU-05

Nombre
Búsqueda Básica Material Bibliográfico
Descripción
Realiza búsqueda por código o título del documento
Función
Generar búsqueda de material bibliográfico de acuerdo a parámetros de búsqueda específicos
Prioridad
Alta
Actores
Usuario
Referencia
Consultar Material Bibliográfico

CU-06

Nombre
Búsqueda Avanzada Material Bibliográfico
Descripción
Realiza búsqueda de documentos tomando en cuenta los campos de autor, fecha y palabra clave
Función
Generar búsqueda de material bibliográfico de acuerdo a parámetros de búsqueda específicos
Prioridad
Alta
Actores
Usuario
Referencia
Consultar Material Bibliográfico, Búsqueda Básica Material Bibliográfico

CU-07

Nombre
Listar Material Bibliográfico
Descripción
Muestra lista de materiales bibliográficos que se encuentran en la biblioteca
Función
Generar listado de documentos de acuerdo a criterios de búsqueda
Prioridad
Media
Actores
Sistema
Referencia
Búsqueda Básica Material Bibliográfico, Búsqueda Avanzada Material Bibliográfico

CU-08

Nombre
Seleccionar Material Bibliográfico
Descripción
El sistema es capaz de escoger un documento del listado
Función
Selección de un documento de la lista, según patrón de búsqueda
Prioridad
Media
Actores
Usuario
Referencia
Listar Material Bibliográfico

CU-09

Nombre
Guardar Material Bibliográfico
Descripción
Transacción del usuario que le permite guardar documentos en dispositivo de almacenamiento indicado
Función
Permitir guardar documento en unidad de almacenamiento
Prioridad
Alta
Actores
Usuario
Referencia
Seleccionar Material Bibliográfico

CU-10

Nombre
Abrir Material Bibliográfico
Descripción
Transacción del usuario que le permite visualizar el documento dentro de la aplicación
Función
Obtener vista del documento desde la biblioteca virtual
Prioridad
Alta
Actores
Usuario
Referencia
Seleccionar Material Bibliográfico

CU-11

Nombre
Autenticar Usuario
Descripción
Mecanismo de verificación de usuario que intenten ingresar al sistema o que ya ingresados, quieran realizar un cambio de clave
Función
Permitir o denegar accesos a usuarios en el sistema
Prioridad
Alta
Actores
Sistema
Referencia
Ingresar Usuario






2) Eventos por caso de uso

CU-01

Nombre
Registrar Usuario
Actores
Usuario
Evento
Registrar nuevo usuario al sistema de biblioteca
Pasos
  • Seleccionar boton de registrar nuevo usuario
  • Transcribir datos personales, usuario y contraseña
  • Seleccionar boton aceptar
  • Si el usuario ya existe el sistema solicita cambiar el nombre del usuario
  • Si el usuario no existe el sistema actualiza la tabla de usuarios y muestra mensaje al usuario de finalización exitosa.

CU-02

Nombre
Ingresar Usuario
Actores
Usuario
Evento
Ingresar al sistema de biblioteca
Pasos
  • Seleccionar boton de ingreso
  • Transcribir nombre de usuario y contraseña
  • Seleccionar boton aceptar
  • Si el usuario esta registrado el sistema muestra las opciones de procesos.
  • Si el usuario no está registrado el sistema muestra un mensaje señalando negación de acceso a la aplicación.

CU-03

Nombre
Cambiar clave de Usuario
Actores
Usuario
Evento
Actualizar la contraseña de un usuario existente
Pasos
  • Seleccionar boton de ingreso
  • Transcribir nombre de usuario y contraseña
  • Seleccionar boton aceptar
  • Si el usuario esta registrado el sistema muestra la opción de cambiar contraseña.
    • Seleccionar boton cambiar contraseña
    • Escribir la nueva contraseña
    • Repetir la transcripción de la contraseña
    • El sistema actualiza tabla de usuario
  • Si el usuario no está registrado el sistema muestra un mensaje señalando negación de acceso a la aplicación.

CU-04

Nombre
Consultar Material Bibliográfico
Actores
Usuario
Evento
Iniciar la consulta de material existente en la biblioteca
Pasos
  • Ingresar al sistema
  • Autenticar el usuario
  • Seleccionar el tipo de búsqueda
    • Búsqueda básica
    • Búsqueda avanzada
  • presionar el boton continuar

CU-05

Nombre
Búsqueda Básica Material Bibliográfico
Actores
Usuario
Evento
Localizar material bibliográfico requerido
Pasos
  • Ingresar código o título
  • Localizar registro de información con el código o título dado
  • Si lo encontró publicar en lista
  • Si no lo encontró mostrar mensaje de no localizado

CU-06

Nombre
Búsqueda Avanzada Material Bibliográfico
Actores
Usuario
Evento
Localizar material bibliográfico de posible interés al usuario
Pasos
  • Ingresar palabra clave, autor, fecha o combinación
  • Localizar los registros de información que coincidan con los valores dados
  • Si lo(s) encontró publicar en lista
  • Si no encontró coincidencias mostrar mensaje de ausencia de material requerido



3) Diagrama Conceptual



4) Diagrama de Clases





5) Diagrama de Interacción
5.1)  Diagrama de Secuencia

5.2)  Diagrama de Colaboración



6) Diagrama de Estados

















7) Diagrama de Actividades
8) Premisas

  • El modelado de los casos de uso permite obtener una abstracción del sistema y explicar de forma específica la utilidad del mismo desde el punto de vista del usuario de la biblioteca y definen de forma gráfica sus requisitos funcionales
  • Para la la obtención de las estructuras tangibles y relaciones establecidas en el mundo real, se realiza la diagramación conceptual, adaptando el entorno real de la biblioteca virtual e identificando los objetos principales: usuarios, documentos, biblioteca, transacciones
  • La representación gráfica de los objetos obtenidos en el diagrama conceptual contribuye a definir las especificaciones funcionales de cada entidad haciendo uso del diagrama de clases en donde se identifica el proceso de búsqueda de material bibliográfico como el más complejo ya que relacionaba todas las entidades del diseño
  • Las particularidades de los diagramas de interacción (Tanto de secuencia como de colaboración) permitieron identificar el comportamiento de las entidades a partir de su relaciones y de sus funcionalidades
  • Como herramienta de diagramación efectiva enfocado principalmente en para describir la secuencia permitida de eventos en los casos de uso, se utilizan los diagramas de estado, ya que cada entidad que forma parte de la estructura de la biblioteca virtual se le atribuyen una serie de eventos, estados y transiciones
  • Con la aplicación del diagrama de actividad se puede visualizar, especificar y documentar la dinámica el conjunto de instancias de la clase, ademas describe el flujo de control de las operaciones que se llevan a cabo
  • Cada diagrama tiene un objetivo en particular, por lo tanto el conjunto de todos proporciona un conocimiento integral sobre el sistema de información.
  • Las actividades fueron especificadas en función de dos entes principales ejecutores de las mismas: el usuario y la aplicación ó sistema.
  • No se consideraron roles o tipos de usuario en el modelo, solo se tomó en cuenta el usuario externo o cliente de la biblioteca virtual.
  • Con el propósito de hacer una aplicación más completa, se deberían incluir los procesos técnicos que permiten agregar, codificar y clasificar material bibliográfico, diversificar materiales en revistas, tesis, libros y otros.
  • Tampoco se tomó en cuenta el mantenimiento de las base de datos para eliminar, modificar y agregar bajo ciertos controles.
  • Básicamente el modelo se centró en los procesos básicos de servicio.
  • El modelo es una representación del sistema que busca satisfacer requerimientos funcionales y de información, sin detallar algoritmos inteligentes que permitan hacer eficiente la búsqueda de material bibliográfico.