Trabajo de Grado

Instituto Universitario Aeronáutico. Facultad de Ingeniería. Ingeniería en Sistemas.

Calidad en el Desarrollo de Soft are Científico.
Coenda Francisco !avier. Asesor" #aller $atricio.

Derecho de Autor
Calidad en el Desarrollo de Soft are Científico b% Francisco !avier Coenda is licensed under a Creative Commons Atribuci&n'Com(artirDerivadasIgual ).* Un(orted +icense.

$ara ver una co(ia de esta licencia, visitar -tt("..creativecommons.org.licenses.b%'sa.).*.

i

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Dedicatoria
/ste (ro%ecto esta dedicado a mi (adres % -ermana.

ii

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Agradecimiento
Agrade0co a mi familia (or -aberme acom(a1ado a lo largo de este (ro%ecto en el cual me embar2u3 con la finalidad de forjar un futuro (ara mí. Tambi3n a mis amigos % com(a1eros (or -aber formado (arte de este viaje. 4 agrade0co a $atricio #aller (or -aber sido un so(orte % guía en esta eta(a 2ue me encuentro transitando.

iii

Calidad en el Desarrollo de Software Científico.

INSTITUTO UNIVERSITARIO AERONAUTICO – FACULTAD DE INGENIERIA

Aprobado por el Departamento de Sistemas en cumplimiento de los requisitos exigidos para otorgar el título de Ingeniero de Sistemas Al Señor Coenda Francisco Javier – DNI !"# #"$%#" 5evisado (or" .............................................................. #g. #aller $atricio Tutor de Trabajo

.............................................................. +ic. Salamon Alicia. Directora D(to. Sistemas

................................................ Ing. 63ctor Carlos 5iso Director D(to. Desarrollo $rofesional Tribunal Examinador

............................................... +ic. Salamon Alicia $residente del Tribunal /7aminador

............................................................. $iccolotto $ablo 8ocal del Tribunal /7aminador C&rdoba, 9) de :oviembre de 9*;;

v

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Resumen
+os científicos se enfrentan a un cuello de botella en sus investigaciones, debido a demoras en los tiem(os 2ue necesitan (ara llevar a cabo el desarrollo de soft are científico. /sto se traduce, inevitablemente en una reducci&n del tiem(o asignado (ara llevar adelante la investigaci&n. Además, se suma el -ec-o de 2ue sufren cada ve0 más (resi&n con los tiem(os, (ara entregar resultados visibles con ma%or celeridad % con reducci&n de costos en las investigaciones. A trav3s de una investigaci&n te&rica, se (retende demostrar cuáles son las (roblemáticas 2ue afrontan los científico en el desarrollo de soft are científico, al momento de llevar a cabo dic-o (roceso en las investigaciones científicas. Tambi3n se busc& determinar 2u3 rol ocu(a la Ingeniería de Soft are, dentro del desarrollo de soft are científico en las investigaciones. Actualmente, e7isten en el mercado de desarrollo de soft are, sistemas ágiles 2ue (ermiten llevar un buen ritmo de desarrollo de (roductos soft are. A trav3s de la selecci&n de algunos (atterns de soft are 2ue ofrece SC#, se busca ofrecer una (e2ue1a soluci&n 2ue mejore la situaci&n 2ue atraviesan los investigadores científicos al llevar a cabo el desarrollo de (rogramas científico. Tambi3n, se busca dejar (lanteado un camino a seguir (ara futuras investigaciones 2ue (uedan contribuir a mejorar la (roblemática abordada en este (ro%ecto.

vi

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Índice
Derec-o de Autor....................................................................................................................i Dedicatoria.............................................................................................................................ii Agradecimiento.....................................................................................................................iii 5esumen................................................................................................................................vi <ndice......................................................................................................................................= <ndice de Ilustraci&n.............................................................................................................;* ;. Introducci&n......................................................................................................................;) ;.;. Antecedentes............................................................................................................;) ;.9. Situaci&n $roblemática.............................................................................................;> ;.). $roblema...................................................................................................................;? ;.>. @bjeto de /studio.....................................................................................................;? ;.?. Cam(o de Acci&n.....................................................................................................;A ;.A. @bjetivos...................................................................................................................;A ;.A.;. @bjetivo general................................................................................................;A ;.A.9. @bjetivos es(ecíficos........................................................................................;A ;.=. Idea a Defender . $ro(uesta a !ustificar . Soluci&n a Com(robar............................;= ;.B. Delimitaci&n del $ro%ecto........................................................................................;= ;.C. A(orte $ráctico.........................................................................................................;B ;.;*. A(orte Te&rico........................................................................................................;B ;.;;. #3todos de Investigaci&n ......................................................................................;C 9. #arco Conte7tual.............................................................................................................9; 9.;. +o 6ang Fruit % SC#............................................................................................9; 9.9. Análisis de los (roblemas observados......................................................................9) 9.). Antecedentes de (ro%ectos similares........................................................................)) ). #arco Te&rico..................................................................................................................)? ).; $atterns......................................................................................................................)? ).9. $atrones a $atrones de SC#.....................................................................................)C ).). $atrones Seleccionados.............................................................................................>; ).).;. Active Develo(ment +ine. ...............................................................................>; =

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

).).;.;. Conte7to....................................................................................................>; ).).;.9. $roblema...................................................................................................>) ).).;.). $osibles Soluciones...................................................................................>) ).).;.>. Soluci&n.....................................................................................................>> ).).;.?. Consideraciones........................................................................................>? ).).;.A. Deneficios /s(erados................................................................................>A ).).9. Integration Duild...............................................................................................>A ).).9.;. Conte7to....................................................................................................>= ).).9.9. $roblema...................................................................................................>B ).).9.). Soluci&n.....................................................................................................>B ).).9.>. Consideraciones........................................................................................?* ).).9.?. Deneficios /s(erados................................................................................?; >. #odelo Te&rico................................................................................................................?9 >.;. Active Develo(ment +ine.........................................................................................?9 >.;.;. :ota de +iberaci&n............................................................................................?) >.;.9 Tags....................................................................................................................?> >.9. Integration Duild.......................................................................................................?? >.9.;. EorFs(ace Integrador.......................................................................................?= >.9.9. Tiem(o de Integraci&n .....................................................................................?B ?. Concreci&n del $rototi(o..................................................................................................?C ?.;. Im(lementaci&n de una línea activa de desarrollo....................................................?C ?.9. Im(lementaci&n de Integration Duild.......................................................................AB A. Conclusiones....................................................................................................................=9 =. 5eferencia Dibliográfica...................................................................................................=) B. Dibliografía.......................................................................................................................=? C. Glosario............................................................................................................................B* ;*. Ane7o.............................................................................................................................B; ;*.;. Soluciones...............................................................................................................B; ;*.;.;. Iniciali0aci&n del re(ositorio. .........................................................................B; ;*.;.9. 5ecomendaciones (ara utili0ar Git.................................................................C; B

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

;*.;.). 5ollbacF con Git.............................................................................................C) ;*.;.>. 5e2uisitos (ara im(lementar Integration Duild..............................................CA ;*.;.?. 5ecomendaciones al trabajar con Integration Duil.........................................CA ;*.9. $resentaci&n............................................................................................................CA ;*.9.;. S(eec- (ara el EorFs-o(................................................................................CA ;*.9.9. $asos de la Demostraci&n del EorFs-o(........................................................CB ;*.9.). Filminas de la (resentaci&n del EorFs-o(.....................................................CC ;*.). 8alidaci&n de la $ro(uesta...................................................................................;;>

C

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Índice de Ilustración
Ilustraci&n ; G Distribuci&n del tiem(o 2ue (osee un Desarrollador Científico..................;) Ilustraci&n 9 G C&mo se manifiesta la carencia de -erramientas en el desarrollo de soft are................................................................................................................................;> Ilustraci&n ) G Actividades 2ue com(onen la Gesti&n de Configuraci&n............................;? Ilustraci&n > G Comunidad Científica..................................................................................;B Ilustraci&n ? G Transferencia de conocimiento desde Ingeniería de Soft are al Cam(o de Investigaci&n Científica........................................................................................................;C Ilustraci&n A G Gráfica de Criticidad % /sfuer0o..................................................................9; Ilustraci&n = G $osicionamiento de SC# en la gráfica de Criticidad ' /sfuer0o.................99 Ilustraci&n B G Distribuci&n de re2uisitos segHn desarrolladores científicos.......................9) Ilustraci&n C G Distribuci&n de re2uisitos segHn Ingeniería de Soft are.............................9> Ilustraci&n ;* G Dominio del $roblema com(rendido solamente (or los científicos..........9? Ilustraci&n ;; G Imbitos segHn científicos .........................................................................9A Ilustraci&n ;9 G 6erramientas usadas (or los científicos.....................................................9= Ilustraci&n ;) G Curva de A(rendi0aje.................................................................................9B Ilustraci&n ;> G Falta de 5eutili0aci&n de com(onentes % otros elementos en el Soft are Científico. ............................................................................................................................9C Ilustraci&n ;? G Test 2ue reali0an los científicos.................................................................)* Ilustraci&n ;A G C&mo entienden la (erformance los científicos. .......................................); Ilustraci&n ;= G Soft are descartado cuando finali0a la investigaci&n científica................)9 Ilustraci&n ;B G Formas en 2ue los científicos ad2uieren conocimientos (ara el desarrollo de soft are...........................................................................................................................)) Ilustraci&n ;C G Com(lementaci&n de $attern.....................................................................)? Ilustraci&n 9* G Generaci&n de $attern +anguage................................................................)? Ilustraci&n 9; G $roblema 5ecurrente..................................................................................)A Ilustraci&n 99 G $attern +anguage % $atterns seleccionados................................................)= Ilustraci&n 9) G Formas de a(licar los (atterns....................................................................)B Ilustraci&n 9> G C&mo trabaja el +enguaje de $atterns........................................................)C Ilustraci&n 9? G #odificaci&n % rotura del main line...........................................................>; ;*

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Ilustraci&n 9A G $untos de Sincroni0aci&n en el main line...................................................>9 Ilustraci&n 9= G #ain +ine con mHlti(les ramificaciones....................................................>) Ilustraci&n 9B G Dalance entre estabilidad % (rogreso..........................................................>> Ilustraci&n 9C G Gráfica de una Active Develo(ment +ine..................................................>? Ilustraci&n )* G Com(licaci&n al momento de reali0ar una integraci&n..............................>= Ilustraci&n ); G :uevo com(onente 2ue genera un (roblema en el main line....................>B Ilustraci&n )9 G $roceso de Integration Duil........................................................................>C Ilustraci&n )) G #arcadores de las construcciones reali0adas del (ro%ecto........................?* Ilustraci&n )> G /rror en el #ain +ine.................................................................................?9 Ilustraci&n )? G :otas de liberaci&n o lan0amiento.............................................................?) Ilustraci&n )A G Tag de los (untos @J de c-e2ueo..............................................................?> Ilustraci&n )= G /rror al momento de integrar, al main line, los com(onentes....................?A Ilustraci&n )B G EorFs(ace 2ue contiene los com(onentes a ser integrado........................?= Ilustraci&n )C ' C&mo funciona comando git add................................................................?C Ilustraci&n >* ' Tomar una sna(s-ot del arc-ivo modificado..............................................A* Ilustraci&n >; ' C&mo funciona comando git commit..........................................................A; Ilustraci&n >9 ' /ditor de te7to del commit..........................................................................A9 Ilustraci&n >) ' @(ciones de guardado del commit..............................................................A) Ilustraci&n >> ' Fin del (roceso de commit % re(orte del commit 2ue se -a reali0ado........A> Ilustraci&n >? ' Utili0aci&n del comando git tag..................................................................A> Ilustraci&n >A ' Creaci&n de tag % corroboraci&n del tag creado..........................................A? Ilustraci&n >= ' Utili0aci&n de git merge..............................................................................A? Ilustraci&n >B ' /jecuci&n de la o(eraci&n merge................................................................A= Ilustraci&n >C ' Corroboraci&n de 2ue la o(eraci&n merge..................................................AB Ilustraci&n ?* ' Se iniciali0a el re(ositorio...........................................................................B9 Ilustracion ?; ' #ensaje al finali0ar la iniciali0aci&n del re(ositorio % com(robaci&n de la creaci&n de 3ste....................................................................................................................B) Ilustraci&n ?9 ' Iniciali0aci&n. Comando git add.................................................................B> Ilustraci&n ?) ' Sna(s-ot inicial del (ro%ecto......................................................................B> Ilustraci&n ?> ' Iniciali0aci&n. Comando git commit...........................................................B? ;;

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Ilustraci&n ?? ' Commit del sna(s-ot inicial del (ro%ecto...................................................BA Ilustraci&n ?A ' Iniciali0aci&n. Comando branc-.................................................................BA Ilustraci&n ?= ' Craci&n de la rama trabajo..........................................................................B= Ilustraci&n ?B ' Corroboraci&n de 2ue se cre& la rama % sobre 2u3 rama se está (osicionado...........................................................................................................................BC Ilustraci&n ?C ' Cambiar de rama % com(robaci&n de 2ue se cambi& de rama....................C* Ilustraci&n A* ' Agregando arc-ivos modificados (or se(arados. Imagen ;.......................C9 Ilustraci&n A; ' Agregando arc-ivos modificados (or se(arados. Imagen 9.......................C) Ilustraci&n A9 ' /jecuci&n del rollbacF de una modificaci&n...............................................C> Ilustraci&n A) ' Usando comando log (ara determinar la versi&n % valor del commit........C> Ilustraci&n A> ' /jecutando el rollbacF.................................................................................C? Ilustraci&n A? ' Corroborando 2ue se retorn& a la versi&n anterior......................................C?

;9

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

1. Introducción
;.;. Antecedentes
/ste (ro%ecto sobre metodología de desarrollo de soft are en el ámbito científico, surge de necesidades (untuales en gru(os de Investigaci&n % Desarrollo en el Instituto Universitario Aeronáutico, 2ue (odría canali0arse a trav3s de un trabajo de grado. /ste (ro%ecto abordará dificultades tí(icas en el desarrollo de soft are científico, con las (articularidades 2ue lo diferencian del desarrollo de soft are tradicional. +os gru(os de Investigaci&n % Desarrollo 2ue (roducen soft are científico, deben destinar (arte de su valioso tiem(o de investigaci&n K;L al desarrollo, mantenimiento % modificaci&n del soft are científico K9L, careciendo de las t3cnicas e infraestructura K)L (ara -acerlo al nivel de (erfecci&n % calidad del soft are comercial.

Ilustración 1 – Distribución del tiem o !ue osee un Desarrollador Científico.

A su ve0, estos gru(os e7(erimentan (resiones crecientes en (resu(uesto % e7igencias K>L, (ara mejorar tiem(os de entrega % calidad de los resultados. :o se (retende brindar una soluci&n de fondo a la (roblemática (lanteada, sino introducir mejoras a trav3s de las -erramientas de la Ingeniería de Soft are, (ara la situaci&n 2ue atraviesa la Investigaci&n Científica en este ámbito. ;)

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

;.9. Situaci&n $roblemática
/l desarrollo de soft are científico se ve afectado (or una serie de factores, los cuales llevan a 2ue se generen (roblemas de distinta índole en esta área. /l desarrollo de soft are científico es llevado adelante (or los (ro(ios científicos.investigadores K9L, detectándose una escasa integraci&n de los ingenieros de soft are en los e2ui(os de trabajo K)L. +os científicos, al no (oseer conocimientos formales sobre Ingeniería de Soft are K)L K?L, carecen de las -erramientas (ara afrontar los re2uerimientos de mejora en tiem(os de entrega, 2ue necesitan (ara continuar con sus actividades. +a carencia de instrumentos se manifiesta en soft are monolíticos, difíciles de mantener en el tiem(o % com(licados de modificar si -iciere falta.

Ilustración " – Cómo se manifiesta la carencia de herramientas en el desarrollo de software.

Además, se detect& un escaso uso de -erramientas de desarrollo de soft are, siendo los ID/s la Hnica -erramienta de ma%or uso e7tendido entre los desarrolladores de soft are científico KAL. +a (obre o nula e7istencia de documentaci&n formal KAL del soft are científico, dificulta la continuaci&n de 3ste en el tiem(o con e2ui(os de trabajo cambiante. Tras un resumen de los distintos factores 2ue afectan el desarrollo de soft are científico, 2uedan de manifiesto los distintos (roblemas 2ue se (resenta en dic-a área de desarrollo. ;>

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

;.). $roblema
+os científicos cuentan cada ve0 con menos tiem(os (ara entregar resultados visibles % o(erativos a la comunidad K>L. /sto, sumado a la falta de -erramientas de Ingeniería de Soft are 2ue (oseen los desarrolladores de soft are científicos, -ace necesario la introducci&n de cambios 2ue mejoren el (roceso de desarrollo de soft are.

;.>. @bjeto de /studio
/l objeto de estudio (ara este (ro%ecto es la Gesti&n de Configuraci&n en el ámbito del desarrollo de soft are científico. +a Gesti&n de Configuraci&n es una actividad (rotectora 2ue se a(lica a lo largo del (roceso de soft are. /sta se com(one de un conjunto de actividades 2ue se -an desarrollado, a fin de gestionar el cambio a lo largo del ciclo de vida del soft are.

Ilustración # – Acti$idades !ue com onen la %estión de Configuración &1'(.

+a Gesti&n de Configuraci&n se considera como una actividad de aseguramiento de la ;?

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

calidad 2ue se a(lica a lo largo del (roceso de desarrollo, con retorno en la inversi&n inmediata % una am(lia a(licabilidad en diferentes dominios K=L.

;.?. Cam(o de Acci&n
/l cam(o de acci&n se centra en el estudio de (atrones del Soft are Configuration. /s(ecíficamente, se selecciona un (atr&n del Soft are Configuration, 2ue, a(licado al desarrollo de soft are científico, mejore calidad % tiem(os de entrega.

;.A. @bjetivos
1.).1. *b+eti$o general /l objetivo 2ue se (ersigue con este (ro%ecto es e7(lorar la a(licaci&n de la disci(lina Ingeniería de Soft are al desarrollo de soft are científico, con la finalidad de identificar (atrones de configuraci&n 2ue (odrían a%udar a mejorar el tiem(o de desarrollo de soft are científico % la (roductividad de los desarrolladores de soft are científico. 1.).". *b+eti$os es ecíficos • • • • • • Identificar las necesidades metodol&gicas en el desarrollo de soft are científico. Caracteri0ar el desarrollo del soft are científico. Identificar los diferentes as(ectos de la Gesti&n de Configuraci&n 2ue (odrían utili0arse en el desarrollo de soft are científico. Anali0ar (atrones de configuraci&n. Seleccionar un (atr&n de configuraci&n. Anali0ar dic-o (atr&n de configuraci&n en el conte7to del (ro%ecto. ;A

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

• • • •

Ada(tar dic-o (atr&n al desarrollo de soft are científico en el conte7to del (ro%ecto. 8erificar el (atr&n (ro(uesto con una im(lementaci&n. Anali0ar los resultados. Generar conclusiones.

;.=. Idea a Defender . $ro(uesta a !ustificar . Soluci&n a Com(robar
/n el (resente trabajo se trata de definir % a(licar un (atr&n de configuraci&n al desarrollo de soft are científico. /l objetivo 2ue se (ersigue no solo es mejorar la eficiencia del desarrollo, sino tambi3n mejorar la (roductividad de los desarrolladores de soft are científico. De esta manera, se intenta una mejora en los tiem(os de desarrollo en soft are científico.

;.B. Delimitaci&n del $ro%ecto
Se reali0a un estudio del estado del arte en la temática % una im(lementaci&n de una soluci&n en el ámbito científico G t3cnico utili0ando -erramientas, como re(ositorios de datos % scri(ts entre otros. Mueda fuera del alcance de este (ro%ecto la verificaci&n em(írica de la (ro(uesta.

;=

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

;.C. A(orte $ráctico
Se es(era 2ue los resultados de este (ro%ecto tengan un im(acto directo dentro % fuera de la comunidad del I.U.A., beneficiando a los desarrolladores de soft are científico.

Ilustración , – Comunidad Científica.

Se (retende mejorar la eficiencia de los e2ui(os de desarrollo de soft are científico, así como tambi3n incrementar el nivel de (roductividad de 3stos.

;.;*. A(orte Te&rico
Transferencia de conocimientos de la disci(lina Ingeniería de Soft are al desarrollo de soft are científico. Transferir conocimientos 2ue sean sencillos de a(licar % 2ue (osean un alto im(acto en la eficiencia del desarrollo de soft are científico, así como en los niveles de (roductividad.

;B

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Ilustración - – .ransferencia de conocimiento desde Ingeniería de Software al Cam o de In$estigación Científica.

Se (lantea la a(licaci&n de algunos (atrones seleccionados al desarrollo de soft are científico. $or lo tanto, se deja la (uerta abierta (ara seguir reali0ando investigaciones, %a sea sobre esta misma línea de trabajo o sobre otra línea de la Ingeniería de Soft are.

;.;;. #3todos de Investigaci&n
+a metodología de investigaci&n utili0ada es un análisis te&rico, con una validaci&n de la (ro(uesta a trav3s de una demostraci&n. ;. /7(loraci&n de (a(ers, 2ue (ermitan determinar el estado del arte en el dominio del desarrollo de soft are científico G t3cnico, (ara la identificaci&n de los factores (roblemas. 9. /7(loraci&n de (osibles (atrones de configuraci&n. ). /laboraci&n de la soluci&n. >. $rototi(ado de soluci&n. ?. Demostraci&n de la soluci&n construida. ;C

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

A. 5elevamiento % análisis de datos.

9*

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

". /arco Conte0tual
9.;. +o 6ang Fruit % SC#.
/l desarrollo de soft are científico re(orta una multi(licidad de (roblemas %a resueltos, en el marco de la Ingeniería de Soft are Kdocumentaci&n, testing, gesti&n de configuraci&n, entre otrosL. /stos (roblemas (ueden clasificarse rá(idamente (or su criticidad % esfuer0o re2uerido (ara solucionarlos, es decir, (or el retorno en la inversi&n re2uerida (ara solucionarlos.

Ilustración ) – %r1fica de Criticidad 2 3sfuer4o.

SC# es una de las tantas soluciones K-erramientaL 2ue brinda la Ingeniería de Soft are % 2ue (ermite atacar muc-os de los (roblemas 2ue re(orta el desarrollo de soft are científico, con (oco esfuer0o. SC# se basa en un conjunto de (rácticas, muc-as veces no usadas (or los desarrolladores de soft are, a (esar de 2ue algunas de ellas e7isten desde -ace tiem(o en el ámbito de la Ingeniería de Soft are, 2ue a%udan a incrementar la (roductividad con mu% (oco

9;

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

esfuer0o.

Ilustración 5 – 6osicionamiento de SC/ en la gr1fica de Criticidad 7 3sfuer4o.

#uc-as organi0aciones suelen im(lementar incorrectamente SC# o directamente no lo -acen, cre%endo 2ue su im(lementaci&n va a insumir grandes esfuer0os o costos monetarios. $ara (oder usar correctamente SC#, en (rimera instancia, se debe tomar en cuenta 2ue está com(uesto de t3cnicas % (rocesos. $or lo tanto, al momento de im(lementar SC# o algunas t3cnicas o (rocesos de SC#, se debe considerar 2ue (uede llegar a verse influenciada (or algunos as(ectos, tales como la estructura de la organi0aci&n, la ar2uitectura o las -erramientas, entre otras. Si esto no es tomado en cuenta, la a(licaci&n de SC# fracasa o genera serios (roblemas tanto en el desarrollo de soft are como a nivel organi0acional. SC# es una -erramienta de suma utilidad 2ue se a(lica al desarrollo de soft are, es(ecialmente en ambientes de desarrollos ágiles, %a 2ue re2uiere de mu% (oco esfuer0o (ara ser im(lementada % (ermite resolver (roblemas críticos.

99

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

9.9. Análisis de los (roblemas observados.
/l desarrollo de soft are científico se encuentra influenciado (or una serie de factores 2ue dan lugar a (roblemas de diversa índole. /sto -ace necesario 2ue se deba buscar cuáles son estos factores % de 2u3 forma im(actan en el desarrollo del soft are científico. Al anali0ar el desarrollo de soft are científico se observa 2ue carece de documentaci&n, formal o informal, donde se detallan los re2uisitos 2ue se desarrollaron en el (asado -asta el (resente % los 2ue vendrán. /sto se debe a 2ue, a medida 2ue la investigaci&n avan0a, van surgiendo distintas necesidades. Algunas de estas dan lugar a los re2uisitos de soft are KBL.

Ilustración ' – Distribución de re!uisitos seg8n desarrolladores científicos.

/sta forma 2ue (oseen los desarrolladores de soft are científico de manejar los re2uisitos de soft are, contrasta con la forma de manejarlos en la Ingeniería de Soft are. /sta establece 2ue, antes de em(e0ar el desarrollo de soft are, es necesario tener documentados los re2uisitos de soft are.

9)

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Ilustración 9 – Distribución de re!uisitos seg8n Ingeniería de Software.

+a falta de documentaci&n sobre las necesidades de soft are, -ace 2ue los desarrolladores de soft are científico no se(an con e7actitud 2u3 re2uisitos se -an im(lementado % cuáles (ermanecen (endientes KBL. Tam(oco e7iste una descri(ci&n del dominio de trabajo. /sto -ace 2ue solamente a2uellas (ersonas 2ue se encuentran en contacto directo con 3ste, se(an cuáles son las necesidades concretas KBL del soft are científico. /n este caso, serían los desarrolladores de soft are científico.

9>

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Ilustración 1: – Dominio del 6roblema com rendido solamente or los científicos.

Una de las ra0ones (or la 2ue los desarrolladores de soft are científico obvian la documentaci&n, es 2ue llevar a cabo dic-a tarea consume tiem(o % esfuer0o. $or otra (arte, (oseen la a(reciaci&n de 2ue el soft are 2ue ellos desarrollan no sale del ámbito acad3mico KCL.

9?

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Ilustración 11 – ;mbitos seg8n científicos .

+os desarrolladores de soft are científico, normalmente no utili0an las -erramientas 2ue ofrece la Ingeniería de Soft are, siendo los ID/s la -erramienta de ma%or uso entre ellos.

9A

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Ilustración 1" – <erramientas usadas or los científicos. &)( &3ncuesta reali4ada a una e!ue=a muestra de científicos(

Sin embargo, tratan de evitar su uso, debido a 2ue consideran 2ue los ID/s son rígidos en su estructura de trabajo %, (or lo tanto, limitan las tareas de desarrollo KCL. Debido a 2ue el (eríodo de vida Htil del soft are científico es largo, los desarrolladores de soft are científico son reacios a usar nuevas -erramientas o (rácticas de la Ingeniería de Soft are. /sto se debe a 2ue no tienen la certe0a de 2ue dic-as -erramientas o (rácticas (erduren en el tiem(o, como el c&digo de soft are científico 2ue ellos están desarrollando K;;L. $ara los desarrolladores de soft are científico, e7iste una curva de a(rendi0aje (or cada nueva -erramienta o (ráctica de Ingeniería de Soft are 2ue im(lementan. /sto -ace 2ue deban destinar (arte del tiem(o 2ue (oseen al a(rendi0aje del nuevo elemento a im(lementar.

9=

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Ilustración 1# – Cur$a de A rendi4a+e. &19(

+os desarrolladores de soft are científico reconocen la im(ortancia de la reutili0aci&n. A (esar de esto, no lo a(lican en los (ro%ectos de desarrollo de soft are. /n su lugar, desarrollan sus (ro(ios frame orFs, una ar2uitectura totalmente nueva o el c&digo del soft are científico.

9B

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Ilustración 1, – >alta de Reutili4ación de com onentes 2 otros elementos en el Software Científico.

/sto -ace 2ue los desarrolladores de soft are científico deban destinar (arte de su tiem(o a desarrollar una ar2uitectura, un frame orF o una (ie0a de c&digo totalmente nuevos, siendo esta una actividad 2ue re2uiere de un ma%or esfuer0o 2ue la reutili0aci&n K;;L. +os investigadores -acen escaso uso de los testings. /l test unitario es la actividad de testing más e7tendida entre los desarrolladores científicos, tendiente a com(robar el buen funcionamiento del soft are científico desarrollado. A (esar de la situaci&n descri(ta, ellos llevan a cabo una serie de test en los soft are científicos. Sin embargo, estos test están destinados a verificar -i(&tesis, modelos de investigaciones % resultados de las distintos trabajos 2ue llevan a cabo los científicos. 9C

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Ilustración 1- – .est !ue reali4an los científicos. &1'( &3ncuesta reali4ada a una e!ue=a muestra de científicos(

@tro ti(o de verificaci&n 2ue los desarrolladores de soft are científico llevan adelante, es el de mostrar el (roducto desarrollado en funcionamiento a los interesados o usuarios finales KCL, solamente e7(oniendo 2ue (roduce la salida correcta. +a (erformance en el soft are científico es crucial. Sin embargo, los científicos entienden (or (erformance no solamente un a-orro de tiem(o, sino 2ue tambi3n im(lica la obtenci&n de resultados más fidedignos K;;L. /sta forma de com(renderla, (lantea un serio (roblema (ara los desarrolladores de soft are científico, %a 2ue cada mejora 2ue logran en los tiem(os, se traduce en una solicitud (or (arte de los científicos (ara 2ue se agregue ma%or funcionalidad al soft are científico, a fin de incrementar la fidelidad de los resultados 2ue 3ste (roduce K;;L.

)*

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Ilustración 1) – Cómo entienden la erformance los científicos.

$or este motivo, los desarrolladores de soft are científico se vuelcan a la utili0aci&n del lenguaje F@5T5A: K;;L, en busca de 2ue el soft are científico (osea una buena (erformance. De esta manera, los desarrolladores de un (rograma científico (ueden centrarse en funcionalidades 2ue agreguen ma%or fidelidad a los resultados 2ue (roduce el soft are científico. Tambi3n se encuentra un uso e7tendido del lenguaje C o CNN K;;L, (or el mismo motivo descri(to anteriormente. +os desarrolladores de soft are científico no utili0an (rogramaci&n orientada a objetos, (or lo tanto, el (rograma científico 2ue desarrollan es monolítico K;9L. /sto -ace 2ue el soft are científico sea com(lejo % difícil de mantener en el tiem(o. $or otra (arte, estos (rogramas científicos son (rototi(os o versiones betas K;9L. /sto se debe a 2ue los científicos ven al soft are científico como una -erramienta más, cu%o Hnico (ro(&sito, al igual 2ue el resto de -erramientas 2ue utili0an en sus investigaciones, es el de (ermitirles alcan0ar los objetivos de sus investigaciones K;*L. /s (or esto 2ue normalmente el soft are científico suele ser descartado K;9L, %a 2ue una ve0 finali0ada la investigaci&n, carece de utilidad.

);

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Ilustración 15 – Software descartado cuando finali4a la in$estigación científica.

A (esar de la situaci&n 2ue se describe, muc-as veces, dic-o soft are científico sale del ámbito acad3mico o de investigaci&n en el 2ue se encuentra circunscri(to % termina convirti3ndose en un (roducto 2ue necesita mantenimiento. /ste seguimiento solamente (uede ser dado (or los desarrolladores de (rogramas científicos, debido a 2ue son los Hnicos 2ue conocen c&mo se -a desarrollado el mismo. $or otra (arte, cuando el soft are científico es sacado del marco de trabajo (ara el cual fue creado, (ierde utilidad K;*L. /sto se debe a 2ue el (rograma científico es Htil Hnicamente en el conte7to de origen. /l -ec-o de 2ue el soft are científico sea considerado (or los científicos como algo descartable, -ace 2ue los ingenieros de soft are sean reticentes a trabajar con los científicos % desarrolladores de soft are científicos. /sto se debe a 2ue los investigadores no reconocen la (artici(aci&n % a(orte 2ue los ingenieros de soft are reali0an a la.s investigaci&n.es 2ue se llevan adelante K;*L. +os desarolladores de soft are científicos carecen de los conocimientos formales de Ingeniería de Soft are, más allá de 2ue algunos de ellos -an estado codificando (or más de 9* a1os en diversos (ro%ectos de investigaci&n K;;L. +a forma más comHn en 2ue los desarrolladores de un (rograma científico ad2uieren los conocimientos (ara reali0ar desarrollo de soft are, es a trav3s de otros desarrolladores de soft are científico 2ue -an estado codificando desde -ace tiem(o. Tambi3n son autodidactas K;;L K;9L. /sta forma de

)9

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

ad2uirir los conocimientos contrasta muc-o con la forma en 2ue lo -acen los ingenieros de soft are, los cuales, a trav3s de una educaci&n formal, ad2uieren los conocimientos (ara llevar a cabo el desarrollo de soft are. @tra forma 2ue (oseen los desarrolladores de soft are científico (ara ad2uirir los conocimientos, es a trav3s de cursos de ca(acitaci&n. Sin embargo, esta Hltima forma, no es am(liamente usada (or ellos.

Ilustración 1' – >ormas en !ue los científicos ad!uieren conocimientos ara el desarrollo de software.

A trav3s de un análisis se (uede corroborar cuáles son los distintos factores 2ue im(actan en el desarrollo de soft are científico % 2ue dan lugar a una serie de (roblemas, 2ue -an sido resueltos (or la Ingeniería de Soft are.

9.). Antecedentes de (ro%ectos similares.
/n el siguiente a(artado, se e7(lica brevemente un (ro%ecto llevado adelante en el 5eino Unido % 2ue utili0a SC#. +a UJ #et @ffice, en el a1o 9**>, em(e0& a desarrollar el sistema Fle7ible Configuration #anagment o FC#, 2ue fue finali0ado en el a1o 9**A. /ste (ro%ecto fue llevado a cabo en forma conjunta (or los científicos de la UJ #et @ffice % un gru(o de e7(ertos en IT convocados (or la UJ #et @ffice. +os científicos de la UJ #et @ffice, %a venían utili0ando algunas (rácticas de Ingeniería de Soft are, como así tambi3n venían a(licando algunos as(ectos de SC# en los distintos (ro%ectos de investigaci&n 2ue llevaban adelante. A (esar de -aber im(lementado estas (rácticas, surgían (roblemas de diversa índole. /sto se debía a 2ue los distintos gru(os de investigaciones 2ue trabajan en la UJ ))

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

#et @ffcie, utili0aban distintos (rocesos % (rocedimientos cuando llevaban a cabo sus investigaciones % desarrollo de soft are, lo 2ue dificultaba muc-o el tras(aso de informaci&n o la rotaci&n de los científicos entre los distintos gru(os de investigaciones. /sta situaci&n entor(ecía muc-o el ingreso de nuevos miembros o la (artici(aci&n de colaboradores e7ternos a los gru(os de investigaci&n 2ue (oseía la UJ #et @ffice, %a 2ue (ara (oder ingresar, tenían 2ue a(render los distintos (rocesos 2ue e7istían en estos gru(os de investigaci&n, es decir, e7istía una curva de a(rendi0aje. Ante esta situaci&n, las autoridades de la UJ #et @ffcie decidieron desarrollar el Fle7ible Configuration #anagment. /ste sistema sim(lifica la tarea de desarrollo de soft are actuando como una interface entre los científicos % los distintos soft are 2ue se utili0an (ara llevar a cabo el desarrollo del soft are de simulaci&n científica. Con este sistema, se logra mejorar los tiem(os de desarrollo de soft are % unificar las distintas -erramientas. Se mejoraron así los ciclos de lan0amiento % se logr& reducir la curva de a(rendi0aje K99L.

)>

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

#. /arco .eórico
).; $atterns.
+os (atterns son soluciones a (roblemas concurrentes 2ue se (resentan en un determinado conte7to. Cada uno de estos (attern, individualmente, com(lementa a otro (attern.

Ilustración 19 – Com lementación de 6attern.

/ste (roceso, en el 2ue los (atterns se van com(lementando, da lugar a 2ue se genere un lenguaje de (atterns.

Ilustración ": – %eneración de 6attern ?anguage.

+a idea de los (atterns % lenguaje de (atterns, (roviene de los trabajos del ar2uitecto C-risto(-er Ale7ander. /ste ar2uitecto se refiere a los (atterns de la siguiente manera" O+os (atterns describen (roblemas 2ue ocurren una % otra ve0 en nuestro entorno. /stos (atterns definen la soluci&n a dic-o (roblema % 2ue (uede ser a(licada un mill&n de veces, sin -acerlo dos veces de la misma manera.P K;)L.

)?

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Ilustración "1 – 6roblema Recurrente.

+a meta de los (atterns es crear un lenguaje 2ue a%ude a los desarrolladores de soft are a resolver (roblemas 2ue son recurrentes K;>L en el desarrollo de soft are. /l lenguaje de (atterns, nos (ermite concatenar los distintos (atterns a fin de (oder obtener un ma%or beneficio de la a(licaci&n de ellos, en es(ecial, (ara documentar la ar2uitectura de soft are K;)L K;>L.

)A

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Ilustración "" – 6attern ?anguage 2 6atterns seleccionados.

)=

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Una buena ar2uitectura de soft are es a2uella, 2ue es ada(table % resiliente a los cambios K;>L. +os (atterns son totalmente inde(endientes de la -erramienta 2ue se utiliceQ -a% -erramientas 2ue los so(ortan, mientras 2ue otras no lo -acen, o solamente so(ortan algunos (atterns. AHn a(licando los (atterns de forma manual o rudimentariamente, se a(ortan beneficios al (ro%ecto K;)L.

Ilustración "# – >ormas de a licar los atterns.

+os (atterns reciben nombres significativos, los cuales no dan una idea conce(tual de cuáles son los (roblemas 2ue abordan K;>L. Un buen (attern tiene los siguientes com(onentes" • • • • • 5esuelve un (roblema. /s un conce(to (robado. +a soluci&n 2ue ofrece no es obvia. Describe una relaci&n. $osee un com(onente significativamente -umano K;>L.

A estas características 2ue debe reunir un buen (attern, se le deben sumar los siguientes conce(tos" • • Rtil Knos muestra c&mo esta instancia del (attern se materiali0a en el mundo realL. Mue se (ueda usar Ktransforma la literatura del (attern en un conce(to 2ue reside en nuestra menteL.

)B

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Usado Kde esta forma se a(lica al mundo realL K;>L.

/l lenguaje de (atterns es una colecci&n de (atterns 2ue trabajan en conjunto (ara resolver un (roblema com(lejo. /sto sería im(osible de reali0ar utili0ando solamente un (attern.

Ilustración ", – Cómo traba+a el ?engua+e de 6atterns.

/l lenguaje de (attern inclu%e reglas % guías, 2ue indican cuándo % c&mo deben ser a(licados los (atterns K;>L.

).9. $atrones a $atrones de SC#.
Con el advenimiento de las metodologías ágiles, dentro de la ingeniería de soft are, el uso de (atrones -a e7cedido el ámbito de la ar2uitectura de soft are (ara (asar a ser utili0ados como -erramientas (ara re(resentar (rocesos de desarrollo, team orF, build management, revie , entre otros. /sto -a llevado a 2ue, a (esar de 2ue las -erramientas sim(lifican muc-o los (rocesos, no sea suficiente (ara lograr organi0aciones e7itosas en el desarrollo de soft are, % se -ace necesaria la a(licaci&n de (atrones (ara SC#. Dásicamente, en cual2uier área donde e7istan (rocesos % com(ortamientos 2ue involucran

)C

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

soluciones re(etitivas % en distintos gru(os de trabajo, los (atrones son una (oderosa -erramienta de comunicaci&n 2ue (ermite mejorar la eficiencia de los gru(os de trabajo. /sto se debe a 2ue los (atrones son (articularmente buenos (ara describir (rocesos % determinados as(ectos de ciertas (rácticas de ingeniería de soft are, con el fin de 2ue sean utili0adas eficientemente (or los gru(os de trabajo al momento de a(licar SC#. /n el a1o 9**9, Steve Derc0uF % Drad A((leton, (ublicaron un libro fundacional en cuanto a (atrones de SC#, 2ue (as& a convertirse en una de las bases de la Ingeniería de Soft are, es(ecialmente en los ambientes de desarrollo ágiles. /ste libro (resenta el conce(to de (atrones, desde su surgimiento -asta nuestros días, (asando (or autores 2ue %a -abían comen0ado a reali0ar algunos (lanteamientos sobre la temática. /sta bibliografía nos (resenta ;A (atrones de SC#, 2ue van desde la utili0aci&n de re(ositorios, -asta las estrategias de release management, (asando (or test, es(acios de trabajo, etc. A su ve0, se e7(lica c&mo surgieron los (atrones, los distintos trabajos 2ue contribu%eron a 2ue se crearan, así como conce(tos de Ingeniería de Soft are 2ue son base fundamental (ara el entendimiento de los (atrones de SC#. +a estructura de cada (atr&n, 2ue se encuentra desarrollada en este libro, se com(one de la siguiente forma" • • • • • • • Un título. Imágenes. Una descri(ci&n de conte7to del (atr&n. /l (roblema 2ue resuelve el (atr&n. Un resumen de la soluci&n a(ortada. Una descri(ci&n detallada de la soluci&n. Una descri(ci&n de los (roblemas no resueltos % c&mo (ueden ser resueltos.

A trav3s de este te7to, escrito (or Steve Derc0uF % Drad A((leton, se deja (lasmados a los (atrones de SC# como re(resentaciones de (rocesos. /stos (rocesos son actividades de Gesti&n de Configuraci&n 2ue venían utili0ándose en el desarrollo de soft are % 2ue -an sido e7(resadas en el libro escrito (or S. Derc0uF % D. A((leton. Tomando como referencia esta obra, se -a (rocedido a seleccionar dos (atrones de SC#,

>*

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

con una a(licabilidad directa a algunos de los (roblemas 2ue se describen en el ca(ítulo #arco Conte7tual. /s(ecíficamente, se busca mejorar la eficiencia % (roductividad en el desarrollo del soft are científico, ada(tando estos (atrones, de acuerdo al marco conte7tual en el cual van a ser im(lementados, 2ue es el cam(o de Investigaci&n Científica.

).). $atrones Seleccionados.
#.#.1. Acti$e De$elo ment ?ine. /n cual2uier (ro%ecto de desarrollo de soft are, el (rograma 2ue se está creando, sufre cambios. /stas modificaciones im(lican el riesgo de 2ue el c&digo se rom(a o 2ue se (rodu0ca un conflicto con el c&digo. $ara evitar esto, el (attern active develo(ment line, (ermite encontrar un balance entre estabilidad % (rogreso. 3.3.1.1. Contexto Cual2uier cambio 2ue se lleve adelante sobre el soft are o com(onente 2ue se está desarrollando, inevitablemente im(lica el riesgo de 2ue el sistema se rom(a o 2ue dic-as modificaciones 2ue se reali0an generen conflicto.s con otro.s com(onente.s del soft are 2ue se está desarrollando en el (ro%ecto K;)L.

Ilustración "- – /odificación 2 rotura del main line.

Dásicamente, cuando se desarrolla soft are, intervienen muc-as (ersonas Ken los ambientes científicos, intervienen desarrolladores de soft are científicos, investigadores, docentes, alumnos, etc. L, con la finalidad de llevar adelante un desarrollo concurrente del >;

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

(ro%ecto. Cuanto ma%or sea la cantidad de miembros 2ue intervengan en el desarrollo del (ro%ecto, ma%or será la necesidad de comunicaci&n Ken la (roducci&n de soft are científico, los desarrolladores muc-as veces suelen encontrarse en distintas locali0acionesL entre los miembros del gru(o de desarrollo. /sta necesidad de comunicaci&n, lleva a 2ue se tengan 2ue establecer (untos de sincroni0aci&n a lo largo del (ro%ecto, con la finalidad de 2ue el desarrollo del soft are o los distintos com(onentes soft are, converjan en dic-os (untos.

Ilustración ") – 6untos de Sincroni4ación en el main line.

Cuando se establecen estos (untos de sincroni0aci&n, e7iste el riesgo de 2ue se generen (untos muertos en el (ro%ecto o un blo2ueo Ken los desarrollos de soft are científico, muc-as veces, los (ro%ectos 2uedan a cargo de otro científico o nuevos integrantes del gru(o de investigaci&n, %a 2ue suele -aber alto índice de rotaci&nL, si es 2ue no se coordinan adecuadamente los esfuer0os de trabajo K;)L.

>9

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

3.3.1.2. Problem $or los motivos mencionados anteriormente, se recomienda 2ue cuando se desarrollan nuevas funcionalidades, no se trabaje sobre el main line u otras líneas estables, %a 2ue 3stas -an sido testeadas. /sto se debe a 2ue, (ara (oder reali0ar esa tarea, se re2uiere 2ue la modificaci&n 2ue se reali0ará (osea cierto nivel de testing. +levar a cabo dic-os tests insume tiem(o, % esto genera demoras en el desarrollo de soft are, como así tambi3n lo -acen los com(onentes defectuosos K;)L. 3.3.1.3. Po!"ble! Sol#$"one! $odrían im(lementarse semáforosQ sin embargo, con la im(lementaci&n de este sistema, solamente una (ersona (or ve0 (uede reali0ar testing % c-ecFing de los cambios reali0ados, con lo cual el (rogreso del trabajo en el (ro%ecto se ve reducido drásticamente. Tambi3n se (ueden generar nuevas ramas (ara las nuevas funcionalidades.

Ilustración "5 – /ain ?ine con m8lti les ramificaciones.

:o obstante, al generar nuevas ramas (ara las nuevas funcionalidades se agrega una ma%or com(lejidad al manejo del (ro%ecto. >)

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Incluso se (uede dejar libre acceso al c&digo del (ro%ecto, (ara 2ue cada desarrollador de soft are realice las modificaciones % c-ecFing 2ue sean necesarios. Sin embargo, esto -ace 2ue el c&digo del (ro%ecto (ierda valor % care0ca de utilidad. @tro recurso 2ue se (uede utili0ar es el de modificar la ar2uitectura del soft are, aun2ue sigue latente la (osibilidad de 2ue se llegue a rom(er el c&digo del (ro%ecto K;)L. 3.3.1.%. Sol#$"&n $ara -acer frente a la (roblemática e7(uesta, se utili0a el (attern active develo(ment line. /l mismo (ermite obtener un balance entre estabilidad % (rogreso en un (ro%ecto de desarrollo de soft are K;)L.

Ilustración "' – @alance entre estabilidad 2 rogreso.

Un active develo(ment line sufre cambios frecuentes. Dásicamente, se estructura de forma similar al main line, (ero con una serie de (olíticas 2ue aseguran 2ue el c&digo (osee cierto nivel de calidad K;?L. /sto se traduce en 2ue se (oseen algunos (untos de c-e2ueo 2ue garanti0an 2ue el c&digo está @J, % otros 2ue son lo suficientemente bueno o ace(table (ara los desarrolladores de soft are 2ue necesitan reali0ar una modificaci&n o (rueba sobre la línea de desarrollo Kactive develo(ment lineL. $ara (oder im(lementar un active develo(ment line, es necesario determinar 2u3 tan bueno debe ser el c&digo, (ara lo cual se debe reali0ar un (roceso similar al análisis de re2uisitos K;)L. >>

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Ilustración "9 – %r1fica de una Acti$e De$elo ment ?ine &1)(.

3.3.1.'. Con!"(er $"one! Uno de los as(ectos fundamentales 2ue se debe entender del active develo(ment line, es el ritmo del (ro%ecto. Sste es definido (or Jane % DiFel, como los cambios recurrentes % (redecibles de los (roductos de trabajo, con una ar2uitectura gru(al % 2ue va desde los clientes -asta los desarrolladores de soft are. $or este motivo, es necesario un buen ritmo (ara cual2uier (ro%ecto de desarrollo de soft are 2ue sea concurrente % (osea de(endencias. Cabe aclarar 2ue -a% 2ue tomar en cuenta 2ue una buena estructura de control influ%e en c&mo se ejecuta el ritmo del (ro%ecto, mientras 2ue la cultura organi0acional a%uda a definir 2u3 ti(o de ritmo es necesario (ara el (ro%ecto. Si el (ro%ecto (osee buenos tests unitarios % de regresi&n, entonces los errores no van a (ersistir (or muc-o tiem(o. $or lo tanto, el 3nfasis debe ser (uesto en acelerar los c-ecFing de los cambios reali0ados en el (ro%ecto. 6a% 2ue considerar 2ue, si no e7iste una buena infraestructura de testing, se debe (roceder con muc-o cuidado en la ejecuci&n de estas tareas, -asta 2ue la misma se encuentre bien desarrollada % madura K;)L. $or Hltimo, se debe establecer un criterio de cuánto es lo 2ue se va a testear, a fin de (oder determinar cuánta estabilidad es realmente necesaria (ara el (ro%ecto K;)L. >?

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

3.3.1.). *ene+"$"o! E!,er (o!. Con la introducci&n de un active develo(ment line, se (reserva el main line de los errores, %a 2ue cual2uier modificaci&n 2ue se realice, se efectHa en el active develo(ment line. Tambi3n (ermite 2ue los desarrolladores de soft are científico (uedan retornar a estados (revios, en caso de 2ue la modificaci&n no (rodu0ca los resultados es(erados, sin reali0ar el rollbacF manualmente. De esta forma, se logra incrementar la eficiencia del desarrollo de soft are científico. Además, a trav3s de los (untos de c-e2ueo, (ermite asegurar la calidad, lo 2ue (ermite agregar esas modificaciones al main line, sin 2ue 3ste sufra fallos. A trav3s del Active Develo(ment +ine, se obtiene estabilidad % (rogreso en el desarrollo de soft are, a la ve0 de 2ue se garanti0a % (reserva el main line del (ro%ecto de desarrollo de soft are. A(arte, el c&digo desarrollado a trav3s del active develo(ment line, (osee distintos niveles de calidad 2ue marcan su utilidad % (ermiten agregarlo al main line, de ser necesario, garanti0ando siem(re el nivel de calidad de 3ste. #.#.". Integration @uild. /n un (ro%ecto de desarrollo de soft are, cada desarrollador trabaja en su (ro(io orFs(ace, reali0ando modificaciones. Sin embargo, todos esos cambios deben integrarse % el sistema tiene 2ue (oder construirse correctamente. $ara esto, el (attern integration build (ro(orciona los mecanismos (ara llevar adelante la integraci&n % construcci&n del sistema.

>A

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Ilustración #: – Com licación al momento de reali4ar una integración &1#(.

3.3.2.1. Contexto /n los (ro%ectos de desarrollo de soft are, intervienen muc-os desarrolladores, los cuales reali0an cambios constantemente Ken el desarrollo de soft are científico, el c&digo del soft are científico se va modificando en el tiem(o, (ara mejorar o am(liar las funcionalidades de 3steL al c&digo del (ro%ecto. $or esto, es im(osible asegurar 2ue el sistema se va a construir correctamente, des(u3s de integrarlo al main line K;)L. Sste (roblema sucede debido a 2ue el (rograma sigue evolucionando con el transcurso del tiem(o. $or lo tanto, el c&digo con el 2ue em(e0& a trabajar el desarrollador al (rinci(io, -a cambiado K;=L.

>=

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

3.3.2.2. Problem /l llevar adelante una construcci&n com(leta % lim(ia del sistema toma tiem(oQ sin embargo, ese tiem(o es muc-o menor 2ue el tiem(o 2ue (ierde el gru(o de desarrollo de soft are en resolver los (roblemas Ken el desarrollo de soft are científico, se debe destinar (arte del (eriodo de investigaci&n, a la resoluci&n de los (roblemas en el c&digo L 2ue se generan, (or2ue los cambios 2ue se reali0an terminan (or rom(er la construcci&n del sistema K;)L.

Ilustración #1 – Aue$o com onente !ue genera un roblema en el main line.

Algunos desarrolladores de soft are tienden a desarrollar sus c&digos sobre otros com(onentes Kc&digosL %, una ve0 2ue finali0an con el desarrollo, reci3n (roceden a trabajar en la integraci&n de la construcci&n. Además, suele ser frustrante (ara los desarrolladores el tener 2ue rastrear a2uellos cambios inconsistentes Klos com(onentes soft are 2ue se (roducen en el ámbito científico, al momento de integrarse (roducen (roblemasL 2ue se encuentran (resentes en el soft are desarrollado K;)L. 3.3.2.3. Sol#$"&n Cuando los desarrolladores de soft are reali0an c-ecFing de los cambios, e7iste la (osibilidad de 2ue se introdu0can errores en las construcciones, (or lo tanto, es mejor reali0ar una construcci&n com(leta del sistema 2ue se está desarrollando. $ara llevar adelante esto, la construcci&n del sistema debe efectuarse en un es(acio de >B

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

trabajo 2ue contenga todos los com(onentes a integrarse (ara armar la build K;)L.

Ilustración #" – 6roceso de Integration @uil &1#(.

$ara determinar cada cuánto es indis(ensable reali0ar la integraci&n de la construcci&n, es necesario determinar" • • Cuánto tiem(o toma construir el sistema. Cuán rá(ido se (roducen los cambios.

Si la construcci&n del sistema toma muc-o tiem(o, entonces se debe considerar reali0ar una integraci&n diaria. /n cambio, si la construcci&n del sistema es rá(ida, se (uede reali0ar una integraci&n cada ve0 2ue se reali0a c-ecFin del c&digo del (ro%ecto. +a integraci&n de construcci&n tiene (or finalidad atra(ar las fallas 2ue (uedan llegar a emerger en la construcci&n del sistema. Si dic-as fallas (ersisten, se (ueden agregar más (re ' c-ecFing, como (asos (revios de verificaci&n. +os c-ecFing de las modificaciones se reali0an en el re(ositorio. /l sistema de control de recursos 2ue (osee el re(ositorio, res(onde ante los c-ecFing, e7tra%endo todos los >C

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

arc-ivos % constru%endo el sistema. Cual2uier error 2ue se (rodu0ca durante el armado del sistema, es re(ortado a la construcci&n maestra, así como a la (ersona res(onsable de -aber ejecutado dic-o cambio 2ue se llev& a cabo K;)L. 3.3.2.%. Con!"(er $"one! Cuando se usa este (attern, es necesario asegurarse de 2ue todos los cambios % de(endencias son construidos usando un (roceso central de construcci&n integrador. Sste debe ser" • • • • 5e(roducible. +o más cercano (osible a la versi&n final del (roducto. Automati0ado o re2uerir de la menor intervenci&n (osible de trabajo manual. $oseer notificaciones o algHn otro mecanismo 2ue (ermita identificar errores e inconsistencias. Si el sistema de control no seriali0a adecuadamente los cambios 2ue se reali0an al sistema, se (uede llegar a construir un sistema con fallas, debido a las inconsistencias 2ue (resenta el c&digo. /s (or este motivo 2ue se recomienda identificar con marcadores las construcciones 2ue se reali0an.

Ilustración ## – /arcadores de las construcciones reali4adas del ro2ecto.

Tambi3n es bueno tener en cuenta 2ue la integraci&n de construcci&n debe ser re(etida en

?*

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

todas las (lataformas 2ue so(orte el sistema K;)L. 3.3.2.'. *ene+"$"o! E!,er (o! Con la integration build, los desarrolladores de soft are científico mejoran la eficiencia del desarrollo de soft are científico % de la investigaci&n científica. A trav3s de la integration build, los desarrolladores de soft are científico se aseguran de 2ue los com(onentes % la construcci&n cuentan con el nivel de calidad adecuado. /sto se debe a 2ue se reali0an testing (revios, con el fin de verificar 2ue los com(onentes cuentan con el nivel de calidad adecuado (ara integrarlos al main line. Tambi3n se certifica 2ue la construcci&n del sistema se reali0a correctamente, al com(robar 2ue se cuenta con la Hltima versi&n de todos los com(onentes (ara llevar a cabo la construcci&n. Se establecen los tiem(os 2ue demora la integraci&n %, en base a esos tiem(os, se define cuándo se reali0a el (roceso de integraci&n Kuna o varias veces al díaL. De 3sta forma, se mejora la eficiencia del desarrollo de soft are científico, %a 2ue los desarrolladores de soft are científico no (ierden tiem(o reali0ando integraciones innecesarias o es(erando 2ue estas finalicen. A trav3s de la Integration Duild, se (ueden integrar las distintas modificaciones al sistema, con la seguridad de 2ue cual2uier falla 2ue se (rodu0ca, será atra(ada % solucionada a tiem(o, evitando la rotura del sistema.

?;

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

,. /odelo .eórico
>.;. Active Develo(ment +ine
/l soft are va cambiando con el tiem(o. /sto se debe a 2ue se am(lía o mejora la.s funcionalidad.es 2ue dic-o soft are ofrece, debido a 2ue las necesidades de los usuarios van modificándose con el tiem(o, como tambi3n lo -acen las (ie0as -ard are % los demás soft are K(rogramas, S@, etc. L. $ara evitar (roblemas al momento de llevar a cabo las modificaciones, en ve0 de trabajar sobre la línea (rinci(al de desarrollo, se utili0a un Active Develo(ment +ine, a fin de (reservar el main line de (osibles errores. /l soft are científico sufre cambios constantes, %a sea (or2ue los modelos de simulaci&n evolucionan o (or2ue es necesario am(liar las funcionalidades 2ue ofrece. $ero los desarrolladores de soft are científico reali0an estas modificaciones sobre el main line, con lo cual se introducen errores en el c&digo (roduci3ndose fallos en el main line, llevando a 2ue el soft are científico falle.

Ilustración #, – 3rror en el /ain ?ine.

?9

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

$or lo tanto, como soluci&n, se recomienda la utili0aci&n del (attern Active Develo(ment +ine, con las siguientes ada(taciones" ,.1.1. Aota de ?iberación. A lo largo del Active Develo(ment +ine, se encuentran (untos de c-e2ueos. $or cada uno de estos (untos de c-e2ueo, se va a agregar una nota de liberaci&n o lan0amiento.

Ilustración #- – Aotas de liberación o lan4amiento.

Cada nota de liberaci&n o lan0amiento va a es(ecificar" • • • Fec-a de la #odificaci&n +a versi&n de la modificaci&n reali0ada. +os bugs corregidos -asta ese (unto.versi&n.

A trav3s de estas notas de liberaci&n, se brinda informaci&n es(ecífica de lo 2ue se -a ?)

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

-ec-o -asta ese (unto de c-e2ueo, del Active Develo(ment +ine. Con estas notas de liberaci&n, los desarrolladores de soft are científico van a (oder determinar cuál de esos (untos de c-e2ueo es de utilidad (ara seguir adelante con el desarrollo de com(onentes 2ue vienen reali0ando. Dásicamente, con las notas de liberaci&n se (uede evaluar si el Hltimo (unto de c-e2ueo (osee utilidad o si se deben remitir a un (unto de c-e2ueo (revio en el active develo(ment line. ,.1." .ags Cada (unto de c-e2ueo 2ue se encuentra @J, va a ser marcado con un tag, con la finalidad de marcar -asta 2u3 modificaci&n se va a agregar al main line, sin 2ue 3ste se vea afectado, es decir, 2ue no se (rodu0can fallos en 3l. $ara 2ue los (untos de c-e2ueo sean tageados, 3stos deben (asar los tests satisfactoriamente.

Ilustración #) – .ag de los untos *B de che!ueo.

?>

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

/stos tags van a (oseer el nHmero de versi&n del (unto de c-e2ueo. Con estos tags, lo 2ue se busca es marcar a2uellos (untos @J del active develo(ment line, (ara establecer -asta 2u3 (unto de c-e2ueo se va a someter a una o(eraci&n merge, con el fin de agregar las modificaciones al main line. De esta forma, se garanti0a 2ue dic-os (untos de c-e2ueo (oseen el nivel de calidad adecuado (ara ser agregados al main line, sin afectar la calidad % estabilidad de 3ste en el (ro%ecto. +as notas de liberaci&n % tags, mejoran el desarrollo de soft are científico, %a 2ue evitan 2ue el main line sufra los errores 2ue se generan (or las modificaciones 2ue llevan adelante los desarrolladores de soft are científico.

>.9. Integration Duild.
/l soft are sufre modificaciones a lo largo del tiem(o con la finalidad de solucionar bugs o agregar ma%or funcionalidad al soft are. Cada desarrollador de soft are trabaja en un com(onente de soft are e7istente o desarrolla un nuevo com(onente, (ero esto lo -ace en su (ro(io orFs(ace. De esta forma, se evitan los (otenciales conflictos entre los com(onentes 2ue se están desarrollando. A (esar de esto, más adelante, dic-os com(onentes deben integrarse al main line (ara construir el sistema. $or lo tanto, no e7isten garantías de 2ue los com(onentes (uedan funcionar correctamente cuando se realice la integraci&n con el main line. /sto da como resultado 2ue se (rodu0can errores en el sistema o 2ue directamente el sistema falle Kse rom(aL. +a situaci&n 2ue se describe en el (árrafo anterior, sucede con frecuencia en el desarrollo de soft are científico, (uesto 2ue los desarrolladores de soft are científico trabajan de forma distribuida, con lo cual, al momento de integrar los com(onentes, surgen errores en la construcci&n.

??

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Ilustración #5 – 3rror al momento de integrarC al main lineC los com onentes.

$or dic-o motivo, se (ro(one la utili0aci&n del (attern Integration Duild, con las siguientes ada(taciones"

?A

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

,.".1. DorEs ace Integrador. Se va a establecer un orFs(ace, donde los distintos com(onentes a ser integrados.

Ilustración #' – DorEs ace !ue contiene los com onentes a ser integrado.

/stos com(onentes deben encontrarse actuali0ados Kser la Hltima versi&n L % -aber (asado los test corres(ondientes. Con esto, se busca evitar 2ue se (rodu0can errores al momento de reali0ar la integraci&n, %a sea (or usar distintas versiones de los com(onentes o (or errores 2ue (osean alguno de ellos. Con la modificaci&n (ro(uesta, los desarrolladores de soft are científico van a asegurarse de 2ue cuentan con todos los com(onentes necesarios (ara llevar a cabo la integraci&n. Tambi3n, van a tener la certe0a de 2ue los com(onentes im(ortados son la Hltima versi&n estable. Con esto, en caso de (roducirse fallos en la integraci&n, el desarrollador de soft are científico tiene la seguridad de 2ue esos fallos (rovienen de su (ro(io com(onente % no de los com(onentes 2ue im(ort& a su orFs(ace.

?=

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

,.".". .iem o de Integración Se definirá cada cuánto tiem(o se va a reali0ar el (roceso de integraci&n. $ara esto, es necesario establecer los tiem(os 2ue toma reali0ar la integraci&n. Si el (roceso de integraci&n lleva menos de 9 minutos, entonces se (uede integrar des(u3s de cada c-ecFing 2ue se realice del com(onente desarrollado. /n cambio si es su(erior a los 9 minutos, la integraci&n se va a reali0ar una ve0 (or día. Con esta modificaci&n, el desarrollador de soft are científico (uede mantener un buen ritmo de desarrollo, evitando (3rdidas de tiem(o. Un orFs(ace 2ue concentra los com(onentes a ser integrados % la definici&n de los

tiem(os de integraci&n, (ermite obtener estabilidad en el desarrollo de soft are científico, a la ve0 2ue se asegura 2ue el nivel de fallos se vea reducido.

?B

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

-. Concreción del 6rototi o.
?.;. Im(lementaci&n de una línea activa de desarrollo.
A trav3s de un sistema de control de versi&n, se (ueden generar distintas ramas de trabajo. /stas ramas 2ue se generan, (ueden ser consideradas como una línea activa de desarrollo. Cada ve0 2ue se realicen modificaciones al.los arc-ivo.s, se (rocede a tomar un sna(s-ot de los arc-ivos con el comando T git add Unombre del arc-ivoV.

Ilustración #9 7 Cómo funciona comando git add.

Cada ve0 2ue se realicen modificaciones % (ruebas, se (rocede a agregar el arc-ivo modificado con el comando T git add Unombre del arc-ivoV K9*L.

?C

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Ilustración ,: 7 .omar una sna shot del archi$o modificado.

Una ve0 2ue se toma la sna(s-ot, se (rocede a reali0ar el commit, (ara agregar el sna(s-ot del arc-ivo modificado a la línea de (rueba. $ara esto se va a ejecutar el comando T git commit K9*L .

A*

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Ilustración ,1 7 Cómo funciona comando git commit.

Con la ejecuci&n de este comando, se abre un editor de te7to, donde se escribe la versi&n del arc-ivo % los bugs corregidos -asta ese (unto. $ara guardar el te7to escrito, (rimero se deben (resionar las teclas ctrl N o, luego se confirma (resionando las teclas ctrl N m % (or Hltimo, (ara 2ue se ejecute el commit, se debe salir (resionando la combinaci&n de teclas ctrl N 7 K9*L.

A;

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Ilustración ," 7 3ditor de te0to del commit.

A9

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Ilustración ,# 7 * ciones de guardado del commit.

A)

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Ilustración ,, 7 >in del roceso de commit 2 re orte del commit !ue se ha reali4ado.

$ara marcar a2uellos (untos 2ue se encuentran @J.estables en la rama de trabajo, se utili0arán tags. +os mismos contienen la versi&n del arc-ivo modificado. $ara agregar tags a los (untos de c-e2ueo @J, se utili0a el comando T git tag UnombreV K9*L, donde UnombreV va a ser la versi&n del arc-ivo modificado.

Ilustración ,- 7 Ftili4ación del comando git tag.

A>

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Ilustración ,) 7 Creación de tag 2 corroboración del tag creado.

$ara agregar los cambios reali0ados en la rama trabajo Kactive develo(ment lineL a la rama master Kmain lineL, se usa el comando merge. $revio a ejecutar la o(eraci&n merge, es necesario estar (osicionado en la rama master. /sto lo -acemos con el comando T git c-ecFout master. Una ve0 (osicionado en la rama master, se (rocede a ejecutar la o(eraci&n merge con el comando T git merge trabajo K9*L.

Ilustración ,5 7 Ftili4ación de git merge.

$ara verificar si se -an agregado las distintas versiones, se utili0a el comando T git log ' 'oneline. $or Hltimo, se retorna a la rama trabajo con el comando T git c-ecFout trabajo.

A?

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

/jem(lo de scri(t 2ue ejecuta la o(eraci&n merge" WX .bin.basW $osicionamiento sobre el directorio donde W se encuentra el re(ositorio cd .-ome.fjc.Documentos./7(erimentos.Codigo W/jecuci&n del comando merge git c-ecFout master git merge t git c-ecFout t

AA

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Ilustración ,' 7 3+ecución de la o eración merge.

A=

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Ilustración ,9 7 Corroboración de !ue la o eración merge.

Con la creaci&n de una rama en el re(ositorio, se logra im(lementar el active develo(ment line KtrabajoL % el main line KmasterL, (ermitiendo la utili0aci&n del (attern active develo(ment line.

?.9. Im(lementaci&n de Integration Duild
$ara 2ue la integraci&n de las modificaciones sea correcta, es fundamental llevar a cabo dos (rocesos de integraci&n, uno local (ara corroborar su correcta construcci&n % otro con el main line (ara verificar 2ue se integran (erfectamente. $rimero se debe verificar 2ue se (oseen todos los com(onentes necesarios en nuestro AB

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

orFs(ace Kbase de datos, librerías, etcL. Des(u3s de corroborar esto, se ejecuta la com(ilaci&n % armado de la build corres(ondiente a nuestro orFs(ace, (ara continuar con la reali0aci&n de los test (lanificados a fin de constatar 2ue la build se -a construido e7actamente % (osee el grado de calidad necesario (ara ser agregada al main line. +uego, terminada la integraci&n de nuestro orFs(ace, se va a im(ortar a 3l la Hltima versi&n del c&digo % demás com(onentes 2ue se encuentren en el main line. Concluida esta, se inicia el merge de los com(onentes im(ortados con nuestra rama de desarrollo, a fin de (oder reali0ar la com(ilaci&n % armado de la build. $osteriormente, se somete la build a los test, con el objetivo de verificar 2ue se -a integrado (erfectamente con los com(onentes del main line. Finalmente, si (asa satisfactoriamente los test, se (rocede a reali0ar el commit de la build % luego se ejecuta el merge con el main line K9;L. /n caso de no (asar los test, se deberá revisar % corregir el c&digo a fin de (oder obtener una build en condiciones, (ara ser integrada al main line.

AC

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

/jem(lo de un scri(t 2ue reali0a la integration build" WX .bin.basW :os (osicionamos cd .-ome.fjc.Documentos./7(erimentos.Codigo.CodigoY Fortran. W /n este a(artado va la verificaci&n de 2ue se tienen W todos los com(onentes necesarios (ara reali0ar la W integraci&n. W W Se (rocede a reali0ar la com(ilaci&n del c&digo fuente % armado del W ejecutable o build. read '( ZIngrese el nombre del codigo fuente con e7tensi&n incluida" Z FU/:T/ read '( ZIngrese el nombre 2ue desea darle al arc-ivo ejecutable" Z :A#/ gfortran TFU/:T/ 'o T:A#/.e7e W /n este a(artado se llevan a cabo los test tendientes a evaluar W la build W W /n este a(artado se (rocede a im(ortar la Hltima versi&n del W main line W W Se (rocede a reali0ar nuevamente la com(ilaci&n del c&digo fuente W % armado del ejecutable o build. read '( ZIngrese el nombre del codigo fuente con e7tensi&n incluida" Z FU/:T/ read '( ZIngrese el nombre 2ue desea darle al arc-ivo ejecutable" Z :A#/ =*

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

gfortran TFU/:T/ 'o T:A#/.e7e W /n este a(artado se (rocede a reali0ar los test (ertinentes a la W build W +a integration build nos (ermite obtener una construcci&n del sistema, con la seguridad de 2ue (osee el nivel de calidad adecuado (ara ser integrado al main line, además de incrementar el nivel de eficiencia % (roductividad del gru(o de desarrollo de soft are científico.

=;

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

). Conclusiones
/ste (ro%ecto surgi& de la necesidad de determinar los factores 2ue afecta el tiem(o de desarrollo del soft are científico. Sste es uno de los (ilares de las investigaciones científicas e im(acta en la eficiencia de las investigaciones. A lo largo del (ro%ecto, se corrobora la escasa integraci&n 2ue e7iste entre el cam(o de Ingeniería de Soft are % Desarrollo de Soft are Científico. /sto lleva a 2ue se generen falencias en el desarrollo del soft are científico, 2ue re(ercute en el tiem(o de investigaci&n. $ara mejorar esta situaci&n, a trav3s de este trabajo se (ro(one la utili0aci&n de algunos (atrones de Soft are Configuration #anagment. /sta -erramienta de Ingeniería de Soft are (ermite llevar a cabo desarrollos ágiles, (osibilitando mejorar el tiem(o de desarrollo del soft are científico. Como resultado de este trabajo, se elaboro una soluci&n 2ue fue im(lementada a trav3s de un (rototi(o, el cual fue mostrado en el O$rimer EorFS-o(" /l Desarrollo de Soft are en ambientes Científicos % T3cnicosP. $or ultimo, con la informaci&n recolectada en la demostraci&n % obtenida en el marco de investigaci&n reali0ada en este trabajo, 2ueda (lasmado un camino (ara seguir reali0ando investigaciones 2ue contribu%an a mejorar la integraci&n entre la Ingeniaría de Soft are % el Desarrollo de Soft are Científico.

=9

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

5. Referencia @ibliogr1fica
K;L Diane Jell% % 5ebecca Sanders. Assessing t-e Mualit% of Scientific Soft are. In First International EorFs-o( on Soft are /ngineering for Com(utational Science [ /ngineering K9**BL. K9L David Eoollard, C-ris A. #attmann, Daniel $o(escu % :enad #edvidovic. JAD5/" Domain'S(ecific Arc-itectural 5ecover% For Scientific Soft are S%stems. AC# 9*;*. K)L Diane F. Jell%. A Soft are C-asm" Soft are /ngineering and Scientific Com(uting. I/// Com(uter Societ% 9**=. K>L # a r t i n # a c F a % and ! o - n # c C a l l. T-e Tec-nolog% 5evolution G Is it $a%bacF Time\. Dusiness Driefing" $-armatec- 9**>. K?L International Federation For Information $rocessing. Distinctive c-aracteristics of Scientific A((lications. @tta a @ct. 9'> 9***. -tt(".. .nsc.liu.se.]boein.ifi(. ocoB^dc.-tml AC#'I/// International S%m(osium on /m(irical Soft are KAL +uFe :gu%en'6oan, S-a%ne Flint, 5ames- SanFaranara%ana. A Surve% of Scientific Soft are Develo(ment. /ngineering and #easurement 9*;*. K=L 5oger S. $ressman. Ingeniería de Soft are. Un /nfo2ue $ráctico. Se7ta /dici&n. #e7ico" #cGra '6ill InteramericanaQ 9**=. (.=CA'B9). KBL Segal, !udit- K9**BL. In" Pro$ee("n-! o+ t.e P!/$.olo-/ o+ Pro-r mm"n- Intere!t Gro#,0 PPIG 12, ;*';9' Se(tember 9**B, Universit% of +ancaster, UJ. KCL+uFe :gu%en'6oan, S-a%ne Flint, 5ames- SanFaranara%ana. A Surve% of Scientific Soft are Develo(ment. AC#'I/// International S%m(osium on /m(irical Soft are /ngineering and #easurement 9*;*. K;*L#orris, C-ris and Segal, !udit-. Some c-allenges facing scientific soft are develo(ers" T-e case of molecular biolog%. I/// e'Science 9**C, C ';;. K;;L 8ictor 5. Dasili, !effre% C. Carver, Daniela Cru0es, +orin #. 6oc-stein, !effr% J. 6ollings ort-, Forrest S-ull, #arvin 8. _elFo it0. Understanding t-e 6ig-'$erformance'Com(uting Communit%" A Soft are /ngineer`s $ers(ective. !ournal I/// Soft are. 8olume 9? Issue >, !ul% 9**B. =)

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

K;9L #ed-a Umarji, Carol%n Seaman, A. Gunes Coru, 6ongfang +iu. Soft are /ngineering /ducation for Dioinformatics. 99nd Conference on Soft are /ngineering /ducation and Training 9**C. K;)L Steve Derc0uF, Drad A((leton. Soft are Configuration #anagement $atterns" /fective Team orF, $ractical Integration. /d. Addison G Eesle%, Doston. 9**9. K;>L Eelcome to Drad A((letonas Documents. C# CrossroadsQ 9*** bacceso ;) de Abril del 9*;;c. $atterns and Soft are" /ssential Conce(ts and Terminolog%. Dis(onible en" -tt(".. .cmcrossroads.com.brada((.docs.(atterns'intro.-tml. .sticF%minds.com.site ide.as(\ K;?L Steve Derc0uF . /nd'of'release Dranc-ing Strategies . SticF%#inds.com. ;;.B.9*;* bacceso ;C de Abril del 9*;;c. Dis(onible en" -tt(".. Functiondedetail[@bjectT%(edC@+[@bjectIdd;A>?>[tt-dD4:[ttdsiteemail[iD%nd9 K;AL Ste(-en $ Derc0uF . 5eliable Codelines . $attern +anguages of $rograms Conference 9**;. K;=L +ucas Cordeiro, Cassiano DecFer, 5aimundo Darreto. Agile $atterns for #ulti'site Soft are Develo(ment . De(artamento de Ciencia da Com(utafgo ' Universidade Federal do Ama0onas KUFA#L, Dra0il . K;BL -tt(".. T-oug-ts. -tt("..gas(er.Fo0aF.si.blog.9**C.*A.;?.t-e'stee('learning'curve'misunderstanding.. K9*LGit 5eference. Acceso el ;B de !ulio de 9*;;. 5eference. -tt("..gitref.org. K9;L#artin Fo ler. #artin Fo ler, ; de #a%o del 9**A bacceso el ;B de !ulio de 9*;;c. Continuous Integration. -tt("..martinfo ler.com.articles.continuousIntegration.-tml K99LDavid #att-e s, Greg Eilson, Steve /asterbrooF. Configuration #anagement for +arge'Scale Scientific Com(uting at t-e UJ #et @ffice . I/// 9**B. .2engrou(.com.-ome.images.stories.gestionh9*deh9*configuracion.j(g K;CL Eide T-oug-ts. Gai(er Jo0aF. ;? de !unio de 9**C bAcceso el ;B de !ulio de 9*;;c.

=>

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

'. @ibliografía
;. Creative Commons. Acceso ; de Agosto de 9*;;. C-oose a +icense. -tt("..creativecommons.org. 9. Diane Jell% % 5ebecca Sanders. Assessing t-e Mualit% of Scientific Soft are. In First International EorFs-o( on Soft are /ngineering for Com(utational Science [ /ngineering K9**BL. ). David Eoollard, C-ris A. #attmann, Daniel $o(escu % :enad #edvidovic. JAD5/" Domain'S(ecific Arc-itectural 5ecover% For Scientific Soft are S%stems. AC# 9*;*. >. Diane F. Jell%. A Soft are C-asm" Soft are /ngineering and Scientific Com(uting. I/// Com(uter Societ% 9**=. ?. # a r t i n # a c F a % and ! o - n # c C a l l. T-e Tec-nolog% 5evolution G Is it $a%bacF Time\. Dusiness Driefing" $-armatec- 9**>. A. International Federation For Information $rocessing. Distinctive c-aracteristics of Scientific A((lications. @tta a @ct. 9'> 9***. -tt(".. .nsc.liu.se.]boein.ifi(. ocoB^dc.-tml AC#'I/// International S%m(osium on =. +uFe :gu%en'6oan, S-a%ne Flint, 5ames- SanFaranara%ana. A Surve% of Scientific Soft are Develo(ment. /m(irical Soft are /ngineering and #easurement 9*;*. B. 5oger S. $ressman. Ingeniería de Soft are. Un /nfo2ue $ráctico. Se7ta /dici&n. #e7ico" #cGra '6ill InteramericanaQ 9**=. (.=CA'B9). C. Segal, !udit- K9**BL. In" Pro$ee("n-! o+ t.e P!/$.olo-/ o+ Pro-r mm"n- Intere!t Gro#,0 PPIG 12, ;*';9' Se(tember 9**B, Universit% of +ancaster, UJ. ;*. #orris, C-ris and Segal, !udit-. Some c-allenges facing scientific soft are develo(ers" T-e case of molecular biolog%. I/// e'Science 9**C, C ';;.
11. 8ictor

5. Dasili, !effre% C. Carver, Daniela Cru0es, +orin #. 6oc-stein, !effr% J. Forrest S-ull, #arvin 8. _elFo it0. Understanding t-e

6ollings ort-,

6ig-'$erformance'Com(uting Communit%" A Soft are /ngineer`s $ers(ective. !ournal I/// Soft are. 8olume 9? Issue >, !ul% 9**B. ;9. #ed-a Umarji, Carol%n Seaman, A. Gunes Coru, 6ongfang +iu. Soft are =?

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

/ngineering /ducation for Dioinformatics. 99nd Conference on Soft are /ngineering /ducation and Training 9**C. ;). Steve Derc0uF, Drad A((leton. Soft are Configuration #anagement $atterns" /fective Team orF, $ractical Integration. /d. Addison G Eesle%, Doston. 9**9. ;>. Eelcome to Drad A((letonas Documents. C# CrossroadsQ 9*** bacceso ;) de Abril del 9*;;c. $atterns and Soft are" /ssential Conce(ts and Terminolog%. Dis(onible en" -tt(".. bacceso -tt(".. D%nd9 ;A. Ste(-en $ Derc0uF . 5eliable Codelines . $attern +anguages of $rograms Conference 9**;. ;=. +ucas Cordeiro, Cassiano DecFer, 5aimundo Darreto. Agile $atterns for #ulti'site Soft are Develo(ment . De(artamento de Ciencia da Com(utafgo ' Universidade Federal do Ama0onas KUFA#L, Dra0il . ;B. -tt("..
19. Eide

.cmcrossroads.com.brada((.docs.(atterns'intro.-tml. ;C de Abril del 9*;;c. Dis(onible en"

;?. Steve Derc0uF . /nd'of'release Dranc-ing Strategies . SticF%#inds.com. ;;.B.9*;* .sticF%minds.com.site ide.as(\

Functiondedetail[@bjectT%(edC@+[@bjectIdd;A>?>[tt-dD4:[ttdsiteemail[i

.2engrou(.com.-ome.images.stories.gestionh9*de T-oug-ts. Gai(er Jo0aF. ;? de !unio de 9**C bAcceso el ;B de !ulio de T-oug-ts.

h9*configuracion.j(g 9*;;c.
20. Git

-tt("..gas(er.Fo0aF.si.blog.9**C.*A.;?.t-e'stee('learning'curve'misunderstanding.. 5eference. Acceso el ;B de !ulio de 9*;;. 5eference. -tt("..gitref.org. Integration. 9;. #artin Fo ler. #artin Fo ler, ; de #a%o del 9**A bacceso el ;B de !ulio de 9*;;c. Continuous -tt("..martinfo ler.com.articles.continuousIntegration.-tml
22. Susan

#. Da7ter, Steven E. Da%, !ac2uel%n S. Fetro , Ste(-anie !. 5eisinger. Sloan, Catriona #acaula%, $aula Forbes, Scott +o%nton, $eter Gregor . User =A

Scientific Soft are Develo(ment Is :ot an @7%moron . B de Se(tiembre de 9**A.
23. David

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

researc- in a scientific soft are develo(ment (roject .DCS 6CI *C $roceedings of t-e 9**C Dritis- Com(uter Societ% Conference on 6umanCom(uter Interaction K9**CL.
24. 5obert

C. Cannon, #arc'@liver Ge altig, $adraig Gleeson, U(inder S. D-alla,

6ugo Cornelis, #ic-ael +. 6ines et al. Intero(erabilit% of :euroscience #odeling Soft are" Current Status and Future Directions . K9**=L.
25. David

#att-e s, Greg Eilson, Steve /asterbrooF. Configuration #anagement for

+arge'Scale Scientific Com(uting at t-e UJ #et @ffice . I/// 9**B. 9A. Ustun 4ildi0, Adnene Guabtni, Anne 6.6. :gu . Dusiness versus Scientific EorFflo " A Com(arative Stud% . K9**CL. 9=. Steve #. /asterbrooF , Timot-% C. !o-ns . /ngineering t-e Soft are for Understanding Climate C-ange . I/// 9**C. 9B. 8eit 6offmann, 6orst +ic-ter, Ale7ander :%jen . $rocesses and $ractices for Mualit% Scientific Soft are $rojects . K9*;*L 9C. !o /rsFine 6anna%, Carol%n #acleod, !anice Singer, 6ans $etter +angtangen, Dietmar $fa-l, Greg Eilson. 6o and /ngineering K9**CL. )*. !ames F. Do ring . Duilding C%ber Infrastructure for Geoc-ronolog%" A Case Stud% in Collaborative Soft are /ngineering 5esearc- . K9**BL. );. Samuel _. Gu%er, Calvin +in. D5@ADEA4" A S@FTEA5/ A5C6IT/CTU5/ F@5 SCI/:TIFIC C@#$UTI:G. K9***L. )9. !udit- Segal . #odels of scientific soft are develo(ment .F"r!t Intern t"on l 3or4!.o, on So+t5 re En-"neer"n- "n Com,#t t"on l S$"en$e n( En-"neer"n-. 69**BL )). 5asmus 6. Fog-, Ea%ne Douc-er, Eim F. 8ranFen, Anne $ajon, Tim !. Stevens, T. :. D-at, et al. A frame orF for scientific data modeling and automated soft are develo(ment . K9**>L. )>. #agnus Slet-olt, 6ans $etter +angtangen , Dietmar $fa-l , !o /rsFine 6anna%. #aFing #odern Scientific Soft are Develo(ment /7(licitl% Agile . K9*;*L. == Do Scientists Develo( and Use Scientific Soft are\ . ICS/ EorFs-o( on Soft are /ngineering for Com(utational Science

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

)?. $eter D. Andersen, Florian $range, Skren Serrit0le . Soft are engineering as a (art of scientific (ractice. )A. Cat-erine +etondal ,U e _dun. Antici(ating Scientific Soft are /volution as a Combined Tec-nological and Design A((roac- . Second International EorFs-o( on Unantici(ated Soft are /volution 9**). )=. Susan Dart . Conce(ts in Configuration #anagement S%stems . ;CC*. )B. +ucas de @liveira Arantes, 5icardo de Almeida Falbo, Giancarlo Gui00ardi. /volving a Soft are Configuration #anagement @ntolog% . 9**=. )C. Sun Services E-ite $a(er . D/ST'$5ACTIC/ 5/C@##/:DATI@:S C@:FIGU5ATI@: #A:AG/#/:T . 9**=. >*. Aberdeen Grou(. T-e Configuration #anagement Denc-marF 5e(ort . 9**=. >;. Introducing Continuous Integration. 9**=. -tt(".. .google.com.url\ sadt[sourced eb[cdd?[vedd*C//MFjA/[urld-tt(h)Ah9F h9F(tgmedia.(earsoncmg.comh9Fimagesh9FC=B*)9;))A)B?h9Fsam(lec-a(ter h9F*)9;))A)B*^C6*9.(df[rctdj[2dIntroducingh9*Continuous h9*Integration[eid/5/>Ttf(#!J9tgelB=%_A [usgdAFMjC:/%9JIuUFeMvSe D?%7>_/mU:AFoaM[sig9dB%F: ru)(A0m5olD8DGcCA[caddrja. >9. Steve Derc0uF, Drad A((leton and Steve Joniec0Fa . Agile SC# G $atterns and Soft are Configuration #anagement . C# Crossroads 9**>. >). 5. @ en 5ogers . Scaling Continuous Integration . 9**B.
44. Dario

Andr3 +ou0ado, +ucas Carval-o Cordeiro . A(licando $adrles de Gerencia

de Configurafgo de Soft are em $rojetos Geograficamente Distribuídos . ?t- +atin American Conference on $attern +anguages of $rogramming 9**?.
45.Hans

Cristian #uller Santa Cru0 . $rogramando en Fortran . 9**=.

>A. Ing. Arturo !. +&(e0 García . Guía de $rogramaci&n en Fortran C*.C? . 9**>. >=. !. San Fabian . I:T5@DUCCI@: A +A $5@G5A#ACI@: F@5T5A: . 9**B. >B. Un Dreve Curso de F@5T5A:. Acceso 9 de Agosto de 9*;;. -tt(".. :C*.-tml >C. F@5T5A: Tutorial. Acceso 9 de Agosto de 9*;;. =B .uam.es.(ersonal^(di.ciencias.ruben.master.C:C.F@5T5A:.F@5T5A

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

-tt("..folF.uio.no.steiFr.doc.f==.tutorial. ?*. Git EiFi $age. Acceso el 9 de Agosto de 9*;;. -tt(s"..git. iFi.Fernel.org.inde7.(-(.#ain^$age ?;. $ro Git. Acceso el 9 de Agosto de 9*;;. -tt("..(rogit.org. ?9. gittutorialK=L -tt(".. -tt(".. ?>. Git ' #anual $age. Acceso el 9 de Agosto de 9*;;. .Fernel.org.(ub.soft are.scm.git.docs.gittutorial.-tml .Fernel.org.(ub.soft are.scm.git.docs.ever%da%.-tml S8: CrasCourse. Acceso el 9 de Agosto de 9*;;.

?). /ver%da% GIT Eit- 9* Commands @r So. Acceso el 9 de Agosto de 9*;;.

-tt("..git'scm.com.course.svn.-tml

=C

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

9. %losario
Acti$e De$elo ment ?ineG +ínea activa de desarrollo. /s la rama donde se reali0an las modificaciones al c&digo. @ranchG 5ama. CommitG @(eraci&n (ara guardar los cambios en una rama. Desarrollador de Software CientíficoG 5eferencia a un (rogramador 2ue no cuenta con los conocimientos formales de Ingeniería de Soft are. ?ínea estableG /s una rama cu%os elementos guardados no (roducen errores % (ara 2ue se agreguen nuevos com(onentes, estos deben (asar una suit de tests. Tam(oco se reali0an modificaciones de ninguna clase en estas lineas de desarrollo. /ain ?ineG +inea (rinci(al de desarrollo. /s una línea estable donde no se reali0an modificaciones de ninguna clase. /ergeG @(eraci&n 2ue unifica los elementos de una rama con los de otra rama. 6atrón de ConfiguraciónG Una soluci&n estandari0ada % gen3rica. ResilienteG Ca(acidad de sobre(onerse, resistir o ada(tarse a los cambios. RollbacEG @(eraci&n de retorno. 5etornar a un estado (revio. SC/G Soft are Configuration #anagment.Gesti&n de Configuraci&n de Soft are. Sna shotG Fotos. Software CientíficoG Soft are 2ue normalmente no -a sido desarrollado bajo los estándares de Ingeniaría de Soft are. Software ComercialG Soft are desarrollado (or em(resas siguiendo los estándares de Ingeniería de Soft are. Software .radicionalG Soft are 2ue sigue los estándares de desarrollo de Ingeniería de Soft are. Suit de .estG /s un conjunto de test orientados a garanti0ar la calidad de un elemento. .agsG /ti2uetas. Se utili0an (ara eti2uetar las modificaciones 2ue se agregan en una rama determinada. DorEs aceG /s el es(acio de trabajo del desarrollador de soft are.

B*

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

1:. Ane0o
;*.;. Soluciones.
1:.1.1. Iniciali4ación del re ositorio. $ara comen0ar con la im(lementaci&n de la soluci&n, es necesario (re(arar el es(acio de trabajo. $ara (oder trabajar con el active develo(ment line, se va a utili0ar Git. $reviamente, es necesario tener listo el re(ositorio, en el directorio de trabajo del (ro%ecto. $rimero, se debe iniciali0ar el re(ositorio de datos. /ntonces, abrimos la consola de linu7 % nos (osicionamos en el directorio donde se encuentra el (ro%ecto. Una ve0 allí, se va a teclear el comando T git init. Con este comando se iniciali0a el re(ositorio de Git.

B;

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Ilustración -: 7 Se iniciali4a el re ositorio.

B9

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Ilustracion -1 7 /ensa+e al finali4ar la iniciali4ación del re ositorio 2 com robación de la creación de Hste.

Una ve0 2ue se -a finali0ado con la iniciali0aci&n del re(ositorio, se debe (roceder a crear la rama de trabajo generando un sna(s-ot % commit inicial de todos los arc-ivos 2ue vamos a grabar en el re(ositorio. Con esta o(eraci&n se va a establecer la rama master, 2ue es la rama (rinci(al. $or lo tanto, (rimero se van a agregar los arc-ivos con el comando T git add UnombreV. /ste comando nos (ermite a1adir un arc-ivo o varios arc-ivos de ser (reciso, escribiendo los nombres de los mismos, uno al lado de otro, se(arados (or un es(acio. Tambi3n se (uede utili0ar el comando T git add ., el cual actHa de forma recursiva agregando todos los arc-ivos modificados del directorio de trabajo.

B)

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Ilustración -" 7 Iniciali4ación. Comando git add.

Ilustración -# 7 Sna shot inicial del ro2ecto.

B>

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Des(u3s de 2ue se -a tomado el sna(s-ot inicial, se (rocede a reali0ar el commit, (ara agregar los arc-ivos al re(ositorio. $ara ello, se va a utili0ar el comando T git commit 'm `mensaje`, donde el mensaje es un te7to corto 2ue e7(lica 2u3 es lo 2ue se está -aciendo con ese commit. /n caso de 2uerer agregar un te7to más detallado, se debe utili0ar el comando T git commit, el cual abre un editor de te7to.

Ilustración -, 7 Iniciali4ación. Comando git commit.

B?

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Ilustración -- 7 Commit del sna shot inicial del ro2ecto.

Una ve0 2ue se -a finali0ado con el (roceso del sna(s-ot % el commit inicial, se va a (roceder a crear la rama trabajo con el comando T git branc- UnombreV.

Ilustración -) 7 Iniciali4ación. Comando branch.

BA

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Ilustración -5 7 Cración de la rama traba+o

$ara verificar si se -a creado la rama, utili0amos el comando T git branc-. /ste comando nos muestra en (antalla las ramas 2ue e7isten en el re(ositorio. /l asterisco nos indica en 2u3 rama nos encontramos (osicionados, en este caso es la rama master.

B=

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

/jem(lo de scri(t 2ue (re(ara el es(acio de trabajo. WX .bin.basW :os (osicionamos en el directorio donde se va a iniciali0ar W el re(ositorio cd .-ome.fjc.Documentos./7(erimentos.Codificacion. W Se (rocede a ejecutar los comandos (ara iniciali0ar el re(ositorio W % (re(arar el entorno de trabajo. git init git add . git commit 'm`Iniciali0aci&n` git branc- Trabajo git c-ecFout Trabajo

BB

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Ilustración -' 7 Corroboración de !ue se creó la rama 2 sobre !uH rama se est1 osicionado.

$or Hltimo nos debemos (osicionar en la rama trabajo. $ara esto, vamos a ti(ear el comando T git c-ecFout trabajo.

BC

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Ilustración -9 7 Cambiar de rama 2 com robación de !ue se cambió de rama.

Con los (asos 2ue se -an llevado a cabo -asta acá, se -a finali0ado la iniciali0aci&n del re(ositorio de Git, (ara ser utili0ado en el (ro%ecto.

C*

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

1:.1.". Recomendaciones ara utili4ar %it. /n el siguiente a(artado, se (rocede a brindar recomendaciones sobre el manejo de los comandos de Git 2ue se -an utilili0ado en este (ro%ecto. /l comando add (uede usarse (ara tomar una sna(s-ot de uno o más arc-ivos al mismo tiem(o. Si a dic-o comando, se le agrega un (unto Kadd .L, funciona de la misma manera 2ue si se agregaran varios arc-ivos al mismo tiem(o con el comando git add, con la diferencia de 2ue toma una sna(s-ot de todo el directorio donde se encuentra Karc-ivos % subdirectoriosL.

+a o(eraci&n commit, -a% 2ue tener en cuenta 2ue -ace un commit del sna(s-ot. $or lo tanto, en caso de 2uerer reali0ar un commit individual (ara cada arc-ivo 2ue -a sido modificado, se debe usar el comando T git commit UArc-ivoV o T git commit UArc-ivoV 'm `Te7to`. commitear (or se(arado. /sto se -ace (or cada arc-ivo 2ue se 2uiera

C;

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Ilustración ): 7 Agregando archi$os modificados or se arados. Imagen 1.

C9

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Ilustración )1 7 Agregando archi$os modificados or se arados. Imagen ".

1:.1.#. RollbacE con %it. /n caso de ser necesario reali0ar un rollbacF a la versi&n anterior o una versi&n más antigua, se debe utili0ar la o(ci&n c-ecFout. $ara esto, (rimero deberemos escribir el comando T git log, con el fin de (oder determinar a 2u3 versi&n es a la 2ue 2ueremos retornar % el valor del commit 2ue (osee dic-a versi&n. Una ve0 2ue se -an obtenido los datos necesarios, escribimos el comando T git reset ' '-ard UvalorV, donde valor, va a ser el nHmero de commit 2ue obtuvimos al usar la o(ci&n log.

C)

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Ilustración )" 7 3+ecución del rollbacE de una modificación.

Se debe co(iar (or com(leto el valor del commit. @tra o(ci&n es a trav3s del comando T git log ' 'oneline, % co(iar el valor 2ue a(arece al lado i02uierdo del commit 2ue necesitemos.

Ilustración )# 7 Fsando comando log ara determinar la $ersión 2 $alor del commit.

C>

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

Ilustración ), 7 3+ecutando el rollbacE.

Con escribir el comando log se (uede corroborar 2ue se -a vuelto a la versi&n indicada. /s recomendable tomar nota de los valores del Hltimo commit reali0ado en la rama trabajo. /stos valores (ueden llegar a ser necesarios, en caso de se 2uiera volver a dic-a versi&n del c&digo.

Ilustración )- 7 Corroborando !ue se retornó a la $ersión anterior.

C?

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

1:.1.,. Re!uisitos ara im lementar Integration @uild $ara (oder im(lementar la Integration Duild, es necesario -aber instalado algHn sistema control de versi&n % -aber (re(arado el ambiente de trabajo del (ro%ecto. 1:.1.-. Recomendaciones al traba+ar con Integration @uil. $ara (oder reali0ar el (roceso de integraci&n, tanto en nuestro (ro(io es(acio de trabajo como en el main line, es necesario contar con todos los com(onentes necesarios % actuali0ados a la Hltima versi&n estable, (ara (oder llevar a cabo una correcta integraci&n Ksub m&dulos, base de datos, a(is, dll, scri(ts, etcL. Se recomienda atomi0ar los cambios, a fin de reducir el tiem(o de integraci&n % (oder obtener una ma%or cantidad de ellas, (ara 2ue el (roceso de integraci&n sea más e7itoso. +os test 2ue se realicen deben ser ágiles % rá(idos, (ara evitar demoras innecesarias en el (roceso de integraci&n.

;*.9. $resentaci&n
1:.".1. S eech ara el DorEsho . Tenemos este (rograma escrito en F@5T5A: 2ue no esta convergiendo % (ensamos 2ue (uede ser un (roblema de (recisi&n, (or lo 2ue decidimos cambiar todas las variables de nuestro c&digo a doble (recisi&n. A medida 2ue vamos llevando a cabo dic-a modificaci&n, van surgiendo distintas versiones del c&digo, -asta obtener la versi&n definitiva de este. $ero resulta 2ue el (rograma sigue sin converger, (or lo 2ue debemos retornar a la versi&n original. Sin embargo, tenemos el (roblema de 2ue no tenemos una co(ia del c&digo original, (or lo 2ue el rollbacF debe ser llevado manualmente, con lo 2ue esto im(lica, %a 2ue -a% 2ue ir des-aciendo cada una de las modificaciones 2ue reali0amos en el c&digo, evitando obviamente 2ue este se estro(ee en el (roceso. /ste (roblema %a -a sido resuelto dentro del ámbito de la Ingeniería de Soft are, (ero las CA

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

soluciones están orientadas al soft are comercial. +o 2ue se -a -ec-o, es tomar algunas de estas soluciones % ada(tarlas al desarrollo de soft are científico. +o 2ue se -a escogido, son dos (atrones de SC#, 2ue son soluciones gen3ricas % se encuentran estandari0adas. $or ejem(lo, el active develo(ment line nos (ermite reali0ar modificaciones al c&digo (reservando tanto la versi&n original como las distintas versiones 2ue se va%an generando a raí0 de esto. $ara esto se toman sna(s-ots, estas son fotos de las distintas versiones 2ue se van generando (roducto de los cambios 2ue vamos reali0ando % 2ue las (odemos ir guardando. /l lugar donde las guardamos son ramas o branc-es, 2ue nos (ermiten se(arar la foto original 2ue le tomamos al c&digo de las fotos 2ue fuimos sacando a las distintas versiones 2ue fuimos obteniendo. De esta forma en una rama vo% guardando % (reservando las distintas versiones 2ue obtuve % en otra tengo salvaguardada la versi&n original. A su ve0 (odemos ejecutar rollbacFs, %a sea a una foto anterior o a la foto original. Todas estas fotos se (uede agregar un tag, es decir, una eti2ueta 2ue nos (ermita identificar cada una de las fotos 2ue -emos ido guardando en las distintas ramas, e inclusive, (odemos agregarle a cada una de las fotos una descri(ci&n de lo 2ue se le -a -ec-o. $or Hltimo, (odemos agregar algunas fotos o todas ellas a la rama (rinci(al, de(endiendo de las necesidades de ese momento. +a integraci&n nos (ermite ir agregando estas fotos 2ue fuimos sacando al main line (aulatinamente. De esta forma, se evita 2ue se (rodu0can errores al momento de ser agregadas. $ara esto, se cuenta con un orFs(ace, un es(acio de trabajo es(ecial, 2ue va a contener todos los elementos necesarios (ara 2ue nosotros armemos tem(oralmente una build, es decir 2ue vamos a reali0ar un foto'montaje con todos los com(onentes 2ue tenemos almacenados. /sta foto'montada va a ser sometida a testings con el fin de determinar si (uede ser agregada al main line. Si este foto'montaje local tiene 37ito, entonces vamos a im(ortar a nuestro es(acio de trabajo la foto original (ara re(etir el (roceso nuevamente, con la finalidad de corroborar 2ue no se valla a estro(ear la foto original cuando intentemos agregar nuestras fotos. Si se (asa e7itosamente esta eta(a, entonces (odemos agregar nuestras fotos al main line. 8amos a (roceder con una (e2ue1a demostraci&n de lo e7(licado -asta a2uí. Con esto, se busca reali0ar un intercambio de conocimientos entre nosotros % ustedes, C=

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

ofreci3ndoles estas soluciones gen3ricas ada(tadas, 2ue (ermiten lidiar con los (roblemas 2ue se suscitan a diario. 6a% 2ue tomar en cuenta 2ue el desarrollo de soft are científico debe ser reconocida como una disci(lina es(ecial, % 2ue (or ende se debe tomar en cuenta de 2ue no se (ueden a(licar las soluciones 2ue e7isten actualmente en el mercado de desarrollo de soft are directamente sin -aber reali0ado una ada(taci&n de estas. 1:.".". 6asos de la Demostración del DorEsho . ;. $osicionarse en la rama trabajo Kla rama nuevaL. 9. #odificar el c&digo. ). Grabar las modificaciones. >. #ostrar el log. ?. Com(ilar el c&digo. A. /jecutar el (rograma 2ue se creo. =. 5eali0ar la o(eraci&n merge. B. #ostrar el log. C. /jecutar un rollbacF. ;*. #ostrar el c&digo.

CB

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

1:.".#. >ilminas de la resentación del DorEsho .

CC

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

;**

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

;*;

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

;*9

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

;*)

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

;*>

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

;*?

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

;*A

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

;*=

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

;*B

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

;*C

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

;;*

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

;;;

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

;;9

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

;;)

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

;*.). 8alidaci&n de la $ro(uesta.
$ara llevar a cabo la validaci&n de la (ro(uesta de este (ro%ecto, se anali0aron diversas alternativas, siendo una demostraci&n directa de la im(lementaci&n el mejor mecanismo 2ue (roveería un feedbacF. /sta demostraci&n se reali0o en el O$rimer EorFS-o(" /l Desarrollo de Soft are en ambientes Científicos % T3cnicosP, efectuado en el Instituto Universitario Aeronáutico de C&rdoba G Argentina, en el mes de @ctubre del 9*;;. /sta, debía introducir el conte7to % marco te&rico (resentando de una manera (ráctica la soluci&n (ro(uesta en este trabajo, a trav3s de la gesti&n de configuraci&n, 2ue -a sido el ;;>

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

objeto de estudio de este trabajo. +os resultados obtenidos de esta (resentaci&n, sirvieron (ara ajustar distintos as(ectos de la im(lementaci&n % delinear futuros estudios dentro de esta área. A trav3s de una demostraci&n, se llevo a cabo la im(lementaci&n de las soluciones e7(uestas en esta (ublicacion. A tal fin, se utili0o la -erramienta GIT, la cual es un re(ositorio, en conjunto con scri(ts. Como lenguaje de (rogramaci&n se utili0o F@5T5A: C?. $ara el active develo(ment line, se cre& la rama trabajo 2ue (ermiti& mejorar el manejo de las modificaciones, (reservando el c&digo original % las distintas versiones 2ue se originaron de este. /n una rama Kvendría a ser el main lineL se guardo la versi&n original del c&digo, mientras 2ue las distintas modificaciones reali0adas se almacenaron en la rama trabajo. De esta manera, se (reservo la versi&n original del c&digo al momento de reali0ar las modificaciones. Al contar con todas las versiones almacenadas en un re(ositorio, se (udo ejecutar fácilmente los rollbacFs a cual2uiera de las versiones, eliminando la com(lejidad % los riesgos 2ue (osee la ejecuci&n de esta o(eraci&n manualmente. Cada una de las versiones cont& con una nota de liberaci&n, 2ue incluía informaci&n sobre 2ue se -abía reali0ado en esa modificaci&n, (ermitiendo determinar su utilidad (ara los desarrolladores. A su ve0, los tags brindaron una identificaci&n de cada una de las versiones, lo 2ue facilito la ejecuci&n de o(eraciones como el rollbacF % merge. +a integration build (ermiti& mejorar la construcci&n de las builds al centrali0ar todos los elementos necesarios (ara llevar a cabo dic-o (roceso. Al definirse el tiem(o 2ue debía demorar un ciclo de integraci&n, (ermiti& agili0ar este (roceso evitando así 2ue se lo reali0ara innecesariamente. Además, (ermiti& corroborar 2ue las modificaciones 2ue se -abían reali0ado, se integraban correctamente con los distintos elementos de nuestro (ro(io orFs(ace, así como del main line. $ara ejecutar la demostraci&n de la integraci&n, se utili0& los tiem(os definidos en el (ro%ecto de grado % se sim(lifico el (roceso, %a 2ue los (asos % modificaciones 2ue se utili0aron no eran e7tensas. Como agregado a esta im(lementaci&n, se utili0aron scri(ts 2ue (ermitieron mejorar el rendimiento de las o(eraciones. /sto evit& un uso e7tenso de la consola de linu7, %a 2ue (ermiti& brindar cierta automati0aci&n de las soluciones (ro(uestas, evitando 2ue se ;;?

Calidad en el Desarrollo de Soft are Científico

Ingeniería de Sistemas I.U.A.

tuviera 2ue escribir varios de los comandos (ara llevar a cabo las distintas o(eraciones, e inclusive, el tener 2ue (osicionarse en el directorio de trabajo. Del feedbacF obtenido de la demostraci&n, se (udo corroborar 2ue el tiem(o es un factor crucial en el desarrollo de soft are científico % una de las ma%ores (reocu(aci&n de los res(onsables de los gru(os de investigaci&n. Además, se detecto la necesidad de gestionar un desarrollo distribuido, así como la necesidad de 2ue las soluciones % -erramientas (uedan so(ortar esta situaci&n. Tambi3n manejan distintas (lataformas KS@L % diferentes ti(os de arc-ivos, lo 2ue -ace 2ue necesiten un sistema de gesti&n robusto ca(a0 de so(ortar estas condiciones de trabajo. Asimismo, demostraron inter3s (or la soluci&n, es(ecíficamente en a2uellos a(artados 2ue son críticos (ara ellos. Si esta soluci&n en conjunto con las -erramientas (ro(uestas eran ca(ases de manejar un desarrollo distribuido, mHlti(les formatos de arc-ivos % si es libre o comercial. $or otra (arte, la idea de mantener una linea estable a la 2ue (uedan retornar les fue interesante %a 2ue les (ermite mejorar la gesti&n de sus (ro%ectos de desarrollo, así como el (roceso de integraci&n les brindaba cierto nivel de seguridad % calidad al desarrollo. Con toda la informaci&n recabada de esta demostraci&n, se (udo constatar la utilidad de la soluci&n (ro(uesta, a la ve0 2ue se obtuvo datos relevantes res(ecto al desarrollo del soft are científico, 2ue (ermite dejar la (uerta abierta (ara seguir reali0ando trabajos futuros sobre este ámbito.

;;A

Sign up to vote on this title
UsefulNot useful