miércoles, 30 de enero de 2008

FUNCIONES PRINCIPALES DE UN CONTENEDOR

GESTION ESTADO:

-Inicialización de componentes .
-Inyección dependencias.
-mantenimiento estado.

NOTA: Todo lo que el contenedor cree va apoder ser controlado por éste.

EJB


Los EJB son de tres tipos de mensaje, de entidad y de sesión y dentro de estos últimos tenemos dos categorias : STATELESS (sin estado ) O STATEFULL(con estado).

Un objeto stateless no almacena ningún valor,no puede guardar ni sacar datos de la base de dato,mientras que un objetos statefull si que podría.

BEAN


BEAN:Un Bean es un componente software que permite ser reutilizable y así evitar la tarea de programar los distintos componentes uno a uno. Su finalidad es la de ahorrarnos tiempo al programar.
Un Bean puede representar desde un botón, un contenedor o un simple campo de texto, hasta otras soluciones mucho más complejas como conexiones a bases de datos, etc.

Refactorizacion

Es un proceso que nos permite reorganizar un código sin alterar su comportamiento externo.

viernes, 25 de enero de 2008

easymock

Easymock es un framework que te permite hacer pruebas sin tener todas las clases implementadas ya que trabaja con interface.Se utiliza para hacer pruebas unitarias con JUnit.


Ejemplo:


public class TestServicioPedido {


@Test
public void TestCancelarPedido(){


Pedido pedido=new Pedido();
ServicioPedido servicioPedido= EasyMock.createMock(ServicioPedido.class);

EasyMock.reset(servicioPedido);

EasyMock.expect(servicioPedido.cancelarPedido(pedido)).andReturn(true);
EasyMock.replay (servicioPedido);


ControladorSolicitudesUsuarioImpl controlador=new ControladorSolicitudesUsuarioImpl();
controlador.pedido=pedido;
controlador.cancelaPedido(pedido);




}

martes, 22 de enero de 2008

tdd

-Desarrollo guiado por pruebas,
La prueba de software es un proceso que se usa para ayudar a identificar si este es correcto, completo y de calidad.

Con el Desarrollo guiado por pruebas podemos asegurar que sólo se genere la proporción de código necesaria para satisfacer el objetivo;que el código este testeado(cubierto por tests) y una rápida retrolalimentación sobre la corrección del programa.

TDD, es especialmente util cuando se debe resolver un problemas que no esta totalmente definido, o cuamdo el cliente no sabe exactamente lo que quiere.

Procedimiento General:
-Prepara el entorno para el/las prueba/s.
-Crear el caso de prueba.
-Comprobar el resultado de la corrida de ese caso de prueba.
-Si hubo fallo, generar el código necesario para satisfacer el caso de prueba
-En caso contrario, agregar más casos de prueba.



interceptores

oop


Programación Orientada a Objeto:Es un tipo de programación q utiliza objetos y sus interacciones para diseñar aplicaciones y programas.

En POO un programa se divide en componentes que contienen procedimientos y datos. Cada componente se considera un objeto.
Un objeto es una unidad que contiene datos y las funciones que operan sobre esos datos;estos objetos pueden se cualquier entidad del mundo real.

Entre sus principales características están=simplificación,independencia,reutilización, encapsulación,refactorización,visibilidad...

aop


Programación Orientada Aspecto:Una de sus pricipales caracteristicas es el posibilitar la sepàracion de los diferentes aspectos de la aplicación (Seguridad,logging...).

ejb3

j2ee:(esat en proceso)

J2EE: Es una plataforma de programación. Se basa en componentes modulares y estandarizados que se ejecután sobre un servidor de aplicaciones.

Entre sus caracterisricas estan:
-Alto rendimiento
-APP Rendimiento
- Escalable: se puede aumentar la capacidad de clientes y servidores por separado.
-Testeable: mejora la capacidad del recorrido de una aplicación para descurir errores.
-Gestión Estado
-Persistencia:Capaidad de los objetos para mantener su estado e identidad entre distintas ejecuciones del programa que los creó o de otros programas que accedan a ellos.
-Transacciones
-Seguridad
-Interceptores(AOP)

testNG

TestNG es un framework que permite realizar pruebas unitarias (forma de probar el correcto funcionamiento de un módulo de código), funcioneales y de integracion (para asegurar el correcto funcionamiento del sistema).Esta basado en JUnit y NUnit.
En definitiva se usa para comprobar que el código q estamos creando no tiene ningún fallo.



Ejemplo:

@Test
public void pruebaAddProducto() throws StockExcepcion {

assert(carrito.productosEnCesta.size()==0);

carrito.addProducto(producto1);

assert (carrito.productosEnCesta.size() == 1) :
" deberia haber un producto en la cesta";

Producto producto1Bis = new Producto();
producto1Bis.nombre = "producto1";
producto1Bis.stock=3;

carrito.addProducto(producto1Bis);

assert (carrito.productosEnCesta.size() == 1) :
" deberia haber un producto en la cesta. "
+ "En realidad hay " + carrito.productosEnCesta.size();

assert (carrito.getCantidad(producto1) == 2) :
" la cantidad deberia ser 2 y es: "
+ carrito.getCantidad(producto1);

}

easymock