Sie sind auf Seite 1von 11

Pontificia Universidad Catlica de Valparaso

Pontificia Universidad Catlica de Valparaso Facultad de Ingeniera Escuela de Ingeniera Informtica

Formulacin y Evaluacin de Proyectos ICI 541-1 Frameworks


Integrantes: Jorge Chvez Paolo Giachetti Eduardo Mendoza Natalia Nio Choon-Ho Yoon Profesor: Antonio Moya Villegas

Formulacin y Evaluacin de Proyectos, ICI 541-1 Frameworks

Contenido
Contenido................................................................................................................................2 Introduccin............................................................................................................................3 Desarrollo................................................................................................................................4 Framework..........................................................................................................................4 Ventajas y Desventajas de utilizar Framework...................................................................6 Ventajas de utilizar framework.......................................................................................6 Desventajas de utilizar Framework.................................................................................7 Caso de Estudio: Symfony..................................................................................................7 Caractersticas principales de Symfony..........................................................................8 Aplicaciones de Symfony...............................................................................................8 Conclusin.............................................................................................................................10 Bibliografa...........................................................................................................................11

Formulacin y Evaluacin de Proyectos, ICI 541-1 Frameworks

Introduccin
El concepto de framework, lo que traducido al espaol significa Marco de Trabajo, como su nombre lo dice, se define, desde el punto de vista del software, como un marco o ambiente de trabajo. Es un conjunto de bibliotecas y componentes reutilizables, para el desarrollo rpido de aplicaciones. La utilizacin de un framework trae diversas ventajas, como la agilidad en el desarrollo, reduccin de errores, facilidad en la mantencin, entre otras. Pero adems trae desventajas, como el tiempo requerido en aprender y familiarizarse al framework, posibles dificultades en la modificacin del framework, entre otras. Estas desventajas por lo general son despreciables en comparacin a las ventajas que un framework ofrece. Se puede considerar el framework Symfony como caso de estudio, este framework est dirigido a la creacin de aplicaciones Web. Fue desarrollado por Fabien Potencier en Octubre de 2005. Elaborado en PHP5, es compatible con gran parte de gestores de bases de datos, incluyendo MySQL, PostgreSQL, SQL Server y Oracle.

Formulacin y Evaluacin de Proyectos, ICI 541-1 Frameworks

Desarrollo
Framework
El concepto de framework, lo que traducido al espaol significa Marco de Trabajo, como su nombre lo dice, se define, desde el punto de vista del software, como un marco o ambiente de trabajo. Es un conjunto de bibliotecas y componentes reutilizables, para el desarrollo rpido de aplicaciones. Para ello, un framework define, en trminos generales, un conjunto estandarizado de conceptos y se enfoca en un tipo de problemtica especfica que sirve como referencia para enfrentar, disear y solucionar nuevos problemas de carcter similar. En el desarrollo de software, el framework es una estructura conceptual y tecnolgica con soporte definido, en el cual otro proyecto de software puede ser desarrollado y organizado, dicho en otros trminos, es un molde, una base, que sirve de ayuda para la creacin y organizacin de nuevos proyectos software, y de esta manera, facilitar enormemente el desarrollo de software, permitiendo a los diseadores y programadores dedicar ms tiempo en la especificacin de requerimientos y en otras de las actividades del proceso de software. Los frameworks suelen incluir: Soporte de programas. Bibliotecas. Lenguaje de scripting, para desarrollar y unir los diferentes componentes de un proyecto.

Algunos frameworks ms conocidos: Biblioteca de Componentes Visuales (VCL) de CodeGear. Swing y AWT, para el desarrollo de aplicaciones en Java. Struts, para el desarrollo de aplicaciones web en Java. Ruby On Rails, para el desarrollo de aplicaciones web escrito en Ruby. Symfony (que ser nuestro caso de estudio).

Cabe destacar que, los frameworks simplifican el desarrollo de las aplicaciones mediante la automatizacin de muchas de las tareas frecuentes. Adems, un framework proporciona una 4

Formulacin y Evaluacin de Proyectos, ICI 541-1 Frameworks

estructura predefinida del cdigo fuente, forzando al programador a crear cdigo ms robusto, legible y ms fcil de mantener.

Formulacin y Evaluacin de Proyectos, ICI 541-1 Frameworks

Ventajas y Desventajas de utilizar Framework


Dependiendo del proyecto a realizar por el desarrollador, ste puede tomar la decisin de usar un determinado framework. Para esto, se toma en consideracin principalmente dos criterios, que son el lenguaje de programacin a utilizar y el tipo de aplicacin a desarrollar. Pero es importante destacar las ventajas y desventajas existentes al usar un framework antes de tomar una decisin respecto a su implementacin.

Ventajas de utilizar framework


