martes, 29 de marzo de 2011

Presentaciones de diagramas de proyectos

....

....

lunes, 28 de marzo de 2011

Identificación de patrones de diseño

¿Qué son los patrones de diseño?

Es una solución repetible a un problema recurrente en el diseño de software. Es una plantilla para resolver un problema la cual se puede implementar en muchas maneras.

¿Cuáles son las categorías principales de los patrones de diseño?

Los patrones creacionales, patrones estructurales y los patrones de comportamiento.

Los siguientes patrones tratan acerca de la instanciación de clases.

Abstract Factory
Builder
Factory Method
Object Pool
Prototype
Singleton

Los siguientes patrones son sobre la composición de clases y objetos.

Adapter
Bridge
Composite
Decorator
Facade
Flyweight
Private Class Data
Proxy

Los siguientes patrones son para la comunicación de clases.

Chain of responsibility
Command
Interpreter
Iterator
Mediator
Memento
Null Object
Observer
State
Strategy
Template method
Visitor

Nota: Los patrones de diseño son altamente alabados y criticados.

jueves, 17 de marzo de 2011

Diagramas de clase y secuencia de UML

Para un simulador multiagente necesito la clase más importante que es Agente, la cual puede contener más agentes que interactúan entre ellos.

Así la clase Plano donde actúan los agentes puede ser un agente con la propiedad de poseer un arreglo geométrico, por ejemplo, una matríz cuadrada, triangular o pentagonal y cualquiera de estas puede ser una superficie cerrada en la cual si se mueve en la misma dirección se regresa al punto de inicio, en resúmen, Plano hereda de la clase Agente.

La clase Mundo solamente la uso como un puente entre todo lo que voy a mostrar en el "Lienzo", y la API (application programming interface) de Android.

Las acciones son el conjunto de reglas que señalan como debe de actuar un agente, pueden existir las mismas reglas para distintos tipos de agentes. Si quiero que el usuario me escriba las reglas de comportamiento en una manera fácil, le muestro las situaciones que pueden surgir y las acciones posibles a realizar, el usuario solo las liga.

Registro es algún objeto que recibe los datos y dependiendo el contexto de orígen los guarda en algún buffer apegado a un formato (ejemplo: XML) y luego puede regresar la información según se requiera.

El simulador es el motor de todo, lee las reglas, analiza la situación y realiza las acciones, después registra los datos para futuros análisis y gráficas y actualiza el Mundo para mostrar alguna animación.

Aquí está mi diagrama de clase de UML


(me falta más)

El diagrama de clases lo hice con Umbrello y genera el código automáticamente en Java en el botón Code > Generate All Code.




Las secuencias comienzan con la creación de un Mundo, este contendrá distintos agentes como el agente tipo Plano, se llama a la creación de por lo menos un Plano para ordenar a los agentes, después se agregan los agentes al Plano ó matríz y para cada uno se asignan las reglas, con toda la información se corre la simulación, es la etapa que decide por cuantos pasos ó segundos se hace, y en cada paso ó x segundos se pasan los datos al Registro y al final se actualiza el Mundo para mostrar la animación.

Aquí está mi diagrama de secuencia de UML