Está en la página 1de 15

ESCUELA COLOMBIANA DE INGENIERÍA

PROGRAMACIÓN ORIENTADA A OBJETOS


2018-02
Laboratorio 2/6
Por: Jose Gutierrez y Camilo Saenz

Conociendo el proyecto [En lab02.doc]


1. El proyecto BlueJ “Coliseo” contiene una construcción parcial del sistema.
Revisen el directorio donde se encuentra el proyecto. ¿Describan el
contenido considerando los apellidos de los archivos?
2. Exploren el proyecto en BlueJ

¿Cuántas clases tiene?

Existe un total de 5 Clases


 Clase Unidad  Clase Estudiante
 Clase Articulo  Clase coliseo Test
 Clase Coliseo

¿Cuál es la relación entre ellas?

La Clase ColiseoText es la encargada de probar que la Clase Coliseo funcione.

¿Cuál es la clase principal?

La Clase principal es Coliseo porque es la que usa las otras clases y además es
a la clase que están probando en este caso la prueba Coliseo Test.
¿Cómo la reconocen?

Se reconoce porque es a la clase que prueban y además esta utiliza las otras
clases.

¿Cuáles son las clases “diferentes”?

La clase diferente es Coliseo Test

¿Cuál es su propósito?

El propósito de la clase diferente en este caso es Coliseo Text que es una clase
que prueba a otra para verificar su funcionamiento para este caso Coliseo Text
prueba la clase Coliseo.

Para las siguientes dos preguntas sólo consideren las clases “normales”:
3. Generen y revisen la documentación del proyecto; ¿está completa la
documentación de cada clase? (Detalle el estado de documentación de
cada clase: encabezado y métodos)

Para la Clase Coliseo está completa la documentación para cada atributo y


método de este, además de contar con todos sus atributos y métodos, pero la
clase no cuenta con su encabezado.

En la clase Estudiante están creados sus atributos y métodos, pero ninguno de


estos tiene con su respectiva documentación y no tiene el encabezado.

La clase Unidad tiene sus atributos y métodos creados pero cada uno sin
documentar y no tiene el encabezado.

La clase Articulo está compuesta por sus atributos y métodos, pero todos estos
sin su respectiva documentación y no tiene el encabezado.
La clase Coliseo Test Cuenta con su encabezado y documentación en algunos
de sus métodos, pero falta esto en la mayoría.
4. Revisen el código del proyecto, ¿en qué estado está cada clase? (Detalle el
estado de codificación)

Los estados de la codificación de las clases en algunos casos están completos y


en las otras clases toca completarlos
En la clase Coliseo falta completar en su mayoría los métodos.
La Clase Estudiante falta la implementación de todos los métodos.
La Clase Articulo tiene parte de la codificación falta implementar los últimos
métodos.
La Clase Unidad falta la totalidad de la implementación de los métodos.
La Clase Coliseo Test faltan algunos de sus métodos de prueba.

Ingeniería reversa [En Coliseo.asta]


MDD MODEL DRIVEN DEVELOPMENT
1. Genere el diagrama de clases correspondiente a Coliseo con todos sus
elementos. (No incluya la clase de pruebas)
2. ¿Qué tipos de contenedores tienen sus colecciones? Consulte el API
Java ¿Qué diferencias hay entre ellos?

Los tipos de contenedores son:


 TreeMap
 HashMap

Y la diferencia entre ellos es que el treeMap organiza los datos almacenados de


acuerdo al orden natural de sus llaves o con un comparador proporcionado en
tiempo de creación del Mapa, y el hashMap no garantiza un orden, por lo cual
sus elementos no tienen un orden especifico, no acepta claves duplicados ni
valores nulos.

Conociendo Pruebas en BlueJ [En lab02.doc *.java]


De TDD → BDD (TEST → BEHAVIOUR DRIVEN DEVELOPMENT)
Para poder cumplir con las prácticas XP vamos a aprender a realizar las pruebas
de unidad usando las herramientas apropiadas. Para eso consideraremos
algunos métodos de la clase Coliseo.
1. Revisen el código de la clase ColiseoTest. ¿cuáles etiquetas tiene?
¿cuántos métodos tiene? ¿cuantos métodos son de prueba? ¿cómo los
reconocen?

Tiene 3 tipos de etiquetas.

 @Test
 @Before
 @After

Tiene 9 Métodos (Incluyendo el constructor).


Tiene 6 métodos de prueba y se reconocen por su etiqueta @Test.
2. Ejecuten los tests de la clase ColiseoTest. (click derecho sobre la clase,
Test All) ¿cuántos tests se ejecutan? ¿cuántos pasan las pruebas? ¿por
qué?

Se ejecutan los 6 métodos de prueba


Hay 1 método que pasa la prueba en este caso:
aplicacion.ColiseoTest.noDeberiaPermitirCargarElSaldoDeUnEstiudianteQueNo
Existe (0ms)

Pasa la prueba porque el método está vacío y al ejecutarse no encuentra error


