SlideShare una empresa de Scribd logo
1 de 10
UNIVERSIDAD NACIONAL DE CHIMBORAZO
TRABAJO DE INFORMATICA
HERRAMIENTAS DE SOFWARE LIBRE PARA INGENIERIA
JONATHAN ARROBO
ING. INDUSTRIAL
HERRAMIENTAS DE SOFWARE LIBRE PARA INGENIERIA
Este documento muestra un nuevo enfoque, que permite
observar de manera diferente la forma de desarrollar
software, y, por ende, traza algunas pautas para que este
trabajo de carácter colectivo se realice de manera
eficiente. Así se pretende mostrar un juego lingüístico,
como el concepto de kernel o núcleo de trabajo, sitio web
para manejar el proyecto (la aplicación) y algunos otros
términos, que se describen más adelante.
La distribución del escrito está dada de forma tal que el
lector tiene una guía práctica y secuencial para adentrarse
en conceptos básicos de las herramientas utilizadas en la
ISL. En primera instancia se presentan aspectos generales
del trabajo enfocado bajo ciertas normas de ingeniería
que se deben seguir; luego se plantean algunas funciones
de los grupos que hacen parte del equipo de trabajo;
posteriormente se comentan algunos casos prácticos en
los cuales se han utilizados técnicas y métodos de
ingeniería de software libre. Y finalmente se dan algunas
conclusiones y se plantea el trabajo futuro d
e
investigación.
Algunos de los aportes aquí presentados son parte de la
experiencia docente, en el desarrollo de asignaturas
relacionadas con ingeniería de software y de proyectos de
software libre dirigidos en trabajos de pregrado en
ingeniería de sistemas [Callejas et al, 2005], así como en
la presentación de ponencias en eventos internacionales
relacionados [Callejas et al, 2005], [Callejas, 2005].
La Ingeniería de Software Libre (ISL) permite que la
metodología para el desarrollo de aplicaciones se lleve a
cabo de manera amplia, ya sea utilizando un enfoque
estructurado de análisis y diseño [Witten et al, 1996],
[Yourdon, 1990], [Kendall & Kendall, 1998], un enfoque
orientado por objetos [Meyer, 1998] o algún otro tipo de
paradigma; además no limita a los analistas y diseñadores
a utilizar una técnica de modelado y diagramación, como
UML[Jacobson et al, 1999] o el modelado estructurado,
ni ofrece recomendaciones que permitan evaluar el nivel
de calidad de una organización, como lo promueve The
Capability Maturity Model, CMM [Paulk et al, 1993].
Más bien se fundamenta en que se debe trabajar en
equipo, con el fin de fomentar una mayor participación de
elementos para el desarrollo óptimo de aplicaciones, sin
dejar de lado la utilización de
técnicas
y
herramientas que aquí se mencionan. Además, se debe
tener en cuenta el tiempo y los recursos asignados para
cumplir con las tareas involucradas, evitando la pérdida
de tiempo o abandono de los proyectos.
que participan en actividades relacionadas con el análisis,
diseño, implementación e implantación de aplicaciones
informáticas, haciendo uso de herramientas de software
libre, y quienes de manera voluntaria apoyan cualquier
labor que tenga alguno de los kerneles.
Con la ISL se pretende promover el uso de sistemas
operativos, lenguajes de programación, bases de datos y
demás herramientas de software de carácter libre para la
creación de aplicaciones.
Un aspecto por tener en cuenta en el nuevo tópico de la
ingeniería de software libre es el término kernel. ¿Por
qué kernel y no simplemente grupo?
La visión de kernel está dada en que es un grupo el que
lo conforma, pero puede tener aportaciones valiosas a su
alrededor, y allí es donde se evidencia el trabajo
colaborativo o en comunidad, haciendo que cualquier
aporte hecho fuera del grupo pueda ser compilado en su
interior, con el fin de enriquecer el producto final. Lo
anterior puede llegar a ser comparado con un Sistema
Operativo (SO), donde el kernel administra y controla
tanto software como hardware de manera rústica (modo
consola), pero se puede y se debe llegar a crear
herramientas que permitan al usuario una mayor
interacción con el computador. Por ejemplo, programar
un escritorio para Linux (KDE) hace que la interfaz sea
más amigable al usuario y además ofrece un aporte
significativo para mejorar la aplicación final.
El ciclo de vida para el desarrollo del software puede
tomar algunos aspectos relacionados con metodologías
ágiles o metodologías tradicionales [Pressman, 2002],
según la naturaleza del proyecto, pero haciendo un
especial énfasis en que el desarrollo debe ser iterativo e
incremental [Larman, 2002], tal y como se observa en la
figura 1, en donde se presenta un proceso cíclico, que
muestra como el kernel de planeación orienta a los
demás kerneles en un perfecto engranaje y estos a su vez
desarrollan sus propias actividades, dando su inicio a
cada una de las iteraciones en el análisis y llegando a la
implantación de cada uno de los módulos. Al finalizar
cada iteración pasa nuevamente al análisis de otro de los
módulos. Se observa además como la comunidad libre se
encuentra fuera de la integración de los kerneles, ya que
ésta es la que da sus aportes y punto de vista al grupo
general de trabajo (aporta a cada uno de sus kerneles
cuando sea el caso).
También el término ‘comunidad libre’ juega un papel
importante en este tópico; se refiere al grupo de personas
Algunos de estos conceptos fueron presentados en el “IEEE
3er Congreso Internacional en Innovación y Desarrollo
Tecnológico” realizado en el la ciudad de Cuernavaca,
Morelos, México, en Septiembre de 2005, por Mauro Callejas
Cuervo.
Esta comunidad debe conocer las políticas y los
lineamientos elaborados por el kernel planeador para su
participación en el proceso de desarrollo de la aplicación.
Cuando se generan aplicaciones de software libre es
importante tener en cuenta las herramientas que se
utilizarán para la divulgación y manipulación del
desarrollo del proyecto (sitio web), así como las partes
que componen el equipo de trabajo, sus funciones
específicas y algunos otros aspectos que tienen que ver
con la ingeniería de software tradicional. En este aparte
se hace una breve descripción de cada una de ellas.
Para cualquier desarrollador de software, la elección de las herramientas
adecuadas es un tema muy delicado e importante, pues para lograr un
desarrollo de calidad requerimos de herramientas de gran calidad, eficiencia,
facilidad de uso y poder.
Afortunadamente el desarrollo de programas y sistemas de información no se
limita a la utilización de lenguajes de programación de uso general, sino que
existen otras herramientas y aplicaciones de software necesarias para esto,
que nos ayudan desde la concepción, análisis y diseño de un software hasta
la implantación del mismo.
Para el desarrollo del sistema de información y teniendo en cuenta que la
Compañía no iba a invertir grandes cantidades de dinero en el proyecto, fue
necesario indagar las diferentes herramientas de software libre que
existen en el mercado, con el fin identificar cuales eran las mas indicadas
para utilizar.
Parte de los resultados de investigación hallados se inclinaron hacia el
sistema operativo Linux (RedHat 9.0), para la codificación Kylix 3 Open
Edition, base de datos FirebirdSQL v1.5 y administrador de la base de
datos IBManager v3.7. Los cuales poseen las siguientes potencialidades:
Linux
Linux es una implementación del sistema operativo UNIX (uno más de entre
los numerosos clónicos del histórico Unix), pero con la originalidad de ser
gratuito y a la vez muy potente, que sale muy bien parado al compararlo con
las versiones comerciales para sistemas de mayor envergadura y por tanto
teóricamente superiores. Comenzó como proyecto personal del -entonces
estudiante- Linus Torvalds, quien tomó como punto de partida otro viejo
conocido, el Minix de Andy. S. Tanenbaum (profesor de sistemas operativos
que creó su propio sistema operativo Unix en PCs XT para usarlo en su
docencia). Actualmente Linus lo sigue desarrollando, pero a estas alturas el principal autor es la red
Internet, desde donde una gigantesca familia de
programadores y usuarios aportan diariamente su tiempo aumentando sus
prestaciones y dando información y soporte técnico mútuo.
FirebirdSQL
La creación de un buen software es producto de un buen análisis y diseño,
un programador experimentado y el uso de herramientas confiables y
eficientes. Por eso la elección de una base de datos es un punto crucial para
crear buenos desarrollos de software administrativo.
Para cualquier desarrollador de software, la elección de las herramientas
adecuadas es un tema muy delicado e importante, pues para lograr un
desarrollo de calidad se requiere de herramientas de gran calidad, eficiencia,
facilidad de uso y poder.
Afortunadamente el desarrollo de programas y sistemas de información no se
limita al uso de lenguajes de programación de uso general, sino que existen
otras herramientas y aplicaciones de software necesarias para esto, que
ayudan desde la concepción, análisis y diseño de un software hasta la
implantación del mismo.
Firebird es un desarrollo derivado de InterBase 6.0 (Fig. 7) que está apoyado
por un grupo de desarrolladores de todo el mundo para garantizar la
continuidad de la base de datos bajo el esquema de código abierto y sin
pago de licencias. Debido a que es derivado del código de InterBase 6.0,
tiene las mismas características que IB6, aunque de ahora en adelante irán
teniendo diferencias debido a que son dos desarrollos independientes.
IBManager
EMS InterBase & Firebird Manager es una herramienta poderosa y efectiva
para la administración de las bases de datos InterBase y Firebird. Permite
editar todos los objetos de la base de datos, buscar en los metadatos, extraer
los metadatos, imprimir metadatos, importar datos y exportar datos hasta en
12 formatos de archivos. IB Manager también incluye un depurador de
procedimientos almacenados, editor SQL, constructor visual de consultas
(Visual Query Builder), administrador de permisos de usuarios (Grant
Manager), administrador de usuarios, editor/visor de campos BLOB
(binarios), procesador de scripts SQL, soporte a adiciones de otras
compañías (plug-ins) y muchas más características.
IBManager mantiene un registo de las bases de datos que utilizamos,
mediante el DB Explorer. Para agregar una base de datos existente en el DB
Explorer, ejecutamos la instrucción Register Database, la cual abre un
cuadro de diálogo donde se ponen todas las características de la base de
datos, como el nombre del servidor -en caso de que sea un servidor remoto-,
el archivo de la base de datos, la clave del usuario, su contraseña y el rol que
está usando el usuario.
Kylix
Se trata del primer ambiente nativo de Desarrollo Rápido de Aplicaciones
(RAD). Combina un ambiente visual intuitivo, optimizado mediante un
compilador nativo, un depurador interactivo y un conjunto de componentes
que permite a los analistas y programadores de software liberar aplicaciones
basadas en Linux para ambientes de escritorio, Web y bases de datos.
Todo esto desemboca en que cualquier desarrollador de Borland Delphi o
Microsoft Visual Basic puede ser capaz, mediante Kylix, de trasladar sus
habilidades, conocimientos y aplicaciones a la plataforma Linux.
Contando con tiempos rápidos de compilación, 4.000.000 líneas por minuto,
las aplicaciones correrán inmediatamente con la misma velocidad de las
aplicaciones C/C++.
La técnica drag & drop (arrastrar y soltar) está completamente soportada, lo
cual facilita la tarea a los programadores.
Kylix está disponible en tres versiones: Server Developer, para programación
en Apache Web; Desktop Developer, para desarrolladores de aplicaciones; y
Open Edition, para crear programas con código abierto.
Debido a que Kylix y Delphi comparten una librería de componentes común,
el código fuente desarrollado con Kylix puede ser recompilado en Delphi (y
viceversa), permitiendo unas más eficientes implementaciones de plataforma
cruzada para compañías comprometidas con desarrollos en Linux y
Windows.