1. Permite un desarrollo sencillo de aplicaciones, debido a que los componentes propios del framework estn basados en soluciones predefinidas, por lo que liberan al programador de crear funciones o componentes desde cero y tener que lidiar con cdigo de bajo nivel. 2. Al tratarse de cdigo que ya ha sido construido, probado y utilizado por otros programadores, disminuye considerablemente las posibilidades que existan fallas con relacin a las funciones o componentes implementados desde el framework. 3. No hay necesidad de aprender a utilizar ninguna aplicacin en especfico, ni utilizar ninguna tcnica de programacin de bajo nivel, lo que permite centrarse en la lgica del negocio y aplicacin de las directrices del proyecto. 4. Ya que el proceso se realiza de manera ms gil, el desarrollador puede enfocarse ms en los requerimientos u otras partes del desarrollo. 5. Las funciones de los framework son altamente reutilizables. 6. Facilita el trabajo en equipo. El uso y la programacin de componentes que siguen un diseo uniforme y estandarizado permite que sea ms fcil comprender y modificar el cdigo de otro programador. 7. Por lo general se encuentran bien documentados, con recursos disponibles en Internet, como utilidades y libreras, lo cual podr satisfacer funciones ms especficas del proyecto en s y mantener el cdigo actualizado. 8. Soluciona problemas comunes como la identificacin de usuarios, seguridad, conectividad con la base de datos, almacenamiento en cach, etc.

Formulacin y Evaluacin de Proyectos, ICI 541-1 Frameworks

Desventajas de utilizar Framework


1. El cdigo fuente se vuelve dependiente del framework utilizado, por lo que si se quiere cambiar de framework, ser necesario reescribir la mayor parte del cdigo. 2. Los framework al ser reutilizables tienden a generalizar la funcionalidad de los componentes. Esto puede ocasionar un exceso de cdigo y funciones que no se utilizarn. De esta manera, pueden provocar una sobrecarga innecesaria en los recursos del computador. 3. Durante los primeros proyectos, el tiempo que se ahorra en programacin y diseo al usar framework, se gasta en aprender a usarlo. 4. En el caso de originarse un error, resulta difcil la localizacin de ste, ya que por lo general se desconoce con exactitud el funcionamiento del framework. 5. Si existe un error de seguridad en el cdigo del framework, puede llegar a afectar a todas las aplicaciones que se encuentren utilizndolo.

Caso de Estudio: Symfony


Este Framework fue desarrollado en sus inicios por Fabien Potencier en Octubre de 2005. Fabien es presidente de Sensio, una empresa francesa de desarrollo de aplicaciones web. El nombre Symfony proviene de Sensio y Framework, escogido por su facilidad de ser reconocido y por la no asociacin a otros proyectos. Est categorizado como un framework para aplicaciones web, facilitando el trabajo mediante la automatizacin de algunos de los patrones utilizados para resolver las tareas comunes. Symfony separa las capas de negocio, servidor y presentacin de la aplicacin web. Muchas tareas complejas u operaciones repetitivas de bajo nivel son simplificadas por Symfony en instrucciones sencillas para los desarrolladores, por lo que les permite dedicarse por completo a los aspectos especficos de cada aplicacin. Utilizando prcticas comunes en el desarrollo de aplicaciones web, se pueden evitar reconstrucciones de mdulos ya creados y as acortar el tiempo de desarrollo y los costos del proyecto en cuestin. Symfony est desarrollado completamente con PHP5 y es compatible con gran parte de gestores de bases de datos, incluyendo MySQL, PostgreSQL, SQL Server y Oracle. Symfony puede ser ejecutado en plataformas con sistema operativo Windows, Linux o Unix. 7

Formulacin y Evaluacin de Proyectos, ICI 541-1 Frameworks

Caractersticas principales de Symfony


Facilidad de instalacin y configuracin en una gran variedad de plataformas. Independencia de los sistemas gestores de base de datos. Adaptabilidad para el manejo de problemas complejos. Aplica la mayora de las buenas prcticas del diseo web. Facilidad de comprensin del cdigo, gracias a los comentarios de phpDocumentor.

Extensible, ya que permite la integracin de libreras desarrolladas por terceros. Automatiza caractersticas de proyectos web, como la traduccin de datos y de interfaz, as como la adaptacin local de los contenidos. Los formularios incluyen validacin automatizada y relleno automtico de datos para asegurar la obtencin de datos correctos. Se puede personalizar para cumplir con los requisitos de las empresas que disponen sus propias polticas y reglas para la gestin de proyectos y la programacin de aplicaciones.

Posee mdulos de pruebas unitarias y funcionales para desarrollo basado en pruebas. Lleva un registro en detalle de todas las actividades que se realizan en la aplicacin.

