Hola. En esta ocasión revisaremos la forma en que se estructuran los proyectos que utilizaremos a lo largo del curso. Para esto seguiremos la siguiente agenda: iniciaremos, revisando la organización de carpetas de nuestros proyectos, revisaremos la arquitectura de los proyectos y, finalmente, las pruebas unitarias que permiten validar su correcto funcionamiento. Iniciemos por la organización de carpetas. Para esto tomemos algunos de los proyectos que utilizaremos a lo largo del curso, por ejemplo, el de líneas telefónicas. Al abrir este proyecto, lo primero que encontramos es la carpeta "Bin". Allí se encuentran los archivos que nos permiten ejecutar el programa desde fuera de nuestro ambiente de desarrollo. Posteriormente, encontramos las carpetas "Classes". Allí se encuentra el código compilado de nuestro programa. Recordemos que estamos utilizando el lenguaje Java. Este lenguaje pasa por un compilador y es transformado en "bytecode". Este "bytecode" es ejecutado sobre la máquina virtual de Java, la cual funciona sobre nuestro sistema operativo. En la carpeta Classes se almacenará el "bytecode". Posteriormente, encontraremos la carpeta "Data", allí se encuentran archivos de soporte, como imágenes y archivos de texto que permiten, por ejemplo, hacer la carga inicial de datos de nuestro programa. En la carpeta "Docs" encontramos toda la documentación del proyecto, por ejemplo, la descripción del problema que estamos tratando de resolver, los requerimientos funcionales y no funcionales, y los modelos del mundo y la interfaz gráfica. En la carpeta "Libs" encontramos las librerías externas que está utilizando nuestro programa. En la carpeta "Source" encontramos el código fuente del proyecto, y en la carpeta "Test" encontramos el código y los archivos que nos permiten probar que nuestro programa funciona correctamente. Nuestro trabajo durante este curso se centrará en la carpeta "Source". Esta misma estructura la podemos ver en nuestro ambiente de desarrollo que, para este curso será "Eclipse". Una vez revisada la organización de carpetas, veamos la arquitectura de nuestro programa. Para esto volvamos a la carpeta Source. Allí encontraremos dos paquetes, el paquete "mundo" en el cual se encuentra la lógica de nuestro programa, que estará divida en clases y cada clase será representada por un archivo "punto Java", y el paquete "interfaz" en el cual modelaremos la interacción que queremos tener con el usuario final de nuestro programa. Nuevamente, utilizaremos clases Java para hacer este trabajo. En la carpeta "Test" replicaremos la estructura original de nuestro programa. Tendremos las carpetas "Classes", la carpeta "Source" y la carpeta "Data". Y, en particular, en la carpeta "Source" tendremos todas las clases que nos permiten validar el correcto funcionamiento de nuestro programa, específicamente cada una de las clases del "mundo". Revisemos un poco más en detalle el tema de "pruebas unitarias". Como ya habíamos dicho, estas pruebas nos permiten probar el correcto funcionamiento de nuestro programa, específicamente de cada una de las clases que componen el mundo del problema. Estas pruebas deben cumplir con tres características: deben ser automáticas, es decir, que no deben requerir la intervención del programador. deben ser repetibles, es decir, se pueden ejecutar varias veces y deben generar los mismos resultados y deben ser independientes, es decir, una prueba unitaria no debería afectar el resultado de otra. Para lograr hacer estas pruebas, utilizaremos el framework "JUnit". Este framework nos provee un conjunto de clases que nos permiten definir pruebas del estilo valor esperado, valor entregado. Para poder usarlo, el programador definirá qué entradas quiere dar a la prueba, qué métodos desea evaluar y cuál es el resultado que espera que genere la prueba. Estos valores los enviará al framework "JUnit" utilizando las clases provistas por éste. Y esto nos permitirá hacer una evaluación, si las entradas más el método generan el resultado esperado, quiere decir que nuestra aplicación funciona correctamente, de lo contrario, tenemos un error. Esto ha sido todo por esta vez y recuerden que todas las herramientas de desarrollo como Eclipse y el framework JUnit lo pueden descargar de la página "cupi2.uniandes.edu.com".