From f85bbe7ad4c73aec21f11c249cffdeeabbaabd23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Ortega=20Froysa?= Date: Wed, 5 Apr 2023 16:31:44 +0200 Subject: [PATCH] TFC: Add hardware & OS technical requirements MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Nicolás Ortega Froysa --- TFC/tfc-naortega.pdf | Bin 57159 -> 62793 bytes TFC/tfc-naortega.tex | 41 ++++++++++++++++++++++++++++++++++++++++- TFC/tfc-naortega.toc | 16 ++++++++-------- 3 files changed, 48 insertions(+), 9 deletions(-) diff --git a/TFC/tfc-naortega.pdf b/TFC/tfc-naortega.pdf index 61df77b947c1fb91b7100288e76ffb79333faa08..d8a80e760862d710543072767527a235ccdb824c 100644 GIT binary patch delta 24788 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 z zCZdNO`~evUa7dSh1*x0gqpZd19-|G3^B~>5m_yMjq|9zPu~!IzI!s`v_}f_89#}sU zVZ83BL`Bvg6{m6^dp5x;LLmNoNaNqMqK;!mn5zPyY;Vhb84-r=%9(QM59YdB-&xI{ zU75-`bB;U{ngU|!fn8MY!g-Xw2_D7V&JgB}EPiaPT zWLyM*gbjHJW>ee{5vw2ot}GwhV&39ubrH_Sx6lVI_v6w>GXSHsm(2i`|7WOXWrN!~ zg6>?aTwDWd6@FSG8b(oPCS7!Y18z)PP62^kk)m_i!7(SJAPAIORasoO^GyxyT^Pm; z?2Mo2;Rj`zzmVIpoENqFEsPhGqP*m+>R<>^T<9n1)1c&sd3+T+6+ajp={oHl!ZfT4$blMg}@^;snvn*|ZKy6tsA3bXcGo_=tM_FpMlFSaEc8 z{vsw)G6Tky$q<1o9aK9EM!(Q1Q3DdHuAGbGr^RiM@2&QH)=}?kK;NtH?d;X;Mn;b7 ztY`1T&-Y#;Qh0c%7zs9;Yic|IV0NXYTh$>f)Ebn7AwBLZ+a?L@|+M07a%nb2L){` z21f>gDjJmrmLx^~_07J}+)t%GAKRZl-d^8M#%rs)HK$it2s9ZK5jg~)d9=133al7X zQfJqo=YE6iD@Qf#8^ipJ3x$=nn54E0^3os+!mDaYh|{PE7kncRM3)uCW0$34 zV<4en;}+L9s!*AP1fu~8oShed_I3vcqSZwvB6h*|ybT=4{){7=XaBT2=3ZV}GP#FF zX12y=cpTibNw{bvkg?EC2{Djuziu=A0k`<*O^brT{g4qWEZJDnvBUzz0_4?Dwu9kV zvg^pGkx`-i%u(rba>RI0l7ms{5?rVZp|s37>B3$p2E%eD7zF^b6C_t?!ojq3$!SUq zl$faFP{Mu1@<=0+WGGS%q^#T= z_uLowm0g7VXjd{aid=Fix#L8R`E!rfmO1}Q4suuGzb66+MX_UCDyEoNyuf;|Y{~mI>^dy)<3J z`dsKt@^?iG>2||!@xXuAd7s6f-n(hfeo#5!7*{s#a_cq%)GSn#DZ1TuuNfBU^~ZL( zf#&inY_@>E$h}gvZ9&EGg30jlS5abKJPaqUeLFt;(!yPY-WD8#^J1VZuQ4OzP$AP^p*&c6*&zPUjLz|q=KJuqieph3~qc^C} zuX7)uh3Z+(V|ysPKR^2W@`XG_uvtqRM;Xt6iZ&K%4)%0Z9^p<6rfGZ7zUFu}!rrm- zF&7>mM6ttk%q1osMlzJ0qaW z#Z6VJMrl)wKs_AY+f^z(7J`V>>;q2PXubuo`H*QF46RnhThOWcP^k*DR1k69+*Zb` zY#8%{m+>oP_bX#cpt)^Nb}V1`$a+!?v$~f-pq;_{T?_A9tFkHhlx|uQFIH56uk!3Z z)E>qXr5L7Z<{G`C4e2-0H+V~bkdcp#%~7cY2R z)Ww{Muoko9v4^EzE#0#y`T42hHkJNcD|Hv`v};3lll4q(&g;7?Lf< zV@0qxA~g^zgBDnFuQDc}@Leckk3Q8H6La<|UPVP4ylw$9!>dNKlOyiUOdgwn?7FU* zEiqT7^0A<$yzh_MRDa%A%R1g@e|}nn-+MMjDn-Rb=%9CUk4D_EA)`NRG(=WAl~M$1 z^)<-+*A$LRWi+-5tFD-}6$#9lv2x3}Wxjdc7}V8w#HYEvWfy<*f3ouW;bL;b#66cI zRZ+>Ej(gSMASE?SsTEpEl#O2jYKyq7q+^hOrFd<%*y1}Mu+Zv>+Z0OUza{Qg`(gd9 zB2lhN7!~T3f`WSnK;;X8Uuh-u{|JW;&l0DThXxauL#kd!H2In%%k}=F%*eKIFfs`z z{W;G2!pDXJDYw5?Cx_&Hyb~)C1Z;YgAq(6sATvcX2a3EcSs#Pa$q>u|s*Z^ct{QcQ z)M^x=>R?WXIr?@XQz9O* zFvj(r4R3SLnGINFguz$94p`T={|H%b2J=SChe&UyG_9YaI!J}bm{entDpchsO zJa`4T->W$lWn1-}hNW`_E@!C&ofM-Y>M%|6)}KBz7afTY32&Q)(WFnl=TsJh^Pmoa zIpfLvZ5jb%Uz<7rM6%J6obf(ozjfZ5h1Mg6SeRNS)rn}EvKy03>U054Qfiu3FHOF@ zzw#3Le0ja`rf`ls-4A+366aDw44DnhO+`K>OEKF)hvORY)IN!Ow%m#I(zH_4M_pA! zn!|>T%}%nyQQc;y$~GFUJofyn0yLDWtQ_XW<4gTQ+0dUd3r!oC#gxh;M^}bRL2pghC!tu|WN{aP(MA7h|%M0OK^t`Sj&E7Z3V3?u}peo)>g zDc7@eCOGpLTPd?jOvOyu9pNFOE?@Zf-NYvmx+K8}({`df-G;J>qjgRJ2_ z9P+iUVQzhu9W<{Q5vC8MQPb>qygx#y%0w{WvSuLw*Kf2pq)`zjN6mpk@JJzwND&EA zBc!)rOsqgKIN=wJ#BotX2P~ysE3$~@{5fx9q?us9C*5U2c)Sp}c_Xv?81kpzhn#{T z+_y^8B&3MPY@TVCOurzS4Q*^3^aEp`ipnoXnm@MI@rwwhMk-F8trFs-ic@x9v}2mg zUC&4X9hi^3o8*_ZVj=Zwmsqg@mKXck0vp1%5o&%!rHzjChD5oN-u$`xP7tL^MjuJZ}^MN1STqkF8V2)c$sJ6FZh2FSv0WUfaY} z)ccN?DCCIEDqf)v8zY#=zv-H%>P|)bmW+n;AhdV>kV=~Es=ZB~@5(L+X$O+nw>ROn z3{kNi9k_hIG8@qo98pLRSVI=o-^cBe@`-Ge5?EYze;v@ z2e`jRv4Tz(KJG(j75_(e=OSvMcT%Cq-l}&&{M7=QiW+ffui8dJt|RfE zSRwNf0r=g@N<_a=llX*5y_0tj-?1_Q1970_HWa8MpsOpgQQ~7UG$G1p;|{dUkAax$ zRhX1A1SUpr8qNLCs|;hF%EKxftZg^%_VvL5OPe1&h*hUHpZr{YxH1m1wSs}D>xL}G z2wP~*%mIjfM^)(J99^f$bvxZId2}^Q7k|0Ehgxt2{XCt;#o!I^>Ai>7+7__^OSN+X ztxvSCg2#;6+8zug#P7-?&Z|LK8?)@{w4X<;ewOQ%qZn;+M{DvF{&@jeelfpe2m>H~ z+v!t0V|;EBaW8^4=@iey6V|s3NH#sb_nR(+8KO=2$);i$Chgg&r{VWzVrz_<7PeUi z*<6Y+K)`Dj4a6XX-|Ew=jcJ+#R!b-2%2vvz)4CMZ>$0v?RWpanyb^2?*CgDXwrp1- z=3rKQX%ur(E>SJ>81*nAWk)tTr8MHhCNgk2%uq&Z;<(b%(w{K9e8@($Fm{_)0Xvk4}EWc_8{%%zZ` zcV~X4s3b$(hMybDHI4-6szKGkj=x8un&9IR`_EhnSf0av9H+d^z+C+skGl7V-Nv3< zuUTmL;$>Me(P@{|LARHTE%|tTzklbZo{kfQTYIga+uZ##d4dA*b^_~edPDjh&5KjI zB~J<%i>{3;wdX9i7&wstnoCB!R3HBvf#>y|W04EH#fxu5Tm@&Nho=?8XE~9bvlY-U zonJUJV&|e3EnJ9AQgfbkDkAs-^Sc`UPGc`qmL7I#{_n>vRq;nciUA>XNXLgv0;!Dp zstLJiDQWuMy-16cA8PX4Pjg1U$(z=**(!q#5A=thM)R?x`O~F!4_H zeuxv*XSee;g^44>*r=59o#1$kl~%!Q<|2c)d|1KT>?%_66Vd#_@=_pKcFDxzW z2iuFB$a;ci{CcbO#eInnQh|kpVL~O!JMbB}*T>v}s+h&_bS~{yva%VMnSvACCU4>? zwUy7I4ApK|c1>hqXMy z?3un5m~8R-=+d)UP^9_DC?Zb?b(P}cjuLTUgT7~qYF-->;mV9p8jnDm<&(h*N#>e( zC;j1Z-)Z7;b}GbHeRNRfif=PxoQVSNv+rbp?q-NT8YPUV!JK%~ijF3^YSbuGy4ntL zrq!as@K3}7Dt~LM;}!8~sD4aYU-1%LWXL>Jx;w-c&#=Fa|-v5 z`k^8#2a)?RFWV-*_V8wp$N#q8sl4LtMYltgnpcz`z-mq5*k$v*>EsY}A!b|HpI%!t z)lr(lnzyU6S6+SWiFV_^K4AUIO<|Ah@m5|oHwfiaT=#^PFMXp|&it4=|8!r8NZ=LFypq1A+3fA>BkU6RT;ct(Q$GT{qLE?IxFSko>%{K*EuOERS4O=kKc zCW*QjqN}CsBlPVRHEFjhx4qAJ0CNck_b5gYcX{i87kApiDMryyU>uK|gdi{O1H;Q{ z__R;w%awrl64UO4o5fFCZPVpOH7|`3(6jLjII0r0UHi{GnE|*3I@J2+YSj-$HgL!M zmzOLoNb|*E2cYmK`n*{dzKeoUwJ)eV#DWo4_(h1pXd#>m0jXOmKyA^Gc_VkbcL}nz zd(Qi4P^wf8d7JIIrgMTT{99^HCysoaNC-NR=b+u~_ zs6v%B<&tPHOPnOuomYxIU)Wyc|JT0Lm85x#i8bfOxA)0+=V;%c*K&jm?Gi-nm4?PFncv@3Okfom#=3acraPLPYhtulvRl7>LfE@h1b*};Tv1m9*!EuTPn4JM2qB64UXB7C!8cOuMf zNB}ZT@aJtl3#(^f4M!70{LYegIV)DHhSPP9L)XelP#A>hf^C!@+?2ahTE)n~yH^B0 zAXCqxT^7>Ty*}=7q7vWXK=1CCEh{&DLX!~bKai(~>Z}M2&QtqS&ddA-i_?O5SKfTS zE^SKN18vr)&gp7gA3M732G4k84QB?#>V~#@hTO3Cccce8SbGA+e;z%%hbuH89U9;(is`|>>ZDlH_0Pdq8j9K`Z>M=9Vht8jZFU|79ZF>sJghP2H zxC>!gC$g#XBP9@Z&`eM|B-}_16Y{7rOjfZ0Ujj=0br(#|;ky`5T0*B&UK3=))u*92 z-#WqJjaN2X){&leYTPnR!6c!>Z-%Ut(c3C^YEnXYLpVR-efG9gMe#5ohy)M@kP!F* z_K|)ox~Cum1k=fcka%JK9(N9H&Ya5fN$iVBtgYZp{CN`MLg5$A!_H3s3d_W{z4%P$ zHigc@ZRTjs;#{!Ub*Yb{sp}H}q%S0=hLa@D6S+HE*||O4XAQXQ(-QxrZoG+Nl#RV6&R z)DtVP-NHIu@S#=Zx<&Od@VbZTD)yo*WrJa0O)6bhG_oTBlwGYq33R>pBHINFND!1* z&ICBSNy%96crQXWU;JO$&UXqR=e-%6nsCg zv4Y(DNW81nW8~Y(d>c;2;7OkjPF>pq78x-7d&uj|Jf&@~=EL5ct_Gh3+(LUXe!iE< zZ7ygXg+1?jLT2Q2i}al$R73&y9 zx~hAY1+EV8C9~lB)J;JFmUN7Q+Q;sv-}rjZPtJU{ALk)uR@#qp0jCdkZIyNO^V_~; zBZTD=1~Qu!ACHLS97Z3bSETeB=$~}vQj;wH`?=O=*f>9C7ka1MS%Q%wpgm3=9wu=* zy`4Sj3v}HpcdZSnsj(_mjb)JF-ZkYK)|0F#fN)!4u>Msp4Ng_&^T(ZO;ndYG^1v*h<6iOv))VliGY8%mTA&s%>JKD9v#+x*3tP%&y!RLF(Vhv7l8DQy#S8K|}5#meFQUFPv2E=ba5 zaqIjs@Jek!=RY)uKp4m| zc7zi~kUgLi5`cGyRYpgE#{8QVW~iEp4F(FN3@oW891#VT)T(;y_jdT$YLH#@WIlwF zk6butS9%~S))bRB(};7o(}T1T)_ORkS2TnR*gRF>6!A2+)IJeC1rq)M#3}b1B!dq@ zGAJcDupR6df@;ufehv^74se&0hf)}~y!?B10gI2(rS3v?r6=qD_elil$XRxjgSz=RTA$q&g_Tb5(D;JWaTW;H+ zrU)eX__|uUWc;CGsCd4@0BWxGX2>%#MvLe6aC6V>q8nmb;TvGi0Zg6oVw!~eekkGm zUaxD%<0ydVBwg)4jrnbl_eXgf_ih|C7TiVaOydC)vyG?R;4mEHaZFbv|1O_)*m$|q zMSr|_q`eU{_YTM-PAf>qV`b>m`+KC>G3uS^Qnqij>#QzPSV~$3YsR`rHcO`~{Lg!S z8rAeYbt;p6VWe2h0ojG=GRPZ9MtT=DzA(py1$w@TI3^ft74^-@`ZmqGtOt!j?Hqh7 zQ0yYo(@d)=ElvhEd)6DlTpCJ~)_Z|VP|%UK9Ok?HVGkI?;IjDF>37>inby`SSG0-+ zdK@XNsU#dQzqOFe*f}c}6$^CO)o82DsvG} zGZftvvCxKZ=(|;VFWH1CmD;F42XyR^yOU2CYr4p7hoy9f;$mtPlBjYEYJ1VZh1^^18vDu>wt;bfzM+6HMUX?) zik;l&&Qb$n75RlN=gm4Hwuo|-hOWsjHghlH`^MzCFiOP@U9W>?s+Y95uXrl`3Z04{ zMxT$LUl;Fh9^L7ukd#YPLop*xt!Mb#1=zwK2|YNw01R9Cx6qL2^`O^g?VczCjNu3Q zmpk)LKUMx~O~+2lU`pH%*^eJ=7h76@wP+3Yo*|iC$^z-t3a!{&c?--2t51!{bF6k% zpu9)T;8W}+2TFr6>)|FFnm(N_>bXzqSoHJqcCe{d?D^^Rd>|x$^k%O=PbbP zsyCF;?An}(^XTi*kCBW;Ji(2KN9-!mH?`aXa2Onzj@nyW8dY66tR+1h(qE60(mRgS znfvHi5Poy-(F08VRQq;7<6PF`+PD}Ky|(PHx7W(sIJ^;A6o@C>ePnsL>g^wjmy-EM zJgVz~CcWuP$Y$&OA~dW9+h}vO(N(mg$(GY-vD#sRL6*zdKBF)!jh~`?fFiC^^S3Y0$w;VN{j%V{lDK|SG z&MObI=hJ&AKNK6&5zKI|28ie|X;hk_R$K_>Wm$h(#tQ1g`@7CZN(-WYlO50|9PCM-6Sckt*i%LmX%hE z-83#wS=y{sHET@=mYZ}Qbz4~B8x~th#^u-`r@!k!rp?Md<4808a0~0_gXJ=jwPj-J z%S3;*E|YrPupJfM{FZ+EL$z60J5zB@9#RdYBx}H+tfap8}a75Y^$GQ zM#5G|1;&<0Rg{&jl(lta)$ZgWO#kI7m5I|@w&|v4Yx^i$A+e0CygiIn*?}3>ce8)~ zmV><(?>1IKS7KVRQ`CSj6OiR5YPyn<`XOJd394>_*%7eBD$_7-eW9(PQwH~CKo=W) zx~wf$U7I<-#Rb>tLJhdcGw13wt8a8Jc6(dQr}wkVVvcWx&>9Xk-wdyd)dI5Ru*m}N z^PDdab8;TU)9nl@gouTVg^GoaMf`t)7d94goQUHji$(n8mr;t0Qe>1OqZApX$S6g| z1Dka>l<0E9t-GOux3A^+4!xX?itPQoczwUP8Bc%UA61?YzZ5rfjC*x|JI`5I=_ma@uO482JhG!pH6*SY zy!4lC0QxPXrk#s%KV4QYdFB}Aw%oupe&jt`^?kDA-ysPy!c>Oh%b zQ>cZb*pX37$BMyOy6At!OmH;lhNB|4%msff-MfGkIAD3M=@Oar1FLiE>57sILdj=o z!qDKX8+i0Z1NjWr%Wyp`+y{ftET@jacltrha6Hp2(A}pfk8}7&^_=?9cz~)jdZ4IpKtlw#Hs~V* z#GD<LcO- z%?43*n7_DgDq~kwgXPXbKejD@sC|BRLhsbTvg6^r2(5qbfBpFR)zQ!AFE56ZIk$&z zi|hNF;f#7;e48(d+q22lG;EUBX^33L+Ld>Fpwv5sp*=a_JiyUTgLeE zXmWj1BrH3<8D7t^^Ij~zA?tmHO=dEk7tdJrpJr?S^-JGqqw0i@I-HJg3JHy6+5|w0 z1zpW;@p?H)51XCC3iQKYvKN!f=?D{%)#@T#qalB6n1*yE<_+(r?SQpGl@A|6kbPcPnmIR0E2!wz46xf%cKzIY0%=uN8FAEJuyq>A8m zsu+JpRPmsS@hwz2CNaVxZ*dsBKePSh0E@^V$~*D1kxUEkxKxfj<_O>;JTYGZVO#n5v*}VvNf(q@d&Q8 z$$m6ZTH=cOjxFfy)7j_OD^s3s3yOy^b*_KtAK{91-EoE0sUntfh5p^nzPF$b`07Ma z>qIe+*@D`|Kb9+kH@Tv}gDW52|LyY!So3yzJDfZ%SvFH!>3@VQrh5}o_0(3$5LXz; z68^o5uzMv-7k+iNtmn4sQMql0{KwKou_j$A*8T^->c|@kWo~41baG{3Z3<;>WN(we zegpzEF_QBbLSZmwW;8iAH#lK6W@R!rHe)trW->Q8F*RdmGhs4fF+MzDFlJ^nIW{*q zVKruDGB-A3Hf3fqH#jjhV`ej9GGZ~4TJs+QG%}NW^Cf>WH$FZJb98cLVQmU{+AYyH zFNI+khwis1|NQXF;>c-n{A_XZVR2Ti zpKe~xueB!S%3W(ouI9C-ds9CH7pwIL5St!a5Y)7qBDPpuhoW^3(<^G<74 gUbC#rKP>(Ljp9D%lOgpS3^g`3F*gb&B}Gq03Z<3)4FCWD diff --git a/TFC/tfc-naortega.tex b/TFC/tfc-naortega.tex index f07e2b1..8f6c6ab 100644 --- a/TFC/tfc-naortega.tex +++ b/TFC/tfc-naortega.tex @@ -111,7 +111,46 @@ mismos y a sus familias. \section{Desarrollo} \subsection{Análisis de Requisitos} -% Dependencies: +Podemos dividir los requisitos de nuestro proyecto en dos categorías +principales: {\it hardware} y {\it software}. + +En cuestión de requisitos {\it hardware}, será necesario un ordenador tan sólo +lo suficientemente potente como para responder a peticiones DNS en una red +local, responder a una petición a una página pornográfica con una página +personalizada del usuario, y enviar correos electrónicos para avisar al +responsable del dispositivo y de la red. Luego entonces, para una red normal, un +requisito mínimo para el dispositivo podría ser como a continuación: + +\begin{itemize} + \item Ancho de banda de red: % TODO + \item Rendimiento de la CPU: % TODO + \item Memoria: % TODO + \item Almacenamiento: % TODO +\end{itemize} + +Los requisitos son muy básicos, y casi cualquier ordenador (incluso uno antiguo +que ya no se usa) serviría para la implementación de esta solución. En caso de +que no haya un ordenador libre a su disposición, convendría más comprar un +ordenador {\it monoplaca}, como sería un {\it Raspberry Pi}, {\it Rock64}, o +{\it Pine64}. Lo importante para nuestros propósitos es que sea posible instalar +en él un sistema operativo basado en UNIX tal como sería una de las +distribuciones de BSD o Linux. + +Luego, en cuestión de requisitos {\it software} haría falta, en primer lugar, un +sistema operativo tipo UNIX que soporte a todo el {\it software} que +mencionaremos después. Aunque hay muchas opciones que podrían servir, para este +caso se utilizará Debian GNU/Linux, versión Bullseye (11), el actual estable en +la fecha de publicación de este documento. Esta distribución de Linux se escoge +por ser una distribución muy utilizada en el ámbito de servidores, con mucho +soporte y comunidad, que utiliza pocos recursos -- se puede instalar fácilmente +sin entorno gráfico --, y es conocida por su estabilidad. Se puede seguir +utilizando este guía para montar la solución con cualquier otra distribución de +Linux (o incluso de BSD), pero habría que modificar ciertas instrucciones para +ajustarse a los estándares y herramientas disponibles en cada distribución +(e.g.\ si quisiera instalarlo en un servidor de Fedora, utilizaría el comando +{\tt dnf} en vez de {\tt apt}). + +% Software Dependencies: % - Bind9 % - Nginx % - PHPMailer diff --git a/TFC/tfc-naortega.toc b/TFC/tfc-naortega.toc index bf32cc2..0815231 100644 --- a/TFC/tfc-naortega.toc +++ b/TFC/tfc-naortega.toc @@ -10,11 +10,11 @@ \contentsline {subsection}{\numberline {3.4}Estimación de Costes}{4}{subsection.3.4}% \contentsline {section}{\numberline {4}Desarrollo}{4}{section.4}% \contentsline {subsection}{\numberline {4.1}Análisis de Requisitos}{4}{subsection.4.1}% -\contentsline {subsection}{\numberline {4.2}Diseño de Solución}{4}{subsection.4.2}% -\contentsline {section}{\numberline {5}Pruebas y Despliegue}{4}{section.5}% -\contentsline {subsection}{\numberline {5.1}Plan de Pruebas}{4}{subsection.5.1}% -\contentsline {subsection}{\numberline {5.2}Manuales Técnicos y de Usuario}{4}{subsection.5.2}% -\contentsline {subsection}{\numberline {5.3}Plan de Despliegue}{4}{subsection.5.3}% -\contentsline {section}{\numberline {6}Conclusiones y Propuestas de Mejora}{4}{section.6}% -\contentsline {section}{\numberline {7}Bibliografía}{4}{section.7}% -\contentsline {section}{\numberline {8}Derechos de Autor y Licencia}{5}{section.8}% +\contentsline {subsection}{\numberline {4.2}Diseño de Solución}{5}{subsection.4.2}% +\contentsline {section}{\numberline {5}Pruebas y Despliegue}{5}{section.5}% +\contentsline {subsection}{\numberline {5.1}Plan de Pruebas}{5}{subsection.5.1}% +\contentsline {subsection}{\numberline {5.2}Manuales Técnicos y de Usuario}{5}{subsection.5.2}% +\contentsline {subsection}{\numberline {5.3}Plan de Despliegue}{5}{subsection.5.3}% +\contentsline {section}{\numberline {6}Conclusiones y Propuestas de Mejora}{5}{section.6}% +\contentsline {section}{\numberline {7}Bibliografía}{5}{section.7}% +\contentsline {section}{\numberline {8}Derechos de Autor y Licencia}{6}{section.8}%