Tesis ingenieria en sistemas, software libre y pymes

70
Ingeniería en Sistemas y Software Libre al servicio de las PYMES Autor: José Daniel Muccela Tutor: Ing. Alberto Moyano Departamento de Sistemas de Información Facultad Regional Tucumán Universidad Tecnológica Nacional 2010

Transcript of Tesis ingenieria en sistemas, software libre y pymes

Page 1: Tesis ingenieria en sistemas, software libre y pymes

Ingeniería en Sistemas y Software Libre al servicio de las PYMES

Autor: José Daniel Muccela

Tutor: Ing. Alberto Moyano

Departamento de Sistemas de Información

Facultad Regional Tucumán

Universidad Tecnológica Nacional

2010

Page 2: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 2 -

Page 3: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 3 -

AGRADECIMIENTOS

A Dios y mi familia por el apoyo brindado a lo largo de los años transitados por la Universidad, siendo mis sostenes en los momentos difíciles y compartiendo las alegrías en los momentos de éxito.

Al Ingeniero Alberto Moyano por su disposición al trabajo, soporte y guía constante como tutor del proyecto.

A los Ing. Pablo Rovarini, Rosana Hadad, Patricia Nazar, Lucas Cordero, Gustavo

Maigua, Gustavo Juárez y Lic. Carlos Pérez por el asesoramiento brindado. A la Ing. Cristina Rojas, Secretaria académica de la Universidad Tecnológica Nacional Facultad Regional Tucumán, por su valioso aporte de información referente al ámbito de la carrera Ingeniería en sistemas. A la Ingeniera Sonia Brizuela de Cesca, directora de la Dirección de Industria y MiPyME (dependiente del Ministerio de Desarrollo Productivo) de la provincia de Tucumán, por su gran contribución en información del ámbito de las PYMES de Tucumán. Al C.P.N. José Lezanna, coordinador de PYMES en la ciudad de San Isidro de Lules, por su aporte en materia de las PYMES de servicios. Finalmente agradecer a la Universidad Tecnológica Nacional, especialmente la Facultad Regional Tucumán por darme la inestimable oportunidad de formarme como profesional.

Page 4: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 4 -

ÍNDICE

Agradecimientos 3

Resumen 7

Situación Problemática – Planteo del Problema 8

Objetivo General 8

Objetivos Específicos 8

CAPITULO 1 – PYMES

1.1 Hablemos de PYMES. 10

1.2 Tipos de Empresas según su actividad. 11

1.3 Situación actual de las PYMES. 12

1.4 PYMES y necesidades de software. 12

1.5 PYMES de Servicios de RRHH y requerimientos en común. 13

CAPITULO 2 – El profesional de sistemas de informac ión

2.1 Carrera de Ingeniería en Sistemas de Información. 14

2.2 Perfil profesional del Ingeniero en Sistemas de Información. 14

2.3 El Ingeniero en Sistemas de la Universidad Tecnológica Nacional. Incumbencias.

15

CAPITULO 3 – Software Libre

3.1 Software libre. 16

3.2 Software propietario. 17

3.3 Software libre versus software propietario. 17

3.3.1 Ventajas del software libre 17

3.3.2 Desventajas del software libre 20

3.3.3 Ventajas del software propietario 21

3.3.4 Desventajas del software propietario. 21

3.4 Modelos de software libre y no libre. 23

3.5 Licencias. Licencias de software libre. 26

3.5.1 Licencias para software. 26

3.5.1.1 Licencias de software libre compatibles con la GPL. 26

3.5.1.2 Licencias de software libre incompatibles con la GPL. 27

3.5.1.3 Licencias de software no libre. 27

3.5.2 Licencias para documentación. 28

3.5.2.1 Licencias de documentación libre. 28

3.5.2.2 Licencias de documentación no libre. 29

Page 5: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 5 -

3.5.3 Licencias para trabajos aparte del software y la documentación.

29

3.6 Evolución. El futuro del software libre. 29

3.7 PYMES y el software libre. 30

CAPITULO 4 – Caso de Estudio

4.1 Selección de Metodologías de Trabajo. 33

4.2 Alternativas de solución. 33

4.3 Desarrollo del sistema. 34

CAPTITULO 5 – Análisis del sistema

5 Análisis del Sistema. 35

5.1 Estructura del sistema. 35

5.2 Presentación General del Sistema. 35

5.3 Casos de Uso. 37

5.4 Descripción Formal de los Casos de Uso. 37

5.5 Curso normal de eventos y cursos alternos. 39

5.6 Diagrama de Casos de Uso. 43

5.7 Modelo Conceptual. 44

5.7.1 Conceptos. 44

5.7.2 Modelo conceptual simplificado. 44

5.7.3 Modelo conceptual extendido. 45

5.7.4 Glosario. 46

5.8 Diagramas de Secuencia. 47

5.9 Contratos. 48

5.9.1 Contratos para C.U. Búsqueda de Empleados. 48

5.9.2 Contratos para C.U. Alta de Empleados. 48

5.9.3 Contratos para C.U. Registración de Cursos. 49

5.9.4 Contratos para C.U. Modificación de Empleados. 50

CAPTITULO 6 – Diseño del sistema

6 Diseño del sistema 51

6.1 Casos Reales de Uso 51

6.1.1 C.U. Búsqueda de Empleados 51

6.1.2 C.U. Alta de Empleados. 52

6.1.3 C.U. Registración de Cursos. 54

Page 6: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 6 -

6.1.4 C.U. Modificación de Empleados. 56

6.2 Diagramas de Colaboración o de Interacción 58

6.2.1 Diag. de Colab. para C.U. Búsqueda de Empleados 58

6.2.2 Diag. de Colab. para C.U. Alta de Empleados. 59

6.2.3 Diag. de Colab. para C.U. Registración de Cursos. 59

6.2.4 Diag. de Colab. para C.U. Modificación de Empleados 60

6.3 Diagrama de Clases 61

6.4 Selección de las tecnologías libres 62

CAPITULO 7 – Consideraciones Finales

Resultados obtenidos. 63

Conclusiones. 64

Referencias. 65

Anexos

Anexo I – Glosario de Términos. 67

Anexo II – Versiones del software utilizado para el desarrollo de la aplicación

69

Anexo III – Modelo de la Base de Datos. Descripción de las tablas de la Base de Datos

70

Page 7: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 7 -

RESUMEN En la actualidad, con la masiva aparición de pequeñas y medianas empresas (PYMES) y por consiguiente, un fuerte aumento de la competencia, estas deben buscar la forma de obtener una ventaja competitiva. Se sabe además que toda empresa tiene necesidades de sistematizar sus procesos. Estas necesidades van desde detalles menores hasta cuestiones muy complejas, que, atendidas a su debido tiempo y por personas capacitadas, pueden convertir dichas necesidades en un sistema informático que las satisfaga. El interrogante siempre está basado entorno a las posibilidades que ofrecen las tecnologías actuales y a las capacidades de las personas que pueden llevar a cabo la elaboración de sistemas informáticos. El problema se amplifica si se considera el ramo de las PYMES de servicios.

En este proyecto, se propone por tanto, demostrar que es posible dar una solución viable al problema detectado a través de un proyecto de desarrollo de software guiado por un profesional de sistemas de información y haciendo uso de software libre.

Page 8: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 8 -

SITUACIÓN PROBLEMÁTICA. PLANTEO DEL PROBLEMA

El tema que trata este proyecto es candente en la actualidad, porque abundan una gran cantidad de PYMES en todo el mundo, todas ellas con necesidades de Información. En muchas ocasiones las empresas optan por utilizar sistemas existentes que no cubren sus expectativas ya que muchas veces están diseñados para otros fines, los cuales son distintos a los de la propia empresa.

El caso de estudio que da soporte a la idea central del proyecto gira entorno al desarrollo de un sistema orientado al sector de servicios de recursos humanos (selección de personal, asignación de puestos según especialización, gestión de capacitaciones). Se utilizará para ello sólo software libre. OBJETIVO GENERAL

Demostrar que a través de la Ingeniería en Sistemas y de la utilización del Software

Libre se pueden obtener soluciones viables aplicables a las empresas PYME de servicios.

OBJETIVOS ESPECÍFICOS En definitiva podemos resumir los aspectos mencionados en base a los siguientes

objetivos: • Demostrar las ventajas de la utilización del Software Libre como alternativa de

solución para empresas PYME. • Motivar a despertar el interés en el área del software libre para llevar adelante

proyectos de software orientados a PYMES de servicios.

• Que los Ingenieros en Sistemas conozcan las necesidades informáticas que rodean a las PYMES de servicios.

• Que las PYMES conozcan las competencias y capacidades del Ingeniero en

Sistemas de Información como profesional capaz de dar solución a sus necesidades de Información.

• Demostrar mediante la implementación de un sistema, que es viable su aplicación

en una empresa PYME como solución a sus necesidades de información.

• Hacer extensivos a la comunidad científica y académica los resultados y conclusiones obtenidos, como así también a aquellos organismos posiblemente interesados

Page 9: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 9 -

MARCO TEÓRICO

Page 10: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 10 -

CAPÍTULO 1 - PYMES 1.1 Hablemos de PYMES Las pequeñas y medianas empresas (conocidas también por el acrónimo PYMES) son empresas que tienen ciertas características que la distinguen, y tienen dimensiones con ciertos límites ocupacionales y financieros prefijados por los Estados o Regiones. Son entidades que poseen lógicas, intereses, culturas y un espíritu emprendedor particular.

Para determinar si una empresa es del tipo pequeña o mediana se utilizan diversos criterios que varían según la estructura industrial y empresarial de cada país o Región que se considere, a saber:

• Cantidad de empleados. • Cálculos de coeficientes económicos. • Valor de activos. • Capacidad operativa. • Formalidad. • Volumen anual de ventas. En el primer caso, una empresa se ubica dentro de una clasificación dependiendo del

número de empleados que la integran. Por cálculos de coeficientes económicos se entiende el proceso de utilizar diversas

fórmulas financieras dictadas por el país o región en cuestión. Por el valor de los activos hace referencia al precio que se pagaría en el mercado

para comprar los activos o el equipo. De acuerdo a su capacidad operativa está vinculada a la capacidad de producción y

la capacidad comercial; aquellos que son resultado de los negocios a los que se orienta la empresa.

Por la formalidad se refiere a si tiene un manejo gerencial, estructura organizacional o si se maneja como una empresa unifamiliar.

Y por último se puede clasificar por su volumen anual de ventas como es el caso de nuestro país; tal como lo define la Resolución nº 21/2010 de la Secretaría de la Pequeña y Mediana Empresa y Desarrollo Regional (SEPyME) dependiente del Ministerio de Industria de la República Argentina, las empresas Pyme se clasifican según las ventas totales anuales, es decir el valor de las ventas que surja del promedio de los últimos tres (3) balances o información contable equivalente adecuadamente documentada, excluidos el impuesto al Valor Agregado, el impuesto interno que pudiera corresponder y deducidas las exportaciones que surjan de los mencionados balances o información contable hasta un máximo del treinta y cinco por ciento (35%) de dichas ventas.

Sector

Tamaño Agropecuario Industria y Minería Comercio Servicios Construcción

Micro Empresa $ 610.000 $ 1.800.000 $ 2.400.000 $ 590.000 $ 760.000

Pequeña Empresa $ 4.100.000 $ 10.300.000 $ 14.000.000 $ 4.300.000 $ 4.800.000

Mediana Empresa $ 24.100.000 $ 82.200.000 $ 111.900.000 $ 28.300.000 $ 37.700.000

Page 11: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 11 -

La resolución mencionada en el párrafo precedente surge modificaciones cada cierto tiempo y esta en función de las políticas gubernamentales de fomento y desarrollo de manera igualitaria. Si no se hicieran tales modificaciones, podría ocurrir por ejemplo, que una PYME que tiene poco volumen de ventas, pueda acceder a algún programa de financiación y las otras no, lo que llevaría la situación a una competencia desigual. De esto se desprende que el gobierno recurre a la combinación de dos o más formas de clasificación con el objetivo de incluir a todas las empresas en sus programas de financiación.

Podemos ver en el cuadro anterior, la unidad de negocio llamada Micro Empresa (de ahí que usualmente pueda aparecer el término MIPYME). Este tipo de empresa surge a partir de la iniciativa de promover fondos de financiación para estas empresas. Entonces, según el volumen que factura tiene un correspondiente limite de financiación y promociones que le sirven de soporte desde las entidades financieras y del mismo gobierno nacional. 1.2 Tipos de Empresas según su actividad Vamos a describir las ramas de actividad de las empresas PYME de nuestro país.

Según el tipo de actividad que ejecutan las empresas PYMES de argentina, podemos dividirlas en los siguientes sectores:

• Agropecuario. • Industria manufacturera. • Minería. • Comercial. • Servicios. • Construcción. Al respecto diremos que los sectores agropecuario, de la industria manufacturera, el

comercial y el de servicios son los que concentran la mayor cantidad de empresas de nuestro medio.

En la provincia de Tucumán la situación es similar. En el presente trabajo nos vamos a referir exclusivamente al sector de Servicios,

también llamado sector terciario. Cada vez con mayor frecuencia se crean empresas dedicadas a ofrecer sus

servicios, que van desde la selección de personal calificado a grandes empresas, hasta servicios financieros ya sea para pequeños o grandes clientes.

Además existe una gran diversidad de servicios muy particulares que muchas veces surgen para cubrir las necesidades de las grandes empresas.

El sector terciario está compuesto de las áreas suaves de la economía tales como: • Seguros. • Turismo. • Actividades financieras o Derecho financiero. • Comercio. • Al por mayor. • Al por menor. • Educación. • Restaurantes. • Franquicias. • Industria del ocio incluyendo la industria de grabación, música, radio, televisión y

cine. • Informática y tecnología. • Transporte. • Cuidados personales y de salud. • Servicios a empresas como consultoría, inversión y asesoramiento jurídico.

Page 12: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 12 -

• Comunicaciones (prensa, televisión, radio e Internet) A su vez dentro del sector “servicios a empresas como consultoría” tenemos los

servicios a empresas dedicadas a trabajar con recursos humanos. Nuestro foco de atención se centra en las empresas que se encargan de la selección de personal.