Más contenido relacionado

La actualidad más candente

Normas y Estándares de calidad para el desarrollo de Software
Normas y Estándares de calidad para el desarrollo de SoftwareNormas y Estándares de calidad para el desarrollo de Software
Normas y Estándares de calidad para el desarrollo de SoftwareEvelinBermeo
 
7 pasos para desarrollar un software
7 pasos para desarrollar un software7 pasos para desarrollar un software
7 pasos para desarrollar un softwareGenesis_Pirela
 
DiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del SoftwareDiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del Softwarelcastillo110
 
Ingenieria de Software
Ingenieria de SoftwareIngenieria de Software
Ingenieria de Softwareem3marquez
 
Plan de Desarrollo de Software - Sistema Gestor de Oferta y Adjudicación de P...
Plan de Desarrollo de Software - Sistema Gestor de Oferta y Adjudicación de P...Plan de Desarrollo de Software - Sistema Gestor de Oferta y Adjudicación de P...
Plan de Desarrollo de Software - Sistema Gestor de Oferta y Adjudicación de P...Yessenia I. Martínez M.
 
Diseno de software_educativo_basado_en_c
Diseno de software_educativo_basado_en_cDiseno de software_educativo_basado_en_c
Diseno de software_educativo_basado_en_ccristina_devargas
 