Aplicaciones de Symfony
Debido a que Symfony es un framework MVC full-stack para desarrollo en PHP [1], sus aplicaciones en la industria del desarrollo web son casi ilimitadas, ofreciendo herramientas para la construccin desde sitios webs personalizados tales como blogs, hasta aplicaciones y plataformas ms complejas y a gran escala, como e-commerce o sitios corporativos. Al pertenecer a la categora de framework MCV (Model-Control-View) full-stack, Symfony ofrece para sus aplicaciones, un ambiente con fuertes convenciones, cohesin, buenas prcticas y por ende un desarrollo en base a componentes robustos que facilitan el 8

Formulacin y Evaluacin de Proyectos, ICI 541-1 Frameworks

trabajo de grandes equipos de trabajo en aplicaciones complejas[1]. Estas caractersticas han hecho de Symfony el framework de eleccin por prestigiosas compaas como Yahoo!, en el desarrollo de su plataforma Yahoo! Answers.

Ilustracin 1: Yahoo! Answers fue desarrollado en base a Symfony

En este ejemplo se muestra la pgina de Yahoo Answers[2] y demuestra que symfony puede ser utilizado en la construccin de aplicaciones web complejas. Otros casos de estudios incluyen Yahoo! Bookmarks, del.icio.us y Dailymotion, todas aplicaciones web de complejidad avanzada.

Formulacin y Evaluacin de Proyectos, ICI 541-1 Frameworks

Conclusin
En la actualidad el uso de frameworks es muy frecuente en el desarrollo de aplicaciones, facilitando enormemente las labores de desarrollo, lo que permite agilidad y eficacia en la entrega de proyectos. Aunque el uso de los framework supone de algunas desventajas que suceden principalmente durante las primeras implementaciones, suelen ser menospreciadas en comparacin con las ventajas que posee y la manera en la que optimiza el desarrollo de una aplicacin. Debido a esto, es porque los frameworks son tan populares y estn siendo elegidos para la ejecucin de un gran nmero de proyectos. Aun as, no hay que olvidar que, aunque los framework ofrezcan muchas facilidades en el desarrollo, en algunas ocasiones lo mejor ser comenzar desde cero y hacer un software a la medida de lo que exijan los requerimientos. Symfony es un framework para aplicaciones web desarrollado en base a PHP5 y soporta la mayora de motores de base de datos. Symfony es de cdigo abierto, para que cualquiera pueda modificarlo para cumplir con sus necesidades o contribuir en su desarrollo. Symfony automatiza varias prcticas repetitivas o de bajo nivel para aplicaciones web, por lo que facilita el desarrollo y mantencin de aplicaciones complejas, desviando la atencin de problemas orientados al lenguaje, a problemas orientados a la aplicacin o proyecto en s. Symfony, pertenece a la categora de framework MCV (Model-Control-View) fullstack, se observa su optimizacin para proyectos de grandes escalas gracias a que facilita herramientas y componentes de trabajos estndares para el equipo de desarrollo. Symfony al ser un framework full-stack, elimina la capacidad de utilizacin de libreras externas que no siguen sus convenciones, al contrario de los glue frameworks, que s permiten esto. Ejemplos de glue frameworks son Monk Framework [3] y Zend Framework[4]. Symfony, si bien tiene una amplia cohesin, lo robusto de su estructura viene tambin con un alto nivel de acoplamiento, ya que una de las caractersticas de los Frameworks Full-stack, es que sus componentes dependen unos de otros y por ende varias secciones de cdigo no pueden ser deshabilitadas a libre discrecin.

10

Formulacin y Evaluacin de Proyectos, ICI 541-1 Frameworks

Bibliografa
[1] [2] SENSIOLABS, Getting Started Symfony 1.4. Symfony, 08 de Abril, 2011. Dustin Whittle, Yahoo! Answers powered by Symfony. [en lnea] <http://symfony.com/blog/yahoo-answers-powered-by-symfony> [consulta: 08, Abril, 2011] CytrusByte, Monk the Glue Framework, [en lnea] <http://monkrb.com/> [consulta: 08, Abril, 2011] Zend Framework Web Page [en lnea] <http://framework.zend.com/> Ralph E. Johnson. Frameworks = (Components+Patterns), COMMUNICATIONS OF THE ACM, Octubre 1997. <http://www.inf.ufsc.br/~vilain/framework-thiago/p39-johnson.pdf> http://www.maestrosdelweb.com/editorial/el-framework-symfony-una-introduccion-practica-i-parte/ http://www.yiiframework.com/forum/index.php?/topic/14300-advantagesand-disadvantages-of-framework-programming/ http://jordisan.net/blog/2006/que-es-un-framework http://es.wikipedia.org/wiki/Framework

[3]

[4] [5]

[6] [7] [8] [9]

[10] http://es.answers.yahoo.com/question/index?qid=20070817175348AAgSFgE [11] http://www.alegsa.com.ar/Dic/framework.php [12] http://www.symfony-project.org [13] http://librosweb.es

11

Das könnte Ihnen auch gefallen