En una empresa de dimensiones como las de las PYME, el seguimiento correcto de sus recursos humanos puede determinar el éxito de la misma. Esto se debe a que un margen de error grande le puede resultar en el cierre del negocio principalmente porque no se tiene el personal adecuado en cada puesto de trabajo, lo que lleva a una mala utilización de estos recursos, tal vez los más importantes de toda la empresa. 1.3 Situación actual de las PYMES Las PYMES cobran cada día más importancia en cada país del mundo; de hecho hoy en día, las políticas de los Estados se encaminan a darle un mayor valor a este tipo de empresas por lo que representan para sus respectivas economías, en particular en la generación de empleos. A continuación podemos ver los motivos por los que estas empresas toman cada vez más protagonismo:

• Tienen directa relación con la generación de puestos de trabajo. • Mejoran la distribución del ingreso. • Aportan al desarrollo de la economía regional. • Se pueden adaptar fácilmente a los ciclos de actividad. • Sirven de soporte a las grandes empresas.

En Argentina las PYMES constituyen el 99,6% de las unidades económicas

produciendo el 70% de todos los puestos de trabajo del país y el 40% del valor agregado. Existen 85 PYMES industriales cada 100.000 habitantes, un porcentaje superior al que se verifica en Japón, Reino Unido, Italia, España y Alemania.

En tanto a las exportaciones las PYMES representan el 15% del volumen total. Desde el año 2003 hasta la actualidad, la cantidad de pequeñas y medianas

compañías que venden al exterior creció un 20%. Los actuales problemas por los que se enfrentan las PYMES giran entorno al difícil

acceso a las líneas de crédito, el peso de los impuestos y la deficiencia en infraestructura. Actualmente el nuevo contexto económico volvió a hacer posible el desarrollo de

estas empresas sin mayores obstáculos. En Argentina, las PYMES supieron aprovechar las ventajas que surgieron a partir de

la devaluación en el año 2001/2002. Ventajas en el sentido de obtener una importante participación en el mercado interno aprovechando la sustitución de importaciones e incluso, incrementando su presencia en mercados externos.

Son cada vez más frecuentes las iniciativas de gobierno para promover la generación de nuevas empresas y el mantenimiento y mejora de las ya existentes, tales como: mejorar el acceso al crédito y el costo del mismo, programas de capacitación a empleados y dirigentes, planes de acción para mejorar la gestión y la competitividad, programas destinados a jóvenes empresarios y a grupos asociativos de empresas, entre otros. 1.4 PYMES y necesidades de software Toda empresa sin importar sus dimensiones o clasificación necesita y hace uso constante de información. Muchas veces o la mayoría de las veces esta no está disponible en el momento requerido. Es de vital importancia contar con un mecanismo que organice la información y la mantenga disponible en cualquier momento y lugar. Cuando hablamos de necesidades de software hablamos de necesidades de gestión de información, de orden en el proceso de gestión del negocio, de información certera y

Page 13: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 13 -

oportuna, entre otras. Estas necesidades pueden ser encapsuladas y trabajar sobre ellas hasta obtener la solución al problema. Ello se puede lograr a través de la implementación de un software o aplicación. Aplicado esto a las empresas PYME le permite no sólo estar al corriente del uso de las tecnologías de la información sino que le aporta ventajas competitivas respecto de la competencia. Estas empresas, cuando piensan incorporar un software que sirva de soporte a la gestión de su negocio en general evalúan los siguientes factores:

• Costos iniciales y costos anuales de mantenimiento. • Coincidencia entre los paquetes de software y la plantilla de empleados. • Posibilidad de actualizarlo. • Mayor eficacia y ahorro de tiempo. • Compatibilidad con sistemas actuales. • Facilidad de uso. • Disponibilidad de apoyo técnico. • Necesidad de adaptación. • Tiempo requerido para su implantación. • Tiempo de capacitación requerido para recursos humanos y nómina de

empleados.

En el capítulo 3 se explica como estos factores se cumplen a favor de la empresa cuando se utiliza software libre. 1.5 PYMES de Servicios de RRHH y requerimientos en común Haciendo referencia a las PYMES de servicio de recursos humanos y a través de datos relevados a empresas del medio se obtuvo como resultado un conjunto de requerimientos o necesidades de información en común. Las mismas se detallan a continuación:

• Distinguir la información relevante de información superflua. • Determinar mediante algún mecanismo la asignación de puestos según las

capacidades que posea un empleado. • Permitir el control permanente de los recursos humanos de la empresa. • Permitir el seguimiento de capacitación de los empleados. • Sistema de utilización sencilla. • Posibilidad de mejorar la gestión de los empleados. • Capacitación permanente en materia de tecnologías de información. • Seguridad de la información de la empresa. • Mayor organización. • Poseer un historial de actividades realizadas. Otras necesidades que se identificaron se refieren a cuestiones de capacitación en

conceptos básicos de informática, tanto en los aspectos software como de hardware. Esto se debe a que en muchos casos los dueños de las empresas desconocen el uso y la aplicación de tecnología en ellas y por falta de asesoramiento.

Page 14: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 14 -

CAPITULO 2 – Profesional de Sistemas de Información 2.1 Carrera de Ingeniería en Sistemas de Informació n

La carrera de Ingeniería en Sistemas de Información se puso en vigencia en la Universidad Tecnológica Nacional en el año 1985. Después de más de veinte años y como consecuencia de la experiencia acumulada por las distintas Facultades Regionales en las que se dicta y atendiendo a las necesidades de la sociedad, se produjeron entre otras, una transformación académica de la carrera otorgando al profesional egresado de esta casa de altos estudios de las herramientas adecuadas y actualizadas para enfrentar los desafíos del mundo actual. Esto produce que el profesional se vea con mayores posibilidades de inserción laboral además de la característica inherente de un ingeniero que es la y generar cambios.

El objetivo principal de la carrera de Ingeniería en Sistemas de Información es formar un ingeniero tecnológico capacitado para desarrollar sistemas de ingeniería y tecnología afines a los existentes y producir innovaciones.

Por las capacidades que adquiere, un Ingeniero en Sistemas está en condiciones de analizar y evaluar requerimientos de procesamiento de información, para luego, diseñar, desarrollar, organizar, implementar y controlar sistemas informáticos, al servicio de múltiples necesidades de información, de las organizaciones y de todas las profesiones con las que deberá interactuar con versatilidad y vocación de servicio interdisciplinario.

La implementación constante de actualizaciones al contenido curricular de la carrera, como respuesta a las necesidades actuales de la sociedad, permiten que el profesional formado en la Universidad Tecnológica Nacional se integre sin dificultades en cualquier ámbito laboral y en general en cualquier proyecto que se requiera de su servicio. 2.2 Perfil profesional del Ingeniero en Sistemas de Información.

A través de su formación analítica, el Ingeniero en Sistemas de Información es un profesional es capaz de interpretar y resolver problemas mediante el uso de metodologías de sistemas y tecnologías de procesamiento de información. Además, debido a su capacidad para el autoaprendizaje y para adaptarse rápidamente a los cambios tecnológicos el Ingeniero puede encontrar mayor número de soluciones y mas eficientes.

Adquiere capacidades que le permiten integrar la información proveniente de distintos campos disciplinarios concurrentes a un proyecto común.

La capacidad adquirida en la Universidad Tecnológica Nacional le permite afrontar con solvencia el planeamiento, desarrollo, dirección y control de los sistemas de información.

Es poseedor de conocimientos de diversas áreas como recursos humanos, recursos físicos y de administración permitiéndole administrarlos correctamente durante el desarrollo de proyectos de sistemas de información.

Tiene capacidades que lo habilitan para el desempeño de funciones gerenciales en concordancia con su formación profesional.

Por su preparación es apto para abordar proyectos de investigación y desarrollo, integrando por consiguiente equipos interdisciplinarios en cooperación, o bien asumiendo el liderazgo efectivo en la coordinación de los aspectos técnicos y metodológicos de los mismos.

Posee la capacidad de transmitir eficientemente el conocimiento debido a la enseñanza recibida y a los métodos de aprendizaje que adquirió.

Estas y otras características inherentes al profesional hacen que el Ingeniero en Sistemas se ubique en una posición relevante.

Page 15: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 15 -

2.3 El Ingeniero en Sistemas de la Universidad Tecn ológica Nacional. Incumbencias.

El Ingeniero en Sistemas de Información posee muchas incumbencias asociadas a su profesión. Su preparación en la universidad le confieren la propiedad de desempeñar cualesquiera de ellas. A continuación se mencionan las incumbencias.

Según la Ordenanza N° 622/88 (Resolución Ministeria l N° 593/91) un Ingeniero en

Sistemas de la Universidad Tecnológica Nacional está habilitado para:

• Participar en la toma de decisiones estratégicas de una organización y asesorar, en concordancia con las mismas acerca de las políticas de desarrollo de sistemas de información.

• Evaluar, clasificar y seleccionar proyectos de sistemas de información y evaluar y seleccionar alternativas de asistencia interna.

• Planificar, efectuar y evaluar los estudios de factibilidad inherentes a todo proyecto de diseño de sistemas de información y de modificación o reemplazo de los mismos, así como los sistemas de computación asociados.

• Planificar, dirigir, ejecutar y controlar el relevamiento, análisis, diseño, desarrollo, implementación y prueba de sistemas de información.

• Evaluar y seleccionar los sistemas de programación disponibles con miras a su utilización en sistemas de información.

• Evaluar y seleccionar, desde el punto de vista de los sistemas de información, los equipos de procesamiento y comunicación y los sistemas de base.

• Organizar y dirigir el área de sistemas; determinar el perfil de los recursos humanos necesarios y contribuir a su selección y formación.

• Participar en la elaboración de programas de capacitación para la utilización de sistemas de información.

• Determinar y controlar el cumplimiento de las pautas técnicas que rigen el funcionamiento y la utilización de recursos informáticos en cada organización.

• Elaborar métodos y normas a seguir en cuestiones de seguridad y privacidad de la información procesada y/o generada por los sistemas de información; participar en la determinación de las acciones a seguir en esta materia y evaluar su aplicación.

• Elaborar métodos y normas a seguir en cuestión de salvaguardia y control, de los recursos físicos y lógicos, de un sistema de computación; participar en la determinación de las acciones a seguir en esta materia y evaluar su aplicación.

• Desarrollar modelos de simulación, sistemas expertos y otros sistemas informáticos destinados a la resolución de problemas y asesorar en su aplicación.

• Realizar auditorias en áreas de sistemas y centros de cómputos así como en los sistemas de información utilizados.

• Realizar arbitrajes, pericias y tasaciones referidas a los sistemas de información y a los medios de procesamiento de datos.

• Realizar estudios e investigaciones conducentes a la creación y mejoramiento de técnicas de desarrollo de sistemas de información y nuevas aplicaciones de la tecnología informática existente.

En la provincia de Tucumán se estima que existen aproximadamente 500 profesionales de sistemas entre Analistas de Sistemas e Ingenieros en Sistemas de Información recibidos de la Facultad Regional Tucumán.

Por otro lado, el reconocimiento de los profesionales de sistemas está asociado a la importancia y relevancia que las organizaciones dan a la información, difícil tarea por tratarse de un bien estratégico pero intangible.

El reconocimiento mencionado está en ascenso, ante la demostración de idoneidad y eficiencia de la mayoría de los graduados de la UTN que se desempeñan en el medio.

(Ing. Crisitina Rojas, entrevista, 25 de Septiembre 2010)

Page 16: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 16 -

CAPÍTULO 3 – Software Libre 3.1 Software Libre

La expresión “Software Libre” cada vez toma mayor fuerza. Pero qué es el Software Libre?

Según el sitio oficial de la Free Software Foundation (FSF, Fundación para el Software Libre) cuando nos referimos al software libre, hablamos de una cuestión de libertad, no de precio. Para comprender el concepto, se debería pensar en "libre" como en "libre expresión", no como en "barra libre".

El software libre es una cuestión de la libertad de los usuarios de ejecutar, copiar, distribuir, estudiar, cambiar y mejorar el software. Más precisamente, significa que los usuarios de programas tienen las cuatro libertades esenciales.

En 1996, la Fundación del Software Libre enunció las libertades del software libre: • La libertad de ejecutar el programa, para cualquier propósito (libertad 0). • La libertad de estudiar cómo trabaja el programa, y cambiarlo para que haga lo

que uno quiera (libertad 1). El acceso al código fuente es una condición necesaria para ello.

• La libertad de redistribuir copias para que pueda ayudar al prójimo (libertad 2).

• La libertad de distribuir copias de sus versiones modificadas a terceros (la 3ª

libertad). Si lo hace, puede dar a toda la comunidad una oportunidad de beneficiarse de sus cambios. El acceso al código fuente es una condición necesaria para ello.

Un programa es software libre, si los usuarios tienen todas esas libertades.

Entonces, debería ser libre de redistribuir copias, con o sin modificaciones, ya sea gratis o cobrando una tarifa por distribución, a cualquiera en cualquier parte del mundo. Así el ser libre de hacer estas cosas significa, entre otras cosas, que no tiene que pedir o pagar el permiso.

Asimismo debería tener la libertad de hacer modificaciones y usarlas en privado, en el trabajo u obra, sin siquiera mencionar que existen. Si publica sus cambios, no debería estar obligado a notificarlo a alguien en particular, o de alguna forma en particular.

La libertad de ejecutar el programa significa la libertad para cualquier tipo de persona u organización de usarlo en cualquier tipo de sistema de computación, para cualquier tipo de trabajo y propósito, sin estar obligado a comunicarlo a su programador, o alguna otra entidad específica. En esta libertad, el propósito de los usuarios es el que importa, no el propósito de los programadores. Como usuario es libre de ejecutar un programa para sus propósitos; y si lo distribuye a otra persona, también es libre para ejecutarlo para sus propósitos, pero uno no tiene derecho a imponerle sus propios propósitos.

La libertad de redistribuir copias debe incluir las formas binarias o ejecutables del

programa, así como el código fuente; tanto para las versiones modificadas como para las no lo están. (En este sentido distribuir programas en forma de ejecutables, es necesario para que los sistemas operativos libres se puedan instalar fácilmente). Resulta aceptable si no existe un modo de producir una formato binario o ejecutable para un programa específico, dado que algunos lenguajes no incorporan esa característica, pero debe tener la libertad de redistribuir dichos formatos si encontrara o programara una forma de hacerlo.

Para que la 1ª y 3ª libertad, para realizar cambios y publicar versiones mejoradas, tengan sentido; debe tener acceso al código fuente del programa. Por consiguiente, el acceso al código fuente es una condición necesaria para el software libre. El "código fuente" ofuscado no es código fuente real, y no cuenta como código fuente. (Entiéndase por código

Page 17: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 17 -

fuente ofuscado el hecho de escribir el código en forma ininteligible ocultando de esta manera su funcionalidad)