alguno.
3. Estudie los métodos assertTrue, assertEquals, assertNull y fail de la clase
Assert del API JUnit. Explique en sus palabras que hace cada uno de ellos.

assertTrue:
Valida si un resultado es verdadero o falso.

assertEquals:
Probara si dos matrices son iguales entre si

assertNull:
Valida si un resultado es nulo o no

4. Investiguen la diferencia que entre un fallo y un error en Junit. Escriba


código usando los métodos anteriores para lograr que los siguientes tres
casos de prueba se comporten como lo prometen deberiaPasar,
deberiaFallar, deberiaErrar.

Fallo:
Es cuando el resultado obtenido de algo no es el deseado o esperado, se
produce cuando los casos de prueba fallan, es decir sus afirmaciones son
incorrectas.

Error:

Es cuando se refiere a un problema en el código o programa que se genera


cuando no se puede generar una instrucción de forma correcta, son inesperados
y ocurren al ejecutar realmente la prueba.

5. Implementen los métodos para mantener tarifa. Debe pasar las pruebas
asociadas con las tarifas y dos nuevas definidas por ustedes.
Desarrollando
BDD - MDD
[En lab02.doc, Coliseo.asta, *.java]
Para desarrollar esta aplicación vamos a considerar los siguientes ciclos de
desarrollo.

Ciclo 1: Mantener tarifa (setTarifa, getTarifa)


Ciclo 2: Mantener artículos
Ciclo 3: Mantener estudiantes (afilieEstudiante, busqueEstudiante,
cargueSaldoEstudiante, getListaEstudiantes)
Ciclo 4: Registrar un préstamo
Ciclo 5: Registrar una devolución (devuelvaUnidad)
En cada mini-ciclo deben realizar los pasos definidos a continuación.

1. Definir los métodos base de Coliseo correspondientes al ciclo actual.


(Ver ejemplos)

Ciclo 1: Mantener tarifa (setTarifa, getTarifa)


Ciclo 2: Mantener artículos

Ciclo 3: Mantener estudiantes (afilieEstudiante, busqueEstudiante,


cargueSaldoEstudiante, getListaEstudiantes)
Ciclo 5: Registrar una devolución (devuelvaUnidad)

2. Generar y programar los casos de prueba (piense en todos los deberia y


en todos los noDeberia)
Los demas casos de prueba se encuentran en el packpage.bluej, en la clase
Coliseo Test()

3. Diseñar los métodos (use diagramas de secuencia)

Los diagramas de secuencia se encuentran en coliseo.asta


4. Generar y programar los casos de prueba de los métodos de la solución
(piense en todos los debería y en todos los noDebería)

Los casos de prueba se encuentran en el packpage.bluej, en la clase Coliseo


Test()

5. Escribir el código correspondiente (no olvide la documentación)

Los casos de prueba se encuentran en el packpage.bluej, en la clase Coliseo


Test() con su respectiva documentación

6. Ejecutar las pruebas de unidad (vuelva a 3 (a veces a 2). si no están en


verde)
Completen la siguiente tabla indicando el número de ciclo y los métodos asociados de
cada clase.

Ciclo ColiseoTest Coliseo Articulo unidad


1 setTarifa()
1 getTarifa()
2 agregueArticulo()
2 busqueArticulo()
3 afilieEstudiante()
3 busqueEstudiante()
3 getListaEstudiante
3 cargueSaldoEstudiante()
2 alquileArticulo() alquileUnidad()
5 devuelvaUnidad() devuelvaUnidad()
2 compreUnidades() compraUnidad()

RETROSPECTIVA

1. ¿Cuál fue el tiempo total invertido en el laboratorio por cada uno de


ustedes? (Horas/Hombre)

10 Horas Jose Gutierrez


10 Horas Camilo Saenz

2. ¿Cuál es el estado actual del laboratorio? ¿Por qué?

Terminado Prácticamente en su totalidad

3. Considerando las prácticas XP del laboratorio. ¿cuál fue la más útil? ¿por
qué?

De las practicas XP nos fue muy util la practica Planning y la practica Coding,
por la organizacion del trabajo, el tranajo en equipo y la dedicación a este.
4. ¿Cuál consideran fue el mayor logro? ¿Por qué?

El trabajo en equipo ya que cada vez que trabajamos juntos nos


complementamos más, la organización a la hora de hacer el laboratorio y la
dedicación a este.

5. ¿Cuál consideran que fue el mayor problema técnico? ¿Qué hicieron para
resolverlo?

Que fue dificil poder cuadrar horario para la elaboracion de este y para resolverlo
tranajamos conectados ambos desde nuestras casas y en partes en que podian
coincidir los horarios de cada uno.

6. ¿Qué hicieron bien como equipo? ¿Qué se comprometen a hacer para


mejorar los resultados?
Que fue dificil poder cuadrar horario para la elaboracion de este y para resolverlo
tranajamos conectados ambos desdes nuestras casas y en partes en que podian
coincidir los horarios de cada uno.

También podría gustarte