jueves, 31 de marzo de 2011

Aplicación de patrones de diseño - Taller

Aplicación de patrones de diseño - Taller

Aquí les dejo lo patrones de diseño implementados en mi proyecto


Observer:

La idea de este patrón lo utilizo para que este observando los cambios de los avlores de la resistencia para ir la actualizando con forme vaya cambiando.


package resistor.a;

import java.util.Observable;
import java.util.Observer;


public class Graphics extends Colors {


public class PaintR implements Observer {

public void update (Observable color, Object actual){
if(actual instanceof String){

}
}
}
}


Singleton:

La idea de este patrón es utilizarlo para asegurarme que los valores de las resistencias que estén en una única instancia.


package resistor.a;


public class Colors {

public class Singleton {
private final Singleton INSTANCE = new Singleton();
private Singleton(){}

// Atributos

protected int black [] = new int [0];
protected int brown [] = new int [1];
protected int red [] = new int [2];
protected int orange [] = new int [3];
protected int yellow [] = new int [4];
protected int green [] = new int [5];
protected int blue [] = new int [6];
protected int violet [] = new int [7];
protected int gray [] = new int [8];
protected int white [] = new int [9];

// Tolerance

protected int tolerance [] = new int [0];
protected int tolerance1 [] = new int [1];
protected int tolerance2 [] = new int [2];


public final Singleton getInstance(){
return INSTANCE;
}
}
}




Bueno estos son los patrones de diseñó que llevo hasta ahorita

Salduos...

Identificación de Patrones Diseño



Identificación de Patrones Diseño - Clase

Los patrones de diseño son la base para la búsqueda de soluciones a problemas comunes en el desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces.Un patrón de diseño es una solución a un problema de diseño. Para que una solución sea considerada un patrón debe poseer ciertas características. Una de ellas es que debe haber comprobado su efectividad resolviendo problemas similares en ocasiones anteriores. Otra es que debe ser reusable, lo que significa que es aplicable a diferentes problemas de diseño en distintas circunstancias.

Las características de un patrón son tres:

Contexto: situación en la que se presenta el problema de diseño.

