jueves, 19 de mayo de 2011

Patrones de diseño (Implementación)


Patrón Facade (Fachada)
Este patrón lo implemento en la clase VentanaPrincipal que es la que interactúa con todas las clases y no mi clase principal (Main), Main solo interactúa con VentanaPrincipal; de este modo se desarrollaran las conexiones de una forma más fácil.

 
Patrón Singleton (Instancia única)
Garantiza la existencia de una única instancia para una clase y la creación de un mecanismo de acceso global a dicha instancia.


 

jueves, 17 de marzo de 2011

Patrones de diseño


Son el esqueleto de las soluciones a problemas comunes en el desarrollo de software.

Patrones creacionales 

-Prototype

Especifica los tipos de objetos a crear por medio de una instancia prototípica, y crear nuevos objetos copiando este prototipo.

Tiene como finalidad crear nuevos objetos duplicándolos, clonando una instancia creada previamente.

Propone la creación de distintas variantes del objeto que nuestra aplicación necesite, en el momento y contexto adecuado. Toda la lógica necesaria para la decisión sobre el tipo de objetos que usará la aplicación en su ejecución debería localizarse aquí. Luego, el código que utiliza estos objetos solicitará una copia del objeto que necesite. En este contexto, una copia significa otra instancia del objeto. El único requisito que debe cumplir este objeto es suministrar la prestación de clonarse. Cada uno de los objetos prototipo debe implementar el método Clone().

 

Patrones estructurales

-Adapter

Se utiliza para transformar una interfaz en otra, de tal modo que una clase que no pudiera utilizar la primera, haga uso de ella a través de la segunda.
Convierte la interfaz de una clase en otra interfaz que el cliente espera. Adapter permite a las clases trabajar juntas, lo que de otra manera no podría hacerlo debido a sus interfaces incompatibles.

Usar el patrón Adapter cuando:
    * Se desea usar una clase existente, y su interfaz no se iguala con la necesitada.
    * Cuando se desea crear una clase reusable que coopera con clases no  relacionadas, es decir, las clases no tienen necesariamente interfaces compatibles.

Links:

http://es.wikipedia.org/wiki/Patr%C3%B3n_de_dise%C3%B1o

http://www.ingenierosoftware.com/analisisydiseno/patrones-diseno.php 

Diagrama de clases

Ejemplo de diagrama de clases en BOUML:


Click en la imagen para agrandar

miércoles, 23 de febrero de 2011

Herramientas

Ubuntu: Se puede descargar desde esta página, que además contiene como instalarse mediante cd o usb.
http://www.ubuntu.com/desktop/get-ubuntu/download

 
JDK: Es una herramienta que nos permite compilar, ejecutar, generar documentación, etc. Esta herramienta se puede instalar mediante la terminal de ubuntu con el comando:  
sudo apt-get install openjdk-6-jdk

Tutorial de Java (Programación Orientada Objetos)

miércoles, 26 de enero de 2011

Práctica 1

Programa en python

class Alumno:
    def __init__(self, nombre, matricula, cal):
        self.nombre = nombre
        self.matricula = matricula
        self.cal = cal

    def nombreymat(self):
        return self.nombre + ' ' + self.matricula
    def comp(self):
        return self.cal >= 70

a = Alumno('Sergio', '1451948', 85)

print a.nombreymat(),
if a.comp():
    print "aprobo la materia"
else:
    print "no aprobo la materia"

 Captura del programa:


Probablemente el lenguaje que utilice para realizar mi proyecto sea Java.

lunes, 22 de noviembre de 2010

DNS

Domain Name System es un sistema de nomenclatura jerárquica para computadoras, servicios o cualquier recurso conectado a internet o a una red privada. Este sistema asocia información variada con nombres de dominios asignado a cada uno de los participantes. Su función más importante, es traducir nombres inteligibles para los humanos en identificadores binarios asociados con los equipos conectados a la red, esto con el propósito de poder localizar y direccionar estos equipos mundialmente.
La asignación de nombres a direcciones IP es ciertamente la función más conocida de los protocolos DNS. Por ejemplo, si la dirección IP del sitio FTP de prox.mx es 200.64.128.4, la mayoría de la gente llega a este equipo especificando ftp.prox.mx y no la dirección IP. Además de ser más fácil de recordar, el nombre es más fiable. La dirección numérica podría cambiar por muchas razones, sin que tenga que cambiar el nombre.