La 1ª libertad incluye la libertad de usar su versión modificada en lugar de la original. Si el programa se entrega con un producto diseñado para ejecutar versiones modificadas de terceros, pero rechaza ejecutar las suyas, una práctica conocida como “tivoization” o “arranque seguro” (mediante listas negras); la 1ª libertad se convierte más en una ficción teórica que en una libertad práctica. Esto no es suficiente. En otras palabras, estos binarios no son software libre, incluso si se compilaron desde un código fuente que es libre.

Una manera importante de modificar un programa es fusionando subrutinas y módulos libres disponibles. Si la licencia del programa dice que no puede fusionar un módulo existente con una debida licencia, así como si le requiere ser el titular de los derechos de autor de lo que agregue, entonces la licencia es demasiado restrictiva para calificarla como libre.

La 3ª libertad incluye la libertad de liberar sus versiones modificadas como software libre. Una licencia también puede permitir otras formas de relicenciarlas, en otras palabras, no tiene que ser una licencia de copyleft. No obstante, una licencia que requiera que las versiones modificadas no sean libres, no se puede considerar como una licencia libre.

Para que estas libertades puedan ser reales, deben ser irrevocables siempre que uno no cometa ninguna equivocación; si el programador del software tiene el poder de revocar la licencia, o de cambiar retroactivamente sus términos, sin que uno se haya equivocado para justificarlo, el software no es libre.

Sin embargo, ciertos tipos de reglas sobre la manera de distribuir software libre son aceptables, cuando no entran en conflicto con las libertades principales. Por ejemplo, el copyleft (definido de manera muy resumida) es la regla en base a la cual, cuando redistribuye el programa, no puede agregar restricciones para denegar a las demás personas las libertades principales. Esta regla no entra en conflicto con las libertades principales; más bien las protege.

La expresión "Software libre" no significa "que no sea comercial". Un programa libre debe estar disponible para el uso comercial, la programación comercial y la distribución comercial. La programación comercial de software libre ya no es práctica poco conocida; tal software libre comercial es muy importante. Puede haber pagado dinero para obtener copias de software libre, o puede haber obtenido copias sin costo. Pero sin tener en cuenta cómo obtuvo sus copias, siempre tiene la libertad de copiar y modificar el software, incluso de vender copias.

Si una modificación constituye una mejora, es un asunto subjetivo. Si sus modificaciones se limitan, en esencia, a los cambios que otra persona considera una mejora, eso no se trata de libertad.

El movimiento del software libre fue creado por Richard Stallman y otros entusiastas.

Richard Matthew Stallman (nació en Manhattan, Nueva York, el 16 de marzo de 1953), con frecuencia abreviado como "rms", es un programador estadounidense y figura relevante del movimiento por el software libre en el mundo. También es creador de la Free Software Foundation (Fundación para el software libre), una organización creada en octubre de 1985 con el propósito de difundir este movimiento. 3.2 Software propietario

Contrario a lo que sucede con el software libre aparece el concepto de software propietario.

El software propietario es cualquier programa que no cumple los criterios de la Fundación para el Software Libre. Propietario significa que alguna compañía o individuo retiene el derecho de autor exclusivo sobre una pieza de programación, al mismo tiempo que niega a otras personas el acceso al código fuente del programa y el derecho a copiarlo, modificarlo o estudiarlo.

Page 18: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 18 -

El término “propietario” se refiere a que está “poseído y controlado privadamente”[6]. No obstante, el programa puede seguir siendo propietario aunque su código fuente se haya hecho público, si es que se mantienen restricciones sobre su uso, distribución o modificación. Por otro lado, el programa se puede considerar no-proprietario, una vez que se haya lanzado con una licencia que permita a otros crear versiones del software modificadas independientemente, sin restricciones onerosas, aun cuando los derechos de autor puedan permanecer en manos de un individuo en particular. Al menos en teoría, se ha cedido el control. 3.3 Software libre versus software propietario.

Ahora bien, nos planteemos el siguiente interrogante: ¿software libre o software propietario?

La respuesta más probable tal vez gire en torno a las ventajas y desventajas derivadas del uso de uno u otro tipo de software.

El software libre posee una serie de ventajas sobre el software propietario más que nada por los derechos que les proporciona a sus usuarios. Partes de estas ventajas son más valoradas que otras según la figura de quien se trate, a saber:

• usuarios particulares, • empresas y • la administración pública. A continuación se explican las ventajas y desventajas de cada tipo de software:

3.3.1 Ventajas del Software Libre

# Ventaja

1

Libre utilización y bajo costo de adquisición: Lo que el usuario adquiere, a través de una erogación monetaria o sin ella, es una licencia respecto de los usos que puede dar a los programas. El software no solo cuesta un precio de adquisición de licencia sino también mantenerlo, operarlo y ajustarlo a los requerimientos. El usuario que adquiere software libre lo hace sin ninguna erogación monetaria o a muy bajo costo y ofrece un conjunto de recursos muy amplios.

2

Innovación permanente: El software libre, tiene como objetivo principal compartir la información, trabajando de manera cooperativa. Aquí aparece la ideología de los defensores del software libre, que enuncia que el conocimiento le pertenece a la humanidad, sin hacer distinciones. Por lo tanto, los usuarios tienen un importante papel al influir de manera decisiva sobre el rumbo que toman los programas ya sea apuntando los errores que quieren que sean corregidos, proponiendo nuevas funcionalidades al programa, o contribuyendo ellos mismos en el desarrollo del software.

3

Menores requisitos de hardware y soluciones mas durables: Existen casos documentados que dan muestra que las soluciones de software libre tienen menores requisitos de hardware, y por lo tanto son mas baratas de implementar. A manera de ejemplo podemos citar el caso del sistema operativo Linux. Si implementamos este sistema como servidor, puede llegar a ser utilizado sin la interfaz grafica, lo que da como resultado el ahorro respecto de un requisito de hardware.

4 Decisiones de la comunidad: El modelo que se sigue en el desarrollo de software libre es un método a través de

Page 19: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 19 -

la cual trabajan de forma cooperativa los programadores que en gran parte son voluntarios y trabajan coordinadamente en Internet. El código fuente de un programa en cuestión esta a la vista de todo el mundo, y son frecuentes los casos en que se reportan errores que alguien ha descubierto leyendo o trabajando con ese código. El proceso de revisión publica al que esta sometido el desarrollo del software libre proporciona un gran dinamismo al proceso de corrección de errores. Los usuarios del programa de todo el mundo, gracias a que disponen del código fuente de dicho programa, pueden detectar sus posibles errores, corregirlos y contribuir a su desarrollo con sus mejoras. Con el software propietario la solución de los errores no llega hasta que el fabricante del programa puede asignar los recursos necesarios para solventar el problema y publicar la solución.

5

No depender de un proveedor: El software libre garantiza una independencia con respecto al proveedor gracias a la disponibilidad del código fuente. Cualquier empresa o profesional, con los conocimientos adecuados, puede seguir ofreciendo desarrollo o servicios para nuestra aplicación. En el mundo del software propietario, solo el desarrollador de la aplicación puede ofrecer todos los servicios, con el software libre, como su denominación lo indica, su uso es libre: todo aquel que lo tiene en su poder puede usarlo cuantas veces quiera, en cuantas maquinas quiera, a los fines que quiera. Uno de los grandes problemas en la industria del software propietario es la dependencia que se crea entre el fabricante y el cliente.

6

Favorecer a la industria local: Si el usuario esta habilitado para ejecutar un programa, pero no para inspeccionarlo ni modificarlo, entonces no puede aprender de el, se vuelve dependiente de una tecnología que no solo no comprende sino que le esta expresamente vedada. Los profesionales que tiene a su alrededor, que podrían ayudarlo a cumplir sus metas, están igualmente limitados: como el funcionamiento del programa es secreto, y su inspección esta prohibida, no es posible arreglarlo. Por este motivo es importante comenzar a utilizar software libre en todos los niveles (ya sea, usuarios particulares, empresas locales, instituciones públicas) y en los casos en que ya se este utilizando no descontinuar su uso. De este modo, se contribuye a la formación de profesionales en nuevas tecnologías y al desarrollo local.

7

Software que se puede adaptar: El software propietario habitualmente se vende en forma de paquete cerrado, que muchas veces no se adapta a las necesidades específicas de empresas y administraciones públicas y privadas. Una gran parte de la industria del software se basa en desarrollar proyectos donde se requiere software personalizado o "a medida". El software libre da la posibilidad, gracias a que disponemos del código fuente, personalizar los programas tanto como sea necesario hasta que cubran exactamente la necesidad requerida. La personalización es un área muy importante en que el software libre puede responder mucho mejor que el software de propiedad a unos costos mucho mas razonables.

8 Sectores de bajos recursos: Los sectores de bajo recurso pueden ver incrementadas sus posibilidades de acceder al software libre al no incurrir en costos de adquisición.

9

El Estado y el software: El Estado esta en una posición particularmente estratégica para beneficiarse con las ventajas del software libre, y también para contribuir a su desarrollo. Si para el sector privado adquirir software libre puede resultar conveniente, se puede deducir que para el Estado esto se debe volver una necesidad.

Page 20: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 20 -

3.3.2 Desventajas del Software Libre

# Desventaja

1

Es mayor la curva de aprendizaje: Es mayor el tiempo y esfuerzo para aprender a utilizar software libre sobre el software propietario. Esto se da principalmente porque el usuario alguna vez utilizó software propietario.

2 El software libre no tiene garantía proveniente del autor o comunidad que desarrolló el programa.

3

Los contratos de software propietario no se hacen responsables por daños económicos, y de otros tipos por el uso de sus programas: El software libre se adquiere o se vende “AS IS” (tal cual) sin garantías explicitas del fabricante, sin embargo, puede haber garantías específicas para situaciones muy específicas.

4

Se necesita dedicar recursos a la reparación de errores: Sin embargo en el software propietario es imposible reparar errores, hay que esperar a que saquen a la venta otra versión. Con lo que se cae en la dependencia nuevamente.

5 No existen compañías únicas que respalden toda la tecnología.

6

Las interfaces gráficas de usuario (GUI) y la multimedia continúan en proceso de estabilización: Sin embargo hay un número cada vez mayor de usuarios que aseguran que las interfaces gráficas más populares en el software libre (KDE, GNOME y el manejador de ventanas WindowMaker) son ya lo suficientemente estables para el uso cotidiano y lo suficientemente amigables para los neófitos de la informática.

7

La mayor parte de la configuración de hardware no es intuitiva: Es necesario poseer conocimientos previos acerca del funcionamiento del sistema operativo y fundamentos del equipo a conectar para lograr un funcionamiento adecuado.

8 Sólo los proyectos importantes y de trayectoria tienen buen soporte, tanto de los desarrolladores como de los usuarios.

9

El usuario debe tener nociones de programación: Sin embargo, existen en la actualidad muchas herramientas visuales que permiten al usuario que no posee demasiado conocimiento técnico llevar a cabo tareas de configuración del sistema de una manera gráfica muy sencilla.

Page 21: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 21 -

3.3.3 Ventajas del Software propietario

# Ventaja

1 Control de calidad establecido: Las compañías que desarrollan software propietario comúnmente poseen departamentos que se encargan del control de calidad de dicho software.

2 Aporte de recursos a la investigación: Una parte importante de los recursos se utilizan para la investigación sobre los usos del producto.

3 Poseen personal altamente capacitado.

4 Uso generalizado por parte de los usuarios: Cuando el software propietario es de una marca conocida es usado por muchas personas.

5 Existe software para aplicaciones muy especificas: Se encuentra software propietario destinado para aplicaciones muy específicas. Es difícil encontrar software similar además del que produce una compañía.

6

Las empresas ofrecen planes de uso a las universidades: En ocasiones las empresas fabricantes de software ofrecen a las universidades planes educativos con importantes descuentos por la adquisición y uso de sus productos.

7

Gran difusión de publicaciones acerca del uso del software: Existe gran cantidad de publicaciones, que dan la posibilidad de facilitar el uso de las tecnologías provistas por las empresas de software propietario. Cabe destacar en este punto que la cantidad de publicaciones que apuntan al software libre va en aumento.

3.3.4 Desventajas del Software propietario

# Desventaja

1 Aprendizaje costoso: En muchas ocasiones resulta difícil aprender a usar el software propietario sin haber incurrido en costos por cursos de capacitación sobre el software en cuestión.

2

El secreto del código fuente: La empresa que desarrolla el software propietario guarda celosamente el secreto de funcionamiento del mismo. Los inconvenientes derivados de esta situación se deben a que en ocasiones resulta riesgosa la utilización del software ya que es como una caja negra, por lo cual se desconoce su funcionamiento y cuyos resultados no se pueden predecir. Además es casi imposible encontrar las razones de un resultado no deseado o erróneo, justamente porque es producido por un componente del software cuyo funcionamiento se desconoce.

3 El soporte técnico es ineficiente: En general el soporte técnico no cubre las expectativas de los usuarios o bien lleva demasiado tiempo encontrar una respuesta satisfactoria.

4

En el caso de haber necesidades particulares resulta ilegal o costosa la adaptación de un modulo del software propietario: Si una empresa que utiliza el software tiene necesidades particulares y es de vital importancia incluir la modificación al sistema original, es necesario pagar una elevada suma de dinero a la compañía desarrolladora del software, para que sea esta quien lleve a cabo la modificación a su propio ritmo de trabajo y sujeto a su propio calendario de proyectos.

Page 22: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 22 -

5

La compañía desarrolladora del software posee el derecho exclusivo de innovación: Si a alguien se le ocurre una idea innovadora respecto a una aplicación propietaria, este tiene que optar entre escribir desde cero su propia versión de una aplicación equivalente o venderle la idea a la compañía propietaria de la aplicación.

6 Las copias son ilegales si no se poseen las licencias para tal efecto: No se permite hacer copias del software propietario si no se contratan antes, las licencias necesarias para ello.

7

No se permite compartir: Supongamos que una dependencia de gobierno tiene un sistema de tecnología propietaria funcionando de manera exitosa, esta no lo puede compartir con otras dependencias a menos que cada una de ellas contrate la cantidad de licencias necesarias.

8

Peligro de quedar sin soporte técnico: En caso que la compañía que desarrolló el software propietario quiebre, el soporte técnico por consiguiente desaparece, además de desaparecer la posibilidad de tener versiones mejoradas de dicho software. Los clientes que contrataron licencias para utilizar ese software quedan abandonados sin soporte alguno.

