Académique Documents
Professionnel Documents
Culture Documents
Tesis de Grado
Directores
Rubby Casallas
Nicols Lpez
Nota de aceptacin.
___________________________
___________________________
___________________________
___________________________
Director de Proyecto
___________________________
Jurado
___________________________
Jurado
TABLA DE CONTENIDO
1. INTRODUCCIN ............................................................................................................................5
2. MOTIVACIN ..................................................................................................................................5
3. OBJETIVOS.......................................................................................................................................6
3.1 OBJETIVO GENERAL ........................................................................................................................6
3.2 OBJETIVOS ESPECFICOS ...............................................................................................................6
4. METODOLOGAS GILES DE DESARROLLO ...................................................................7
5. INTRODUCCIN RUBY Y RAILS ...........................................................................................8
5.1 QU ES RUBY? ..............................................................................................................................8
5.2 QU ES RAILS? .............................................................................................................................8
6. RUBY ....................................................................................................................................................9
6.1 CMO FUNCIONA RUBY? ..............................................................................................................9
6.2 PRERREQUISITOS ............................................................................................................................9
6.3 AMBIENTE DE DESARROLLO ...........................................................................................................9
6.4 RUBY INTERACTIVO (IRB) ............................................................................................................10
6.5 SINTAXIS BSICA .........................................................................................................................11
6.6 PROGRAMAS RUBY ........................................................................................................................12
7 RAILS ..................................................................................................................................................13
7.1 CMO FUNCIONA RAILS? ...........................................................................................................13
7.2 ESTRUCTURA Y FUNCIONAMIENTO DE RAILS ..............................................................................14
7.3 PROCESO GENERAL DE DESARROLLO DE APLICACIONES RAILS ...............................................15
7.4 PRIMERA IMPLEMENTACIN EN RAILS .........................................................................................15
7.4.1 Definicin el Modelo de Negocio ................................................................................15
7.4.2 Instanciacin de la Aplicacin Rails ..........................................................................16
7.4.3 Creacin y Configuracin de la Base de Datos para Rails. ..............................18
7.4.4 Traduccin del Modelo de Negocio a Tablas Relacionales................................19
7.4.5 Generacin de los Modelos ..........................................................................................20
7.4.6 Generacin de los Controladores...............................................................................21
7.4.7 Generacin de las Vistas...............................................................................................23
7.4.8 Ejecutando la Aplicacin ...............................................................................................27
8. RUBY ON RAILS VS JAVA (CASO DE ESTUDIO) ........................................................31
8.1 DESCRIPCIN DEL CASO ..............................................................................................................31
8.2 RESULTADOS .................................................................................................................................31
8.3 CONCLUSIONES Y ASPECTOS A ANALIZAR ..................................................................................33
9. TRABAJO FUTURO ......................................................................................................................34
10. BIBLIOGRAFA..........................................................................................................................35
1. Introduccin
Ruby es un lenguaje de programacin dinmico Open Source
enfocado en la simplicidad y la productividad. Rails es un entorno
para el desarrollo de aplicaciones Web con base de datos. La
cooperacin de estos dos artefactos ha dado surgimiento a lo que
se conoce en la actualidad como Desarrollo Web Ruby On Rails. Su
principal objetivo es el de facilitar el desarrollo de aplicaciones
Web con muy poco cdigo y mnima configuracin.
El propsito de esta investigacin es evaluar las principales
caractersticas de este framework de desarrollo, proporcionando
una primera aproximacin al conjunto de tcnicas y principios
inherentes a este paradigma de desarrollo, identificando en
paralelo sus oportunidades y desafos. Al final del proceso, se
disear e implementar un prototipo funcional que involucre la
utilizacin de los principales conceptos asociados a dicho entorno.
2. Motivacin
La tendencia impuesta en los ltimos aos por los grandes
jugadores de la industria de software, ha planteado una serie de
cambios en la forma que se conciben los procesos de desarrollo de
software. Entre ellas, encontramos premisas importantes sobre la
forma de lidiar con las principales restricciones de tiempo, costo y
capital humano involucradas en el desarrollo de un proyecto de
software.
En particular, el grupo de desarrollo e investigacin de toda
organizacin de software debe estar en capacidad de fomentar la
utilizacin de metodologas y herramientas que permitan mitigar
los principales riesgos asociados al proceso de desarrollo. Para ello,
se ha propuesto en la industria, una serie de metodologas giles
que permiten atacar este tipo de problemas, una de estas
iniciativas es el framework Ruby On Rails cuyo impacto en la
industria se ha incrementando notablemente en los ltimos aos.
Luego, es importante ir acorde a las tendencias que este tipo de
tecnologas imponen. Para lograr esto ser necesario contar con
criterios objetivos al momento de adoptar nuevas propuestas.
3. Objetivos
3.1 Objetivo General
Analizar y presentar el entorno de desarrollo de aplicaciones Web:
Ruby On Rails como punto de partida en el estudio de
metodologas giles de desarrollo y su impacto en la visin global
de los procesos de construccin de software.
3.2 Objetivos Especficos
Desarrollar un proceso de investigacin que permita
introducir los principales conceptos inherentes al lenguaje de
programacin Ruby y el framework de desarrollo web Rails,
determinando su estructura general de funcionamiento y los
conocimientos necesarios con que se debe contar al
momento de dar inicio a un desarrollo de tamao pequeo.
Estructurar un tutorial que permita introducir de manera
prctica la utilizacin de Ruby y Rails a travs de la
implementacin de una aplicacin Web con funcionalidad
CRUD.
Implementar un prototipo funcional correspondiente a un
sistema con caractersticas similares a un MIS (Management
Information System). En particular, los requerimientos
funcionales de este sistema se ajustarn a los planteados en
la Consola de Administracin de Usuarios Qualdev
desarrollado por el Grupo de Seguridad del grupo Qualdev
en 2007-II.
6. Ruby
6.1 Cmo funciona Ruby?
Con el fin de iniciar un desarrollo que haga uso de Ruby On Rails, es
necesario que el programador principiante conozca ciertos elementos
y premisas del lenguaje de programacin Ruby. No olvidemos que
finalmente Rails es un framework desarrollado principalmente con
Ruby y que de una u otra manera solo entendiendo este ltimo, se
estar en capacidad de explotar todo el potencial que Rails provee.
En primera instancia es necesario aclarar ciertos trminos que
guiaran el proceso de aprendizaje contemplado en este documento.
Ruby, ruby y RUBY?. Ruby es un lenguaje de programacin. De
hecho en esta seccin hablamos del funcionamiento de Ruby. La
versin en minscula, ruby, es un programa de computador;
especficamente es el interprete Ruby, es decir el programa que lee y
corre sus programas. Finalmente existe RUBY o mejor no existe-.
Ruby no es un acrnimo y por lo tanto no es correcto deletrearlo en
mayscula. Luego, Ruby para el lenguaje, ruby para el intrprete.
6.2 Prerrequisitos
El proceso de instalacin y configuracin del ambiente de desarrollo
para Ruby y Rails se considera relativamente sencillo, sin embargo se
listarn los pasos necesarios para llevar a cabo esta tarea y algunas
consideraciones adicionales a la hora de crear un proyecto en este
ambiente.
6.3 Ambiente de Desarrollo
Debido a su popularidad, el listado de herramientas disponibles para
el desarrollo de aplicaciones Ruby y Rails es amplio. En primera
instancia es necesario tener en cuenta que los requerimientos
mnimos para hacer uso de Ruby on Rails son:
Ruby: La versin estable actual es 1.8.6.
Rails: La versin estable actual es 1.2.5.
Servidor Web.
Motor de Base de Datos.
Adicionalmente, existen bundles (paquetes preconfigurados) que
permiten realizar el despliegue de aplicaciones Rails de una manera
mucho ms rpida, sin necesidad que el desarrollador se tenga que
preocupar por el proceso de configuracin previo. Estos paquetes se
encuentran disponibles para los principales sistemas operativos de la
industria.
Ejemplo(s)
Comentario
Aritmtica
5+7
4-3
3*7
90 / 3
X = 13
cadena = Hola mundo
puts I love Ruby
Asignacin de valores a
variables.
Agrega fin de lnea a la
cadena resultado.
x = abc
puts x
x=abc
prints x
x=abc
px
gets
string = gets
x = 100.to_i
s = 100
x = s.to_i
Comparando dos
valores/variables
x == y
Condicionales
if x == y
# execute
else
# execute
end
# Linea de comentario
X = 2 # Mi comentario
Comentarios
Compilacin
Para compilar un archivo .rb desde la consola Windows, se
ejecuta el comando: ruby -cw ejemplo.rb. El flag c le indica al
intrprete de Ruby que compile el archivo y w que nos informe
la presencia de warnings en el cdigo.
Ejecucin.
Finalmente basta con ejecutar el comando ruby ejemplo.rb
7 Rails
7.1 Cmo funciona Rails?
Una aplicacin Rails es el programa que toma el control cuando
alguien se conecta a un sitio Web administrado por Rails. Esta puede
ser un servicio de compras en lnea, un sitio de viajes, un catalogo de
una librera, etc. La naturaleza y propsito de una aplicacin Rails
varan enormemente. Sin embargo la forma general de cualquier
aplicacin Rails es muy similar.
El framework Ruby on Rails los programas y libreras de
programacin que obtiene cuando instala Rails en su sistema- existe
para el propsito de permitir al usuario escribir aplicaciones Rails
individuales.
MVC (Model/View/Controller) es la familia de frameworks a la cual
pertenece Rails, luego entender el funcionamiento de dicha familia
ayudar en consecuencia a entender el funcionamiento de Rails.
Tres cosas ocurren en una aplicacin MVC: se obtiene informacin, se
almacena y manipula dicha informacin, y se presenta dicha
informacin. Por s mismo, esto no es algo nuevo. De hecho la
mayora de programas para computadora ejecutan dichas
operaciones sobre los datos y despliegan los resultados. El principio
MVC, sin embargo, no es solo una descripcin de lo que ocurre con
los datos. Es tambin el principio de administracin detrs del cmo,
el desarrollador, trabaja sobre un programa.
ActiveRecord
Provee una interface y comunicacin entre las tablas de la base
de datos relacional y el programa Ruby que manipula los
registros de dicha base de datos. Los nombres de los mtodos
de una clase Ruby se generan automticamente a partir de los
nombres de las columnas de las tablas de la base de datos.
ActionView
Componente basado en ERb que se encarga de la construccin
de las vistas de la aplicacin. Toda conexin a una aplicacin
Rails resulta en el despliegue de la informacin de una vista.
ActionController
Intermediario entre ActionView y ActionRecord. Ofrece
funcionalidad para manipular las entidades definidas en el
modelo segn el input obtenido desde las vistas.
El puerto
nmero de
Verifique el
que este se
Nmero de Entidades
Funcionalidad
implementada
Java
JEE
EJB 3.0
Java Server Faces
Ruby On Rails
Patrn MVC
Ruby
Ruby for HTML
Glassfish
Mongrel/Rails
Plataforma
Comprende (JSPs,
BackingBean y Business
Delegate) - 2346
Lneas
Comprende (Session
Beans, BOs) 582
Lneas
Comprende (Entities)
251 Lneas
3179 Lneas
Plataforma
Tiempo requerido de
Implementacin
84 Horas Aprox.
fue
del
de
de
5
Scaffold es un script de generacin de cdigo Ruby y Rails con funcionalidad CRUD presente en el
modelo, vista y controladores de la aplicacin.
9. Trabajo Futuro
El concepto de metodologas agiles de desarrollo se constituye como
un tema que dada la tendencia del mercado, es necesario conocer y
dominar. El caso Ruby On Rails es solo una de las propuestas que
plantea la industria, sin embargo es una realidad el impacto que ha
tenido durante los ltimos aos a nivel mundial, en especial en
grandes organizaciones del continente europeo. Por ello, el proceso
de aprendizaje de estos temas debe ser impulsado de manera activa
no solo en la empresa privada sino en el mbito acadmico.
El mercado colombiano atraviesa por una etapa de grandes cambios
en lo que refiere a metodologas de desarrollo de software. Las
empresas se enfrentan da a da a restricciones de tiempo y costos
mucho mas fuertes, y solo alineando sus procesos de investigacin y
desarrollo hacia temticas que contemplen el entendimiento de
nuevos paradigmas con sus posibilidades y limitaciones, se podr
estar a la par con la estrategia de los grandes lideres de la industria.
Dado que el gran nmero de componentes de una aplicacin Rails son
generados, es necesario definir un proceso de levantamiento de
mtricas que permitan determinar el esfuerzo real (lneas de cdigo,
nmero de artefactos, tiempo invertido) empleado en un proyecto de
este tipo.
En la actualidad existen un gran nmero de plug-ins para Rails los
cuales enriquecen notablemente la calidad del software generado, por
ejemplo, Ajax. Es importante estudiar las ventajas ofrecidas por estos
componentes.
10. Bibliografa
[1] Black, David A. Ruby For Rails. Ruby Techniques For Rails
Developers. Manning, 2006.
[2] Ruby Language Programming. Home: http://www.rubylang.org/en/. ltima visita Diciembre 2007.
[3] Rails. Home: http://www.rubyonrails.org/. ltima visita:
Diciembre 2007.
[4] Martin Fowler. Home: http://www.martinfowler.com. ltima
visita: Diciembre 2007.
[5] Agile Software Development.
http://agilesoftwaredevelopment.com/blog/artem/how-use-agilemethods-fixed-price-co. ltima visita: Diciembre 2007.
[6] Ruby on Rails Wiki. Home: http://wiki.rubyonrails.org/rails/.
ltima visita: Diciembre 2007.
[7] Domain Specific Languages y Ruby. Home:
http://www.infoq.com/interviews/jay-fields-zak-tamsen-on-dsls.
ltima visita: Diciembre 2007.
[8] Java Boutique. Home:
http://javaboutique.internet.com/reviews/ruby/. ltima visita:
Diciembre 2007.