SoftwareLibreVenezuelaSoftwareLibreVenezuela

El proceso de Data Mining desde el punto de vista de negocios: Caso para el análisis

Escrito por softwarelibrevenezuela 11-08-2008 en General. Comentarios (2)
http://www.monash.edu.au/pubs/monmag/issue7-2001/img/datamining7.jpg

Por Cristián J. Figueroa Sepúlveda

Ingeniero Consultor del Departamento de Business Intelligence

SONDA S.A.

 

El proceso de Data Mining (Minería de Datos), una de las familias de soluciones del área del conocimiento llamada Business Intelligence (BI), puede ayudar a extraer conocimiento novedoso de manera automática a partir de datos de diversa índole que las compañías han generado producto de su negocio y que almacenan en sus bases de datos.

Este conocimiento implícito puede generar aplicaciones de alto valor agregado si es que el proceso de Data Mining es entendido apropiadamente, no sólo desde un punto de vista técnico sino también desde una perspectiva de negocios.

Aplicaciones tales como detección y prevención de fraudes y abusos, segmentación de clientes, análisis de fidelización, predicción de fugas, cross-selling,up-selling, market basket, o conceptos tales como clasificadores y regresiones basados en redes neuronales han emergido profusamente durante los últimos años en el vocabulario de muchas compañías como una forma de reflejar el enorme potencial que ellas podrían alcanzar con esta tecnología aplicada a sus datos.

De hecho, varias compañías han adoptado la idea de crear departamentos internos de Inteligencia de Mercado los cuales en última instancia son los responsables de llevar a cabo éstas y otras iniciativas de Business Intelligence al interior de las mismas. En esta línea, seminarios de corte académico son dictados cada año como una forma de “evangelizar” a la audiencia en cómo el proceso de Data Mining debe realizarse, comparando distintas técnicas y mostrando tasas de rendimiento superiores utilizando determinados tipos de algoritmo. Es típica la conclusión, por ejemplo, que una clasificación hecha con redes Perceptrón Multicapa (MLP) obtuvo un 85,5% de aciertos mientras que una red Bayesiana obtuvo un 85,8% de aciertos, lo cual hace que la red Bayesiana sea mejor para resolver el problema en cuestión.

Muchas veces el modelo mental que se tiene sobre el proceso de Data Mining es un conjunto de pasos centrados en los algoritmos que si se siguen ordenadamente inevitablemente nos conducirán al éxito. En concordancia con esto, la mayoría de las plataformas tecnológicas de BI vienen en sus últimas versiones con módulos previamente diseñados para que incluso un usuario final pueda ejecutar el proceso de Data Mining.

Sin embargo, lo cierto es que si los argumentos para defender el aporte de una aplicación basada en Data Mining no son lo suficientemente objetivos desde una perspectiva de negocios es muy probable que esas aplicaciones centradas en el modelado sean abortadas en el camino o en su defecto sean realizadas pero no lleguen a puerto con un resultado objetivamente superior a lo que ya se estaba haciendo antes de implementarla. La verdad es que desde el punto de vista de negocios importa más cuantificar el Retorno Económico de la Inversión (ROI) de una aplicación de Data Mining que obtener mejoras marginales en los rendimientos de uno u otro algoritmo para resolver un problema dado.

En el Departamento de Business Intelligence de SONDA hemos venido desde hace algún tiempo balanceando ambos aspectos, el técnico y el de negocios en las soluciones de Data Mining que hemos estado implementando. Nuestros clientes están muy interesados en saber cuánto es posible ahorrar mensualmente con nuestras aplicaciones basadas en Data Mining.

Técnicamente, utilizamos la metodología CRISP-DM para diseñar y construir cualquier aplicación que se base en el proceso de Data Mining, siguiendo los seis pasos:

  1. Entendimiento del problema,
  2. Entendimiento de los datos,
  3. Preparación de los datos,
  4. Modelado,
  5. Evaluación e
  6. Implantación

La experiencia con la que hemos contado para el diseño y construcción de las aplicaciones basadas en el proceso de Data Mining, siguiendo esta metodología, ha sido de nivel mundial. Esto lo valida la buena recepción que recibió nuestro sistema FraudScanning® para la detección temprana de licencias médicas fraudulentas y abusivas en el sector salud aplicado en la Isapre Banmedica.

Este caso fue presentado a la comunidad internacional de profesionales e investigadores en Business Intelligence en uno de los salones del MonteCarlo Resort & Casino de Las Vegas, Nevada, E.E.U.U., donde se realizó la Conferencia Internacional en Data Mining 2006 (DMIN’06). Dentro de los elogios recibidos destacan el modelado concebido en la solución propuesta y la retroalimentación entre entidades. Cabe destacar que la mayor parte de los asistentes a esta conferencia provenían de países tales como China, Inglaterra, Alemania, EE.UU.,Francia, Finlandia e India, quienes aplican y desarrollan soluciones deBusiness Intelligence de primer nivel.

 