9

Descontinuación de una línea de software: Si llegara a ocurrir que una compañía desarrolladora de software es adquirida por otra mas grande, es probable que esa línea de software no se siga produciendo además de no volver a tener una modificación futura.

10 Dependencia respecto de los proveedores: En general, tanto el gobierno como las entidades privadas, se hacen dependientes de un solo proveedor.

11

Imposibilidad de crecimiento de la industria nacional respecto del desarrollo de software: Comparado con las industrias extranjeras, la industria local ve anulada su posibilidad de desarrollo en este ámbito ya que por lo general las aplicaciones de consumo masivo se desarrollan en otros países.

12

Requisitos de hardware: En el software propietario, el autor puede decidir en un momento dado no continuar el proyecto para una cierta plataforma, para un hardware que considera antiguo, o descontinuar el soporte para una versión de su software.

De la investigación surge que una de las regiones en el mundo que en la actualidad

aprovechan y estimulan el software libre es Latinoamérica, en donde los elevados precios del software comercial convencional alcanza precios muy elevados.

Países como Argentina, Chile, Ecuador, México, Venezuela, República Dominicana, Brasil y Cuba, encuentran el apoyo de sus administraciones públicas para la migración de sus servidores y servicios a software libre.

Actualmente se están reportando cada vez más casos de control a las empresas respecto del uso del software. Tales controles son ordenados por la justicia a pedido de la empresa propietaria del software que sospecha del uso ilegal de sus productos.

Según el último estudio de IDC, el 71% del software en Argentina es ilegal. En el contexto latinoamericano, la Argentina se encuentra entre los 10 países con

mayor nivel de piratería. También en el 2009, por orden de la justicia civil, fueron ordenadas 136 diligencias

probatorias destinadas a constatar el posible uso de software ilegal en las instalaciones informáticas de importantes empresas del rubro pesquero, de cereales, del turismo, agropecuario, inmobiliario, de la construcción, financiero, de corredores de cereales y de autopartes, ubicadas en Capital Federal, el gran Buenos Aires y en las ciudades de Córdoba, Mendoza, Mar del Plata, Buenos Aires, Santa Fe, Tres arroyos, Bariloche, Tucumán, Salta, Neuquén, y Rosario entre muchas otras.

A nivel regional América Latina es la tercera región con mayor índice de piratería (63%) del mundo.

Page 23: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 23 -

Como contraposición veamos el siguiente gráfico donde se muestra el impacto del software libre (u open source) a nivel mundial.

3.4 Modelos de software libre y no libre Se puede decir que los antecedentes del software libre datan alrededor de los años 60”s y 70′s, cuando era común el intercambio de software entre programadores y desarrolladores.

Luego, al pasar de los años y a medida que la informática empezó a cobrar más relevancia, las compañías fabricantes de computadoras obligaron al usuario a aceptar sus sistemas operativos privativos (aún cuando estos presentaban algunos fallos).

Esta es una de las principales causas que motivaron la aparición de diferentes tipos de software.

Sumado esto a la creación del movimiento del software libre a través de Richard Stallman, como se mencionó anteriormente.

Observemos a continuación las categorías de software libre y no libre y una explicación de cada una de ellas:

• Software libre • Código abierto (Open source) • Software de dominio público • Software protegido con copyleft • Software libre no protegido con copyleft • Software cubierto por la GPL • Software no libre • Software semilibre • Software privativo • Shareware • Freeware • Software privado (a medida) • Software comercial

Page 24: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 24 -

En esta categorización se puede ubicar la totalidad de tipos de software existentes

en el mundo excepto situaciones particulares. A continuación se describe cada una de ellas:

• Software libre Como se mencionó anteriormente, el software libre es software con autorización para

que cualquier individuo o empresa pueda usarlo, copiarlo y distribuirlo, ya sea con o sin modificaciones, de manera gratuita o por medio de una retribución. Cabe aclarar que en particular, esto significa que el código fuente debe estar disponible.

• Software de código abierto (Open source) Es común utilizar la expresión software de código abierto para hacer referencia, más

o menos, a la misma categoría a la que pertenece el software libre. Pero, no son exactamente el mismo tipo de software: en el primer tipo existen algunas licencias que se consideran demasiado restrictivas, y hay licencias de software libre que los partidarios del “open source” no han aceptado. Aún así, las diferencias entre lo que implican ambas categorías son pocas: casi todo el software libre es de código abierto, y casi todo el software de código abierto es libre.

Es recomendable usar la expresión “software libre” porque se refiere a libertad; se debe hacer la salvedad porque la expresión “código abierto” no lo hace.

• Software de dominio público Este software es el que no está protegido por derechos de autor. Viene a ser un caso

especial de software libre no protegido con copyleft, lo que hace alusión a que algunas copias o versiones modificadas del software original (o el que se tome como punto de partida) pueden no ser completamente libres.

Hay casos en que un programa ejecutable puede ser de dominio público sin que su código fuente esté disponible para el público. Este software no cae en la categoría de software libre, ya que para que lo sea es preciso que se pueda acceder al código fuente.

Por lo mencionado en los párrafos anteriores, es necesario mencionar que la mayor parte del software libre no es software de dominio público; ya está protegido por derechos de autor, y son estos los que ofrecen el permiso “legal” para que cualquiera lo emplee en forma libre haciendo uso de una licencia de software libre.

• Software protegido con copyleft El software que está protegido con copyleft es un tipo de software libre en cuyos

términos de distribución se asegura que todas las copias de todas las versiones del mismo, son software libre. Si un tercero desea agregar un requisito adicional sólo deben estar orientados a aumentar la protección del software) y exige de igual manera que el código fuente agregado sea público.

• Software libre no protegido con copyleft Esta categoría incluye la autorización del autor para redistribuir y modificar el

software, así como el permiso para añadirle restricciones adicionales. Que un programa sea libre pero no esté protegido con copyleft, significa que algunas

copias o versiones modificadas del mismo pueden no ser completamente libres. Un individuo o empresa de software podría compilar el programa, con o sin modificaciones, y distribuir el archivo ejecutable como un producto de software privativo (o propietario).

Page 25: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 25 -

• Software cubierto por la GPL La GPL (General Public License/Licencia Pública General) de GNU es un conjunto

específico de términos de distribución empleados para proteger un programa con copyleft.

• Software no libre En este tipo recae cualquier software que no es libre. Esto incluye al software

semilibre y el software privativo.

• Software semilibre En esta categoría aparece el software que no es libre, pero con la característica que

incluye una autorización para que los particulares o empresas hagan uso de el, lo copien, lo distribuyan y lo modifiquen (incluyendo la distribución de versiones modificadas) con la condición que sea sin propósitos lucrativos.

• Software privativo Se mencionó con más detalle esta definición en el apartado que describe al software

propietario. El software privativo es software que no es libre ni semilibre. Su uso, redistribución o

modificación están prohibidos, requieren que solicite una autorización, o está tan restringido que de hecho no puede hacerlo libremente.

• Freeware El término freeware es usado en forma general para hacer referencia a software que

se puede distribuir pero no modificar (y por ende el código fuente no está disponible). Este software no es libre. Por consiguiente, se recomienda no utilizar el término freeware para referirse al software libre.

• Shareware Este tipo de software es el que permite redistribuir copias del mismo, pero que por

cada copia utilizada, el usuario debe abonar un cargo por cada licencia. Este software no es software libre, ni aún semilibre. Esto se debe a dos motivos: • No se permite realizar una copia de shareware e instalarla sin incurrir en un cargo

por la licencia correspondiente. • En la mayor parte del software tipo shareware, el código fuente no está disponible;

por ende, un particular o empresa no puede modificar el programa bajo ninguna forma.

• Software privado El software privado, o como se conoce normalmente “software a medida”, es aquel

que se desarrolla para un usuario (generalmente una organización o una compañía). El usuario lo tiene en su poder y lo utiliza, y no lo libera al público ni en forma de código fuente ni como binario.

• Software comercial Este tipo de software es aquel que desarrolla una empresa que pretende obtener

dinero a partir de su utilización. Cabe aclarar que “Comercial” y “Privativo” no es lo mismo.

Page 26: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 26 -

La mayor parte del software comercial es privativo, pero hay software libre comercial, y hay software no libre no comercial. 3.5 Licencias. Licencias del software libre

Primeramente diremos que una licencia de software es un contrato que vincula al licenciante (llámese autor o titular de los derechos de explotación o distribución) y al licenciatario del programa informático (llámese usuario consumidor o usuario profesional o empresa), para utilizar el software cumpliendo una serie de términos y condiciones establecidas dentro de las cláusulas del mismo.

Particularmente una licencia de software libre contiene características distintivas respecto del software no libre.

En el modelo de licenciamiento libre, se confiere al cliente el derecho al uso irrestricto del programa (sin limitar, por ejemplo, la cantidad de computadoras en las que lo ejecutará ni la cantidad de usuarios del programa), como así también la facultad de inspeccionar sus mecanismos y realizar las modificaciones que considere pertinentes para adaptarlo a sus necesidades.

Las licencias se clasifican según ciertas cuestiones claves, a saber:

• Si puede ser considerada una licencia de software libre. • Si es una licencia de tipo copyleft.

• Si es compatible con la GNU GPL (esto significa que se puede combinar un

módulo que fue distribuido bajo esa licencia con otro cubierto por la GPL para hacer un programa más grande).

• Si causa cualquier otro problema particular.

En el sitio Web de la GNU se puede consultar cualquier cuestión referente a las

licencias a través del sitio http://www.gnu.org/licenses/license-list.es.html o escribiendo un correo electrónico a [email protected] para recibir soporte.

Debido a la inmensa cantidad de licencias proliferantes en el mundo del software libre, vamos a exponer a continuación las más importantes. 3.5.1 Licencias para software 3.5.1.1 Licencias de software libre compatibles con la GPL

Hay licencias calificadas como libres que no son para nada compatibles con la GPL. Esto complica la reutilización de código; por este motivo se motiva a los desarrolladores de software libre a licenciar su código bajo GPL o licencias compatibles con la GPL, pudiendo por consiguiente aprovechar las ventajas derivadas.

Las más conocidas son: • La Licencia Pública General de GNU, o GNU GPL de manera abreviada:

Es una licencia de software libre, y de tipo copyleft. • La Licencia Pública General Reducida de GNU, o GNU LGPL de manera abreviada:

Esta es una licencia de software libre, pero no tiene un copyleft fuerte, porque permite que el software se enlace con módulos que no son libres.

Page 27: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 27 -

• La licencia de Guile: Consiste en la GNU GPL, agregándole además una declaración especial que permite

enlazar con software no libre. Por tanto no tiene un copyleft fuerte, pero es compatible con la GNU GPL. • El dominio público:

Aquí hay ausencia de una licencia. Esto es debido a que el contenido en cuestión no está protegido y no necesita licencia. En los casos llevados a la práctica, si un trabajo está en el dominio público, es como si tuviera una licencia de software libre totalmente permisiva y sin copyleft. Sin embargo es compatible con la GNU GPL. 3.5.1.2 Licencias de software libre incompatibles c on la GPL

Contrario al caso anterior hay licencias que no son compatibles con la enunciada por la GPL. Estas son licencias de software libre pero no son compatibles con la GNU GPL.

En este subgrupo se pueden mencionar: • La Licencia Pública General de Affero:

Esta es una licencia de software libre, de tipo copyleft, pero no es compatible con la GNU GPL. • La Licencia Pública Arphic:

Es una licencia de software libre de tipo copyleft, pero no es compatible con la GNU GPL. Su uso habitual es para fuentes tipográficas, y para ese fin, la incompatibilidad no constituye un problema. • La licencia BSD original:

Esta licencia de software libre es simple y permisiva sin copyleft pero con un grave defecto: la cláusula publicitaria de BSD. El defecto no es definitivo ya que el software sigue siendo libre, pero provoca problemas, en particular, incompatibilidad con la GNU GPL. • La Licencia de Software Abierto, versión 1.0:

Esta es una licencia de software libre. Sus autores dicen que se trata de una licencia de tipo copyleft, pero se encuentran dificultades para determinar si las garantías de copyleft que se indican en las cláusulas son válidas. Es incompatible con la GNU GPL en varios aspectos. • La Licencia Pública de Mozilla (MPL):

Es una licencia de software libre, pero no tiene un copyleft fuerte. Tiene algunas restricciones complejas que la hacen incompatible con la GNU GPL. • La licencia FreeType:

Es una licencia de software libre sin copyleft, incompatible con la GNU GPL por razones técnicas. 3.5.1.3 Licencias de software no libre

Estas licencias no pueden ser consideradas licencias de software libre ya son

licencias automáticamente incompatibles con la GNU GPL. Como ocurre con el software libre, la cantidad de este tipo de licencias es enorme

porque cada compañía de software privativo tiene las suyas propias. Entre las más comunes encontramos:

Page 28: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 28 -

• La Licencia Artística (Original): Esta licencia es poco clara en sus cláusulas; algunos pasajes de ella son demasiado

ingeniosos para su propio bien. Los problemas son debidos a la redacción, no a lo substancial. Sin embargo hay una versión revisada de la licencia artística ("La Licencia Artística 2.0") que es una licencia de software libre, compatible con la GNU GPL. • La Licencia Pública Abierta:

El problema de esta licencia es que requiere que se envíe toda versión modificada que se publique a un desarrollador inicial específico. También hay problemas en cuanto a la claridad de sus cláusulas lo que puede llevar a malentenderlas. • La Licencia de Código Fuente Compartido de Microsoft:

Esta licencia no permite la distribución comercial, y sólo posibilita el uso comercial bajo ciertas circunstancias. • La Licencia de Código Fuente de Sun Solaris, versión 1.1

No es una licencia de software libre ya que prohíbe la redistribución, el uso comercial y puede ser revocada. 3.5.2 Licencias para documentación 3.5.2.1 Licencias de documentación libre (FDL/Free Documentation License)

Tal vez el mayor problema de los sistemas operativos libres y software libre en general no es el software en si, sino la falta de buenos manuales libres que podamos incluir en estos sistemas. Gran parte de los programas más importantes no vienen con manuales completos. Cuando un software libre no viene con un manual libre, produce un vacío importante. Aún en la actualidad existen muchos de estos vacíos.

