Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
✐<br />
✐<br />
✐<br />
“Volum<strong>en</strong>1” — 2012/1/12 — 13:52 — page 17 — #55<br />
✐<br />
1.9. Análisis y diseño<br />
cuando se usa una metodología.<br />
Especialm<strong>en</strong>te <strong>en</strong> POO, la metodología es un campo de muchos experim<strong>en</strong>tos,<br />
así que antes de elegir un método, es importante que compr<strong>en</strong>da cuál es el problema<br />
que resuelve. Eso es particularm<strong>en</strong>te cierto con <strong>C++</strong>, <strong>en</strong> el que el l<strong>en</strong>guaje de programación<br />
pret<strong>en</strong>de reducir la complejidad (comparado con C) que implica expresar un<br />
programa. De hecho, puede aliviar la necesidad de metodologías aún más complejas.<br />
En cambio, otras más simples podrían ser sufici<strong>en</strong>tes <strong>en</strong> <strong>C++</strong> para muchos tipos de<br />
problemas grandes que podría manejar usando metodologías simples con l<strong>en</strong>guajes<br />
procedurales.<br />
También es importante darse cu<strong>en</strong>ta de que el término «metodología» a m<strong>en</strong>udo<br />
es demasiado grande y prometedor. A partir de ahora, cuando diseñe y escriba un<br />
programa estará usando una metodología. Puede ser su propia metodología, y puede<br />
no ser consci<strong>en</strong>te, pero es un proceso por el que pasa cuando crea un programa.<br />
Si es un proceso efectivo, puede que sólo necesite un pequeño ajuste para que funcione<br />
con <strong>C++</strong>. Si no está satisfecho con su productividad y con el camino que sus<br />
programas han tomado, puede considerar adoptar un método formal, o elegir trozos<br />
de <strong>en</strong>tre muchos métodos formales.<br />
Mi<strong>en</strong>tras pasa por el proceso de desarrollo, el uso más importante es éste: no perderse.<br />
Eso es fácil de hacer. La mayoría de los análisis y métodos de diseño pret<strong>en</strong>d<strong>en</strong><br />
resolver los problemas más grandes. Recuerde que la mayoría de los proyectos no<br />
<strong>en</strong>cajan <strong>en</strong> esta categoría, normalm<strong>en</strong>te puede t<strong>en</strong>er un análisis y diseño exitoso con<br />
un subconjunto relativam<strong>en</strong>te pequeño de lo que recomi<strong>en</strong>da el método 7 . Pero muchos<br />
tipos de procesos, sin importar lo limitados que sean, g<strong>en</strong>eralm<strong>en</strong>te le ofrecerán<br />
un camino mucho mejor que simplem<strong>en</strong>te empezar a codificar.<br />
También es fácil quedarse estancado, caer <strong>en</strong> análisis-parálisis, donde s<strong>en</strong>tirá que<br />
no puede avanzar porque <strong>en</strong> la plataforma que está usando no está especificado cada<br />
pequeño detalle. Recuerde, no importa cuánto análisis haga, hay algunas cosas<br />
sobre el sistema que no se revelan hasta el mom<strong>en</strong>to del diseño, y más cosas que no<br />
se revelarán hasta que esté codificando, o incluso hasta que el programa esté funcionando.<br />
Por eso, es crucial moverse bastante rápido durante del análisis y diseño, e<br />
implem<strong>en</strong>tar un test del sistema propuesto.<br />
Este punto merece la p<strong>en</strong>a <strong>en</strong>fatizarlo. Debido a nuestra experi<strong>en</strong>cia con los l<strong>en</strong>guajes<br />
procedurales, es <strong>en</strong>comiable que un equipo quiera proceder con cuidado y <strong>en</strong>t<strong>en</strong>der<br />
cada pequeño detalle antes de pasar al diseño y a la implem<strong>en</strong>tación. Desde<br />
luego, cuando crea un SGBD (Sistema Gestor de Bases de Datos), convi<strong>en</strong>e <strong>en</strong>t<strong>en</strong>der<br />
la necesidad de un cli<strong>en</strong>te a fondo. Pero un SGBD está <strong>en</strong> una clase de problemas que<br />
son muy concretos y bi<strong>en</strong> <strong>en</strong>t<strong>en</strong>didos; <strong>en</strong> muchos programas semejantes, la estructura<br />
de la base de datos es el problema que debe afrontarse. El tipo de problema de programación<br />
tratado <strong>en</strong> este capítulo es de la variedad «comodín» (con mis palabras),<br />
<strong>en</strong> el que la solución no es simplem<strong>en</strong>te adaptar una solución bi<strong>en</strong> conocida, <strong>en</strong> cambio<br />
involucra uno o más «factores comodín» -elem<strong>en</strong>tos para los que no hay solución<br />
previa bi<strong>en</strong> <strong>en</strong>t<strong>en</strong>dida, y para los que es necesario investigar 8 . Int<strong>en</strong>tar analizar minuciosam<strong>en</strong>te<br />
un problema comodín antes de pasar al diseño y la implem<strong>en</strong>tación<br />
provoca un análisis-parálisis porque no se ti<strong>en</strong>e sufici<strong>en</strong>te información para resolver<br />
este tipo de problema durante la fase de análisis. Resolver estos problemas requiere<br />
7 Un ejemplo excel<strong>en</strong>te es UML Distilled, de Martin Fowler (Addison-Wesley 2000), que reduce el, a<br />
m<strong>en</strong>udo, insoportable proceso UML a un subconjunto manejable.<br />
8 Mi regla g<strong>en</strong>eral para el cálculo de semejantes proyectos: Si hay más de un comodín, no int<strong>en</strong>te<br />
planear cuánto tiempo le llevará o cuánto costará hasta que haya creado un prototipo funcional. También<br />
hay muchos grados de libertad.<br />
17<br />
✐<br />
✐<br />
✐<br />
✐