Libro 3: tareas y saber del programaador
Libro 3: tareas y saber del programaadorLibro 3: tareas y saber del programaador
Libro 3: tareas y saber del programaadorsocrates12854
 
Anexo 12 practica 1 investigar y compartir sistemas operativos
Anexo 12 practica 1 investigar y compartir sistemas operativosAnexo 12 practica 1 investigar y compartir sistemas operativos
Anexo 12 practica 1 investigar y compartir sistemas operativosLuis Gerardo Carvajal
 
51036806 proyecto-ejemplo-ingenieria-de-software
51036806 proyecto-ejemplo-ingenieria-de-software51036806 proyecto-ejemplo-ingenieria-de-software
51036806 proyecto-ejemplo-ingenieria-de-softwareMiguel Angel Rodriguez
 
Anexo 11 actividad 3 sistemas operativos en red
Anexo 11 actividad 3 sistemas operativos en redAnexo 11 actividad 3 sistemas operativos en red
Anexo 11 actividad 3 sistemas operativos en redLuis Gerardo Carvajal
 
Plan de desarrollo software
Plan de desarrollo softwarePlan de desarrollo software
Plan de desarrollo softwarentvp
 
Plan de desarrollo de software
Plan de desarrollo de softwarePlan de desarrollo de software
Plan de desarrollo de softwareMiguel Coronado
 