Tal como ocurre con el software libre, la documentación libre es un asunto de libertad y no de precio. El criterio que se aplica para un manual libre es el mismo que para el software libre: se trata de dar a todos los usuarios ciertas libertades. La redistribución (incluida la redistribución comercial) debe permitirse, de forma que el manual pueda acompañar a cada copia del programa, en línea (a través de un sitio Web) o en papel. El permiso para modificar la documentación también es crucial. • La Licencia de Documentación Libre de GNU (GNU FDL):

Esta licencia se creó pensando en el uso de documentación libre con copyleft. También se puede aplicar a otro tipo de obras útiles (como libros de texto y diccionarios por citar ejemplos). Su aplicabilidad no se limita a los trabajos textuales (libros) sino que se extiende a otras obras. • La Licencia de Documentación de FreeBSD:

Esta es una licencia de documentación libre simple y permisiva sin copyleft, pero compatible con la GNU FDL. • La Licencia de Publicación Abierta, versión 1.0:

Esta licencia puede utilizarse como una licencia de documentación libre. Posee copyleft de documentación libre siempre y cuando el propietario de los derechos de autor no ejerza ninguna de las opciones listadas en una sección de la licencia en la que de aceptarse, la licencia deja de ser libre.

Page 29: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 29 -

3.5.2.2 Licencias de documentación no libre

Son aquellas que ponen restricciones para cobrar dinero por las copias y porque en algunos casos descontinúan versiones de documentaciones.

Estas licencias no pueden calificarse como licencias de documentación libre. • La Licencia de Contenido Abierto, versión 1.0:

Esta licencia no es libre, porque pone restricciones para cobrar dinero por las copias. Se debe tener cuidado para no confundir esta licencia con la Licencia de Publicación

Abierta. • La Licencia de Directorio Abierto (también conocida como Licencia dmoz.org):

Esta no es una licencia de documentación libre. Los principales problemas son que su derecho para redistribuir una versión dada no es permanente y que exige al usuario que siga revisando ese sitio, lo que es demasiado restrictivo para su libertad. 3.5.3 Licencias para trabajos aparte del software y la documentación

En este tipo se encuentran todas aquellas obras que no siendo software o documentación relativa al software, también se pueden licenciar. Por ejemplo: • La Licencia Pública General de GNU:

La GNU GPL puede utilizarse para datos generales que no sean software, siendo importante poder identificar algo equivalente a la noción de código fuente, es decir adaptar la licencia al tipo de la obra que se desea licenciar. • La Licencia de Documentación Libre de GNU:

La FDL de GNU se recomienda para los libros de texto y los materiales didácticos para todos los asuntos (el término documentación significa simplemente los libros de texto y otros materiales didácticos para usar el equipo o el software). También se puede utilizar la FDL de GNU para los diccionarios, las enciclopedias, y cualquier otro trabajo que proporcione información para uso práctico. • La Licencia de la Ciencia del Diseño (DSL):

Esta es una licencia libre y con copyleft apropiada para los datos generales. Es incompatible con la GNU GPL y con la FDL de GNU; sin embargo, se aplica sin inconvenientes para otras clases de datos. • La Licencia Libre del Arte:

Se trata de una licencia libre y con copyleft apropiada para trabajos artísticos. Posibilita la distribución comercial, con la condición de que cualquier trabajo más grande que incluya el trabajo licenciado debe ser libre. 3.6 Evolución. El futuro del software libre. El software libre tiene cada vez más adeptos. La gente siente curiosidad por el movimiento del software libre. Lo típico es encontrar a quien se sentó frente a una computadora con conexión a Internet con la intención de buscar información básica acerca del software libre y al final termina en sitios de Internet que ofrecen cientos y hasta miles de programas de uso libre. Esto seduce al individuo, que luego busca el software libre equivalente al software propietario del cual hace uso frecuente. Y muchas veces termina utilizándolo y reemplazándolo.

Page 30: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 30 -

Alrededor del mundo hay gran diversidad de grupos de usuarios de software libre que aportan sus ideas, críticas, mejoras y cualquier tipo de ayuda conducente a acrecentar el uso del software libre. En la República Argentina las organizaciones más conocidas de este tipo son:

• Software Libre Argentina. Sitio Web: http://www.solar.org.ar/

• Usuarios de Software Libre Argentina. Sitio Web: http://drupal.usla.org.ar/

• Grupo de Usuarios de Software Libre de Tucumán (LUG Tucumán). Sitio Web: http://www.lugtucuman.org.ar/index.php

3.7 PYMES y el software libre.

Cada vez es más frecuente encontrar en varios países del mundo, la aparición de aplicaciones “a medida” que se distribuyen bajo licencias libres.

Tradicionalmente, cuando una PYME requiere el desarrollo de un sistema de gestión contrata los servicios de una empresa o programador particular. Lo que el cliente adquiere es un programa ejecutable (también denominado binario) y la autorización de ejecutarlo en un número determinado de computadoras, siempre dentro del ámbito de la misma empresa.

En las PYMES se puede emplear y es altamente recomendable hacerlo, el uso de software libre por las siguientes razones:

• El beneficio económico en términos de ahorro, por no incurrir en gastos de adquisición del software y el uso derivado del mismo.

• Por ser la empresa que adquiere el software libre, la que posee los derechos de

uso del mismo.

• Por ser la empresa la que posee el código fuente del software, dando la posibilidad de modificarlo en cualquier momento y sin restricciones, según las necesidades que surjan del negocio.

• La empresa puede contratar al programador o desarrollador de su confianza para

que modifique total o parcialmente el software adquirido (con su correspondiente código fuente) según sus necesidades.

• Se beneficia por ser poseedora de un software que puede mejorarse

permanentemente gracias a que existen comunidades de usuarios en todo el mundo que aportan nuevas ideas y mejoras al mismo.

• Promueve el desarrollo de las empresas locales de software (o particulares) e

incluso el desarrollo y un aprendizaje cada vez más profundo dentro de su propia organización.

Volviendo el foco de atención a las empresas PYME de servicios de recursos humanos, y como se mencionó en el capítulo 1, existen diversos factores que las empresas evalúan a la hora de pensar implementar un software. Los factores mencionados se cumplen en su totalidad a favor de la empresa cuando se hace uso del software libre. A continuación se justifica el cumplimiento de cada uno de esos factores:

Page 31: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 31 -

Factor Justificación

• Costos iniciales y costos anuales de mantenimiento.

Puede llegar a ocurrir que la empresa incurra en un costo al adquirir el software pero luego su mantenimiento será menor (respecto a costos) si contrata a un desarrollador, o nulo si un empleado de la empresa realiza el mantenimiento.

• Coincidencia entre los paquetes de software y la plantilla de empleados.

Si se realiza un correcto proceso de construcción o desarrollo del software (con su correspondiente base de datos) este factor se cumple.

• Posibilidad de actualizarlo. Como sucede con otros tipos de software, el software libre también dispone de actualizaciones.

• Mayor eficacia y ahorro de tiempo.

El sólo hecho de convertir el proceso manual de trabajo a automatizado implica un ahorro de tiempo y eficacia del proceso de negocio. Este punto está vinculado con la capacidad del usuario de usar el sistema, lo que requiere de capacitación lo cual es posible porque quien ofrece el software puede ofrecer un plan de capacitación.

• Compatibilidad con sistemas actuales.

Existe cada vez más cercanía entre los distintos tipos de software gracias al uso de complementos y otros recursos informáticos que permiten la compatibilidad entre sistemas. Gran parte del software libre busca adaptarse a los sistemas actuales.

• Facilidad de uso.

Gracias a las mejoras en las interfaces gráficas de los programas (o software) es posible otorgarle al usuario mayor facilidad de uso de ellos. Cuando esto no fuera posible se solicita al desarrollador que modifique el software para incrementar la facilidad de uso. Esto es posible porque la empresa además del software posee el código fuente del mismo.

• Disponibilidad de apoyo técnico.

Si la empresa adquirió o solicitó el desarrollo del software a un particular o grupo de desarrolladores, estos pueden ofrecerle mediante algún contrato el apoyo técnico necesario hasta que la empresa lo solicite. Además cuenta con las comunidades de software libre en todo el mundo, las cuales pueden aportarle la mayoría de las veces el apoyo técnico que solicita.

• Necesidad de adaptación.

Esto es posible gracias a que la empresa al disponer del código fuente del software puede contratar al desarrollador de su confianza o grupo de desarrolladores para que adapten el software a las necesidades del negocio.

• Tiempo requerido para su implantación.

Comparando con la implementación de un software propietario, los tiempos no varían. Además, esto depende de la dificultad del software a construir y de la urgencia de la empresa por utilizarlo.

• Tiempo de capacitación requerido para recursos humanos y nómina de empleados.

El tiempo de capacitación depende del software que se está por implementar. Cabe aclarar que un empleado que ya recibió capacitación, está en condiciones de capacitar a los demás dentro de su ámbito de trabajo.

Page 32: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 32 -

DESARROLLO

Page 33: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 33 -

CAPITULO 4 – Caso de Estudio

Enunciado los contenidos que sustentan el marco teórico del proyecto volvamos a la idea principal: Ingeniería en Sistemas y Software Libre al servicio de las PYMES. 4.1 Selección de Metodologías de Trabajo Para llevar a cabo el proyecto se emplearon diversas técnicas según las necesidades requeridas por el tópico en cuestión. Para recavar datos se utilizó como herramienta la entrevista. La misma se formulo en base al propósito que se perseguía, es decir:

• Para obtener información referente a la carrera de ingeniería en sistemas de información.

• Para capturar las necesidades de información de las empresas PYMES de

servicios de recursos humanos.

• Para obtener información referente al software libre y sus aplicaciones. Para la recopilación de información general se procedió a lecturas a partir de

bibliografías específicas, artículos, diarios, revistas y documentos electrónicos de la Web. Para desarrollar el análisis y el diseño del sistema se empleó la metodología UML

con su correspondiente notación.

4.2 Alternativas de solución ¿Qué camino vamos a seguir para resolver el problema planteado?

Se proponen dos situaciones:

CASO 1: Podemos optar por un lado, contratar los servicios de una empresa desarrolladora de software o bien, a un desarrollador en particular. Y supongamos que ambos hacen uso de software privativo para construir sus sistemas.

CASO 2: La otra situación sería contratar los servicios de una empresa o particular, pero a diferencia del caso anterior, estos se valen del uso del software libre para el desarrollo de sus sistemas.

Supongamos entonces que una empresa (o desarrollador particular) opta por realizar

el sistema requerido. Esta le presenta a su eventual cliente un plan de trabajo a seguir en el mejor de los casos, especificándole los costos por dicho trabajo, además del tiempo necesario.

Al final del periodo pautado la empresa le entrega el sistema funcionando y listo para su uso. El cliente, la PYME en cuestión, comienza a hacer uso efectivo del mismo sin mayores inconvenientes hasta que comienzan a surgir problemas con la actualización del sistema operativo de base (supongamos Microsoft Windows XP Proffessional) y por ende problemas con la aplicación de su empresa. Si consideramos además que el cliente necesita la licencia del sistema operativo mas los paquetes de software necesarios para la computadora donde se pondrá en funcionamiento la aplicación, además de incurrir en los costos asociados, tiene la limitación del uso de la licencia del sistema operativo.

Imaginemos ahora lo que sucede en el segundo caso. Luego de la planificación y los trabajos relevantes por parte del profesional, el sistema es entregado al cliente para su utilización. Este sistema podrá ser utilizado en tantas computadoras como sea necesario, ya

Page 34: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 34 -

que al haber utilizado software libre para desarrollarlo las licencias permiten que el cliente haga uso libre del sistema.

Además, a posterior realización y uso del sistema, el cliente en el corto o mediano plazo puede requerir de modificaciones parciales o totales del sistema original. Para ello puede contratar un desarrollador de su confianza para que retome el trabajo realizado primeramente. Esto es posible gracias a que el código fuente del sistema está en poder del cliente. Suponiendo que el profesional siguió las buenas prácticas de desarrollo de sistemas (entiéndase por buenas prácticas en este contexto el procedimiento correcto y estandarizado para desarrollar un sistema informático) el posterior desarrollador no debería tener problemas para modificar el sistema original.

Como se puede ver, en esta segunda alternativa de solución, la empresa PYME se ve beneficiada por ser poseedora de un producto de uso libre y que posee la característica de ser modificado en cualquier momento y al ritmo de las necesidades del negocio.

Esta es la alternativa de solución a describir en el presente trabajo y nos vamos a servir del desarrollo del Sistema GRH-TUC (Software para la Gestión de los Recursos Humanos), mediante la utilización de software libre. 4.3 Desarrollo del Sistema Según Jacobson (1998) El proceso de desarrollo de software "es aquel en que las necesidades del usuario son traducidas en requerimientos de software, estos requerimientos transformados en diseño y el diseño implementado en código, el código es probado, documentado y certificado para su uso operativo". Concretamente "define quién está haciendo qué, cuándo hacerlo y cómo alcanzar un cierto objetivo". En general el desarrollo de un software involucra las siguientes etapas generales:

• Análisis • Diseño • Codificación • Pruebas • Implementación

Durante el proceso aparecen otras cuestiones que hacen referencia a los costos,

normas y metodologías a cumplimentar con el objeto de obtener un software de calidad, entendiendo por calidad al cumplimiento satisfactorio de todos los requerimientos en tiempo y forma. Estas cuestiones no se abordan en el presente trabajo por no estar dentro del alcance del mismo. En consecuencia, en el siguiente capítulo, vamos a descomponer y explicar las etapas de análisis y diseño del sistema según la metodología UML.

El código fuente del software desarrollado se encuentra adjunto a este trabajo. Teniendo en cuenta que se deben cumplir satisfactoriamente todos los

requerimientos en el tiempo y forma establecido, el trabajo consiste en llevar a cabo una adecuada aplicación de metodologías, técnicas, herramientas, controles y seguimiento.

Page 35: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 35 -

CAPITULO 5 – Análisis del Sistema Caso de Estudio – Sistema GRH – TUC 5 Análisis del Sistema Para seguir las buenas prácticas de planificación y desarrollo del sistema, el cual está orientado a Web se empleó la estructura que se detalla en la sección 6.4: 5.1 Estructura del Sistema El sistema GRH-TUC posee tres capas procedimentales: • Presentación (HTML y XML)

Esta es la que hace referencia a las páginas como las ve el usuario del lado del cliente. Controla el diseño de la página y el manejo de datos de los formularios.

• Lógica de Negocio (PHP)

