13.01.2015 Views

Pensar en C++ (Volumen 1) - Grupo ARCO

Pensar en C++ (Volumen 1) - Grupo ARCO

Pensar en C++ (Volumen 1) - Grupo ARCO

SHOW MORE
SHOW LESS

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 />

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!