Problema: descripción del problema a resolver, y enumeración de las fuerzas a equilibrar (requisitos no funcionales como eficiencia, portabilidad, cambiabilidad.

Solución: conjunto de medidas que se han de tomar, como crear alguna clase, atributo o método, nuevos comportamientos entre clases.


Existen tres clases de patrones de diseño:
Creacionales: son los que patrones que, como su nombre lo dice, crean instancias de objetos, ocultando los procesos de como los objetos fueron creados o inicializados.

Estructurales: son los patrones que combinando varias clases junto con objetos para crear estructuras agregando nuevas funciones.
Comportamiento: son patrones en los que los objetos de un software pueden realizar una comunicación e iteración.

Identificación en el Proyecto:

Observer (patrón de diseño)


El patrón Observador también conocido como "spider" define una dependencia del tipo uno-a-muchos entre objetos, de manera que cuando uno de los objetos cambia su estado, el observador se encarga de notificar este cambio a todos los otros dependientes.

Yo lo puedo utilizar al generar la interfaz gráfica en donde se dibujaría una resistencia con los colores por defecto e ir seleccionando los colores para ir asignando los valores alas resistencias el observador estará ala escucha para cuando aya un cambio notificar los cambios existentes.

Singleton (patrón de diseño)
El patrón de diseño singleton (instancia única) está diseñado para restringir la creación de objetos pertenecientes a una clase o el valor de un tipo a un único objeto.

Su intención consiste en garantizar que una clase sólo tenga una instancia y proporcionar un punto de acceso global a ella.

El patrón singleton se implementa creando en nuestra clase un método que crea una instancia del objeto sólo si todavía no existe alguna. Para asegurar que la clase no puede ser instanciada nuevamente se regula el alcance del constructor (con atributos como protegido o privado).

Yo lo puedo utilizar para asegurarme que los valores de las resistencias que estén en una única instancia.


Android Patterns

Para desarrollar una aplicación es tan importante conocer el SDK de Android como las reglas básicas de diseño de interfaces de usuario. Basándose en muchas de las aplicaciones que están disponibles para Android se ha creado Android Patterns. Útil para los diseñadores de interacción que se estén introduciendo en el mundo Android y necesiten resolver dudas sobre diseño y los patrones de comportamiento típicos que se dan en las aplicaciones Android.


En muchas ocasiones nos encontramos con el problema de adaptar una aplicación ya desarrollada para iPhone a Android. Tenemos que tener cuidado a la hora del diseño de esas pantallas debido a la naturaleza de cada plataforma. Android, por ejemplo, al tener controles físicos utiliza más los menús contextuales invisibles a primera vista, mientras que en iPhone siempre están visibles los botones en cada pantalla.

Aquí les dejo la paguina Android Patterns


Bueno eso es todo espero :D
Saludos...

jueves, 24 de marzo de 2011

Presentaciones de diagramas de proyectos - Clase


Presentaciones de diagramas de proyectos - Clase

Hola a todos

Este es el video que subi a youtube y las diapositivas que corresponden a la presentación de mis diagramas UML referentes a mi proyecto.





Un saludo...

miércoles, 23 de marzo de 2011

Demostraciones de avance parcial - Taller Semana 8


Demostraciones de avance parcial - Taller

Bueno por ahora mi aplicación no hace mucho que digamos pero ya logre que compilara
Bueno aquí les dejo el código de mi avance

Clase Colors:


package resistor.a;

public class Colors {

// Atributos

protected int black [] = new int [0];
protected int brown [] = new int [1];
protected int red [] = new int [2];
protected int orange [] = new int [3];
protected int yellow [] = new int [4];
protected int green [] = new int [5];
protected int blue [] = new int [6];
protected int violet [] = new int [7];
protected int gray [] = new int [8];
protected int white [] = new int [9];

// Tolerance

protected int tolerance [] = new int [0];
protected int tolerance1 [] = new int [1];
protected int tolerance2 [] = new int [2];

}

Clase Values


package resistor.a;

/** Esta clase es la encargada de evaluar
* las resistencias
* @author Alejandro
*
*/

public class Values extends Colors {

/** Esta clase se encarga de evaluar
* el valor de la resistencia dependiendo
* al codigo de colores
* @author Alejandro
* @version beta
*
*/


// formatea el valor de la resistencia a kilo o etc

public class Format {


}

int band1, band2, band3;
int ohmage;


void CheckC (int ohmage) {

ohmage = (band1*10) + band2;

}

public class CheckV{

// Metodo

}

}

Clase Resistor

package resistor.a;

import android.app.Activity;
import android.os.Bundle;

/** Esta es la clase donde empesara
* a ejecutar la aplicacion
* @author Alejandro
* @version beta
*
*/

public class Resistor extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}






Bueno se que no es mucho pero es el avance que llevo hasta ahora
Un saludo...

jueves, 17 de marzo de 2011

Código autogenerado

Código autogenerado - Taller

En esta entrada aquí les dejo el código que se genero con los diagramas UML y el programa Umbrello en la siguiente imagen se puede ver como los archivos se generan en la carpeta que asignemos.


Bueno empezando con la clase Color:


package resistor.a;