Esta es la capa que hace referencia a las páginas como se ven del lado del servidor. Controla los datos que se envían desde los formularios del lado del cliente, además de ejecutarse todas las acciones que tienen que ver con la interacción a la base de datos.

• Modelo de Datos (PostgreSQL)

Esta capa también funciona del lado del servidor y tiene conexión directa con el mismo. Controla la entrada y salida de datos de la BD REC_Db (Base de Datos del sistema GRH-TUC).

5.2 Presentación General del Sistema El sistema tiene por objeto permitir la gestión de Recursos Humanos de una Empresa. Descripción del Cliente El cliente es cualquier Empresa que requiere el control y seguimiento de su personal. Metas:

• Mejorar la velocidad y mantenimiento en la de gestión de empleados. • Facilitar la registración de los cursos. • Facilitar la registración de empleados. • Facilitar la registración de puestos. • Facilitar la registración de áreas de la empresa • Control de empleados, cursos, puestos y áreas de la Empresa. • Permitir el seguimiento de la capacitación de Empleados.

Page 36: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 36 -

Funciones del Sistema

# Ref. Función Categoría

R1.1 Registra ingreso de un nuevo empleado. Evidente

R1.2 Registra el ingreso de un nuevo curso, asignándole su número de curso. Evidente

R1.3 Registra el ingreso de un nuevo puesto de trabajo. Evidente

R1.4 Registra el ingreso de una nueva área de la Empresa. Evidente

R1.5 Busca un empleado a través de su nombre. Evidente

R1.6 Registra la realización de cursos. Evidente

R1.7 Registra para cada curso la fecha de realización. Oculta

R1.8 Realiza la eliminación de un empleado. Evidente

R1.9 Realiza la eliminación de un curso. Evidente

R1.10 Realiza la eliminación de un puesto. Evidente

R1.11 Realiza la eliminación de un área. Evidente

R1.12 Realiza la modificación de datos de un empleado. Evidente

R1.13 Realiza la modificación de datos de un curso. Evidente

R1.14 Realiza la modificación de datos de un puesto. Evidente

R1.15 Realiza la modificación de datos de un área. Evidente

Atributos del Sistema

Atributo Tipo Detalles y Restri cciones de Frontera

Tiempo de respuesta Restricción de Frontera

La información sobre un empleado deberá aparecer en menos de tres segundos.

Metáfora de interfaz Detalle Desarrollo del sistema en un entorno Web.

Plataforma del sistema operativo Detalle Windows 98 / Me / 2000 / XP

Facilidad de uso Detalle

Guiar al usuario durante la utilización del sistema. Uso frecuente del Mouse para operaciones básicas

Actores del sistema

• Usuario. • Sistema

Page 37: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 37 -

5.3 Casos de Uso

• Búsqueda de Empleados. • Alta de Empleados. • Baja de Empleados. • Modificación de Empleados. • Alta de Cursos. • Baja de Cursos. • Modificación de Cursos. • Alta de Puestos. • Baja de Puestos. • Modificación de Puestos. • Alta de Áreas. • Baja de Áreas. • Modificación de Áreas. • Registración de Cursos.

5.4 Descripción Formal de los Casos de Uso Caso de Uso de Alto Nivel

CASOS DE USO Caso de Uso: Búsqueda de Empleados. Actores: Usuario. Tipo: Primario. Descripción: Un Usuario del Sistema desea consultar la existencia de un Empleado. El Usuario realiza la consulta y revisa los resultados. Caso de Uso: Alta de Empleados. Actores: Usuario, Sistema. Tipo: Primario. Descripción: Un Usuario del Sistema desea dar de Alta a un Empleado. El Usuario realiza la operación y actualiza la base de datos. Caso de Uso: Baja de Empleados. Actores: Usuario, Sistema. Tipo: Primario. Descripción: Un Usuario del Sistema desea dar de Baja a un Empleado. El Usuario realiza la operación y actualiza la base de datos. Caso de Uso: Modificación de Empleados. Actores: Usuario

Page 38: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 38 -

Tipo: Primario. Descripción: Un Usuario del Sistema desea modificar los datos de un Empleado. El Usuario realiza la operación y actualiza la base de datos. Caso de Uso: Alta de Cursos. Actores: Usuario, Sistema. Tipo: Primario. Descripción: Un Usuario del Sistema desea dar de Alta un nuevo Curso de capacitación. El Usuario realiza la operación y actualiza la base de datos. Caso de Uso: Baja de Cursos. Actores: Usuario, Sistema. Tipo: Primario. Descripción: Un Usuario del Sistema desea dar de Baja a un Curso existente. El Usuario realiza la operación y actualiza la base de datos. Caso de Uso: Alta de Puestos. Actores: Usuario, Sistema. Tipo: Primario. Descripción: Un Usuario del Sistema desea dar de Alta un nuevo puesto. El Usuario realiza la operación y actualiza la base de datos. Caso de Uso: Baja de Puestos. Actores: Usuario, Sistema. Tipo: Primario. Descripción: Un Usuario del Sistema desea dar de Baja a un Puesto existente. El Usuario realiza la operación y actualiza la base de datos. Caso de Uso: Alta de Áreas. Actores: Usuario, Sistema. Tipo: Primario. Descripción: Un Usuario del Sistema desea dar de Alta una nueva Área de la Empresa. El Usuario realiza la operación y actualiza la base de datos. Caso de Uso: Baja de Áreas. Actores: Usuario, Sistema. Tipo: Primario.

Page 39: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 39 -

Descripción: Un Usuario del Sistema desea dar de Baja a un Área existente. El Usuario realiza la operación y actualiza la base de datos. Caso de Uso: Registración de Cursos. Actores: Usuario, Sistema. Tipo: Primario. Descripción: Un Usuario del Sistema desea registrar un nuevo Curso. El Usuario realiza la operación y actualiza la base de datos. 5.5 Curso normal de eventos y cursos alternos Casos de Uso Expandidos

CASOS DE USO Caso de Uso: Búsqueda de Empleados. Actores: Usuario (Iniciador). Propósito: Realizar la búsqueda de un Empleado. Tipo: Primario y esencial. Resumen: Un Usuario del Sistema desea consultar la existencia de un Empleado. El Usuario realiza la consulta y revisa los resultados. Referencias Cruzadas: Funciones: R1.5. Curso Normal de Eventos:

Acción del Actor Respuesta del Sistema 1. Este caso de uso comienza cuando el Usuario desea consultar la existencia de un Empleado

2. El Usuario ingresa el nombre del Empleado.

3. Muestra los datos del Empleado. 4. El Usuario indica al sistema que la consulta terminó.

5. Vuelve al menú principal. Curso Alterno de Eventos:

• Línea 3: El Empleado no existe, indicar con un mensaje de error. Caso de Uso: Alta de Empleados. Actores: Usuario, Sistema.

Page 40: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 40 -

Propósito: Realizar el Alta de un nuevo empleado al Sistema. Tipo: Primario y esencial. Descripción: Un Usuario del Sistema desea dar de Alta a un Empleado. El Usuario realiza la operación y actualiza la base de datos. Referencias Cruzadas: Funciones: R1.1. Curso Normal de Eventos:

Acción del Actor Respuesta del Sistema 1. Este caso de uso comienza cuando el Usuario desea ingresar un nuevo Empleado