Informe software libre
Informe software libreInforme software libre
Informe software librelindaYisella14
 
Anexo 9-actividad-1-conociendo-mi-computadora
Anexo 9-actividad-1-conociendo-mi-computadoraAnexo 9-actividad-1-conociendo-mi-computadora
Anexo 9-actividad-1-conociendo-mi-computadoraLuis Gerardo Carvajal
 
Anexo 10 actividad 2 conociendo a fondo mi computadora
Anexo 10  actividad 2 conociendo a fondo mi computadoraAnexo 10  actividad 2 conociendo a fondo mi computadora
Anexo 10 actividad 2 conociendo a fondo mi computadoraLuis Gerardo Carvajal
 

La actualidad más candente (20)

Proyecto tic´s
Proyecto tic´sProyecto tic´s
Proyecto tic´s
 
Normas y Estándares de calidad para el desarrollo de Software
Normas y Estándares de calidad para el desarrollo de SoftwareNormas y Estándares de calidad para el desarrollo de Software
Normas y Estándares de calidad para el desarrollo de Software
 
Act 1
Act 1Act 1
Act 1
 
7 pasos para desarrollar un software
7 pasos para desarrollar un software7 pasos para desarrollar un software
7 pasos para desarrollar un software
 
DiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del SoftwareDiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del Software
 
Ingenieria de Software
Ingenieria de SoftwareIngenieria de Software
Ingenieria de Software
 
Plan de Desarrollo de Software - Sistema Gestor de Oferta y Adjudicación de P...
Plan de Desarrollo de Software - Sistema Gestor de Oferta y Adjudicación de P...Plan de Desarrollo de Software - Sistema Gestor de Oferta y Adjudicación de P...
Plan de Desarrollo de Software - Sistema Gestor de Oferta y Adjudicación de P...
 
Diseno de software_educativo_basado_en_c
Diseno de software_educativo_basado_en_cDiseno de software_educativo_basado_en_c
Diseno de software_educativo_basado_en_c
 
Libro 3: tareas y saber del programaador
Libro 3: tareas y saber del programaadorLibro 3: tareas y saber del programaador
Libro 3: tareas y saber del programaador
 
Anexo 12 practica 1 investigar y compartir sistemas operativos
Anexo 12 practica 1 investigar y compartir sistemas operativosAnexo 12 practica 1 investigar y compartir sistemas operativos
Anexo 12 practica 1 investigar y compartir sistemas operativos
 
51036806 proyecto-ejemplo-ingenieria-de-software
51036806 proyecto-ejemplo-ingenieria-de-software51036806 proyecto-ejemplo-ingenieria-de-software
51036806 proyecto-ejemplo-ingenieria-de-software
 
Anexo 11 actividad 3 sistemas operativos en red
Anexo 11 actividad 3 sistemas operativos en redAnexo 11 actividad 3 sistemas operativos en red
Anexo 11 actividad 3 sistemas operativos en red
 
Software exposicion
Software exposicionSoftware exposicion
Software exposicion
 
Plan de desarrollo software
Plan de desarrollo softwarePlan de desarrollo software
Plan de desarrollo software
 
Plan de desarrollo de software
Plan de desarrollo de softwarePlan de desarrollo de software
Plan de desarrollo de software
 
Informe software libre
Informe software libreInforme software libre
Informe software libre
 
Anexo 9-actividad-1-conociendo-mi-computadora
Anexo 9-actividad-1-conociendo-mi-computadoraAnexo 9-actividad-1-conociendo-mi-computadora
Anexo 9-actividad-1-conociendo-mi-computadora
 
Software Libre
Software LibreSoftware Libre
Software Libre
 
Genesis hernandez (1)
Genesis hernandez (1)Genesis hernandez (1)
Genesis hernandez (1)
 
Anexo 10 actividad 2 conociendo a fondo mi computadora
Anexo 10  actividad 2 conociendo a fondo mi computadoraAnexo 10  actividad 2 conociendo a fondo mi computadora
Anexo 10 actividad 2 conociendo a fondo mi computadora
 

Destacado

5 herramientas para sofware
5 herramientas para sofware5 herramientas para sofware
5 herramientas para sofwareRuben-Ruiz
 
