Download Protocolo de Tesis Edgar Candelario Moreno Picos - Inicio
Document related concepts
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