2. El Usuario ingresa el DNI (#dni) del Empleado.

3. Verifica la existencia del Empleado en el sistema a través del DNI ingresado.

4. El Usuario realiza la carga de datos del Empleado (CUIL, Apellido y nombre, Sexo, Edad, Fecha de Nac., Fecha de Alta, Fecha de Baja, Domicilio, Experiencia, Capacitacion, Area, Puesto, Departamento, Localidad, Teléfono)

5. Valida los datos ingresados. 6. El Usuario indica al sistema que la captura de datos finalizó.

7. Registra los datos del Empleado. Curso Alterno de Eventos:

• Línea 3: El empleado ya existe. Indicar con un mensaje de error. Se cancela la operación.

• Línea 5: Los datos se ingresaron de manera incorrecta. Indicar con un mensaje de error. Volver a ingresar los datos nuevamente.

Caso de Uso: Baja de Empleados. Actores: Usuario, Sistema. Propósito: Realizar la eliminación de un Empleado de la Empresa. Tipo: Primario y esencial. Descripción: Un Usuario del Sistema desea eliminar un Empleado del Sistema. El Usuario realiza la operación y actualiza la base de datos. Referencias Cruzadas: Funciones: R1.8. Curso Normal de Eventos:

Acción del Actor Respuesta del Sistema 1. Este caso de uso comienza cuando el Usuario desea eliminar un Empleado

Page 41: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 41 -

existente. 2. El Usuario selecciona a un Empleado. 3. Despliega todos los datos del empleado. 4. El Usuario le indica al sistema la acción de eliminar al Empleado.

5. Despliega mensaje de advertencia. 6. El Usuario le indica al sistema la opción de eliminar.

7. Actualiza la base de datos.

Curso Alterno de Eventos:

• Línea 6: El Usuario le indica al sistema que no eliminará al Empleado. Caso de Uso: Modificación de Empleados. Actores: Usuario. Propósito: Realizar la modificación de datos de un Empleado de la Empresa. Tipo: Primario y esencial. Descripción: Un Usuario del Sistema desea modificar los datos de un Empleado de la Empresa. El Usuario realiza la operación y actualiza la base de datos. Referencias Cruzadas: Funciones: R1.12. Curso Normal de Eventos:

Acción del Actor Respuesta del Sistema 1. Este caso de uso comienza cuando el Usuario desea modificar los datos de un Empleado existente.

2. El Usuario selecciona a un Empleado. 3. Despliega todos los datos del empleado. 4. El Usuario introduce la/las modificaciones necesarias.

5. El Usuario le indica al Sistema la acción de actualizar los datos introducidos.

6. Valida los datos ingresados y actualiza la base de datos

Curso Alterno de Eventos:

• Línea 5: Los datos se ingresaron de manera incorrecta. Indicar con un mensaje de error. Volver a ingresar los datos nuevamente.

Caso de Uso: Registración de Cursos. Actores: Usuario, Sistema. Propósito: Realizar la registración de cursos por parte de un Empleado de la Empresa.

Page 42: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 42 -

Tipo: Primario y esencial. Descripción: Un Usuario del Sistema desea registrar los datos de un nuevo Curso. El

Usuario realiza la operación y actualiza la base de datos. Referencias Cruzadas: Funciones: R1.6. Curso Normal de Eventos:

Acción del Actor Respuesta del Sistema 1. Este caso de uso comienza cuando el Usuario desea ingresar un nuevo curso.

2. El Usuario Introduce el nombre del nuevo. 3. Verifica la existencia del curso. 4. El Usuario ingresa la fecha de capacitación y la cantidad de horas.

5. El Usuario le indica al sistema que finalizó la captura de datos.

6. Registra el Curso y actualiza la base de datos.

Curso Alterno de Eventos:

• Línea 3: Curso existente. Mensaje de error.

Page 43: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 43 -

5.6 Diagrama de Casos de Uso

Búsqueda de Empleados

Alta de Empleados

Usuario Sistema

Empresa

Alta de Cursos

Alta de Puestos

Alta de Áreas

Baja de Empleados

Baja de Cursos

Baja de Puestos

Baja de Áreas

Modificación de Empleados

Modificación de Cursos

Modificación de Puestos

Modificación de Áreas

Page 44: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 44 -

5.7 Modelo Conceptual 5.7.1 Conceptos 5.7.2 Modelo Conceptual Simplificado

Empresa

Área

Cursos Disponibles

Puesto Departamento

Usuario Empleado

Cursos Realizados

Sistema

ListadoEmpleados LineaListadoEm

LineaCursosDispon

Área Empresa Departamento

Puesto

Cursos Realizados

Usuario Sistema

Forman

Con

tiene

Contenido_en

Controlado_por

Realiza

Requiere_de

Ocupado_ por

1..*

1

1

1

1

1

1..*

1

1..*

1..*

1

1

1

1..* 1

Gestiona

Ges

tiona

Gestiona

1

1..*

1

1..*

Cursos Disponibles

1..*

1..*

Ges

tiona

1

Gestiona ◄

1..*

1

Gestiona

1..* 1

Empleado

LineaListadoEmp ListadoEmpleados

1..* 1

Rep

rese

nta

1

1

Tiene ◄

Gen

era

1

1..*

LineaCursosDispon

1..*

1

Rep

rese

nta

Page 45: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 45 -

5.7.3 Modelo Conceptual Extendido

Área Empresa Departamento

Puesto

Cursos Realizados

Usuario Sistema

Forman

Con

tiene

Contenido_en

Controlado_por

Realiza

Requiere_de

Ocupado_ por

1..*

1

1

1

1

1

1..*

1

1..*

1..*

1

1

1

1..* 1

Gestiona

Ges

tiona

Gestiona

1

1..*

1

1..*

Cursos Disponibles

1..*

1..*

Ges

tiona

1

Gestiona ◄

1..*

1

Gestiona

1..* 1

Clave Nombreusuario

Nombre Misión Objetivo

Nombre Misión Objetivo

Nombre Fecha

Nombre Fecha Cant. Hs.

Empleado

Nombre y Apellido DNI Datos FinCaptura

LineaListadoEmp ListadoEmpleados

1..* 1

Rep

rese

nta

1

1

Tiene ◄

Gen

era

1

1..*

FinCaptura

LineaCursosDispon

1..*

Rep

rese

nta

1

Page 46: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 46 -

5.7.4 Glosario

Término Categoría Comentario Sistema Tipo Gestiona las operaciones sobre los

empleados, áreas, puestos de trabajo y cursos de la empresa

Empresa Tipo El lugar donde se efectúan las operaciones del sistema

Usuario Tipo Describe a la persona que hace uso del sistema

Empleado Tipo Describe a una persona que forma parte de la empresa

Puesto Tipo Describe las características del trabajo a realizar por un empleado

Área Tipo Área de trabajo que forma parte de la empresa

Departamento Tipo Lo conforman una o más áreas Cursos Realizados Tipo Describe los cursos que ya fueron realizados

por uno o más empleados Cursos Disponibles Tipo Describe los cursos que pueden realizar los

empleados de la empresa DNI: entero Atributo Número de documento del empleado Nombre de usuario: cadena Atributo Texto que identifica al usuario del sistema Clave: cadena Atributo Texto alfanumérico que identifica la clave del

usuario Nombre y apellido: cadena Atributo Texto que identifica a un empleado Fecha: date/time Atributo Valor en formato de fecha que describe el día

y hora de realización del curso Cant. Hs: entero Atributo Valor numérico que describe la carga horaria

de un curso Nombre: cadena Atributo Texto que describe a un área, un puesto, un

curso disponible o un curso realizado Misión: cadena Atributo Texto que describe la misión que persigue un

área o un puesto Objetivo: cadena Atributo Texto que describe el objetivo que persigue un

área o un puesto

Page 47: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 47 -

5.8 Diagramas de Secuencia Caso de uso: Búsqueda de empleados Caso de uso: Alta de Empleados Caso de uso: Registración de Cursos Caso de uso: Modificación de Empleados

Usuario Sistema

realizarBusqueda (nombre)

finalizarBusqueda ()

Usuario Sistema

consultarEmpExistente (dni)

ingresarEmpleado (parametros)

finalizarCaptura ()

Usuario Sistema

consultarCursoExistente (nombre)

ingresarCurso (nombre,fecha.cant_hs)

finalizarRegistro ()

Usuario Sistema

consultarEmpExistente (dni)

modificarEmpleado (parametros)

finalizarCaptura ()

Page 48: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 48 -

5.9 Contratos 5.9.1 Búsqueda de Empleados Nombre: buscarEmpleado (nombre:texto) Responsabilidad: Capturar (buscar) la existencia de un empleado. Desplegar los datos. Tipo: Sistema. Ref. cruzadas: R1.5. Casos de uso: Búsqueda de Empleados. Excepciones: Si no se pudo capturar el cliente, mostrar mensaje. Precondiciones: El sistema conoce el nombre del empleado. Poscondiciones:

• Se creó una instancia de LineaListadoEmp (creación de instancia). • Se asoció LineaListadoEmp con una instancia de ListadoEmp

(asociación formada). • Se asoció una instancia LineaListadoEmp con Empleado

(asociación formada). Nombre: finalizarBusqueda () Responsabilidad: Indicar que es el final de la captura del empleado y volver al menú

principal. Tipo: Sistema. Ref. cruzadas: R1.5. Casos de uso: Búsqueda de Empleados. Excepciones: Si no se desea buscar otro empleado, volver al menú principal. Precondiciones: El sistema conoce la estructura del menú de opciones del sistema. Poscondiciones:

• Se eliminó la instancia LineaListadoEmp (eliminación de instancia). 5.9.2 Alta de Empleados Nombre: consultarEmpExistente (dni: entero) Responsabilidad: Comprobar existencia de un empleado. Tipo: Sistema. Ref. cruzadas: R1.1, R1.5 Casos de uso: Alta de Empleados. Excepciones: Si se cancela la operación, abortar la transacción.

Si el dni ingresado no es válido, indicar que se cometió un error. Precondiciones: El sistema conoce los empleados. Poscondiciones:

• Se creó una instancia de LineaListadoEmp (creación de instancia). Nombre: ingresarEmpleado (parametros: texto) Responsabilidad: Actualizar los datos ingresados del empleado. Introducir un nuevo

empleado. Tipo: Sistema. Ref. cruzadas: R1.1 Casos de uso: Alta de Empleados. Excepciones: El Usuario cancela la operación. Precondiciones: El sistema sabe asociar el dni ingresado con los datos del nuevo

empleado.

Page 49: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 49 -

Poscondiciones: • Se asoció LineaListadoEmp con una instancia de ListadoEmp

(asociación formada). • Se asoció una instancia LineaListadoEmp con Empleado

(asociación formada). • Se asignó el valor de parámetros a Empleado.datos (modificación

de atributo). Nombre: finalizarCaptura () Responsabilidad: Registrar que es el final de la captura del nuevo empleado. Tipo: Sistema. Ref. cruzadas: R1.1 Casos de uso: Alta de Empleados. Excepciones: Si alguno de los datos ingresados no es válido, indicar que se cometió

un error. Precondiciones: El sistema conoce el dni. Poscondiciones:

• Se asignó Verdadero a Empleado.FinCaptura (modificación de atributo).

5.9.3 Registración de Cursos

Nombre: consultarCursoExistente (nombre: texto) Responsabilidad: Capturar (buscar) la existencia de un curso. Desplegar los datos. Tipo: Sistema. Ref. cruzadas: R1.6, R1.7 Casos de uso: Registración de Cursos. Excepciones: El Usuario cancela la operación. Precondiciones: El sistema conoce los cursos disponibles. Poscondiciones:

• Se creó una instancia de Cursos Disponibles (creación de instancia).

Nombre: ingresarCurso (nombre:texto, fecha:fecha, cant_hs :entero) Responsabilidad: Verificar datos ingresados. Introducir un nuevo curso y agregarlo a los

cursos disponibles. Tipo: Sistema. Ref. cruzadas: R1.6, R1.7 Casos de uso: Registración de Cursos. Excepciones: El Usuario cancela la operación. Precondiciones: El sistema conoce el calendario de fechas y la carga horaria.. Poscondiciones:

• Se asignó el valor de nombre a CursosDisponibles.nombre (modificación de atributo).

• Se asignó el valor de fecha a CursosDisponibles.fecha (modificación de atributo).

• Se asignó el valor de cant_hs a CursosDisponibles.cant_hs (modificación de atributo).

Nombre: finalizarRegistro () Responsabilidad: Registrar que es el final de la captura del nuevo curso. Tipo: Sistema.

Page 50: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 50 -

Ref. cruzadas: R1.6, R1.7 Casos de uso: Registración de Cursos. Excepciones: El usuario cancela la operación. Precondiciones: Poscondiciones:

• Se asignó Verdadero a CursosDisponibles.FinCaptura (modificación de atributo).

5.9.4 Modificación de Empleados

Nombre: consultarEmpExistente (dni: entero) Responsabilidad: Comprobar existencia de un empleado. Tipo: Sistema. Ref. cruzadas: R1.12. Casos de uso: Modificación de Empleados. Excepciones: Si se cancela la operación, abortar la transacción.

Si el dni ingresado no es válido, indicar que se cometió un error. Precondiciones: El sistema conoce los empleados. Poscondiciones:

• Se creó una instancia de LineaListadoEmp (creación de instancia). Nombre: modificarEmpleado (parametros: texto) Responsabilidad: Introducir las modificaciones sobre los datos del empleado. Tipo: Sistema. Ref. cruzadas: R1.12 Casos de uso: Modificación de Empleados. Excepciones: El Usuario cancela la operación. Precondiciones: El sistema sabe asociar el dni ingresado con los datos del nuevo

empleado. Poscondiciones:

• Se asoció LineaListadoEmp con una instancia de ListadoEmp (asociación formada).

• Se asoció una instancia LineaListadoEmp con Empleado (asociación formada).

• Se asignó el valor de parámetros a Empleado.datos (modificación de atributo).

• Se asignó el valor de Verdadero a Empleado.Modificado (modificación de atributo).

Nombre: finalizarCaptura () Responsabilidad: Registrar que es el final de la captura de las modificaciones

introducidas. Tipo: Sistema. Ref. cruzadas: R1.12 Casos de uso: Modificación de Empleados. Excepciones: Si alguno de los datos ingresados no es válido, indicar que se cometió

un error. Precondiciones: El sistema conoce el dni. Poscondiciones:

• Se asignó Verdadero a Empleado.FinCaptura (modificación de atributo).

Page 51: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 51 -

CAPITULO 6 – Diseño del Sistema

Caso de Estudio – Sistema GRH – TUC

6 Diseño del Sistema 6.1 Casos Reales de Uso 6.1.1 Caso de Uso: Búsqueda de Empleados. Actores: Usuario (Iniciador). Propósito: Realizar la búsqueda de un Empleado. Resumen: Un Usuario del Sistema desea consultar la existencia de un Empleado. El

Usuario realiza la consulta y revisa los resultados.

Tipo: Primario y real. Referencias: Funciones: R1.5.

Ventana 1

Ventana 2

A

B

A

B

C

Page 52: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 52 -

Curso Normal de Eventos:

Acción del Actor Respuesta del Sistema 1. Este caso de uso comienza cuando el Usuario desea consultar la existencia de un Empleado.

2. El Usuario ingresa el nombre del Empleado en A de la Ventana 1. Se oprime B después de capturar el nombre del empleado.

3. Muestra los datos del empleado en A de la Ventana 2.

4. El Usuario indica al sistema que la consulta terminó haciendo clic en B de la Ventana 2 o en C de la Ventana 1.

5. Vuelve al menú principal. Curso Alterno de Eventos:

• Línea 3: El Empleado no existe, indicar con un mensaje de error. No mostrar ninguna información en A de la Ventana 2.

6.1.2 Caso de Uso: Alta de Empleados. Actores: Usuario. Propósito: Realizar el Alta de un nuevo empleado al Sistema. Resumen: Un Usuario del Sistema desea dar de Alta a un Empleado. El Usuario realiza la operación y actualiza la base de datos. Tipo: Primario y real. Referencias Cruzadas: Funciones: R1.1.

Page 53: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 53 -

Ventana 3

A

B

C D

E F

G

H

I J

K L

M N

O P

Q

R

S

Page 54: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 54 -

Curso Normal de Eventos:

Acción del Actor Respuesta del Sistema 1. Este caso de uso comienza cuando el Usuario desea ingresar un nuevo Empleado.

2. El Usuario ingresa el DNI (dni) del Empleado en A de la Ventana 3. Se oprime B después de capturar el dni.

3. Verifica la existencia del Empleado en el sistema a través del DNI ingresado.

4. El Usuario realiza la carga de datos del Empleado en C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q de la Ventana 3.

5. Valida los datos ingresados. 6. El Usuario indica al sistema que la captura de datos finalizó. Se presiona en R de la Ventana 3 para guardar los datos ingresados.

7. Registra los datos del Empleado. 8. El Usuario indica al sistema que la operación terminó haciendo clic en S de la Ventana 3.

Curso Alterno de Eventos:

• Línea 3: El empleado ya existe. Indicar con un mensaje de error. Se cancela la operación. Se muestra la información del Empleado en C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q de la Ventana 3.

• Línea 5: Los datos se ingresaron de manera incorrecta. Indicar con un mensaje de error. Volver a ingresar los datos nuevamente.

6.1.3 Caso de Uso: Registración de Cursos. Actores: Usuario. Propósito: Realizar la registración de nuevos cursos. Resumen: Un Usuario del Sistema desea registrar los datos de un nuevo Curso. El

Usuario realiza la operación y actualiza la base de datos. Tipo: Primario y real. Referencias Cruzadas: Funciones: R1.6.

Page 55: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 55 -

Ventana 4 Curso Normal de Eventos:

Acción del Actor Respuesta del Sistema 1. Este caso de uso comienza cuando el Usuario desea ingresar un nuevo curso. Introduce el nombre del nuevo curso en A de la Ventana 4. Luego, se oprime en B de la Ventana 4 para verificar su existencia.

2. Verifica la existencia del curso. 3. El Usuario ingresa la fecha de capacitación seleccionándola de C y D e introduce el año en E de la Ventana. Luego selecciona la cantidad de horas desde F. Se presiona en H para guardar los datos introducidos.

4. Registra el Curso y actualiza la base de datos.

A B

E F

G H

I

C D

J

Page 56: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 56 -

Curso Alterno de Eventos: • Línea 1: El Usuario verificar la existencia del curso desde J de la Ventana 4.

Se presiona en G de la Ventana 4 para mostrar todos los cursos. • Línea 2: Curso existente. Mensaje de error.

6.1.4 Caso de Uso: Modificación de Empleados. Actores: Usuario. Propósito: Realizar la modificación de datos de un Empleado de la Empresa. Resumen: Un Usuario del Sistema desea modificar los datos de un Empleado de la Empresa. El Usuario realiza la operación y actualiza la base de datos. Tipo: Primario y real. Referencias Cruzadas: Funciones: R1.12.

Page 57: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 57 -

Ventana 5

A B

C D

E F

G

H

I J

K L

M N

O P

Q

R

S

T

Page 58: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 58 -

Curso Normal de Eventos:

Acción del Actor Respuesta del Sistema 1. Este caso de uso comienza cuando el Usuario desea modificar los datos de un Empleado existente.

2. El Usuario selecciona a un Empleado haciendo clic en algún Empleado desde T de la Ventana 5.

3. Despliega todos los datos del empleado en A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q de la Ventana 5.

4. El Usuario introduce la/las modificaciones necesarias en B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q. Se presiona en R de la Ventana 5 para guardar los datos modificados.

5. Valida los datos ingresados y actualiza la base de datos.

Curso Alterno de Eventos:

• Línea 5: Los datos se ingresaron de manera incorrecta. Indicar con un mensaje de error. Volver a ingresar los datos nuevamente.

• Línea 2: El Usuario introduce el dni del empleado en A de la Ventana 5. Se presiona en B para buscar los datos empleado.

6.2 Diagramas de Colaboración o de Interacción 6.2.1 Búsqueda de Empleados

buscarEmpleado(nombre) 1 : datosEmp:=buscar(nombre) :Sistema

:ListadoEmpleados

:Empleado

2 : hacerLinea(dni)

:LineaListadoEmp 2.1 : crear()

finalizarBusqueda() 1 : finalizar() :Sistema :Empleado

Page 59: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 59 -

6.2.2 Alta de Empleados 6.2.3 Registración de Cursos

consultarEmpExistente(dni) 1 : datosEmp:=buscar(dni) :Sistema

:ListadoEmpleados

:Empleado

2 : hacerLinea(dni)

:LineaListadoEmp 2.1 : crear()

ingresarEmpleado(parametros) 1 : crearEmpleado(parametros) :Sistema

:LineaListadoEmp

:Empleado

2 : crear(parametros)

parametros:LineaListadoEmp

2.1 : agregar(parametros)

finCaptura() 1 : finCaptura() :Sistema :Empleado

consultarCursoExistente(nombre) 1 : datosCurso := buscar(nombre) :Sistema :CursosDisponibles

Page 60: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 60 -

6.2.4 Modificación de Empleados

finalizarRegistro() 1 : finalizarRegistro() :Sistema :CursosDisponibles

consultarEmpExistente(dni) 1 : datosEmp:=buscar(dni) :Sistema

:ListadoEmpleados

:Empleado

2 : hacerLinea(dni)

:LineaListadoEmp 2.1 : crear()

modificarEmpleado(parametros) 1 : datos:=buscar(parametros) :Sistema :Empleado

2 : seModifico() datos:Empleado

finCaptura() 1 : [Modificado] finCaptura() :Sistema :Empleado

ingresarCurso(nombre, fecha, cant_hs) 1 : c: crearCurso(nombre, fecha, cant_hs) :Sistema

:LineaCursoDispon

:Cursos Disponibles

2 : crear(nombre, fecha, cant_hs)

c:LineaCursoDispon

2.1 : agregar(nombre, fecha, cant_hs)

Page 61: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 61 -

6.3 Diagrama de Clases

Page 62: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 62 -

6.4 Selección de las tecnologías libres

En la etapa de codificación además de seguir el modelo de construcción basado en el lenguaje de modelado UML se empleó la arquitectura por capas, por tratarse de un sistema orientado a Web. Las capas tienen la siguiente composición:

• Presentación : esta es la que hace referencia a las páginas como las ve el usuario del lado del cliente. Controla el diseño de la página y el manejo de datos de los formularios. Para ello se empleó el lenguaje de etiquetas HTML y XML.

• Lógica de Negocio : esta es la capa que hace referencia a las páginas como se

ven del lado del servidor. Controla los datos que se envían desde los formularios del lado del cliente, además de ejecutarse todas las acciones que tienen que ver con la interacción a la base de datos. Para esta capa se empleó el lenguaje de programación PHP.

• Modelo de Datos : esta capa también funciona del lado del servidor y tiene

conexión directa con el mismo. Controla la entrada y salida de datos de la base de datos. Para desarrollar esta capa se utilizó el motor de base de datos PostgreSQL.

HTML, siglas en ingles de HyperText Markup Language (Lenguaje de Marcado de Hipertexto) es el lenguaje de marcado predominante para la elaboración de páginas Web.

XML, siglas en inglés de eXtensible Markup Language (lenguaje de marcas extensible) es un lenguaje simple que permite la estructuración de documentos electrónicos de manera lógica tanto para humanos como para maquinas.

PHP es un acrónimo recursivo que significa PHP Hypertext Pre-processor. Es un lenguaje de programación utilizado mayormente para desarrollar servicios Web. PHP es un lenguaje de fácil aprendizaje, distribuido en forma gratuita, que permite interactuar con muchos sistemas de gestión de bases de datos.

Un SGBD objeto relacional orientado principalmente a bases de datos grandes, tiene muy buen soporte de administración y auditoria.

Para realizar la codificación y las pruebas durante la construcción del software se utilizó la herramienta de software libre MS4W.

MS4W es un paquete (conjunto de programas) que instala un ambiente de servidor Web preconfigurado.

La información acerca de las versiones del software mencionado se encuentra en el ANEXO II.

Page 63: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 63 -

CAPITULO 7 RESULTADOS OBTENIDOS

Quedó expuesto que las PYMES obtienen grandes beneficios a través de la utilización del software libre como alternativa de solución para sus necesidades de información.

Por otro lado, se determinó que las ventajas de utilizar software libre para el desarrollo de software son mayores que las del software propietario, principalmente por razones económicas y de estrategia. Esto es porque se tiene no sólo el producto de software, sino también su código fuente y la documentación asociada.

Queda de manifiesto que el Ingeniero en Sistemas tiene mucho campo de acción en esta área, trabajando de forma individual o formando equipos de profesionales con el objeto de estudiar las tecnologías libres e implementarlas al ritmo de las necesidades de las empresas del medio. De esta manera el profesional se beneficia ampliamente ya que posee el código fuente del programa que desarrolla o modifica y puede reutilizarlo con otros fines, además de colaborar en las mejoras de los sistemas libres ya existentes.

Se pudo determinar la necesidad de explorar el ámbito del software libre en profundidad, especialmente en el ámbito académico. En este respecto, cabe decir que sería muy conveniente comenzar a pensar en software libre como una herramienta de valor significativo para el proceso de preparación del futuro Ingeniero en Sistemas de la Universidad Tecnológica. Si tengo que pensar en un antes y un después del trabajo que desarrollé lo primero que asoma son las numerosas oportunidades que surgen como resultado de la investigación y el posterior análisis de la información consultada. Oportunidades que van desde crear planes de capacitaciones a las empresas hasta formar equipos de desarrollo utilizando tecnologías libres; esto sin mencionar que el costo para llevarlo a cabo puede ser muy reducido y hasta nulo. Por último quedó demostrado a través de la implementación del software GRH-TUC, que es totalmente viable aplicarlo a una empresa PYME, principalmente por razones económicas, pues si bien la empresa puede llegar a incurrir en un costo por su adquisición, luego se beneficia por ser poseedora no solo del software y su licencia de uso libre, sino también por tener a su disposición el código fuente del mismo.

Page 64: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 64 -

CONCLUSIONES Como futuro Ingeniero en Sistemas de Información considero la inmediata necesidad de avocarme al estudio y profundización del tema aquí tratado, Ingeniería en Sistemas y Software Libre al Servicio de las PYMES; pues en base a los resultados obtenidos puede notarse con claridad todos los beneficios que conlleva. En consecuencia, cabe destacar que este es uno más de los tantos recursos con que cuenta un profesional de sistemas para enfrentar los desafíos actuales.

Por último, deseo que este trabajo más allá de servir como futura líneas de investigación, sea considerado una pequeña parte de mi devolución al mundo académico, en especial a la Universidad Tecnológica Nacional, por otorgarme la oportunidad de formarme como profesional.

Page 65: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 65 -

Referencias Mikael Berndtsson, Jörgen Hansson, Björn Olsson, Björn Lundell, (2008). Thesis Project (2da edición). London: Springer-Verlag. Información Legislativa. Secretaría de la Pequeña y Mediana Empresa y Desarrollo Regional Definición de Micro, pequeñas y medianas empresas [en línea], Disponible en: http://www.infoleg.gov.ar/infolegInternet/anexos/170000-174999/170679/norma.htm [Visitado el 25 de Junio de 2008] Confederación Argentina de la Mediana Empresa. Circular Nº 68/2010 Medidas del gobierno argentino en favor de las PYMES [en línea], Disponible en: http://www.redcame.org.ar/index.php/came/circular/965 [Visitado el 25 de Junio de 2008] Secretaría de Medios de Comunicación de la Argentina. Las exportaciones PYMES representan el 15% de las ventas argentinas al mundo [en línea], Disponible en: http://www.prensa.argentina.ar/2010/09/22/12132-las-exportaciones-pymes-representan-el-15-de-las-ventas-argentinas-al-mundo.php [Visitado el 25 de Junio de 2008] Ministerio de Industria de la Argentina Secretaría de la pequeña y mediana empresa. Información Institucional [en línea], Disponible en: http://www.sepyme.gob.ar/institucional/ [Visitado el 25 de Junio de 2008] Proyecto GNU Free Software Foundation. Definición de Software Libre [en línea], Disponible en: http://www.gnu.org/philosophy/free-sw.es.html#History [Visitado el 25 de Junio de 2008] Mastermagazine. Definición de Software Propietario [en línea], Disponible en: http://www.mastermagazine.info/termino/6751.php [Visitado el 25 de Junio de 2008] Proyecto GNU Free Software Foundation. Categorías de software libre y no libre [en línea], Disponible en: http://www.gnu.org/philosophy/categories.es.html [Visitado el 29 de Setiembre de 2008] Free Software Foundation. FSF Free Software Licensing and Compliance Lab [en línea], Disponible en: http://www.fsf.org/. [Visitado el 29 de Setiembre de 2010] GNU. Por qué el software libre necesita documentación libre [en línea], Disponible en: http://www.gnu.org/philosophy/free-doc.es.html [Visitado el 23 de Junio 2008] Universia. Consultorio gratuito para Pymes en la UTN [en línea], Disponible en: http://www.universia.com.ar/portada/actualidad/noticia_actualidad.jsp?noticia=4202 [Visitado el 20 de Julio 2008]

Page 66: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 66 -

Cafexmediodigital. Jóvenes PYME: capacitación gratuita en la UTN [en línea], Disponible en: http://www.cafexmediodigital.com.ar/index.php?option=com_content&task=view&id=10214 [Visitado el 20 de Julio 2008] BSA Business Software Alliance (2010). Séptimo Estudio de IDC en Argentina [en línea], Disponible en: http://www.bsa.org/country/News%20and%20Events/News%20Archives/esAR/2009/esAR-12012009-enforcement2009.aspx [Visitado el 04 de Octubre de 2010] Secretaría del Consejo Superior de la Universidad Tecnológica Nacional. Diseño Curricular de la Carrera Ingeniería en sistemas de Información [en línea], Disponible en: http://csu.rec.utn.edu.ar/docs/php/imprimeDocumento.php?tipo=ORD&numero=1150&anio=0&facultad=CSU [Visitado el 25 de Setiembre de 2010] Marcelo Arroyo y Javier Smaldone (2004). El Software Libre en las PYMES. Disponible en: http://www.smaldone.com.ar/opinion/docs/sl_pymes.pdf Ministerio de Producción. Subsecretaria de la Pequeña y Mediana Empresa y Desarrollo Regional (2009). Coyuntura y expectativa PYME. Disponible en: http://www.sepyme.gov.ar/.../090713__informe_c01__empleo_pyme.pdf? Ernesto Quinones A. (2007). Asociación Peruana de Software Libre. Software Libre para Pymes. Disponible en: http://www.apesol.org.pe

Page 67: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 67 -

ANEXOS ANEXO I Glosario de Términos Software (también llamado programa, sistema o aplicación): es todo programa o aplicación programado para realizar tareas específicas. Paquete de software: es un grupo de uno o más archivos que son necesarios tanto para la ejecución de un programa de computadora, o como para agregar características a un programa ya instalado en la computadora o en una red de computadoras. GNU: GNU es un acrónimo recursivo que significa "GNU No es Unix" (UNIX es un sistema operativo que no es libre) GPL: General Public License (Licencia Pública General). Licencia creada por la Free Software Foundation y orientada principalmente a los términos de distribución, modificación y uso de software libre. Usuario: en informática, un usuario es un individuo que utiliza una computadora, sistema operativo, servicio o cualquier sistema informático. Por lo general es una única persona. Empresa de software: entiéndase como una empresa que se dedica al desarrollo de software. Necesidades de software: también llamadas requerimientos de software, son aquellas que un cliente o empresa tiene y necesita satisfacer a través de un sistema informático (o software). Freeware: el término freeware proviene de la conjunción entre Free (gratis) + ware (software). Cualquier software que no requiere pago ni otra compensación por parte de los usuarios que hacen usa del él. Que se sea libre no significa que se disponga del código fuente. Shareware: de share (compartir) + ware (software). Un tipo de software que es distribuido gratuitamente exclusivamente para ser probado, pero posee restricciones en su funcionalidad o disponibilidad. Desarrollador: un desarrollador es un informático que programa aplicaciones en distintos lenguajes de programación informáticos., además de otras características. Programador: es un informático que programa aplicaciones en distintos lenguajes de programación informáticos. Empresa desarrolladora: similar a empresa de software. Código Fuente (también llamado open source): es un texto escrito en un lenguaje de programación específico y que puede ser leído por un programador. Debe traducirse a lenguaje máquina para que pueda ser ejecutado por la computadora. Lenguaje de programación: es un lenguaje artificial que puede ser usado para controlar el comportamiento de una máquina, especialmente una computadora. Página Web: Fuente de información que puede ser accedida a través de un navegador en internet.

Page 68: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 68 -

Sitio Web: es un conjunto de páginas web que están relacionadas entre sí, .Un sitio web puede estar constituido de una o más páginas web. UNIX: sistema operativo desarrollado originalmente por empleados de Bell de AT&T. BSD (Berkeley Software Distribution): BSD es un sistema operativo derivado de Unix, distribuido por la Universidad de California desde los años 70. FreeBSD: FreeBSD es un sistema operativo libre para PCs. Áreas suaves de la economía: significa que son flexibles y se pueden adaptar rápidamente a los cambios. IDC: es una empresa que realiza estudios de mercado, consultoría y eventos en las industrias de tecnología de la información, telecomunicaciones y mercados de consumo masivo de tecnología. Paquete de software: es un conjunto de programas. ERP: Enterprise Resource Planning (Planificación de recursos empresariales). Son sistemas de información gerenciales que integran y manejan muchos de los negocios asociados con las operaciones de producción y de los aspectos de distribución de una compañía comprometida en la producción de bienes o servicios. CRM: Customer Relationship Management (administración de la relación con los clientes). Sistemas informáticos de apoyo a la gestión de las relaciones con los clientes, a la venta y al marketing.

Page 69: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 69 -

ANEXO II Versiones del software utilizado para el desarrollo de la aplicación

• HTML: estándar. Integrado a los navegadores WEB populares (Mozilla Firefox, Internet Explorer, Chrome, Netscape, Opera).

• XML: estándar. Integrado a los navegadores WEB (Mozilla a partir de sus

versiones 1.X, Internet Explorer 5 y versiones posteriores, Nestcape) • MS4W: versión 2.2.6.

Disponible en: http://www.maptools.org/dl/ms4w/ms4w-2.3.1-setup.exe

• PHP: versión 5.2.4 Disponible en: http://museum.php.net/php5/php-5.2.4-Win32.zip

• PostgreSQL: versión 8.2. Disponible en: http://www.postgresql.org/download/

Page 70: Tesis ingenieria en sistemas, software libre y pymes

José Daniel Muccela

- 70 -

ANEXO III Modelo de la Base de Datos

A continuación se presenta el modelo de la base de datos empleado en el Sistema GRH-TUC.

• Tabla seguridad: Tiene como finalidad gestionar los datos de los usuarios que controlarán el sistema.

• Tabla auditoria: Trabaja en conjunto con la tabla seguridad y tiene como finalidad realizar una comprobación mediante código de los usuarios que pueden controlar el sistema.

• Tabla t_empleados: Tiene como finalidad gestionar los datos de los empleados de la empresa.

• Tabla t_capacitación: Tiene como finalidad gestionar los datos relacionados a los cursos a realizar por parte de los empleados de la empresa.

• Tabla t_area: Tiene como finalidad gestionar los datos de las áreas que componen la empresa.

• Tabla t_puesto: Tiene como finalidad gestionar los datos de los puestos que intervienen en la empresa.

• Tabla localidades: Tiene como finalidad cargar a partir de ella los datos relacionados a una localidad donde se domicilie un empleado.

• Tabla departamentos: Tiene como finalidad cargar a partir de ella los datos relacionados a un departamento donde se domicilie un empleado. Una vez seleccionado un departamento se cargan los datos de las localidades que la conforman.