Principales Herramientas de Sofware Social
Principales Herramientas de Sofware SocialPrincipales Herramientas de Sofware Social
Principales Herramientas de Sofware Socialehmurcia
 
Herramientas digitales 8a
Herramientas digitales 8aHerramientas digitales 8a
Herramientas digitales 8acarlos_arturo
 
Tema1 Lenguajes De Programacion
Tema1 Lenguajes De ProgramacionTema1 Lenguajes De Programacion
Tema1 Lenguajes De ProgramacionJose Rojas
 
Lenguajes De Programacion
Lenguajes De ProgramacionLenguajes De Programacion
Lenguajes De Programacioncarlos
 
Historia de los Lenguajes de Programación
Historia de los Lenguajes de ProgramaciónHistoria de los Lenguajes de Programación
Historia de los Lenguajes de ProgramaciónLILIANA06
 
Generaciones de los lenguajes de programacion
Generaciones de los lenguajes de programacionGeneraciones de los lenguajes de programacion
Generaciones de los lenguajes de programacionNelson Dominguez
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programaciónKarol
 
tipos de lenguaje de programación
tipos de lenguaje de programacióntipos de lenguaje de programación
tipos de lenguaje de programaciónpefrayo5
 

Destacado (9)

5 herramientas para sofware
5 herramientas para sofware5 herramientas para sofware
5 herramientas para sofware
 
Principales Herramientas de Sofware Social
Principales Herramientas de Sofware SocialPrincipales Herramientas de Sofware Social
Principales Herramientas de Sofware Social
 
Herramientas digitales 8a
Herramientas digitales 8aHerramientas digitales 8a
Herramientas digitales 8a
 
Tema1 Lenguajes De Programacion
Tema1 Lenguajes De ProgramacionTema1 Lenguajes De Programacion
Tema1 Lenguajes De Programacion
 
Lenguajes De Programacion
Lenguajes De ProgramacionLenguajes De Programacion
Lenguajes De Programacion
 
Historia de los Lenguajes de Programación
Historia de los Lenguajes de ProgramaciónHistoria de los Lenguajes de Programación
Historia de los Lenguajes de Programación
 
Generaciones de los lenguajes de programacion
Generaciones de los lenguajes de programacionGeneraciones de los lenguajes de programacion
Generaciones de los lenguajes de programacion
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
 
tipos de lenguaje de programación
tipos de lenguaje de programacióntipos de lenguaje de programación
tipos de lenguaje de programación
 

Similar a Herremientas de sofware libre en ingenieria

Ingeniería del Software Libre (ISL)
Ingeniería del Software Libre (ISL) Ingeniería del Software Libre (ISL)
Ingeniería del Software Libre (ISL) Marcel Aponte
 
Fundamentos de ingenieria de software
Fundamentos de ingenieria de softwareFundamentos de ingenieria de software
Fundamentos de ingenieria de softwareITSPR
 
Lenguaje de programación
Lenguaje de programación Lenguaje de programación
Lenguaje de programación Jean Gallardo
 
Tarea semana 1
Tarea semana 1Tarea semana 1
Tarea semana 1preciadoag
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de softwareIngryd Cobain
 
Ingeniería de software
Ingeniería de software Ingeniería de software
Ingeniería de software jevo1994
 
Herramientas del softaware libre
Herramientas del softaware libre Herramientas del softaware libre
Herramientas del softaware libre nestorlizardo
 
Ornelas muñizdavid actividad1.1_grupo_si5-2
Ornelas muñizdavid actividad1.1_grupo_si5-2Ornelas muñizdavid actividad1.1_grupo_si5-2
Ornelas muñizdavid actividad1.1_grupo_si5-2David Ornelas Muñiz
 
Dialnet del manifiestoagilsusvaloresy-principios-4809645
Dialnet del manifiestoagilsusvaloresy-principios-4809645Dialnet del manifiestoagilsusvaloresy-principios-4809645
Dialnet del manifiestoagilsusvaloresy-principios-4809645QAexpert
 
Guia unidad ii fundamentacion de ingenieria del software
Guia unidad ii fundamentacion de ingenieria del softwareGuia unidad ii fundamentacion de ingenieria del software
Guia unidad ii fundamentacion de ingenieria del softwaresullinsan
 
Actividad 2 ensayo el software
Actividad 2 ensayo el softwareActividad 2 ensayo el software
Actividad 2 ensayo el softwareOswaldo Perez
 

Similar a Herremientas de sofware libre en ingenieria (20)

Ingeniería del Software Libre (ISL)
Ingeniería del Software Libre (ISL) Ingeniería del Software Libre (ISL)
Ingeniería del Software Libre (ISL)
 