Metodología CRISP-DM

 

Nuestra propuesta de sistema de detección de fraudes y abusos utiliza un conjunto de Redes Neuronales Supervisadas MLP para cada una de las entidades envueltas en el problema: licencias médicas, afiliados,profesionales, médicos y empleadores. Esta estrategia de “dividir yconquistar” nos ha permitido retroalimentar la información a través del tiempo, combinando los comportamientos de los afiliados, médicos y empleadores.

Las redes MLP han sido las más difundidas en la literatura. Dentro de sus capacidades destaca la posibilidad de actuar como aproximadores universales de cualquier función matemática. A pesar de existir la posibilidad que los resultados de esta red caigan en mínimos locales de la solución, nuestros experimentos con MLP durante la etapa de Modelado de CRISP  fueron similares a aquellos alcanzados con estrategias más sofisticadas como Support Vector Machines. De todas maneras, independiente de qué algoritmo utilizar en la etapa de Modelado, nuestra experiencia indica que el gran esfuerzo tiene que ser puesto en las etapas previas al Modelado cuando una aplicación basada en Data Mining se esté llevando acabo.

Software Libre as a Service

Escrito por softwarelibrevenezuela 23-07-2008 en General. Comentarios (0)

Software libre as a Service 

¿Qué opciones tenemos entonces en lo que podemos denominar: Free Software as a Service? Casos de enorme éxito confirman esta creciente tendencia: Jommla!, Moodle y Zimbra por citar algunos ejemplos.  

Mauricio López

Recientemente Gartner realizó un estudio “The State of Open Source 2008” donde señala que para el 2012 más del 90% de las empresas utilizarán software libre.

Dato curioso: incluso usuarios que rechazan al software libre por motivos técnicos, legales o empresariales, se encontrarán usándolo sin siquiera saberlo,a pesar de su oposición. Esto debido a que muchas empresas están volteando a la tercerización de sus servicios de TI, como es el caso del concepto de Software as a Service (SaaS).

Contar con su propia infraestructura para ofrecer sus aplicaciones y servicios de TI ofrece grandes comodidades, como el sentido de independencia, flexibilidad para modificar y tiempos de respuesta que solo dependen de su equipo también de TI.

Sin embargo, también esto representa mayores costos fijos y una carga administrativa adicional, que no todas las empresas pueden soportar.

En este esquema de Software as a Service, la aplicación o funcionalidad requerida es proporcionada por un externo, ofreciéndola por medio de Internet,en realidad nada nuevo, ¿Alguien recuerda a los Application Service Providers(ASPs)?, solo que recargados con las ventajas que ofrece la tecnología de punta: desde los tradicionales clientes livianos (como los basados en Web),hasta clientes más robustos y complejos (por ejemplo los basados en Java), pasando también por los dispositivos móviles.

Por nuestra parte, solo necesitamos lo mismo que para consultar nuestroWebmail: una computadora con conexión a Internet y tenemos nuestra aplicación disponible.

Nuestro proveedor entonces, por una renta aceptable nos proporciona dicho servicio, (y algo que seguramente no le desagradará) obligándose a ser responsable de la disponibilidad del mismo, ofrecer el soporte técnico necesario y encargarse de las mejoras y correcciones que vayan surgiendo ¿Quéopciones tenemos entonces en lo que podemos denominar: Free Software as a Service? Casos de enorme éxito confirman esta creciente tendencia: Joomla!, Moodle y Zimbra por citar algunos ejemplos.

Sus necesidades de administración de proyectos, seguimiento de ventas, atención a clientes, capacitación, trabajo en equipo y un largo etcétera están cubiertas con alguna opción de SaaS basados en Software Libre, con la diferencia de que su servicio no se queda en la oficina o en la computadora de su personal, sino que (para bien o para mal) podrá accesar desde su casa, o donde pueda conectarse…

Así como ahora es una realidad de todos aceptada que para contar con un servicio de correo electrónico y hospedaje Web confiable, no existe la necesidad de crear toda una infraestructura para ello, sino solo pagar para que un externo con sus propios recursos se encargue del mismo, la propuesta que ofrece la renta del Software como Servicio en Open Source, es una opción que vale la pena considerar.
Fuente: iworld

Software Factory y Mantenimiento

Escrito por softwarelibrevenezuela 17-07-2008 en General. Comentarios (0)

