Download Protocolo de Tesis Edgar Candelario Moreno Picos - Inicio

Document related concepts

Wolfram (lenguaje de programación) wikipedia , lookup

Thunk wikipedia , lookup

R (lenguaje de programación) wikipedia , lookup

Dylan (lenguaje de programación) wikipedia , lookup

Simon Peyton Jones wikipedia , lookup

Transcript
Centro Universitario de
Ciencias Económico
Administrativas
Universidad de
Guadalajara
Maestría en Tecnologías de la Información
`
LA ELECCIÓN
DE UNA PLATAFORMA DE PROGRAMACIÓN RAD
PARA EL DESARROLLO DE UN SOFTWARE
Protocolo de Tesis
Edgar Candelario Moreno Picos
Guadalajara, Jalisco, 30 de abril de 2013
Índice.
1
Introducción.
3
1.1
Campo y línea de investigación.
3
2
Planteamiento del problema.
4
3
Contexto.
4
4
Justificación.
5
5
Marco Teórico.
5
5.1
Nuevas plataformas de desarrollo ¿Cuál elegir?
6
5.2
CHOOSING A PROGRAMMING LANGUAGE.
6
5.3
COMPUTER APPLICATIONS IN ENGINEERING EDUCATION.
7
5.4
HOW TO CHOOSE A PROGRAMMING LANGUAGE.
8
5.5
Como elegir el mejor lenguaje de programación.
8
6.1
Método.
9
6.1
Cuadro de análisis de congruencia.
9
6.2
Cronograma de actividades
10
7
Bibliografía.
11
Edgar Moreno
MTI
Metodología de la
Investigación
Página 2
1. Introducción.
Desde inicios de los estudios profesionales siempre se han tenido discusiones sobre que lenguajes de
programación es mejor que otro.; en aquel tiempo se tenía un enfoque didáctico. Hoy por hoy, ya se pasó de
los lenguajes de primera, segunda y tercera generación, ahora existe una gran variedad de lenguajes de cuarta
y algunos ya de quinta generación. Por el ámbito donde se aplican estos últimos, que es en el desarrollo de
productos orientados a la información con soluciones soportadas en base de datos, es ahí donde se tiene una
buena experiencia; sin embargo, aún hoy por hoy, se sigue con las discusiones sobre que plataforma escoger
bajo un posible desarrollo y ¿por qué?. Actualmente existen muchos lenguajes y paradigmas de programación,
estudiar y conocer todos y cada uno de ellos es casi imposible, sin embargo los lenguajes RAD (RAPID
APPLICATION DEVELOPMENT) - desarrollo rápido de aplicaciones, nos dan una metodología de desarrollo de
software que utiliza una planificación mínima a favor de la creación rápida de prototipos los cuales pueden
estar basados en soluciones orientadas a bases de datos.
No se tiene en mente tener un enfoque comercial, sino más bien se definirán los conceptos necesarios para
que un desarrollo en particular; de acuerdo a las características funcionales se tomara el mejor camino posible,
teniendo en cuenta costos, control y complejidad.
En la industria del software se ven empresas con malas decisiones en su área de ingeniería de software por no
haber realizado un estudio pleno de acuerdo a sus necesidades de implantación. También existe una buena
cantidad de empresas chicas y grandes estancadas por tomar una mala decisión en su plataforma de desarrollo
y que en la actualidad se encuentran limitadas y es casi imposible realizar un avance significativo, sin que esto
represente un esfuerzo enorme. Esto se ha hecho siempre muy alejado basándose en un estudio real de las
posibles soluciones que existen, simplemente por la experiencia de la persona que está encargada del área o
por los desarrollos heredados y que en su momento fueron algo funcionales.
El objeto de este estudio es poner a discusión una serie de conocimientos, práctica, comparativa y
demostraciones para tener como base la elección de una buena platataforma de programación de acuerdo a
un desarrollo de software que se tenga en puerta.
Palabras clave: Ambiente de desarrollo, lenguajes RAD, información en base de datos.
1.1.
Campo y línea de investigación.
El presente estudio pertenece al área VII del sistema nacional de investigadores (SNI). El área VII, comprende a
los investigadores que se abocan al estudio de la ingeniería en sus diferentes áreas; dentro de las cuales se
encuentra las de ciencias de la computación y las redes tecnológicas, y es en este rubro donde se encuentra el
Edgar Moreno
MTI
Metodología de la
Investigación
Página 3
presente estudio ya que constituye una solución a un problema tecnológico dando beneficios a diferentes
usuarios en el área de la tecnología.
2. Planteamiento del problema.
El activo más valioso, el pilar y el corazón de todas las empresas y organizaciones, se encuentra en el
almacenamiento electrónico de datos, estos a su vez se encuentran dentro de una base de datos donde se
guardan los datos; estos últimos explotados y manipulados por un programa construido por un lenguaje de
programación.
Por lo que cualquier decisión tecnológica mal fundamentada afecta no sólo afectan al buen funcionamiento de
un departamento dentro de la organización en particular si no que afectan a toda la empresa.
Todos estos problemas acarrean costos innecesarios a la organización, desarrollo lento, pérdida de tiempo,
pérdida de credibilidad hacia el exterior, etc. Toda mala decisión que se toma va seguida de otra mala decisión,
es decir; si nos equivocamos desde al inicio de la elección no habrá valido la pena el esfuerzo aplicado.
Las razones por las que se plantea el poner las bases los conocimientos, practicas, comparativas y
demostraciones y en general un contexto básico para tener como base la elección de una buena platataforma
en la selección de buen lenguaje(s) de programación de acuerdo al requerimiento que se tenga es de evitar
caer en situaciones en donde no se pueda avanzar hacia los nuevos retos donde la organización pretenda
llegar, reducir los costos así como todos los esfuerzos que se empleen en ello; dando respuesta a la siguiente
pregunta:
¿Cómo elegir una plataforma de desarrollo RAD para el desarrollo eficiente de un software?
3. Contexto.
El presente proyecto se puede llevar a cabo en cualquier empresa cuyo departamento de TI tenga en puerta un
proyecto de desarrollo nuevo o actualización. En el caso específico, se pondrá en marcha en nuestra empresa
Equipos y Soporte en Informática – Rita Pérez de Moreno #188 Zona Oblatos Sector Libertad, Guadalajara, Jal.En donde se desarrollará de un software en la vertical de hotelería y tiempo compartido. Se realizará un
análisis de factibilidad, costos y tiempos para la mejor toma de decisión y obviamente puesta en marcha del
proyecto hacía uno o varios posibles clientes en puerta. El análisis se realizará con personal con amplia
experiencia en dicha área y todos con grado de maestría en el área de TI.
Como se ha explicado anteriormente se fijarán las bases no solamente para el desarrollo en específico que se
tiene presente; si no más bien estas bases pueden ser aplicadas en cualquier toma de decisiones de una
herramienta de desarrollo para crear software soportado en bases de datos en la industria del software.
Edgar Moreno
MTI
Metodología de la
Investigación
Página 4
4. Justificación.
En la industria del software existe una categoría de software que requiere que se le agregue valor, como
pueden ser los de desarrollo. Este tipo de software va dirigido a empresas y es vendido por empresas de
consultoría con un conocimiento mayor que entregan servicios adicionales a la simple venta de una caja. En la
venta de software para grandes empresas o corporaciones, en general, se involucran directamente las marcas
de software ya que les interesa tomar los proyectos grandes y poder vender adicionalmente capacitación,
desarrollo, soporte, licencias y actualizaciones y sobre todo consultoría. Los avances en tecnología del
hardware y software de los últimos años han convertido al negocio de la computación en algo complejo. Es
muy poco probable que las empresas pongan en marcha sus sistemas de computación sin la ayuda o asistencia
de los vendedores de software. Esto se aplica tanto a la parte administrativa como a la parte operativa o del
giro de la institución.
Esta industria siempre se encuentra en un crecimiento, el cual en los últimos años se ha visto de manera
exponencial y ha cambiado día a día. Por lo que para que un desarrollo de un software sea rentable para una
determinada organización es importante siempre tomar una buena decisión en cuanto a las herramientas a
usar de tal manera que nos permita tener una buena rentabilidad, optimizar recursos, tener la mejor
productividad en tiempo y costos, fácil de administrar con poco personal, y que al final tengamos un producto
eficiente, eficaz, rápido e intuitivo y de gran versatilidad para su mantenimiento.
Hoy por hoy en muchas organizaciones el departamento de TI o las consultorías a empresas de este giro es
clasificado como un gasto, ya que no produce o no forma parte de la producción de acuerdo al giro de la
empresa. Sin embargo; para tener credibilidad y ser un protagonista importante dentro de la misma es
importante dar valor agregado con lo señalado en el párrafo anterior.
Con los cuadros de comparación, supuestos y simulaciones realizadas por nuestra empresa se obtendrá un
marco de referencia para el desarrollo futuro de las aplicaciones que se tienen en puerta, obteniendo como
resultado una mejor inversión en tiempo, costo y productividad.
5. Marco Teórico
Para la investigación del presente trabajo se ha optado por realizar búsquedas en páginas y publicaciones en
internet. Se han encontrado artículos y BLOGS de expertos con un alto contenido. Se han hecho búsquedas del
tema en el centro de recursos informativos que posee la UDG en la base de datos del instituto de ingenieros y
electrónicos (IEEE), se han encontrado pocos resultados, por otro lado se ha buscado en la base de datos
EBSCO y se ha encontrado un caso de estudio donde se aplicas criterios con un proceso analítico para la
Edgar Moreno
MTI
Metodología de la
Investigación
Página 5
comparación de lenguajes de programación; las búsquedas se han extendido a publicaciones y BLOGS en
internet, tomando siempre las publicaciones con mejor dialogo y mejor sustentadas.
5.1.
Nuevas plataformas de desarrollo ¿Cuál elegir?
Supongamos que el departamento de TI tiene sus bases sentadas en una herramienta que aunque muy buena,
descontinuada, obsoleta o de dudosa evolución como: VISUAL BASIC, FOX PRO, DELPHI, COBOL, RPG, o cualquier
otra. No hay duda que al escuchar esto lo primero que se viene a la mente es cambiar de plataforma.
Si se tiene en cuenta que el negocio se cerrara dentro de 4 o 5 años, no habría problema, no es una cuestión que
se tenga dentro de las prioridades.
En caso contrario, si se piensa crecer, se plantean el cambio y la decisión en dos fases:
Fase 1. Aprender una nueva plataforma, evaluar su rentabilidad y utilizarla para mis futuros proyectos y/o
ampliaciones de los actuales.
Fase 2. Evaluar las conveniencias de migrar mi parque de instalaciones en función de los resultados y las
urgencias del mismo.
Si se pretende un cambio, la primera prioridad es que sea la última vez, por lo que primero se necesita realizar
una evaluación previa y cuidadosa de los siguientes puntos:



5.2.
Tendencias.
Realidad presente.
Alternativas del mercado. [1]
CHOOSING A PROGRAMMING LANGUAGE
Los lenguajes de programación pueden ser tan fascinantes incluso como una persona viva, cada uno tiene su
propia historia, personalidad, intereses y peculiaridades. Una vez que se aprende un lenguaje, puede utilizarlo de
nuevo después de años de haberlo abandonado, y es como volver a conectar con un viejo amigo: usted puede
continuar con las discusiones de donde lo dejó años atrás. Es muy probable que para una tarea sobre todo de
mantenimiento y se decide realizarla con un lenguaje de antaño, recordarlo es como sentirse iluminado.
Definitivamente no hay un lenguaje apropiado para todas las tareas, y probablemente nunca habrá alguno uno.
En una semana de trabajo típica, rara vez se programa en menos de tres idiomas diferentes; la pregunta más
difícil que siempre se enfrenta un arquitecto de software al iniciar un nuevo proyecto qué idioma usar. Los
factores que se deben poner en la balanza en la elección de un lenguaje de programación son productividad de
programación, facilidad de mantenimiento, la eficiencia, interfaces de portabilidad, soporte de herramientas y
software y hardware. [2]
Edgar Moreno
MTI
Metodología de la
Investigación
Página 6
1
Pérez Miguel, “Nuevas plataformas de desarrollo ¿Cuál elegir?”, Septiembre 2008
http://mpoliver.wordpress.com/2008/09/19/nuevas-plataformas-de-desarrollo-%C2%BFcual-elegir/
2
Diomidis Spinellis, “Choosing a Programming Language”, Journals & Magazines, IEEE, vol. 23, issue 4, pp.62 - 63, August 2006. doi:
10.1109/MS.2006.97
5.3.
COMPUTER APPLICATIONS IN ENGINEERING EDUCATION
Elegir el lenguaje de programación adecuado es un tipo de problema de decisiones con múltiples criterios que
requieren la consideración de muchos factores que son estrechamente relacionados entre sí. La metodología
analítica Proceso de Red (ANP) es particularmente útil para la toma de decisiones en un contexto de múltiples
criterios donde existe interacción entre los mismos.
La ANP se recomienda para los casos en que necesita un análisis más profundo y sistemático, muy menudo la
necesidad es necesario realizar formas simples de retroalimentación. No es lujo, es una de las principales
preocupaciones para aprender sobre cómo hacer frente a la dependencia en la toma de decisiones. Muchos
problemas de decisión no pueden ser estructurados jerárquicamente, porque implican la interacción y la
dependencia de los elementos de más alto nivel sobre los elementos de nivel inferior
En primer lugar se debe de relacionar todos los criterios como en una figura, ponerlos todos por separados y
empezar a trazar líneas de dependencia. Las direcciones de las flechas indican que un componente afecta al
componente destino, estas son llamadas dependencias y cada una de ellas tiene un peso.
La dependencia exterior se refiere a la dependencia entre racimos. En otras palabras, la dependencia exterior es
la interacción entre los elementos de un grupo los de otro grupo. La dependencia interna es el efecto de un
elemento en un grupo para otra dependencia en el mismo grupo.
Este estudio nos enseña de manera más metódica y secuencial como realizar un buen análisis para la selección
del mejor lenguaje a elegir bajo posible desarrollo; aunque es una prueba piloto es un buen camino a elegir. El
resultado que se tuvo en su estudio de caso arroja los siguientes criterios para la selección:







Disponibilidad de apoyo.
La disponibilidad de ayuda.
Aceptación Industrial.
De formación del personal.
Soporte para aplicaciones específicas.
Comerciabilidad.
Depuración. [3]
Edgar Moreno
MTI
Metodología de la
Investigación
Página 7
3
Anik, Zelal; Baykoç, Ömer Faruk, “Computer Applications in Engineering Education”, Journals & Magazines, EBESCO vol. 19 Issue 1, p89
- 96 March 2011 doi: 10.1002/cae.20294
5.4.
HOW TO CHOOSE A PROGRAMMING LANGUAGE
Durante el transcurso de cada proyecto de codificación, un desarrollador de software debe hacer docenas de
decisiones. A veces se trata de resolver un problema exclusivo de un espacio de dominio en particular o un tema
arquitectónico particular. Otras veces es acerca de qué lenguaje es mejor para un trabajo. Esto es realmente una de
las piezas más importantes de conseguir para que un proyecto sea correcto. Estos son algunos de los pasos más
comunes que se pueden utilizar para elegir un lenguaje de programación:
1.
2.
3.
4.
5.
Averiguar lo que funciona para el equipo de trabajo.
Considere la facilidad de aprendizaje y popularidad.
Mira capacidad multiplataforma
Determinar la facilidad de servidor y secuencias de comandos del lado del cliente.
Considere la posibilidad de problemas de acceso general y la seguridad de los lenguajes de programación que
se elijan.
Una empresa dedicada al área de TI, un departamento de TI, un desarrollador independiente - o cualquier persona
con necesidades de proyectos técnicos - pueden sentirse frustrados o confundidos por la gran variedad de opciones
en los lenguajes de programación. Se puede llegar a ser intimidado por la gran cantidad de lenguajes de
programación dinámicos y estáticos que tienen que elegir cuando tienen a la fuente de un proyecto de TI con un
lenguaje específico. Cada proyecto tiene sus propias necesidades específicas de lenguajes de programación. [4]
5.5.
Como elegir el mejor lenguaje de programación
No se debe de tomar solamente la experiencia del encargado de TI. Para poder elegir correctamente cual es el
mejor lenguaje de programación deben de reunir todos los diferentes criterios presentes en un proyecto y
después considerar la experiencia que debe siempre evolucionar. Y posiblemente deben de hacer evolucionar la
experiencia para poder enfrentar este mismo proyecto.
Hay que recordar que es sólo una herramienta. Lo importante es conocer cuando usar la herramienta, como es
conveniente usarla y que esta no se tenga desperdiciada. Podemos encontrar todo tipo de personas en este
debate (principiante, moderados, expertos). Muchos van a suponer que es el que usan actualmente y otros
simplemente dirán que no existe tal cosa; un grupo de personar dirán que siempre depende del proyecto que al
que este enfocado. Debido a que este ha sido un escollo tradicional para lenguajes de alto nivel, las métricas para
el análisis de la productividad debe explorar el TRADE-OFF entre el esfuerzo de programación y rendimiento. [5]
Edgar Moreno
MTI
Metodología de la
Investigación
Página 8
4
Maluniu, Vermontgal, Br, Jack Bridger, “How to Choose a Programming Language”, October 2009
http://www.wikihow.com/Choose-a-Programming-Language
5
Rodríguez Antoine, “Como elegir el mejor lenguaje de programación”, Febrero 2010.
www.connetport.com/es/2010/02/03/como-elegir-el-mejor-lenguaje-de-programacion/
6. Método
El presente proyecto se trabajará a través de un método comparativo. Dado el hecho de poner en práctica
ciertas comparativas en diferentes entornos de desarrollo para poner en discusión las alternativas de solución
para la factibilidad de implementación, donde se contrastarán las plataformas de desarrollo.
Una vez seleccionado los diferentes entornos de desarrollo se pondrán problemas orientados al
mantenimiento de datos en una base de datos, así como a la extracción de información, todos basándose en la
misma estructura, para que posteriormente los expertos realicen los enlaces y desarrollen los pequeños
requerimientos. Los expertos no solamente trabajaran con el entorno que más les agrade sino que deberán de
desarrollar en los diferentes entornos propuestos para tener una mejor visión general de cada uno de ellos.
Finalmente puestos en la balanza se deberá los criterios que deberán de cubrir los ambientes de desarrollo se
realizará un balanceo que indique el mejor camino a seguir. Es si bien un camino largo a seguir, las conclusiones
que se obtengan dan un grado de aceptación bastante puntual.
6.1.
Cuadro de análisis de congruencia
Se presenta un cuadro con información general del proyecto, se trata de explicar de manera sintetizada la labor
que se quiere llevar a cabo.
Titulo
La elección de
una plataforma
de
programación
RAD para el
desarrollo de un
software
Edgar Moreno
Objetivo
Analizar una serie de
conocimientos,
práctica, comparativa
y demostraciones para
tener como base la
elección de una buena
platataforma de
programación de
acuerdo a un
desarrollo de software
MTI
Pregunta
¿Cómo elegir
una plataforma
de desarrollo
RAD para el
desarrollo
eficiente de un
software?
Hipótesis
Si se analizan y eligen
las características
funcionales de una
plataforma de
programación RAD,
entonces se podrá
tomar la mejor
decisión en cuanto a la
herramienta de
desarrollo a utilizar,
Metodología de la
Investigación
Variables
Variable X
 Características
funcionales
 Desarrollo
eficiente en cuanto a
costos control y
complejidad
Página 9
que se tenga en
puerta
6.2.
teniendo en cuenta
costos, control y
complejidad, al
realizar
demostraciones
mediante la
comparación
Variable Y
 Plataforma de
programación RAD
Cronograma de actividades
En la siguiente imagen se visualiza el presente cronograma se contemplan las actividades de mayor relevancia a
llevarse a cabo durante el proyecto. Cabe aclarar que el mismo es una estimación y puede presentar cambios a
lo largo de su desarrollo.
El presente cronograma de fechas está estimado de manera en que los miembros que participen estén con su
tiempo en un 100%. Sabemos que esto no sucederá de esta manera debido a los compromisos que cada
participante tiene, por lo que seguramente se tendrán modificaciones importantes.
Edgar Moreno
MTI
Metodología de la
Investigación
Página 10
7. Bibliografía
Pérez Miguel, “Nuevas plataformas de desarrollo ¿Cuál elegir?”, Septiembre 2008
http://mpoliver.wordpress.com/2008/09/19/nuevas-plataformas-de-desarrollo-%C2%BFcual-elegir/
Diomidis Spinellis, “Choosing a Programming Language”, Journals & Magazines, IEEE, vol. 23, issue 4, pp.62 63, August 2006. doi: 10.1109/MS.2006.97
Anik, Zelal; Baykoç, Ömer Faruk, “Computer Applications in Engineering Education”, Journals & Magazines,
EBESCO vol. 19 Issue 1, p89 - 96 March 2011 doi: 10.1002/cae.20294
Maluniu, Vermontgal, Br, Jack Bridger, “How to Choose a Programming Language”, October 2009
http://www.wikihow.com/Choose-a-Programming-Language
Rodríguez Antoine, “Como elegir el mejor lenguaje de programación”, Febrero 2010.
www.connetport.com/es/2010/02/03/como-elegir-el-mejor-lenguaje-de-programacion/
Edgar Moreno
MTI
Metodología de la
Investigación
Página 11