Fundamentos de ingenieria de software
Fundamentos de ingenieria de softwareFundamentos de ingenieria de software
Fundamentos de ingenieria de software
 
P46 articulo gcc
P46 articulo gccP46 articulo gcc
P46 articulo gcc
 
Power point 3 y 4
Power point 3 y 4Power point 3 y 4
Power point 3 y 4
 
Herramientas case
Herramientas caseHerramientas case
Herramientas case
 
Ensayo (El Software)
Ensayo (El Software)Ensayo (El Software)
Ensayo (El Software)
 
Niebla sortillon jesus francisco actividad1.1 si5 1
Niebla sortillon jesus francisco actividad1.1 si5 1Niebla sortillon jesus francisco actividad1.1 si5 1
Niebla sortillon jesus francisco actividad1.1 si5 1
 
Lenguaje de programación
Lenguaje de programación Lenguaje de programación
Lenguaje de programación
 
Tarea semana 1
Tarea semana 1Tarea semana 1
Tarea semana 1
 
Tareasemana1
Tareasemana1Tareasemana1
Tareasemana1
 
Hcase
HcaseHcase
Hcase
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
Ingeniería de software
Ingeniería de software Ingeniería de software
Ingeniería de software
 
Herramientas del softaware libre
Herramientas del softaware libre Herramientas del softaware libre
Herramientas del softaware libre
 
Ornelas muñizdavid actividad1.1_grupo_si5-2
Ornelas muñizdavid actividad1.1_grupo_si5-2Ornelas muñizdavid actividad1.1_grupo_si5-2
Ornelas muñizdavid actividad1.1_grupo_si5-2
 
Dialnet del manifiestoagilsusvaloresy-principios-4809645
Dialnet del manifiestoagilsusvaloresy-principios-4809645Dialnet del manifiestoagilsusvaloresy-principios-4809645
Dialnet del manifiestoagilsusvaloresy-principios-4809645
 
Guia unidad ii fundamentacion de ingenieria del software
Guia unidad ii fundamentacion de ingenieria del softwareGuia unidad ii fundamentacion de ingenieria del software
Guia unidad ii fundamentacion de ingenieria del software
 
Actividad 2
Actividad 2Actividad 2
Actividad 2
 
Herramientas case
Herramientas caseHerramientas case
Herramientas case
 
Actividad 2 ensayo el software
Actividad 2 ensayo el softwareActividad 2 ensayo el software
Actividad 2 ensayo el software
 