/**
* Class Colors
*/
public class Colors {

//
// Fields
//

protected int black = 0;
protected int brown = 1;
protected int red = 2;
protected int orange = 3;
protected int yellow = 4;
protected int green = 5;
protected int blue = 6;
protected int violet = 7;
protected int gray = 8;
protected int white = 9;

//
// Constructors
//
public Colors () { };

//
// Methods
//


//
// Accessor methods
//

/**
* Set the value of black
* @param newVar the new value of black
*/
protected void setBlack ( int newVar ) {
black = newVar;
}

/**
* Get the value of black
* @return the value of black
*/
protected int getBlack ( ) {
return black;
}

/**
* Set the value of brown
* @param newVar the new value of brown
*/
protected void setBrown ( int newVar ) {
brown = newVar;
}

/**
* Get the value of brown
* @return the value of brown
*/
protected int getBrown ( ) {
return brown;
}


Aquí les dejo la clase Graphics:

package resistor.a;


/**
* Class Graphics
*/
public class Graphics {

//
// Fields
//


//
// Constructors
//
public Graphics () { };

//
// Methods
//


//
// Accessor methods
//

//
// Other methods
//

/**
*/
public void PaintR( )
{
}


}

La clase Resistor:

package resistor.a;


/**
* Class Graphics
*/
public class Graphics {

//
// Fields
//


//
// Constructors
//
public Graphics () { };

//
// Methods
//


//
// Accessor methods
//

//
// Other methods
//

/**
*/
public void PaintR( )
{
}


}

La clase Values:

package resistor.a;


/**
* Class Values
*/
public class Values {

//
// Fields
//


//
// Constructors
//
public Values () { };

//
// Methods
//


//
// Accessor methods
//

//
// Other methods
//

/**
*/
public void CheckC( )
{
}


/**
*/
public void CheckV( )
{
}


}

La forma de generar el código es muy sencilla lo que tenemos que hacer una vez que ya hayas terminado el diagrama solo ve en el menu de arriba en la pestaña le das click a code:

Se despliega un menu en el cual buscamos la opción que dice Code Generation Wizard y con el Wizard ya es muy sencillo solo es de especificar en la carpeta que deseas generar el código y darle siguiente y finalizar el mismo wizard te lleva paso a paso.

La otra opción es en ese mismo menu pero ahora en la opción que dice Generate All Code la diferencia en esta y la opción anterior es que en esta el proceso es mucho mas rápido ya que te genera el código con solo darle el click pero te genera el código en la carpeta de default y te genera el código de todas las clases existentes no como en el otro puedes escoger cuales son las clases que deseas generar el código.


Bueno eso es todo saludos...





Diagrama clase y secuencia UML



Diagrama clase y secuencia UML - Clase

Hola que tal bueno estos son los diagramas que hice para mi clase de programación orientada a objetos hice 2 tipos de diagramas el diagrama de clase y el diagrama de secuencia.

Bueno los diagramas UML son:

Lenguaje Unificado de Modelado (LUM o UML, por sus siglas en inglés, Unified Modeling Language) es el lenguaje de modelado de sistemas de software más conocido y utilizado en la actualidad; está respaldado por el OMG (Object Management Group). Es un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema. UML ofrece un estándar para describir un "plano" del sistema (modelo), incluyendo aspectos conceptuales tales como procesos de negocio y funciones del sistema, y aspectos concretos como expresiones de lenguajes de programación, esquemas de bases de datos y componentes reutilizables.


Bueno aquí les dejo mi presentación de diagramas UML que subí espero y les guste.



Bueno para la clase de programación orientada objetos nos basamos en 2 tipos de diagramas UML el diagrama de clases y el diagrama de secuencia acontinuación les dejo la descripción de los diagrama de clases.

Un diagrama de clases es un tipo de diagrama estático que describe la estructura de un sistema mostrando sus clases, atributos y las relaciones entre ellos. Los diagramas de clases son utilizados durante el proceso de análisis y diseño de los sistemas, donde se crea el diseño conceptual de la información que se manejará en el sistema, y los componentes que se encargaran del funcionamiento y la relación entre uno y otro.
Representación de: - Requerimientos en entidades y actuaciones. - La arquitectura conceptual de un dominio - Soluciones de diseño en una arquitectura - Componentes de software orientados a objetos.

Mi diagrama de clase:

En los diagrama de clase las clases están representadas por rectángulos, con el nombre de la clase, y también pueden mostrar atributos y operaciones de la clase en otros dos «compartimentos» dentro del rectángulo.

Aquí les dejo el ejemplo de una clase de mi proyecto.


En UML, los atributos se muestran al menos con su nombre, y también pueden mostrar su tipo, valor inicial y otras propiedades. Los atributos también pueden ser mostrados visualmente:

  • + Indica atributos públicos
  • # Indica atributos protegidos
  • - Indica atributos privados

La métodos también se muestan al menos con su nombre, y pueden mostrar sus parámetros y valores de retorno. Las operaciones, al igual que los atributos, se pueden mostrar visualmente:

  • + Indica operaciones públicas
  • # Indica operaciones protegidas
  • - Indica operaciones privadas

El diagrama de secuencia es un tipo de diagrama usado para modelar interacción entre objetos en un sistema según UML. En inglés se pueden encontrar como "sequence diagram", "event-trace diagrams", "event scenarios" o "timing diagrams".

Mi diagrama de secuencia.
Los mensajes pueden ser o bien síncronos, el tipo normal de llamada del mensaje donde se pasa el control a objeto llamado hasta que el método finalize, o asíncronos donde se devuelve el control directamente al objeto que realiza la llamada. Los mensajes síncronos tienen una caja vertical en un lateral del objeto invocante que muestra el flujo del control del programa.


Bueno eso es todo saludos...