miércoles, 16 de marzo de 2011

Diagrama secuencial

En un diagrama de secuencia ponemos varios de los objetos o clases que forman parte de nuestro programa y ponemos qué llamadas van haciendo unos a otros para realizar una tarea determinada.
Hacemos un diagrama de secuencia por cada caso de uso o para una parte de un caso de uso (lo que llamo subcaso de uso). En nuestro ejemplo de ajedrez, podemos hacer diagramas de secuencia para "jugar partida" o bien para partes de "jugar partida", como puede ser "mover pieza".





martes, 15 de marzo de 2011

BOUML- Programa para diagrama de Clases

Este programa llamado Bouml es un programa que te permite crear diagramas, pero ahora el que me interesa es el  diagrama de clase. El software es libre y disponible en multiples plataformas, por lo que todos pueden descargarlo.

Aqui el ejemplo puesto en clase

jueves, 3 de marzo de 2011

Documentación

La documentación de los programas es un aspecto sumamente importante, tanto en el desarrollo de la aplicación como en el mantenimiento de la misma. Mucha gente no hace este parte del desarrollo y no se da cuenta de que pierde la posibilidad de la reutilización de parte del programa en otras aplicaciones, sin necesidad de conocerse el código al dedillo. 

La documentación de un programa empieza a la vez que la construcción del mismo y finaliza justo antes de la entrega del programa o aplicación al cliente. Así mismo, la documentación que se entrega al cliente tendrá que coincidir con la versión final de los programas que componen la aplicación. 

Una vez concluido el programa, los documentos que se deben entregar son una guía técnica, una guía de uso y de instalación. 


En mi documentación utilice el Doxygen:


Doxygen es un generador de documentación para C++, C, Java, Objective-C, Python, IDL (versiones Corba y Microsoft) y en cierta medida para PHP, C# y D. Dado que es fácilmente adaptable, funciona en la mayoría de sistemas Unix así como en Windows y Mac OS X. La mayor parte del código de Doxygen está escrita por Dimitri van Heesch.

Aquí la documentación hecha con el Doxygen:


Aquí lo deje muy simple por que mi proyecto tiene muy pocas clases, el código es muy corto, ademas que aun mis clases son muy simples.




Me encanto la documentación, es una muy buena forma de aprender...

Herencia y Polimorfismo

Herencia

En orientación a objetos la herencia es el mecanismo fundamental para implementar la reutilización y extensibilidad del software. A través de ella los diseñadores pueden construir nuevas clases partiendo de una jerarquía de clases ya existente (comprobadas y verificadas) evitando con ello el rediseño, la modificación y verificación de la parte ya implementada. La herencia facilita la creación de objetos a partir de otros ya existentes, obteniendo características (métodos y atributos) similares a los ya existentes.
Es la relación entre una clase general y otra clase más especifica. Por ejemplo: Si declaramos una clase párrafo derivada de una clase texto, todos los métodos y variables asociadas con la clase texto, son automáticamente heredados por la subclase párrafo.




Polimorfismo

En programación orientada a objetos el polimorfismo se refiere a la capacidad para que varias clases derivadas de una antecesora utilicen un mismo método de forma diferente.
Por ejemplo, podemos crear dos clases distintas: Pez y Ave que heredan de la superclase Animal. La clase Animal tiene el método abstracto mover que se implementa de forma distinta en cada una de las subclases (peces y aves se mueven de forma distinta).
Como se mencionó anteriormente, el concepto de polimorfismo se puede aplicar tanto a funciones como a tipos de datos. Así nacen los conceptos de funciones polimórficas y tipos polimórficos. Las primeras son aquellas funciones que pueden evaluarse o ser aplicadas a diferentes tipos de datos de forma indistinta; los tipos polimórficos, por su parte, son aquellos tipos de datos que contienen al menos un elemento cuyo tipo no está especificado.

Clases de mi proyecto

En mi proyecto solo incluirá 3 clases:

Main(): Es la clase que llama a la clase principal de mi proyecto


Mp3(): Esta clase incluye todas las librerías y métodos que necesita este reproductor de mi proyecto, encargado de la reproducción, de algunos filtros de errores, de la animación de la barra de avance, etc.



Reproductor(): Únicamente es el encargado del interfaz.

Eso es todo lo planeado para el proyecto.

martes, 1 de marzo de 2011

Borrador inicial del proyecto (Clase 1)

A qui va un borrador de mi proyecto, aun que no sea aun mucho, espero conformar con lo que llevo:

Clase main

public class Main {
    public static void main(String[] args) {
        new reproductor().show();
    }
}


Clase mp3

public class mp3{


private Player mediaPlayer;
private Timer tiempo ;
boolean run = false;    
boolean todo_ok = false;
URL mediaURL=null;
String file="";   


    public mp3() {} 
   /* controles de reproduccion */
public String STOP(){        
//comprueba que el reproductor tenga un archivo
    if (todo_ok){
        mediaPlayer.stop();  
        this.todo_ok=false;  
        this.run=false;
        this.file="";
        this.stopAnimation();
    }
    return "Reproductor mp3";
}


Son las clases que se me ocurrieron ademas que las investigue durante un tiempo.





Herramienta de programacion

Después de investigar y pasarme preguntando por recomendaciones, me decidí por el lenguaje Java, pero con el programa de Netbeans.


Es un programa de programación en Java que facilita muchísimo el uso de applets o ventanas, ya que al igual que Visual Basic, tiene su forma de relacionar todo, codificarlo y relacionarlo con el codigo.

Este lo encontré investigando como crear mi proyecto en las primeras semanas, y desde ese momento, no lo e dejado.

Aquí se puede navegar entre componentes para su fácil localización, aún sin saberlo, el ejemplo “Hola Mundo” contiene varios elementos o componentes, los cuales son mostrados en la figura siguiente.
Desde el navegador se puede seleccionar los componentes, esto es realmente útil, para aplicaciones que tienen muchísimos elementos. Todo lo demás, se aprende en la marcha.

Este programa lo recomiendo mucho, con excepcional que el tiempo de carga del mismo es algo larga, pero lo vale.

Para mas información y descarga del programa visiten http://netbeans.org/