Componentes
Para la operación práctica del sistema DNS se utilizan tres componentes principales:
  • Los Clientes DNS: Un programa cliente DNS que se ejecuta en la computadora del usuario y que genera peticiones DNS de resolución de nombres a un servidor DNS (Por ejemplo: ¿Qué dirección IP corresponde a nombre.dominio?);
  • Los Servidores DNS: Que contestan las peticiones de los clientes. Los servidores recursivos tienen la capacidad de reenviar la petición a otro servidor si no disponen de la dirección solicitada.
  • Y las Zonas de autoridad, porciones del espacio de nombres de dominio que almacenan los datos. Cada zona de autoridad abarca al menos un dominio y posiblemente sus subdominios, si estos últimos no son delegados a otras zonas de autoridad.

Uso del DNS
El DNS se utiliza para distintos propósitos. Los más comunes son:
  • Resolución de nombres: Dado el nombre completo de un host (por ejemplo blog.smaldone.com.ar), obtener su dirección IP (en este caso, 208.97.175.41).
  • Resolución inversa de direcciones: Es el mecanismo inverso al anterior. Consiste en, dada una dirección IP, obtener el nombre asociado a la misma.
  • Resolución de servidores de correo: Dado un nombre de dominio (por ejemplo gmail.com) obtener el servidor a través del cual debe realizarse la entrega del correo electrónico (en este caso, gmail-smtp-in.l.google.com).
Terminología básica
Antes de proseguir, es necesario introducir algunos términos básicos para evitar confusiones y ambigüedades. Otros términos más complejos serán tratados más adelante.
  • Host Name: El nombre de un host es una sola “palabra” (formada por letras, números y guiones). Ejemplos de nombres de host son “www“, “blog” y “obelix“.
  • Fully Qualified Host Name (FQHN): Es el “nombre completo” de un host. Está formado por el hostname, seguido de un punto y su correspondiente nombre de dominio. Por ejemplo, “blog.smaldone.com.ar“
  • Domain Name: El nombre de dominio es una sucesión de nombres concatenados por puntos. Algunos ejemplos son “smaldone.com.ar“, “com.ar” y “ar“.
  • Top Level Domains (TLD): Los dominios de nivel superior son aquellos que no pertenecen a otro dominio. Ejemplos de este tipo son “com“, “org“, “ar” y “es“.

Heurística de sitios web

General
La estructura general
Los sitios web deben estructurarse pensando en el usuario, sus objetivos y necesidades. No se debe calcar la estructura interna de la empresa u organización, al usuario no le interesa cómo funciona o se organiza la empresa.

Look & feel
Por ejemplo, los colores empleados. Aunque el significado que comunica un determinado color es muy subjetivo y dependiente de la cultura y el entorno, y por lo tanto diferente para cada usuario, ciertas combinaciones de colores ofrecen una imagen más o menos formal, seria o profesional, como pueden ser los tonos de azules con el blanco, que trasmiten una imagen corporativista.



Coherencia en el diseño general
Se debe mantener una coherencia y uniformidad en las estructuras y colores de todas las páginas. Esto sirve para que el usuario no se desoriente en su navegación.




Es reconocible el diseño general
Cuánto más se parezca el sitio web al resto de sitios web, más fácil será de usar.

Se actualiza periódicamente
Las fechas que se muestren en la página deben corresponderse con actualizaciones, noticias, eventos...no con la fecha del sistema del usuario.

Lenguaje
Habla el mismo lenguaje que sus usuarios
Se debe evitar usar un lenguaje corporativista. Así mismo, hay que prestarle especial atención al idioma, y ofrecer versiones del sitio en diferentes idiomas cuando sea necesario.

1 párrafo = 1 idea
Cada párrafo es un objeto informativo. Trasmita ideas, mensajes...Se deben evitar párrafos vacíos o varios mensajes en un mismo párrafo.
Rotulado
Los rótulos, ¿son significativos?
Ejemplo: evitar rótulos del tipo "haga clic aquí".

Enlaces que no llevan a ningún sitio
Enlaces que no llevan a ningún sitio: Los enlaces rotos, y los que enlazan con la misma página que se está visualizando (por ejemplo enlaces a la "home" desde la misma página de inicio)

Visual

 
Uso correcto del espacio visual de la página
Es decir, que no se desaproveche demasiado espacio con elementos de decoración, o grandes zonas en "blanco", y que no se adjudique demasiado espacio a elementos de menor importancia.





Accesibilidad
Es compatible el sitio web con los diferentes navegadores
Se debe prestar atención a: JScript, CSS, tablas, fuentes...

¿Se ha controlado el peso de la página?
Se deben optimizar las imágenes, controlar el tamaño del código JScript...

¿Se puede imprimir la página sin problemas?
Leer en pantalla es molesto, por lo que muchos usuarios preferirán imprimir las páginas para leerlas. Se debe asegurar que se puede imprimir la página (no salen partes cortadas), y que el resultado es legible.


http://www.useit.com/papers/heuristic/heuristic_list.html
http://designingwebinterfaces.com/6-tips-for-a-great-flex-ux-part-5