curso_tecnicas_desarrollo
DESCRIPTION
tecnicas de desarrolloTRANSCRIPT
-
Curso de tcnicas de desarrollo
Manual del alumno
Profesor:CdricSimon CopyrightCdricSimon,20072012 Reproduccinprohibida
Ing.CedricSim
onTel:22680974C
el:88882387Email:ce
dric@
solu
cionja
va.co
mW
eb:www.solucionjava.com
Solu
cionJava.com
-
Cursodetcnicasdedesarrollo Pagina2/13
1 ndice1 ndice .................................................................................................................................................................................. 2
1 Introduccin al curso ......................................................................................................................................................... 3
1.1 Objetivo de este curso ................................................................................................................................................ 3
1.2 Manual del alumno ..................................................................................................................................................... 3
1.3 Requisitos para atender a este curso ........................................................................................................................ 3
1.4 Soporte despus del curso .......................................................................................................................................... 3
2 Ciclo de vida del desarrollo de una aplicacin ................................................................................................................. 4
2.1 Objetivo ....................................................................................................................................................................... 4
2.2 Establecimiento de los requisitos .............................................................................................................................. 4
2.3 Estimacin de alta nivel ............................................................................................................................................. 4
2.4 Diseo funcional ......................................................................................................................................................... 4
2.5 Diseo tcnico ............................................................................................................................................................. 5
2.6 Desarrollo .................................................................................................................................................................... 5
2.7 Pruebas unitarias ........................................................................................................................................................ 5
2.8 Plan de prueba ........................................................................................................................................................... 6
2.9 Integracin .................................................................................................................................................................. 6
2.10 Pruebas de usuarios ................................................................................................................................................. 6
2.11 Pruebas de rendimiento ........................................................................................................................................... 6
2.12 Produccin ................................................................................................................................................................ 6
2.13 Parches ...................................................................................................................................................................... 7
2.14 Seguimiento de problemas ....................................................................................................................................... 7
3 Manejo de versiones ........................................................................................................................................................... 8
3.1 Uso de programa de manejo de versiones ................................................................................................................ 8 3.1.1 Sistema de bloqueo ................................................................................................................................................ 8 3.1.2 Sistema de fusin .................................................................................................................................................. 9 3.1.3 CVS ..................................................................................................................................................................... 10 3.1.4 Subversion ........................................................................................................................................................... 10
3.2 Ramas de desarrollo (Branches) ............................................................................................................................. 10
3.3 Etiquetas (Tags) ........................................................................................................................................................ 10
3.4 Integracin de CVS con herramientas de desarrollo : Eclipse y CVS ................................................................ 11
4 Documentacin del cdigo .............................................................................................................................................. 12
4.1 Uso ............................................................................................................................................................................. 12
4.2 Objetivo ..................................................................................................................................................................... 12
4.3 Estandartes ............................................................................................................................................................... 12
5 Reglas de nombramiento ................................................................................................................................................. 13
5.1 Objetivo ..................................................................................................................................................................... 13
5.2 Ejemplos de reglas de nombramiento .................................................................................................................... 13
5.3 Nombramiento de cdigos ....................................................................................................................................... 13
5.4 Nombramientos de variables ................................................................................................................................... 13 CopyrightCdricSimon,20072012 Versin1.2 Reproduccinprohibida
-
Cursodetcnicasdedesarrollo Pagina3/13
1 Introduccinalcurso1.1 Objetivodeestecurso Estecursointentadaralalumnobuenascostumbresdedesarrolloyclavesparadesarrollaraplicacionesestables,sostenible,ylistasparacrecer.
1.2 Manualdelalumno Estemanualdelalumnoesunaayudaparaelalumno,paratengaunrecuerdodelcurso.Estemanualcontieneunresumendelasmateriasquesevanaestudiarduranteelcurso,peroelalumnodeberadetomarnotaspersonalesparacompletasestemanual.
1.3 Requisitosparaatenderaestecurso Nohayrequisitosparaseguirestecurso,perounaexperienciapreviaendesarrollodeaplicacionesesdeseableparaentendermejorelfindelcurso.
1.4 Soportedespusdelcurso Sitienespreguntassobrelamateriadelcursoentusejerciciosprcticos,[email protected].
Parainformacionessobreotroscursos,visitaelsitiowebwww.solucionjava.com.
CopyrightCdricSimon,20072012 Versin1.2 Reproduccinprohibida
http://www.solucionjava.com/mailto:[email protected]
-
Cursodetcnicasdedesarrollo Pagina4/13
2 Ciclodevidadeldesarrollodeunaaplicacin
2.1 Objetivo Paralograrundesarrollosostenibleesimportanteconoceryrespetarelciclodevidadeunaaplicacin.
Elcicloexplicadoenseguidasirvetantoparaeldesarrollodenuevaaplicacionescomoparamodificarunaaplicacinexistente.
Cuandosedeseacambiarunavariaspartesdeunaaplicacinseagrupanenunproyecto,yelproyectosigueelciclodevidaexplicadoabajo.
Dependiendodeltamaodelaaplicacinydelaempresa,lasetapastomarnmsomenosimportancia.Entremsgrandeeslaaplicacin,msimportanteesdepegarseacadapaso.
Paraaplicacionesgrandey/oimportantes,seutilizanvariosambientes.Esdecirquelaaplicacinexisteenvariosejemplares.Deberadetenersiempreunmnimodedosambientes:produccinydesarrollo.Otrosambientespuedenserelambientedeintegracin,eldepruebadeusuario,eldecapacitacin,yeldereferencia.
2.2 Establecimientodelosrequisitos Esaveceslomsdifcildeconseguir,peroeslomsimportante.Losusuariooelclientedebeexplicarclaramentequeesloqueelquiere.
Paraesoeldebelistartodossusrequisitosdemaneradetallada.'Hagacomoentalotromodulo...'nosepuedeaceptarcomounrequisitovlido,peroleconcedoqueaveceshayqueaceptarlo(elclienteesrey...).
Cuandolosrequisitosnoestnmuydetallados,esmuyimportantedetallarlosenlaanlisisfuncional,paraestarseguroqueloquesevaadesarrollareslodeseado.
2.3 Estimacindealtanivel Estepasoesopcional.Esunaestimacin'aprimeravista'delesfuerzo(trabajo)necesarioparaimplementarloscambiosodesarrollarlaaplicacinrequerida.
Esosirveparaestimarelcostoyplanificarlosrecursosnecesarios.
2.4 Diseofuncional Eslatraduccindelosrequisitos(punto2.2)enundiseo'informtico'.Porejemplo,sedescribircomoparecernlaspantallasdelGUI,losflujosdepantallasylosflujosdenegociosqueseimplementarn.
CopyrightCdricSimon,20072012 Versin1.2 Reproduccinprohibida
-
Cursodetcnicasdedesarrollo Pagina5/13
Lapersonaqueredactaeldiseofuncionaldebetenerunaideageneralquecomoseimplementaraniveltcnico,paraevitardeproponereneldiseoalgoquenosepuedeimplementar,oquepediraunesfuerzodemasiadograndeparaimplementar.
Esbuenaideaqueunprogramadorrevisaestediseoantequeselepresentaalcliente,paratenerunacuerdotcitodeque,aprimeravista,sepuedeimplementaralniveltcnicodentrodelcosto(tiempo)estimado.
Encasoquesehizounaestimacindealtanivel,elesfuerzo/costosepuedeconfirmar,afinar,omodificaraqu.
Elobjetivoesqueelcliente'firma'eldiseofuncionalcomoacuerdodelosquesevaadesarrollar.Estedocumentoservirdebaseparalaevaluacin(prueba)delaaplicacin.
Sialfinalalgonofuncionacomoesperado,hayqueregresaraldiseofuncionalparaaveriguarsielpuntoquedaproblemaestabapresenteeneldiseoono.Sinoestabanieneldiseonienlosrequisitos,setratadeunnuevorequisito(acargodelcliente).Siestpresenteyfuncionacomodescrito,essetratadeuncambioderequisito(acargodelcliente).Siestpresenteperonofuncionacomodescrito,esunerrordeprogramacinquehayquecorregir(acargodeldesarollador).
UnejemplodediseofuncionalestdisponibleenelCD(AFSiminsaenlinea.pdf).
2.5 Diseotcnico Eslatraduccindeldiseofuncionalenunasolucintcnica.Sedescribelaarquitecturatcnicaquesevaautilizarparaprogramarlorequerido.
Eldiseotcniconodeberadecontenercdigofuente,sinolaestructuradelcdigoquesevaautilizarydeloscambiosnecesarios.Queseancambiosdelabasededatos,nuevosobjetosJava,servlet,...
Unavezfinalizado,estediseodeberaserrevisadoyaprobadoporelanalistafuncionalantedeiniciareldesarrollo.
2.6 Desarrollo Eslaaplicacindeldiseotcnicoyelpropiodesarrollodelaaplicacin.
Encasoquesehizounaestimacindealtanivel,elesfuerzo/costosepuedeconfirmar,afinar,omodificaraqu.
Encasoqueseencuentraalgnproblema(lasolucinimaginadanofuncionaodaproblemas),hayquerevisarlasituacinconelanalistafuncional,yeventualmenteelclientesielimpactoesgrande.
2.7 Pruebasunitarias Despusdehaberhechosudesarrollo,elprogramadordebeprobarsucdigodemaneraunitaria.Esdecir,cadacdigoapartesintenerencuentalatotalidaddelaaplicacin.Laspruebassedeberandehacerencondicionessimilaralaproduccin.Esdecirquesilaaplicacinfuncionaen3tiers,hayqueprobarlaen3tierstambin.
CopyrightCdricSimon,20072012 Versin1.2 Reproduccinprohibida
-
Cursodetcnicasdedesarrollo Pagina6/13
Laspruebashechassedebenregistrarypresentaralanalistafuncionalparapoderconcluirqueelcdigoestlistoparapasaralambientedeintegracin.
2.8 Plandeprueba Unavezeldiseofuncionalaprobado,elanalistafuncionalylosusuariosdeberan(cadauno)queescribirunplandeprueba.
Elplandepruebadebecontenerademsdelaspruebasdelcdigonueva,pruebasderegresin,paraverificarquelasprincipalesfuncionesdelaaplicacinpreexistentenohansidoimpactadodemaneranodeseada.
2.9 Integracin Estepasoeselpuestoencomndetodoslasmodificacionesdelaaplicacin,yaquevariosproyectosdiferentespuedendesarrollarseenparalelo,yquemsdeunprogramadorpuedetrabajarenelproyecto.
Aquesqueelanalistafuncionalharsuspruebasparavalidarlaaplicacin,antesdeentregarlaalcliente.
Lapruebasdeberanserdocumentadas,ascomolosproblemasencontrados.
Ademsdeprobarlasnuevasfuncionesocambiosdelsistema,sedebesiempreefectuarpruebasderegresinparaasegurarsequetodaslasfuncionesimportantesdelaaplicacin,mismosinohansidomodificadadirectamente,siguenfuncionandocomoesperado.
2.10Pruebasdeusuarios Aqusonlosusuariosquevanhacersuspruebas.
Lapruebasdeberanserdocumentadas,ascomolosproblemasencontrados.
Unavezlaspruebasterminadas,elclientedecidesielestdeacuerdoquelaaplicacinpasaaproduccinono.
2.11Pruebasderendimiento Aqusevaaprobarelrendimientodelaaplicacin.Laspruebasderendimientosedeberanefectuarsobreunambientelomsparecidoposiblealaproduccin.
Sevanaprobarentreotroslacargaquesoportaelsistema,eltiempodeejecucindelosinterfaces'batch',yelrendimientodelasdiferentespartesdelsistema.
Elobjetivoesdetectarantesdeproduccinposiblesproblemasderendimientos(porejemploconsultaSQLnooptimizada),yconocerlaslimitesdecargadelsistema(usuarios,transacciones,...).Existenprogramasquepermitengenerarcargadelsistemasimulandomltiplesusuarios.,comoJMeter.
2.12Produccin Aquesdondeseusafinalmentelaaplicacin.Debeserunambienteestable.Laproduccinnosedeberademodificarmuyseguido.
CopyrightCdricSimon,20072012 Versin1.2 Reproduccinprohibida
-
Cursodetcnicasdedesarrollo Pagina7/13
2.13Parches Losparchessoncorreccionesdecdigosporerroresquenofuerondetectadasantesdeproduccinoquelofueronperoquenoerancrticasynosepodancorregiratiempoparapasarenproduccin.Tambinpuedenservirparaimplementarcambiospequeos(requisitomodificadoencaminodeldesarrollodelproyecto).
Losparchesdebendeseguirelmismociclo(puntos2.2a2.11),peromsligeramente.
2.14Seguimientodeproblemas Paraseguirelestadodelosproblemasquefueronreportados,lesaconsejoelusodealgntipodeprograma.Lomssimpleseraunarchivotextoountabulador,hastaprogramasdiseadosparaestetipodeactividad(porejemploPeregrine).Personalmente,hediseadounprograma,basadoenmiexperienciaconPeregrine,paraelseguimientosdeactividades(proyectos,parches,problemas...)quedellamaVIDA,estescritoenJava(JSP)conbasededatosMySQL.
CopyrightCdricSimon,20072012 Versin1.2 Reproduccinprohibida
-
Cursodetcnicasdedesarrollo Pagina8/13
3 Manejodeversiones3.1 Usodeprogramademanejodeversiones Unodelosproblemasenlavidadeunaaplicacinesdesabercualeslaversinactual(enproduccin)delosarchivos,sintenerquesacarunacopiadelaproduccin,depoderretrocederhaciaunaversinanterior.Otroproblemaeseldesarrolloconcurrente(variosprogramadorestrabajandosobreunmismocdigo).
Paracontestarestosproblemasexistenlosprogramasdemanejodeversiones.Estosprogramasvanaguardartodoslosarchivosenunrepositorio.Seincrementarautomticamenteelnmerodeversindeunarchivocadavezqueseguardaunanuevaversindelarchivoenelrepositorio,yselepodradjuntaruncomentarioconelfindepodertrazarelhistricodelarchivo.
Enunsistematpicodeclienteservidor,unasolapersonapuedetenerelderechodeescribirenelarchivo,losdemssololopuedenleer.Sidospersonasleenelmismoarchivo,lomodificancadaunodesuladoyluegoloescriben,lasegundapersonavaasobrescribirloscambioshechosporlaprimerapersona,perdiendosutrabajo.
Elproblemaaevitar
Paraevitaresteproblemadesobreescritura,existendossoluciones:elbloqueodelarchivo,ylafusindearchivos.
3.1.1 Sistemadebloqueo Conelsistemadebloqueo,unusuarioadquiereunbloqueodeunarchivo,loqueimpidecualquierotrousuariodemodificarlohastaqueelbloqueohagasidoquitado.
Conestesistema,unarchivosolopuedeserutilizadoporunusuario.Nosepermiteeldesarrolloconcurrente.CopyrightCdricSimon,20072012 Versin1.2 Reproduccinprohibida
-
Cursodetcnicasdedesarrollo Pagina9/13
Estoaseguraquealmomentodeguardarsucopia,nadiehamodificadoenarchivodedesdeelbloqueo.Elpuedesobrescribirelarchivoenelrepositoriosinriesgodesobrescribirloscambioshechosporotrousuario.
Lasolucindebloqueolecturaescrituradesbloqueo
3.1.2 Sistemadefusin Conelsistemadefusin,losusuarioguardanunacopiadelarchivoenlocal,yalmomentodeguardarloelsistemadetectasialguiendeotromodificoelarchivoenelrepositoriodesdeelmomentodelacopiaenlocal.Encasoquesi,tendrqueocurrirunafusindeloscambiosantesdepoderguardarlos.Esopermiteeldesarrolloconcurrente.
Lafusinsepuedepasarautomticamenteomanualmente.Encasodeconflictos(porejemplounamismalneamodificadapordospersonas),harqueresolverlosmanualmente.
Hayquenotarquelafusinfuncionamuybiencuandoelcdigosefusionaysecompilanenlaherramientamisma(comoEclipse),peronotantocuandosefusionaafueradelentorno,amenosquesevalidaluegotodoelcdigofusionado,loquepuedeserfastidioso.Paraestosltimos,elbloqueoesunamejoraopcin.
CopyrightCdricSimon,20072012 Versin1.2 Reproduccinprohibida
-
Cursodetcnicasdedesarrollo Pagina10/13
Lasolucincopiarmodificarfusionar
3.1.3 CVS CVSesunprogramalibrequepermitemanejarversionesdearchivos.Eselsistemamssoportados,ymuchasherramientassoportanpordefectolaconexinconunrepositoriodeCVS.
Msinformacinenwww.cvs.org
3.1.4 Subversion SubversionesunsistemadecontroldeversincomoCVS(elherededeCVS),peroconmsposibilidades.Entreotros,Subversionpermiteversionarcarpetas,sobrevivirenelhistricoauncambiodenombredeunarchivo,ysoportavariostiposdeconexin,entreotrosHTTPoHTTPS.SeesthaciendomuypopularporloquesuperaaCVSyesgratis.Msinformacinenhtt p://subversion.tigris.org/
3.2 Ramasdedesarrollo(Branches) Losprogramasdecontroldeversinpermitencrearramasdentrodelrepositorio.
Elcdigo'original'seencuentraeneltronco(TRUNK/HEAD).Cuandoseiniciaunproyectodemodificaciones,secreaunaramasaliendodeltronco,ysetrabajarenestarama.Cuandoelproyectopasaaproduccinseponealdaeltroncoconlasmodificaciones.
3.3 Etiquetas(Tags) Lasetiquetaspermitenmarcarloscdigosconunnombreounafecha.Estopermiteenelfuturocompararloscdigosconestaversinetiquetada.Sirveporejemploparamarcarloscdigosquefueronpuestoenproduccinparaunaciertaversin.
CopyrightCdricSimon,20072012 Versin1.2 Reproduccinprohibida
http://subversion.tigris.org/http://subversion.tigris.org/http://www.cvs.org/
-
Cursodetcnicasdedesarrollo Pagina11/13
3.4 IntegracindeCVSconherramientasdedesarrollo: EclipseyCVS
EclipseseintegrademaneranativaconCVS,yvaunpluginconSubversin.
Vamosacrearunnuevoproyecto,guardarloenCVS,yluegocargarelproyectoenotrocomputadora,modificarunarchivoenamboscomputadorasyvercomosecomportalafusindelasmodificaciones.
Hayquenotarquelosentornosestneningles.
CopyrightCdricSimon,20072012 Versin1.2 Reproduccinprohibida
-
Cursodetcnicasdedesarrollo Pagina12/13
4 Documentacindelcdigo4.1 Uso Ladocumentacindelcdigosirvetantoparaelcreadordelcdigocomoparalosotrosprogramadoresqueluegomodificarnelcdigo.
Ladocumentacinsepuedeencontrarendoslugaresdistintos:enelcdigomismooafueroenotroarchivo.
Ladocumentacinqueseguardaafueraesdedostipos:eldiseotcnico,quedalaestructurageneral,ylaimplementacintcnica,quedalosdetallestcnicosobreelcdigomismo.UnejemplodeesaltimadocumentacinenlaJavaDoc.
4.2 Objetivo Elobjetivodeladocumentacindelcdigoestantoparaqueotrapersonapuedaentendercomofuncionaelcdigo,comoconfinesdeauditoria,paraquealguienquetienequecambiaruncdigoqueelconocaantessepuededarcuentasialguiendeotrolotocyqueselehacambiado.
4.3 Estandartes Sinoexistenestandartesinternacionalesdedocumentacindelcdigo,esmuyimportantequedentrodeunamismaorganizacinseimplementanestandartesparaquetodoelmundotrabajadelamismamanerayqueunprogramadorpuedeencontrarlainformacinfcilmente,sinimportanciadequiencreoocambielcdigo.
Entonceshaydostipodeinformacinenladocumentacin:losdatoshistricosylosdetallestcnicos.
UncasoespecialeslaJavaDoc.ParautilizarlaJavaDoc,quecreaunadocumentacinenformatoHTMLsobrelasclasesysusmtodosautomticamentebasndoseencomentariosestructuradosadentrodelcdigoJava,hayquerespetarunosestandartesparaquesepuedagenerarladocumentacin(queJavaDocsepacualessonloscomentariosaincluirenladocumentacin).
Paralainformacinhistrica,leaconsejodecolocarlaencabezadelcdigo,conlosdatossiguiente:laversindelarchivoodelaaplicacin,lafechadelcambio,lasinicialesoelnombredelprogramadorquehizoelcambio,yladescripcingeneraldelcambio.
Porejemplo:/** Version Fecha Programador Detalles* 1.0 10/03/06 Cedric Creacin del cdigo. Proyecto no 845.* 1.0.1 02/05/06 Cedric Correccin bug no 245* 1.1 05/10/06 Jose Adjunto de la posibilidad de mencionar origen de la* compra. Proyecto no 1545.*/
Cuantoalladocumentacintcnicaenelcdigo,haynohayrealmenteestandartes.Hayqueprobardemetersuficienteinformacinparaqueotroprogramadorpueda'entrar'fcilmenteenelcdigoyentenderadondemodificarloparalograrsuproyecto.Lasreglasdenombramientotambinayudanadocumentarelcdigo.
CopyrightCdricSimon,20072012 Versin1.2 Reproduccinprohibida
-
Cursodetcnicasdedesarrollo Pagina13/13
5 Reglasdenombramiento5.1 Objetivo Lasreglasdenombramientopermitenquelosprogramadorespuedanentenderfcilmentelaestructuradeuncdigoyinteractuarmsfcilmenteconotroscdigos.
Ciertoslenguajetienenestandartesinternacionalesmuyseguidos,comoellenguajeJava.Otrosno,ysetienequedefinirunestndaranivellocal.
Existenrestriccionesdenombramientoquesonpropiasacadalenguaje,Porejemplo,porlogeneralunnombredevariablenopuedeserigualaunapalabrareservadadellenguaje.
Tambin,ciertoslenguajessonsensiblesamaysculasyminsculas,yotrosno.Ciertoslenguajespermitenelusodeacentos,peronoseloaconsejoporquepuededarconfusinsiunoloutilizayotrono,ositrabajacondoslenguajedelcualunoaceptaacentosyotrono.Tambinciertasherramientasnosoportanlosacentos,ysitrabajaconLinuxoUnixyWindows,copiandoarchivosdeunsistemaalotropodradarproblemasconlosacentos.
Essiempreimportanteelegirunnombrequeseainteligible,esdecirquecuentalosquecontieneelarchivo/cdigo/variable...
5.2 Ejemplosdereglasdenombramiento Lasreglasdenombramientoayudanaencontrarfcilmenteunarchivo.Porejemplo,sepuededefinirquetodoslosnombresdearchivossernenminscula,consubrayaparasepararnombresinternos(porejemplopagina_de_inicio.html).
5.3 Nombramientodecdigos Ademsdelcdigoprincipalvantambinpartesinternasdelcdigos(comolaclaseysusmtodos).Esbuenodefinirunaregladenombramientoparacadatipodepartedecdigo.
Cuandohayvarioscdigosmuycercanos,conaccinmuyparecida(porejemplolosdisparadores),sepuedeusarprefijososufijosparadiferenciarlos.Porejemplo:'empleado_au'paraundisparador'afterupdate'sobrelatableempleado,'empleado_bi'paraundisparador'beforeinsert'sobrelatableempleado,
5.4 Nombramientosdevariables Paraelnombramientodevariablesexistenvariosestandartesinternacionales,deloscualeselmsconocidoeslanotacinhungarina('Hungariannotation').Ustedsepuedepegarauno,ocrearelsuyo.
Porlogeneralesbuenapracticadetenerporlomenosdospartesensunombredevariable:unprefijoindicadordealcance(variablelocal,global,parmetro)yelnombreinteligibledelavariable.
Porejemplo:sinprefijoparavariableslocales,elprefijo'g_'paravariablesglobales,yelprefijo'p_'paraparmetros.
Ciertosestandartestambinadjuntaneltipodevariableenelnombredealvariable.
CopyrightCdricSimon,20072012 Versin1.2 Reproduccinprohibida
1 ndice1 Introduccin al curso1.1 Objetivo de este curso1.2 Manual del alumno1.3 Requisitos para atender a este curso1.4 Soporte despus del curso
2 Ciclo de vida del desarrollo de una aplicacin2.1 Objetivo2.2 Establecimiento de los requisitos2.3 Estimacin de alta nivel2.4 Diseo funcional2.5 Diseo tcnico2.6 Desarrollo2.7 Pruebas unitarias2.8 Plan de prueba2.9 Integracin2.10 Pruebas de usuarios2.11 Pruebas de rendimiento2.12 Produccin2.13 Parches2.14 Seguimiento de problemas
3 Manejo de versiones3.1 Uso de programa de manejo de versiones3.1.1 Sistema de bloqueo3.1.2 Sistema de fusin3.1.3 CVS3.1.4 Subversion
3.2 Ramas de desarrollo (Branches)3.3 Etiquetas (Tags)3.4 Integracin de CVS con herramientas de desarrollo : Eclipse y CVS
4 Documentacin del cdigo4.1 Uso4.2 Objetivo4.3 Estandartes
5 Reglas de nombramiento5.1 Objetivo5.2 Ejemplos de reglas de nombramiento5.3 Nombramiento de cdigos5.4 Nombramientos de variables