http://softwarelibrevenezuela.blogspot.es/img/SF6.jpg Si hacemos con Google una búsqueda para Software Factory encontraremos que en Sudamérica existen muchas empresas que así se denominan; sin embargo, casi ninguna explica cual es su proceso de fabricación del software, y este me parece que es esencial conocerlo de antemano a objeto de calibrar la calidad del software que puedan generar. Las referencias de clientes y proyectos anteriores son una condición necesaria pero no suficiente, por la simple razón que Ud. no sabe si la misma gente que trabajó en los proyectos que le presentan como exitosos trabajarán también para Ud. Por tanto lo que una fábrica de programas tienen para garantizar su calidad y capacidad es la disposición a  firmar contratos con SLA (Service Level Agreement).

Modelos de Operación de la Fábrica de Programas
La Fábrica de Software refiere al proceso de producir programas con rapidez y calidad a través de procesos conocidos, repetibles y gestionables, y principalmente, mejorables de modo continuo, no sólo por la incorporación de técnicas y herramientas en el desarrollo del software, sino también porque se mantiene constantemente el foco sobre el  proceso de producción y de cada uno de los pasos que esto acarrea. El término fábrica indica un compromiso a largo plazo, esfuerzos integrados - por encima de proyectos individuales- para mejorar las operaciones relativas al software.[1]

La Fábrica de Software es un tipo de tecnología generativa cuyo fin es reducir la complejidad del software y, a la vez, simplificar su producción. Esto se logra mediante: 

1.     La abstracción de los aspectos complicados del software.

2.     La producción en serie del software.

 Es decir, la Fábrica de Software es la transición desde la producción artesanal, artística, de software a una producción industrial semi-automatizada, que asegura la calidad y el mejoramiento continuo usando especificaciones formales, metodologías, estándares, y teniendo una mirada permanente en la evolución de la tecnología. [2] A continuación, incluyo un modelo, a modo de ejemplo, de una Fábrica de Software estructurada en base a un Modelo de Madurez de tres niveles. 

Nivel de Madurez

·         Indicadores de la Producción de Software

Repetible           

·         Complejidad de la Producción de Software: La Fábrica de Software aplicaun enfoque de producción sistemático y repetible.

·         Conciencia sobre el Proceso: Prácticas individuales y de uso común –diseñadas- son aplicadas, esto es que la arquitectura (operacional) de la Fábrica de Software no está totalmente definida.

Gestionada 

·         Complejidad de la Producción de Software: Se aplica a la Fábrica de Software un enfoque reflexivo y adaptativo, la fábrica cuenta con una arquitectura establecida y administrada, se opera con un enfoque de líneas de producción.

·         Conciencia sobre el Proceso: Un arquitecto desarrolla la visión de largo plazo de los metamodelos y de las herramientas a utilizar, la producción del software es predictiva, porque está bajo control. 

Optimizado

·         Una realimentación –feedback- continua contribuye al mejoramiento de la capacidad de producción y del ROI.

La Conexión con el Mantenimiento
En toda organización grande que cuente con componentes de software como ERP, CRM, SCM, etc. existen al menos dos necesidades que implican desarrollo de software:

1.     La incorporación de nuevas funciones..

2.     El mantenimiento del software en uso.

Estas necesidades generan requerimientos que podrán tratarse formal o sistémicamente:

·        Tratamiento Formal, existe un área en la Gerencia de Informática que se hace cargo del mantenimiento de software, incluyendo los nuevos desarrollos. Esta área puede contar con programadores o bien los contrata por demanda. El proceso consiste en generar especificaciones funcionales –descripción del requerimiento para los programadores-, asignación del encargo a un programador, desarrollo y testing. Todo este ciclo puede estar gestionado con o sin herramientas computacionales de apoyo.

·        Tratamiento Sistémico, la gerencia de Informática cuenta con un grupo para gestionar el mantenimiento y de un contrato con una Fábrica de Software. En este caso internamente se hace la generación de las especificaciones funcionales y la verificación final del software recepcionado. El proceso de desarrollo completo es responsabilidad de la Fábrica de Software.

Cada una de estas formas de operar tiene sus ventajas y desventajas, pero si observamos la tendencia global en la gestión empresarial de externalizar los procesos que no generan valor, es evidente que la opción de la Fábrica de Software gana terreno, a mi juicio, por dos razones: permite disponer de recursos de programación permanentemente (mientras dure el contrato), y transforma el proceso de desarrollo de software en uno controlado.

Los Costos y Beneficios
En cuanto a costos para poder evaluar adecuadamente la oferta de una fábrica de Software, es necesario establecer algún modelo de costos pues siempre se terminará comparando con los costos de desarrollo propios. De modo que un modelo simple puede ser el siguiente:

 

Donde.

CHM, costo total de la Hora Hombre de mantenimiento / desarrollo de software.

CHP, costo de una hora de programador.

CHfS, costo de la fracción de hora de supervisor requerida por hora de programador.

CHfC, costo de la fracción de hora de consultor requerida por hora de programador.

CHfT, costo de la fracción de hora de tester requerida por hora de consultor.

