:
Reutili#ación de Soft!are $ 2atrones de Dise)o del Soft!are 5:: unio F1:G6
Resumen— La reut reutili iliza zaci ción ón de soft softwa ware re,, dent dentro ro de la
Códio pro%ado $ depurado con anterioridad 2lanes $ casos de prue%a previamente utili#ados
. el9s&ue#" Señor EEE.
ingeniería de software se ha utilizado desde los principios de la computación, computación, facilita muchas veces el poder crear nuevo software con software ya existente, únicamente modificando el mismo, así mismo mismo esto esto ha repr represe esenta ntado do retos retos pues pues el adapt adaptar ar softw software are existente y crear otro nuevo en base al anterior es en algunos casos algo complicado pero no imposible de hacer. Los patrones de diseñ diseño o son son la form forma a de busca buscarr soluc solución ión a un probl problem ema a en concre concreto to buscando buscando o usando usando un diseño diseño para ello necesita necesitamos mos conta contarr con con un grupo grupo dedic dedicado ado a esta esta labor labor tan esenc esencial, ial, son son empleados para solventar errores o problemas de diseño, sabiendo si es el patrón es efectivo y si se puede reutilizar. Palabras clave—Diseño, Eficiencia, Modelo, Reutilización, Software.
2ersonal cualificado 5aprovec8amiento de la e/periencia de los inenieros de un pro$ec p ro$ecto to a otro6 2a&uetes de soft!are de propósito eneral Conceptos Conceptos de reutili#ación reutili#ación de soft!are soft!are44 *a reutili#aci reutili#ación ón de soft! soft!are are aparec aparecee como como una alterna alternativ tivaa para para desarr desarrolla ollarr aplicac aplicacion iones es $ sistem sistemas as S de un manera manera m9s m9s efici eficient ente" e" productiva $ r9pida. *a idea es reutili#ar elementos $ componentes S en luar de tener &ue desarrollarlos desde un principio. Sure formalmente de :;0< *a idea principal era producir componentes de soft!are como si de componentes el'ctricos se tratara. El o%(etivo es reutili#ar lo e/istente sin tener &ue volver a redise)arlo desde el principio.
I. I NTRODUCCIÓN NTRODUCCIÓN STE documento proporciona información específica de Dificultades de la reutilización 4 do doss tema temass de rele releva vanc ncia ia dent dentro ro de la inen inenier iería ía de En muc8as empresas no e/iste plan de reutili#ación 5No se soft!are" los cuales son la reutili#ación de soft!are $ cómo es considera prioritario6 posi%le &ue esta se d' en un determinado entorno de tra%a(o" Escasa formación así mismo tam%i'n se tocara el tema del patrón de dise)o" Resistencia del personal 2o%ree sopo soport rtee meto metodo doló lói ico co"" Uso Uso de m'to m'todo doss &u &uee no dentro de la ineniería de soft!are" como se usa esta para 2o%r resolver resolver pro%lemas pro%lemas de dise)o" dise)o" eficienc eficiencia ia $ reutili#ación reutili#ación de promueven la reutili#ación 5Estructurados6" Necesario m'todos para4 Desarrollo para reutilización, Desarrollo c on estos.
E
reutilización
=>ui'n soporta los astos adicionales de la reutili#ación?
II. R EUTI*I+,CIÓN EUTI*I+,CIÓN DE* SO-T,RE Es el proceso de creación de sistemas de soft!are a partir de un soft!are e/istente" en luar de tener &ue redise)ar desde el principio. En los a)os 01" se constru$ constru$eron eron %i%liote %i%liotecas cas de su%rutinas su%rutinas cien cientí tífi fica cass reut reutil ili# i#a% a%le less con con un do domi mini nioo de apli aplica caci ción ón limitado" limitado" en la actualidad se crean crean componentes componentes comunes comunes a vari varios os proc proces esos os con con el fin fin de po pode derr util utili# i#ar arlo loss en la construcción de soft!are. soft!are. 2odemos definirla definirla como el empleo de elementos de soft!are soft!are u otros de nivel superior" creados en desarrollo anteriores" para de este modo reducir los tiempos $ simplificar el desarrollo del soft!are" me(orando la calidad $ reduciendo su costo. 3
Ventajas4
Reducir el tiempo de desarrollo. Reducir los costos. Incrementar la productividad. No tener &ue reinventar las soluciones. -acilitar la compartición de productos del ciclo de vida. @a$or @a$or fia%il fia%ilida idad. d. @a$or @a$or efici eficienc encia ia 5,un&ue 5,un&ue al princip principio io pueda parecer &ue no6 Consistencia $ la familiaridad" los patrones dentro del soft!are soft!are ser9n m9s consistentes" tendiendo a facilitar el mantenimiento del producto. Desventajas4
Necesidad de invertir antes de o%tener resultados. Carencia de m'todos adecuados. Necesidad de formar al personal. Convencer a los AmanaerB. Dificultad para institucionali#ar los procesos. Elementos que intervienen en la reutilización 4 Cateorías de recurso de soft!are4 Especificaciones Especificaciones de re&uerimientos previamente conce%idas 1.
Componentes ya desarrollados
El soft!are e/istente se puede ad&uirir de una tercera parte o Dise Dise)o )oss prev previa iame ment ntee defi defini nido doss 5Est 5Estru ruct ctur uras as de dato datos" s" provenir de uno desarrollado internamente para un pro$ecto pro$ecto aloritmos" etc.6 anter anterio ior. r. *lam *lamad ados os comp compon onen ente tess CCD CCD 5com 5compo pone nent ntes es comercialmente $a desarrollados6" estos componentes est9n 7
F
listos para utili#arse en el pro$ecto actual $ se 8an validado totalmente.
!.
-atrones de diseño'
Descripción del pro%lema $ la esencia de una solución" de Especificaciones" dise)os" códio o datos de prue%a e/istentes forma &ue la solución se pueda reutili#ar en diferentes desarrollados para pro$ectos anteriores &ue son similares al situaciones. soft!are &ue se va a construir para el pro$ecto actual. *os No es una especificación detallada. miem%ros del e&uipo de soft!are actual $a 8an tenido la Es una descripción de conocimiento $ e/periencia acumulada. e/periencia completa en el 9rea de la aplicación representada para estos componentes. *as modificaciones" por tanto" El em en tos es en ci ales de un pa tró n de di se ño re&ueridas para componentes de total e/periencia" tendr9n un Nom%re &ue es una referencia sinificativa del rieso relativamente %a(o. patrón Componentes ya e"perimentados
•
#.
Componentes con e"periencia parcial
Especificaciones" dise)os" códio o datos de prue%a Una descripción del 9rea del pro%lema &ue e/plica e/istentes desarrollados para pro$ectos anteriores &ue se cu9ndo puede aplicarse el patrón relacionan con el soft!are &ue se va a construir para el pro$ecto actual" pero &ue re&uerir9n una modificación Descripción de las partes de la solución del dise)o" sustancial. *os miem%ros del e&uipo de soft!are actual 8an sus relaciones $ sus responsa%ilidades. limitado su e/periencia sólo al 9rea de aplicación representada por estos componentes. *as modificaciones" por Una declaración de las consecuencias de aplicar el tanto" re&ueridas para componentes de e/periencia parcial patrón. tendr9n %astante rado de rieso. •
•
•
$.
:. F. . G.
Componentes nuevos
iv eles de /e ut il iz ac ió n
*os componentes de soft!are &ue el e&uipo de soft!are de%e:. Reutili#ación de Códio4 *i%rerías de funciones" editores" construir específicamente para las necesidades del pro$ecto inclusión de fic8eros" mecanismos de 8erencia en 2OO" actual. componentes" etc. F. Reutili#ación de Dise)os4 No volver a inventar ar&uitecturas %nidades de soft&are que se reutilizan' Reutili#ación de Especificaciones. Reutili#ación de sistemas de aplicación Reutili#ación de las a%stracciones del dominio4 De%e estar Se incorpora sin ninHn cam%io en otros sistemas asociada a la eneración 5semi6autom9tica de los elementos Confiuración de la aplicación para diferentes clientes de dise)o e implementación. Reutili#ación de componentes aría en tama)o desde su%sistemas 8asta o%(etos simple +s pect os par a la re uti li za ci ón de so ft &a re e" ist en t e Reutili#ación de o%(etos $ funciones :. Si los componentes $a desarrollados cumplen los re&uisitos Reutili#ación de componentes soft!are &ue implemente una del pro$ecto" ad&ui'ralos. El coste de la ad&uisición $ de la Hnica función interación de los componentes $a desarrollados ser9n casi siempre menores &ue el coste para desarrollar el soft!are (ipos de reutilización' e&uivalente. ,dem9s" el rieso es relativamente %a(o. Oportunista4 El ineniero de soft!are reutili#a pie#as &ue 'lF. Si se dispone de componentes $a e/perimentados" los riesos sa%e &ue se a(ustan al pro%lema. asociados a la modificación $ a la interación eneralmente Sistem9tica4 Esfuer#o a nivel orani#acional $ planificado de se aceptan. El plan del pro$ecto de%ería refle(ar la utili#ación antemano. Todo componente reutili#ado 8a de ser ideado" a de estos componentes. Si se dispone de componentes de priori" para ser reutili#ado. Implica inversiones iníciales para e/periencia parcial para el pro$ecto actual" su uso se de%e recoer frutos en el futuro. Dise)ar componentes en'ricos anali#ar con detalle. Si antes de &ue se interen para &ue sean reutili#ados con facilidad. adecuadamente los componentes con otros elementos del )ottom*%p4 Se desarrollan pe&ue)os componentes para una soft!are se re&uiere una ran modificación" proceda determinada aplicación. Se incorpora a un repositorio. cuidadosamente J el rieso es alto. El coste de modificar los (op*Do&n4 Se determinan las pie#as necesarias &ue enca(an componentes de e/periencia parcial alunas veces puede ser unas con otras. Se van desarrollando poco a poco. Re&uiere ma$or &ue el coste de desarrollar componentes nuevos. De alta inversión a comien#o. Se recoer9n %eneficios en el forma irónica" a menudo se descuida la utili#ación de futuro. componentes de soft!are reutili#a%les durante la planificación" lleando a convertirse en la preocupación +nlisis de escenarios para la reutilización primordial durante la fase de desarrollo del proceso de E/isten al menos G escenarios en los &ue un pro$ecto de soft!are. Es muc8o me(or especificar al principio las soft!are re&uerir9 elementos de reutili#ación. necesidades de recursos del soft!are. De esta forma se puede diriir la evaluación t'cnica de alternativas $ puede tener El pro$ecto es similar a un anterior 5reutili#ación de un luar la ad&uisición oportuna. pro$ecto e/istente6. @ismo pro$ecto con confiuración diferente 5reutili#an III. 2,TRONES DE DISEKO DE* SO-T,RE productos actuales6. Características de uso %asado en productos e/istentes. *os patrones de dise)o son la %ase para la %Hs&ueda de Nueva ,r&uitectura con capacidades o elementos e/istentes. soluciones a pro%lemas comunes en el desarrollo
de soft!are $ otros 9m%itos referentes al dise)o de interacción o interfaces. Un patrón de dise)o resulta ser una solución a un pro%lema de dise)o. 2ara &ue una solución sea considerada un patrón de%e poseer ciertas características. Una de ellas es &ue de%e 8a%er compro%ado su efectividad resolviendo pro%lemas similares en ocasiones anteriores. Otra es &ue de%e ser reutili#a%le" lo &ue sinifica &ue es aplica%le a diferentes pro%lemas de dise)o en distintas circunstancias. 0os patrones de diseño pretenden'
•
•
•
•
•
+plica3ilidad 4 Usos comunes $ criterios de aplica%ilidad del patrón. Estructura4 Diaramas de clases oportunos para descri%ir las clases &ue intervienen en el patrón. -articipantes4 Enumeración $ descripción de las entidades a%stractas 5$ sus roles6 &ue participan en el patrón. Cola3oraciones4 E/plicación de las interrelaciones &ue se dan entre los participantes. Consecuencias4 Consecuencias positivas $ neativas en el dise)o derivadas de la aplicación del patrón. mplementación4 T'cnicas o comentarios oportunos de cara a la implementación del patrón. Códio de ejemplo4 Códio fuente e(emplo de implementación del patrón. %sos conocidos4 E(emplos de sistemas reales &ue usan el patrón. -atrones relacionados4 Referencias cru#adas con otros patrones.
2roporcionar cat9loos de elementos reusa%les en el dise)o de sistemas soft!are. Evitar la reiteración en la %Hs&ueda de soluciones a pro%lemas $a conocidos $ solucionados anteriormente. -ormali#ar un voca%ulario comHn entre dise)adores. Estandari#ar el modo en &ue se reali#a el dise)o. -acilitar el aprendi#a(e de las nuevas eneraciones de dise)adores condensando conocimiento $a e/istente. ,simismo" no pretenden4 Imponer ciertas alternativas de dise)o frente a otras. I. CONC*USIONES Eliminar la creatividad in8erente al proceso de En resumen de este articulo podemos o%servar &ue el dise)o. No es o%liatorio utili#ar los patrones" solo es aconse(a%le en implementar estos F m'todos para la creación de soft!are" el caso de tener el mismo pro%lema o similar &ue soluciona el dependiendo 'l caso sea cual sea" puede ser %en'fico el patrón" siempre teniendo en cuenta &ue en un caso particular reutili#ar alHn soft!are e/istente" o apo$arse en alHn puede no ser aplica%le. ,%usar o for#ar el uso de los patrones patrón de dise)o para alcan#ar la correcta estructuración de nuestro soft!are evitando invertir muc8o tiempo en alHn puede ser un error. aspecto referente a los $a mencionados. •
•
•
•
• •
•
•
•
• •
Cateor2a de los patrones'
SeHn la escala o nivel de a%stracción4 2atrones de ar&uitectura 4 ,&uellos &ue e/presan un es&uema orani#ativo estructural fundamental para sistemas de soft!are. 2atrones de dise)o4 ,&uellos &ue e/presan es&uemas para definir estructuras de dise)o 5o sus relaciones6 con las &ue construir sistemas de soft!are. Dialectos4 2atrones de %a(o nivel específicos para un lenua(e de proramación o entorno concreto. •
•
•
Estructura de los patrones'
2ara descri%ir un patrón se usan plantillas m9s o menos estandari#adas" de forma &ue se e/presen uniformemente $ puedan constituir efectivamente un medio de comunicación uniforme entre dise)adores. *a plantilla m9s comHn es la utili#ada precisamente por el Lo- $ consta de los siuientes apartados4 om3re del patrón4 nom%re est9ndar del patrón por el cual ser9 reconocido en la comunidad 5normalmente se e/presan en inl's6. Clasificación del patrón 4 creacional" estructural o de comportamiento. ntención4 =>u' pro%lema pretende resolver el patrón? (am3i4n conocido como4 Otros nom%res de uso comHn para el patrón. 5otivación4 Escenario de e(emplo para la aplicación del patrón. •
•
•
•
•
R E-ERENCI,S 6uentes de nformación' M: 8ttp4%los.timovil.comefrencaarc8iveF11P1G:<metodolo QCQ,DaJdeJreutili#aciQCQnJdeJsoft!are.asp/ MF 8ttp4!!!.!e%taller.commaletinarticulospresenteJfuturoJ reutili#acionJsoft!are.p8p M 8ttp4!e%delprofesor.ula.veinenieria(onas2roductos2u%licacionesC onresosC,C1QF1DesarrolloQF1deQF1componentes.pdf MG 8ttp4!!!.iro.infor.uva.esoldsitedocpu%ideasJF11:.pdf M 8ttp4es.scri%d.comdoc:;;F11:modeloJdeJreutili#acionJdeJsoft!are M0 8ttp4!!!.slides8are.netpto1G1GseminarioJJreutili#acinJdelJsoft!are MP 8ttp4!!!.adictosaltra%a(o.comtutorialestutoriales.p8p?painareuse M< 8ttp4proramar(ava.!ordpress.comF1:::F:reutili#acionJdeJ soft!areJventa(asJ$Jdesventa(as M; 8ttp4%los.timovil.comefrencaarc8iveF11P1G:<metodolo QCQ,DaJdeJreutili#aciQCQnJdeJsoft!are.asp/