Herremientas de sofware libre en ingenieria

  • 1. UNIVERSIDAD NACIONAL DE CHIMBORAZO TRABAJO DE INFORMATICA HERRAMIENTAS DE SOFWARE LIBRE PARA INGENIERIA JONATHAN ARROBO ING. INDUSTRIAL
  • 2. HERRAMIENTAS DE SOFWARE LIBRE PARA INGENIERIA Este documento muestra un nuevo enfoque, que permite observar de manera diferente la forma de desarrollar software, y, por ende, traza algunas pautas para que este trabajo de carácter colectivo se realice de manera eficiente. Así se pretende mostrar un juego lingüístico, como el concepto de kernel o núcleo de trabajo, sitio web para manejar el proyecto (la aplicación) y algunos otros términos, que se describen más adelante. La distribución del escrito está dada de forma tal que el lector tiene una guía práctica y secuencial para adentrarse en conceptos básicos de las herramientas utilizadas en la ISL. En primera instancia se presentan aspectos generales del trabajo enfocado bajo ciertas normas de ingeniería
  • 3. que se deben seguir; luego se plantean algunas funciones de los grupos que hacen parte del equipo de trabajo; posteriormente se comentan algunos casos prácticos en los cuales se han utilizados técnicas y métodos de ingeniería de software libre. Y finalmente se dan algunas conclusiones y se plantea el trabajo futuro d e investigación. Algunos de los aportes aquí presentados son parte de la experiencia docente, en el desarrollo de asignaturas relacionadas con ingeniería de software y de proyectos de software libre dirigidos en trabajos de pregrado en ingeniería de sistemas [Callejas et al, 2005], así como en la presentación de ponencias en eventos internacionales relacionados [Callejas et al, 2005], [Callejas, 2005]. La Ingeniería de Software Libre (ISL) permite que la metodología para el desarrollo de aplicaciones se lleve a cabo de manera amplia, ya sea utilizando un enfoque estructurado de análisis y diseño [Witten et al, 1996], [Yourdon, 1990], [Kendall & Kendall, 1998], un enfoque orientado por objetos [Meyer, 1998] o algún otro tipo de paradigma; además no limita a los analistas y diseñadores a utilizar una técnica de modelado y diagramación, como UML[Jacobson et al, 1999] o el modelado estructurado, ni ofrece recomendaciones que permitan evaluar el nivel de calidad de una organización, como lo promueve The Capability Maturity Model, CMM [Paulk et al, 1993].
  • 4. Más bien se fundamenta en que se debe trabajar en equipo, con el fin de fomentar una mayor participación de elementos para el desarrollo óptimo de aplicaciones, sin dejar de lado la utilización de técnicas y herramientas que aquí se mencionan. Además, se debe tener en cuenta el tiempo y los recursos asignados para cumplir con las tareas involucradas, evitando la pérdida de tiempo o abandono de los proyectos. que participan en actividades relacionadas con el análisis, diseño, implementación e implantación de aplicaciones informáticas, haciendo uso de herramientas de software libre, y quienes de manera voluntaria apoyan cualquier labor que tenga alguno de los kerneles. Con la ISL se pretende promover el uso de sistemas operativos, lenguajes de programación, bases de datos y demás herramientas de software de carácter libre para la creación de aplicaciones. Un aspecto por tener en cuenta en el nuevo tópico de la ingeniería de software libre es el término kernel. ¿Por qué kernel y no simplemente grupo? La visión de kernel está dada en que es un grupo el que lo conforma, pero puede tener aportaciones valiosas a su alrededor, y allí es donde se evidencia el trabajo colaborativo o en comunidad, haciendo que cualquier aporte hecho fuera del grupo pueda ser compilado en su interior, con el fin de enriquecer el producto final. Lo anterior puede llegar a ser comparado con un Sistema Operativo (SO), donde el kernel administra y controla tanto software como hardware de manera rústica (modo
  • 5. consola), pero se puede y se debe llegar a crear herramientas que permitan al usuario una mayor interacción con el computador. Por ejemplo, programar un escritorio para Linux (KDE) hace que la interfaz sea más amigable al usuario y además ofrece un aporte significativo para mejorar la aplicación final. El ciclo de vida para el desarrollo del software puede tomar algunos aspectos relacionados con metodologías ágiles o metodologías tradicionales [Pressman, 2002], según la naturaleza del proyecto, pero haciendo un especial énfasis en que el desarrollo debe ser iterativo e incremental [Larman, 2002], tal y como se observa en la figura 1, en donde se presenta un proceso cíclico, que muestra como el kernel de planeación orienta a los demás kerneles en un perfecto engranaje y estos a su vez desarrollan sus propias actividades, dando su inicio a cada una de las iteraciones en el análisis y llegando a la implantación de cada uno de los módulos. Al finalizar cada iteración pasa nuevamente al análisis de otro de los módulos. Se observa además como la comunidad libre se encuentra fuera de la integración de los kerneles, ya que ésta es la que da sus aportes y punto de vista al grupo general de trabajo (aporta a cada uno de sus kerneles cuando sea el caso). También el término ‘comunidad libre’ juega un papel importante en este tópico; se refiere al grupo de personas Algunos de estos conceptos fueron presentados en el “IEEE 3er Congreso Internacional en Innovación y Desarrollo Tecnológico” realizado en el la ciudad de Cuernavaca,
  • 6. Morelos, México, en Septiembre de 2005, por Mauro Callejas Cuervo. Esta comunidad debe conocer las políticas y los lineamientos elaborados por el kernel planeador para su participación en el proceso de desarrollo de la aplicación. Cuando se generan aplicaciones de software libre es importante tener en cuenta las herramientas que se utilizarán para la divulgación y manipulación del desarrollo del proyecto (sitio web), así como las partes que componen el equipo de trabajo, sus funciones específicas y algunos otros aspectos que tienen que ver con la ingeniería de software tradicional. En este aparte se hace una breve descripción de cada una de ellas. Para cualquier desarrollador de software, la elección de las herramientas adecuadas es un tema muy delicado e importante, pues para lograr un desarrollo de calidad requerimos de herramientas de gran calidad, eficiencia, facilidad de uso y poder. Afortunadamente el desarrollo de programas y sistemas de información no se limita a la utilización de lenguajes de programación de uso general, sino que existen otras herramientas y aplicaciones de software necesarias para esto, que nos ayudan desde la concepción, análisis y diseño de un software hasta la implantación del mismo. Para el desarrollo del sistema de información y teniendo en cuenta que la Compañía no iba a invertir grandes cantidades de dinero en el proyecto, fue necesario indagar las diferentes herramientas de software libre que existen en el mercado, con el fin identificar cuales eran las mas indicadas
  • 7. para utilizar. Parte de los resultados de investigación hallados se inclinaron hacia el sistema operativo Linux (RedHat 9.0), para la codificación Kylix 3 Open Edition, base de datos FirebirdSQL v1.5 y administrador de la base de datos IBManager v3.7. Los cuales poseen las siguientes potencialidades: Linux Linux es una implementación del sistema operativo UNIX (uno más de entre los numerosos clónicos del histórico Unix), pero con la originalidad de ser gratuito y a la vez muy potente, que sale muy bien parado al compararlo con las versiones comerciales para sistemas de mayor envergadura y por tanto teóricamente superiores. Comenzó como proyecto personal del -entonces estudiante- Linus Torvalds, quien tomó como punto de partida otro viejo conocido, el Minix de Andy. S. Tanenbaum (profesor de sistemas operativos que creó su propio sistema operativo Unix en PCs XT para usarlo en su docencia). Actualmente Linus lo sigue desarrollando, pero a estas alturas el principal autor es la red Internet, desde donde una gigantesca familia de programadores y usuarios aportan diariamente su tiempo aumentando sus prestaciones y dando información y soporte técnico mútuo. FirebirdSQL La creación de un buen software es producto de un buen análisis y diseño, un programador experimentado y el uso de herramientas confiables y eficientes. Por eso la elección de una base de datos es un punto crucial para crear buenos desarrollos de software administrativo. Para cualquier desarrollador de software, la elección de las herramientas adecuadas es un tema muy delicado e importante, pues para lograr un desarrollo de calidad se requiere de herramientas de gran calidad, eficiencia, facilidad de uso y poder.
  • 8. Afortunadamente el desarrollo de programas y sistemas de información no se limita al uso de lenguajes de programación de uso general, sino que existen otras herramientas y aplicaciones de software necesarias para esto, que ayudan desde la concepción, análisis y diseño de un software hasta la implantación del mismo. Firebird es un desarrollo derivado de InterBase 6.0 (Fig. 7) que está apoyado por un grupo de desarrolladores de todo el mundo para garantizar la continuidad de la base de datos bajo el esquema de código abierto y sin pago de licencias. Debido a que es derivado del código de InterBase 6.0, tiene las mismas características que IB6, aunque de ahora en adelante irán teniendo diferencias debido a que son dos desarrollos independientes. IBManager EMS InterBase & Firebird Manager es una herramienta poderosa y efectiva para la administración de las bases de datos InterBase y Firebird. Permite editar todos los objetos de la base de datos, buscar en los metadatos, extraer los metadatos, imprimir metadatos, importar datos y exportar datos hasta en
  • 9. 12 formatos de archivos. IB Manager también incluye un depurador de procedimientos almacenados, editor SQL, constructor visual de consultas (Visual Query Builder), administrador de permisos de usuarios (Grant Manager), administrador de usuarios, editor/visor de campos BLOB (binarios), procesador de scripts SQL, soporte a adiciones de otras compañías (plug-ins) y muchas más características. IBManager mantiene un registo de las bases de datos que utilizamos, mediante el DB Explorer. Para agregar una base de datos existente en el DB Explorer, ejecutamos la instrucción Register Database, la cual abre un cuadro de diálogo donde se ponen todas las características de la base de datos, como el nombre del servidor -en caso de que sea un servidor remoto-, el archivo de la base de datos, la clave del usuario, su contraseña y el rol que está usando el usuario. Kylix Se trata del primer ambiente nativo de Desarrollo Rápido de Aplicaciones (RAD). Combina un ambiente visual intuitivo, optimizado mediante un compilador nativo, un depurador interactivo y un conjunto de componentes que permite a los analistas y programadores de software liberar aplicaciones basadas en Linux para ambientes de escritorio, Web y bases de datos. Todo esto desemboca en que cualquier desarrollador de Borland Delphi o Microsoft Visual Basic puede ser capaz, mediante Kylix, de trasladar sus habilidades, conocimientos y aplicaciones a la plataforma Linux. Contando con tiempos rápidos de compilación, 4.000.000 líneas por minuto, las aplicaciones correrán inmediatamente con la misma velocidad de las aplicaciones C/C++. La técnica drag & drop (arrastrar y soltar) está completamente soportada, lo
  • 10. cual facilita la tarea a los programadores. Kylix está disponible en tres versiones: Server Developer, para programación en Apache Web; Desktop Developer, para desarrolladores de aplicaciones; y Open Edition, para crear programas con código abierto. Debido a que Kylix y Delphi comparten una librería de componentes común, el código fuente desarrollado con Kylix puede ser recompilado en Delphi (y viceversa), permitiendo unas más eficientes implementaciones de plataforma cruzada para compañías comprometidas con desarrollos en Linux y Windows.