jueves, 8 de septiembre de 2011

Retroalimentación por pares

"Un proyecto muy interesante, Luis. Tenía la impresión que diseñar video juegos con el paradigma orientado a objetos, y creo que sí es verdad.
A primera vista se me hizo muy claro cómo hacer la división de clases, los atributos y algunos métodos.
Estuvo muy bien que hicieras una clase Escudo, pues es una entidad aparte a las demás.
Como recomendación, creo que podrías cambiar los atributos de cañón laser, pues realmente las características de tamaño y color no cambian a través de todo el juego. Creo que es una cuestión que se manejaría en una clase que se encargue de la interfaz gráfica del juego, y para eso, creo que sería bueno dedicar una clase exclusiva. Además, sería bueno agregar los atributos de Score y Life a CañónLáser, pues son características que posee en cada partida.

Por último, sería una perfecta oportunidad aprovechar la herencia para tu proyecto, porque según veo, la clase PĺatilloVolador es muy similar a la de Alien, y se podría decir que ese platillo volador es un tipo especializado de alien, pues tiene ciertas características y comportamiento diferente; tal como aparecer rápidamente en la pantalla para irse, y que da puntos al azar cuando lo destruyes.

Además de eso, creo que hiciste bien la descomposición de clases, métodos y atributos. o:
" Jesus Antonio Soto

Diseño de diagrama de clase en Umbrello

domingo, 4 de septiembre de 2011

Interfaces en Java

¿Qué es Interfaz?
La Interfaz es un grupo de métodos de cuerpos que están relacionados con cuerpos vacíos, pueden ser abstractos y propiedades. En esta se especifica que es lo que se tiene que hacer pero no te dice como se hará, las clases que se implementen en las interfaces serán las que describirán los comportamientos de los métodos.

¿Cómo se usa?
Para el trabajo de las interfaces Java proporciona dos palabras: interface e implements.

Para que una interface sea declarada se coloca lo siguiente:

public interface NombreInterfaz {
        ....
    }

Para que sea implementada en una clase se coloca lo siguiente:

public class NombreClase implements NombreInterfaz {
        ....
    }

En las clases se pueden implementar varias interfaces, dichas interfaces se colocan separadas por comas.   

Referencias:  
Interfaz (Java) 
Java Tutorials 

Lectura: preguntas guía


  • ¿Cuáles son los síntomas de un mal diseño?
  • ¿En qué consiste cada uno?
    • Rigidez: Es la tendencia del software que hace difícil el cambio, inclusive en las cosas más sencillas. Cada cambio produce una cascada de cambios en módulos dependientes. Lo que un cambio de un módulo parece de 2 días en realidad son varias semanas.
    • Fragilidad: Esta es la tendencia que tiene el software a romperse por muchos sitios cada vez que algo es cambiado. Muchas de las roturas que ocurren se realizan en los sitios que no están relacionados con el área que se está cambiando.
    • Inmovilidad: Esta es la resistencia que tiene el software a ser reutilizado en otros proyectos o parte de o parte de otros. Pasa muchas veces que un programador descubre que necesita un módulo que es muy parecido a otro que fue desarrollado por otro programador.
    • Viscosidad: Es la dificultad de mantener la filosofía del diseño original. Cuando se hace un cambio, los programadores encuentran más de una manera para realizar dicho cambio. Algunas de las formas preservan la filosofía del diseño y otras no.

  • ¿Qué causa el deterioro del diseño?
Los requisitos han ido cambiando de manera que el diseño inicial no estaba previsto. A menudo, los cambios necesitan hacerse rápidamente y tiene  que ser hechos por programadores que no estén familiarizados con el diseño original. Aunque los cambios realizados funcionen, estos violan el diseño original.

  • ¿Qué se puede hacer?
Se debe realizar un diseño el cual soporte modificaciones sin que este pierda su consistencia. Como desarrolladores se tiene que saber que los requisitos van a cambiar.

Referencia:

sábado, 3 de septiembre de 2011

Casos de uso iTunes


Diagrama Casos de uso


Tabla Casos de uso
Caso
Autor
Descripción
Relación con otro caso


Organizar música


Usuario

El usuario es el encargado de la Organización de las canciones.
Manejar canciones (Agregar, Quitar, Modificar datos).
Filtrar canciones.
Hacer carpetas.
Cerrar lista rep.

Comprar música

Usuario
El usuario compra las canciones que desea adquirir.
Agregar créditos.
Buscar música.
Comprar canción.

Reproducir música

Usuario
El usuario reproduce las canciones deseadas.
Tocar canción.
Compra medio rep.
 
Configuración

Usuario
El usuario configura el programa como lo desea.