jueves, 31 de enero de 2008

Tomcat

Servidor web que entre otras cosas se suele utilizar para las páginas jsp(java).

Para más información ver esta web Todo sobre Tomcat

miércoles, 30 de enero de 2008

Programación orienta a aspectos (AOP)

Presenta una nueva forma de modularizar las aplicaciones junto con nuevas formas de relacionar dichos módulos buscando, en últimas, construir aplicaciones más fáciles de construir, mantener y extender.

AOP nos permite modificar dinámicamente nuestro modelo estático para incluir el código necesario para cumplir con los requisitos de secundaria sin tener que modificar el modelo estático original (de hecho, ni siquiera necesita tener el código original). Mejor aún, a menudo podemos mantener este código adicional en una única localización en vez de tener que se esparcen a través del modelo existente, ya que tendríamos que si estuviéramos utilizando OO por su cuenta.

Desarrollo guiado por pruebas (TDT)

Una de las caracteristicas del desarrollo de aplicaciones con J2EE es que gracias a una serie de FrameWorks como son EasyMock, JUnit, TestNG, etc..., los desarrolladores crean las aplicaciones a partir de las pruebas, es decir, se va construyendo un entorno de pruebas que obliga al programador a implementar las entidades necesarias para que estas pruebas cumplan su cometido. Parece un poco caótico pero realmente a la larga es muy positivo ya que todas las entidades desarrolladas han sido probadas y así podremos garantizar su funcionamiento

Ejemplo:

package es.cea.carritocompra.model;
import org.testng.annotations.Test;
public class TestProducto {
@Test
public void pruebaEqualsProductos(){
Producto prod1=new Producto();
prod1.nombre="pantalon";
Producto prod2=new Producto();
prod2.nombre="chaleco";
Producto prod3=new Producto();
prod3.nombre="chaleco";
assert(!prod1.equals(prod3)):" son iguales ";
assert(prod2.equals(prod3)):"no son iguales ";
}
}

Anotaciones

Una de las tantas facilidades que trae la nueva JDK (versión 5) son las llamadas Annotations. Son como meta-tags que se agregan al código y se aplican a declaraciones de paquetes, tipos, contructores, métodos, atributos, parámetros y variables.Ejemplos de este tipo son @Resource, @EJB, y @WebServiceRef. Otras anotaciones, como @RunAs y @DeclareRoles, están relacionados con la seguridad

Caja Negra y Caja Blanca

Caja Negra--> El proceso de una prueba de caja negra es simple, ejecutamos la unidad de prueba con datos y se observa la salida, la comparamos con el resulado esperado. En caso de que la prueba se supere, es decir, el resultado obtenido y el esperado son iguales, lo llamamos “oráculo”.

Caja Blanca-->Con las pruebas de caja blanca lo que buscamos es encontrar fragmentos del programa que no son ejecutados por los casos de pruebas.Si encontramos que el resultado de estas pruebas es menor al 100%, debemos ejecutar otros casos para intentar llegar al 100%. Si aun así no conseguimos ese 100%, deberíamos preguntarnos si sirve de algo ese trozo de código.

Ocultamiento

Es la capacidad de ocultar los detalles internos del comportamiento de una Clase y exponer sólo los detalles que sean necesarios para el resto del sistema.
El ocultamiento permite 2 cosas: restringir y controlar el uso de la Clase. Restringir porque habrá cierto comportamiento privado de la Clase que no podrá ser accedido por otras Clases. Y controlar porque daremos ciertos mecanismos para modificar el estado de nuestra Clase y es en estos mecanismos dónde se validarán que algunas condiciones se cumplan. En Java el ocultamiento se logra usando las palabras reservadas: public, private y protected delante de las variables y métodos.

Herencia


La herencia es uno de los conceptos más cruciales en la POO. La herencia básicamente consiste en que una clase puede heredar sus variables y métodos a varias subclases (la clase que hereda es llamada superclase o clase padre). Esto significa que una subclase, aparte de los atributos y métodos propios, tiene incorporados los atributos y métodos heredados de la superclase. De esta manera se crea una jerarquía de herencia.