En este modelo el aspecto fundamental es que se asume que por cada hora de trabajo del programador se necesitan fracciones de horas de un supervisor, de un consultor y de un tester (persona técnica que hace el control de calidad).

 En cuanto a los beneficios, es necesario evaluarlos cuantitativamente, y para este efecto es necesario establecer contractualmente un SLA (Service Level Agreement) [3], esto es un acuerdo de niveles de servicios pre-definidos. Según el IEEE los SLA se deben establecer foco es áreas específicas como ser: calidad del producto, calidad del proceso, calidad de la post-producción, etc.[4].

Conviene tener en consideración que entre un contrato tradicional de servicios y un SLA existe una diferencia sutil pero sustancial, los SLA son también servicios, pero son distintos contractualmente, ya que un SLA define más detalladamente el requerimiento, en términos de incentivos y penalidades que se obtienen por el cumplimiento o incumplimiento de niveles de servicios establecidos cuantitativamente, por ejemplo: tiempos de respuesta, tamaño del backlog, etc.. 

Referencias

[1] http://cuartageneracion.blogspot.com/2006/04/cuando-software-factory-no-es-una.html

[2] http://www.softmetaware.com/oopsla2004/langlois.pdf

[3] http://en.wikipedia.org/wiki/Service_Level_Agreement

[4] http://findarticles.com/p/articles/mi_m0SVI/is_3_11/ai_n13821992/print

 

Fuente: http://msaffirio.wordpress.com

10 cosas que todo Arquitecto debe saber...

Escrito por softwarelibrevenezuela 12-07-2008 en General. Comentarios (0)

Como mucha gente sabe una de mis pasiones es la vertiente más tecnológica de la Ingeniería del Software, personificada en el conceptode Arquitectura. Antes de nada os dejo una pequeña reflexión.

Cuando hablo de Concepto Arquitectura pienso, sobre todo, en que cada día se demuestra más la tendencia a que vamos a una ingeniera del software gobernada por la Arquitectura, y sin embargo desde el punto de vista del usuario de negocio, esto tiene que dejar de existir ya. La tecnología debe dejar de ser una barrera, sobre todo en cuanto a su continua evolución, y cada día vemos más empresas manteniendo viejos sistemas, aunque es mejor que migrarlos todos cada poco.. no es la solución.

Para mi cada vez esta más claro que el éxito de las arquitecturas empresariales viene dado por pensar en una clara orientación a servicios (SOA) , (quizás es pronto para orientación a eventos EDA) para acabar llegando a BPM. Donde el usuario de negocio debe ser capaz de definir sus propios procesos de negocio… que si ¡!!que esto es viable, preguntar a BEA.

Tenemos que pensar que no podemos construir un BPM como primer paso, sino empezar a pensar en una estructura de Gobierno SOA sobre la cual vayamos creciendo hasta tener una suficiente estructura de servicios de negocio, que nos permitan montar BPM. Por tanto el modo de llegar es ir dando pasos.. no esperara empezar los últimos la carrera.

A donde quería llegar, sobre las arquitecturas, es proporcionaros un interesante documento que ha llegado a mis manos, el cual se titula “ 10 cosas que todo arquitecto debe saber” y la verdad es que son ciertamente interesantes:

1. La base esta en las personas.
2. Todas las soluciones llegan a ser obsoletas.
3. Los Datos son para siempre.
4. La flexibilidad genera complejidad.
5. Nada funciona según se esperaba.
6. La documentación es el codigo fuente universal.
7. Conozca el negocio.
8. Mantenga la visión.
9. Los arquitectos deben ser programadores.
10. La experiencia es insustituible.


Sobre cada una existen frases reflexivas, que realmente dan que pensar.

Doy las gracias al autor del mismo Richard Monson-Haefel por sus “10 Things Every Architect Should Know”, que aquí publico, creo que siguiendo correctamente la licencia.

Fuente: Software Factory

II Jornadas de Investigacion y desarrollo de tecnologias libres

Escrito por softwarelibrevenezuela 08-07-2008 en General. Comentarios (0)

“Construyendo el camino hacia la Soberanía tecnológica y el conocimiento libre”

La Fundación Centro Nacional de Desarrollo e Investigación enTecnologías Libres (CENDITEL), tiene el agrado de invitarle aparticipar en las “II Jornadas de Investigación y Desarrollo deTecnologías Libres”, que se realizará en la ciudad de Mérida del 07 al11 de julio de 2008, en las instalaciones del Centro de Convenciones deMérida (Mucumbarila). Puede consultar el cronograma de actividades delas jornadas aqui.

Para cualquier información adicional que usted pueda requerir, puedecontactarnos por los teléfonos: 0274-6574336 - 6574958 de la FundaciónCENDITEL, o mediante el correo electrónico:eventosARROBAcenditel.gob.ve.

Esperamos contar con su valiosa presencia.