desarrollos de proyectos j2eejtech.ua.es/j2ee/2003-2004/modulos/cr/desarrollo.pdf · Índice...

35
Desarrollos de proyectos J2EE Aitor Medrano / Analista – Arquitecto J2EE Conferencias Técnicas – Universidad Alicante 04 de Junio de 2004

Upload: others

Post on 31-Jul-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Desarrollos de proyectos J2EEjtech.ua.es/j2ee/2003-2004/modulos/cr/desarrollo.pdf · Índice Presentación Módulos Gestión de Proyectos Ciclo de Vida Mercado Laboral Objetivos Conocer

Desarrollos de proyectos J2EE

Aitor Medrano / Analista – Arquitecto J2EEConferencias Técnicas – Universidad Alicante

04 de Junio de 2004

Page 2: Desarrollos de proyectos J2EEjtech.ua.es/j2ee/2003-2004/modulos/cr/desarrollo.pdf · Índice Presentación Módulos Gestión de Proyectos Ciclo de Vida Mercado Laboral Objetivos Conocer

Índice

PresentaciónMódulos

Gestión de ProyectosCiclo de VidaMercado Laboral

ObjetivosConocer el Ciclo de Vida completo de un proyecto J2EE, junto conlas metodologías utilizadas actualmenteComprender el modo de enlazar las tecnologías J2EE

Introducción

2

Page 3: Desarrollos de proyectos J2EEjtech.ua.es/j2ee/2003-2004/modulos/cr/desarrollo.pdf · Índice Presentación Módulos Gestión de Proyectos Ciclo de Vida Mercado Laboral Objetivos Conocer

¿ De donde vienen los proyectos ?

Necesidades generadas por los clientes.

Usuarios internosMercadoEstrategiaEtc.

ConsultoríaNegocioTecnológicaProcesos

Gestión de Proyectos - I

PliegoDesarrollo internoASPOutsourcingHostingBPO

3

Page 4: Desarrollos de proyectos J2EEjtech.ua.es/j2ee/2003-2004/modulos/cr/desarrollo.pdf · Índice Presentación Módulos Gestión de Proyectos Ciclo de Vida Mercado Laboral Objetivos Conocer

Colaboración interdisciplinarGestión de Proyectos - II

UeB

consultoría tecnológica

integración con sistemas legados

construcción e implantación de soluciones

diseño técnico de frontal

diseño gráfico

contenidos y usabilidad (hci)

4

Page 5: Desarrollos de proyectos J2EEjtech.ua.es/j2ee/2003-2004/modulos/cr/desarrollo.pdf · Índice Presentación Módulos Gestión de Proyectos Ciclo de Vida Mercado Laboral Objetivos Conocer

Metodologías

Tendencia a la pérdida de la formalidad y rigor.Búsqueda de equilibrio entre una documentación extensa respecto a una documentación útil.Rational Unified ProcessExtreme Programming

Pruebas UnitariasMúltiples ResponsabilidadesCompartir Entornos de DesarrolloIntegración de código Continua

Ingeniería del SW

Metodología + Gestión = Éxito5

Page 6: Desarrollos de proyectos J2EEjtech.ua.es/j2ee/2003-2004/modulos/cr/desarrollo.pdf · Índice Presentación Módulos Gestión de Proyectos Ciclo de Vida Mercado Laboral Objetivos Conocer

Ciclo de Vida

Existe una tendencia a minimizar los tiempos de análisisEl cliente quiere ver, tocar, el producto cuanto antes.Ciclo de Vida en Cascada con vuelta atrás basado en prototipos.

Ingeniería del SW

Mod. Negocio Requisitos Análisis & Diseño

Desarrollo Pruebas Despliegue

Mod. Negocio Requisitos Análisis & Diseño

Desarrollo Pruebas Despliegue

Mod. Negocio Requisitos Análisis & Diseño

Desarrollo Pruebas Despliegue

ITERACIÓN 1

ITERACIÓN 2

ITERACIÓN n 6

Page 7: Desarrollos de proyectos J2EEjtech.ua.es/j2ee/2003-2004/modulos/cr/desarrollo.pdf · Índice Presentación Módulos Gestión de Proyectos Ciclo de Vida Mercado Laboral Objetivos Conocer

Toma de Requisitos

<Utopía\>Requisitos funcionales, explotación, sistemas, prestaciones, accesibilidad, etc.Normalmente, el cliente tiene conocimientos claros de QUÉ es lo que quiere.Nosotros decidimos el COMO, no el QUÉ.Aspectos muy importantes:

Delimitar el AlcanceFijar Objetivos

Ingeniería del SW

REQUISITOS DEL CLIENTE

NUESTRA APORTACIÓN

NEGOCIACIÓNREQUISITOS

DEL PROYECTO

7

Page 8: Desarrollos de proyectos J2EEjtech.ua.es/j2ee/2003-2004/modulos/cr/desarrollo.pdf · Índice Presentación Módulos Gestión de Proyectos Ciclo de Vida Mercado Laboral Objetivos Conocer

Análisis Funcional

QUÉ debe realizar la aplicación, localizando los actores y los casos de uso.Uso extenso de UML

Herramientas CASE:Rational XDEBorland TogetherSoft

Se traduce en Diagramas de Casos de Uso y Diagrama de Actividades

Ingeniería del SW

8

Page 9: Desarrollos de proyectos J2EEjtech.ua.es/j2ee/2003-2004/modulos/cr/desarrollo.pdf · Índice Presentación Módulos Gestión de Proyectos Ciclo de Vida Mercado Laboral Objetivos Conocer

Análisis Técnico

Aspecto técnicos que deben fijarse en la fase del Análisis.

Sistemas ExternosSeguridadMulti-idiomaEscalabilidad horizontal y verticalPrestaciones

Definir la Arquitectura Física y la TecnologíaAplicación Web desarrollada en J2EEUn máquina para el Servidor Web y Servidor de Aplicaciones y otra para la Base de Datos

Ingeniería del SW

9

Page 10: Desarrollos de proyectos J2EEjtech.ua.es/j2ee/2003-2004/modulos/cr/desarrollo.pdf · Índice Presentación Módulos Gestión de Proyectos Ciclo de Vida Mercado Laboral Objetivos Conocer

Prototipos NavegaciónIngeniería del SW

10

Page 11: Desarrollos de proyectos J2EEjtech.ua.es/j2ee/2003-2004/modulos/cr/desarrollo.pdf · Índice Presentación Módulos Gestión de Proyectos Ciclo de Vida Mercado Laboral Objetivos Conocer

Diseño GráficoIngeniería del SW

11

Page 12: Desarrollos de proyectos J2EEjtech.ua.es/j2ee/2003-2004/modulos/cr/desarrollo.pdf · Índice Presentación Módulos Gestión de Proyectos Ciclo de Vida Mercado Laboral Objetivos Conocer

Diseño I

COMO debe de implementarse el sistema:Eficiente

En recursos para su explotación.En recursos para su desarrollo.

EconómicaEn infraestructura.En recursos.

En plazosEn tiempo de desarrollo.

Sin riesgosSoluciones maduras y probadas.

Ingeniería del SW

12

Page 13: Desarrollos de proyectos J2EEjtech.ua.es/j2ee/2003-2004/modulos/cr/desarrollo.pdf · Índice Presentación Módulos Gestión de Proyectos Ciclo de Vida Mercado Laboral Objetivos Conocer

Diseño I

Se decide la arquitectura sobre la que se va a montar la aplicación.Basada en Patrones J2EE, aseguramos la calidad de la arquitectura.Arquitectura Orientada a los Servicios. (SOA)

Se localizan los casos de uso.Cada servicio se expone como una interfaz Encapsulamos/Abstraemos su implementación.

Ingeniería del SW

13

Page 14: Desarrollos de proyectos J2EEjtech.ua.es/j2ee/2003-2004/modulos/cr/desarrollo.pdf · Índice Presentación Módulos Gestión de Proyectos Ciclo de Vida Mercado Laboral Objetivos Conocer

Diseño II

Selección del producto sobre el cual va a residir la aplicación.

IBM WebSphere (vs Bea Weblogic)Alternativas: Tomcat, JBoss, JRun, Resin,

Normalmente el Cliente ya tiene licencias sobre el producto.Elegir la versión del producto junto con su defensa.

WebSphere Application Server 5.0 J2EE 1.3EJB 2.0 Interfaces LocalesServlet 2.3 Filtros

Ingeniería del SW

14

Page 15: Desarrollos de proyectos J2EEjtech.ua.es/j2ee/2003-2004/modulos/cr/desarrollo.pdf · Índice Presentación Módulos Gestión de Proyectos Ciclo de Vida Mercado Laboral Objetivos Conocer

Diseño II

Desarrollo Dirigido por las Pruebas (Test Driven Development)

Primero se implementa el cuerpo del método : interfaz e implementación vacíaSe escribe la prueba : definimos las precondiciones y las postcondicionesCiclo en Espiral de Prueba y Desarrollo

Ingeniería del SW

15

Page 16: Desarrollos de proyectos J2EEjtech.ua.es/j2ee/2003-2004/modulos/cr/desarrollo.pdf · Índice Presentación Módulos Gestión de Proyectos Ciclo de Vida Mercado Laboral Objetivos Conocer

Diseño III – Arquitectura Lógica Fisica

Arquitectura de 3- 4 capas

Lógica de PresentaciónLógica de NegocioLógica de Datos

Base de DatosMensajería

Ingeniería del SW

16

Page 17: Desarrollos de proyectos J2EEjtech.ua.es/j2ee/2003-2004/modulos/cr/desarrollo.pdf · Índice Presentación Módulos Gestión de Proyectos Ciclo de Vida Mercado Laboral Objetivos Conocer

Diseño IV - Objetos de Negocio

Definen el modelo de la aplicaciónSon los objetos que viajan entre las capas ligeros y serializables.Patrón: Value ObjectDividir el Objeto en 2

Base: Atributos mínimosDetalle : El resto

Ingeniería del SW

17

Page 18: Desarrollos de proyectos J2EEjtech.ua.es/j2ee/2003-2004/modulos/cr/desarrollo.pdf · Índice Presentación Módulos Gestión de Proyectos Ciclo de Vida Mercado Laboral Objetivos Conocer

Lógica de Presentación I

Model – View – Controller (MVC)

Ingeniería del SW

18

Page 19: Desarrollos de proyectos J2EEjtech.ua.es/j2ee/2003-2004/modulos/cr/desarrollo.pdf · Índice Presentación Módulos Gestión de Proyectos Ciclo de Vida Mercado Laboral Objetivos Conocer

Lógica de Presentación II

Seleccionar un frameworkStrutsAlternativas: Spring (+ complejo), Maverick

1 Caso de Uso 1 ActionSeleccionar Versiones para una Modelo Determinado SelectVersionAction....

Definición de paqueteses.ua.renault.pfnet.actiones.ua.renault.pfnet.forms....

Ingeniería del SW

19

Page 20: Desarrollos de proyectos J2EEjtech.ua.es/j2ee/2003-2004/modulos/cr/desarrollo.pdf · Índice Presentación Módulos Gestión de Proyectos Ciclo de Vida Mercado Laboral Objetivos Conocer

Lógica de Presentación III

Patrones J2EEFront ControllerCommandView Helper

RolesStruts Guru ( Experto en Struts )Desarrolladores Web ( Servlets + JSP)Programador Front (HTML + JavaScript)

Pruebas: JUnit, Cactus, StrutsTestCase

Ingeniería del SW

20

Page 21: Desarrollos de proyectos J2EEjtech.ua.es/j2ee/2003-2004/modulos/cr/desarrollo.pdf · Índice Presentación Módulos Gestión de Proyectos Ciclo de Vida Mercado Laboral Objetivos Conocer

Lógica de Negocio I

Grueso de la AplicaciónImplementación de las reglas de negocio

Definición de paqueteses.ua.renault.pfnet.manageres.ua.renault.pfnet.manager.clientes.ua.renault.pfnet.manager.client.ejb

Ingeniería del SW

21

Page 22: Desarrollos de proyectos J2EEjtech.ua.es/j2ee/2003-2004/modulos/cr/desarrollo.pdf · Índice Presentación Módulos Gestión de Proyectos Ciclo de Vida Mercado Laboral Objetivos Conocer

Lógica de Negocio I

Necesidad de Escalabilidad y Transaccionalidad Solución:

Stateless Session Bean

Ingeniería del SW

22

Page 23: Desarrollos de proyectos J2EEjtech.ua.es/j2ee/2003-2004/modulos/cr/desarrollo.pdf · Índice Presentación Módulos Gestión de Proyectos Ciclo de Vida Mercado Laboral Objetivos Conocer

Lógica de Negocio II

Al definir la lógica de negocio encapsulada con interfaces tenemos la posibilidad de exportar los métodos deseados a Web Services.Interconexión Presentación Negocio

ManagerFactoryPatrones Factory y Singleton

public IClientManager getClientManager() {return new ClientManager();

}

Ingeniería del SW

23

Page 24: Desarrollos de proyectos J2EEjtech.ua.es/j2ee/2003-2004/modulos/cr/desarrollo.pdf · Índice Presentación Módulos Gestión de Proyectos Ciclo de Vida Mercado Laboral Objetivos Conocer

Lógica de Negocio III

Patrones J2EEBusiness DelegateSession FaçadeService Locator

RolesDesarrollador JavaArquitecto J2EE

Pruebas: JUnit, Cactus

Ingeniería del SW

24

Page 25: Desarrollos de proyectos J2EEjtech.ua.es/j2ee/2003-2004/modulos/cr/desarrollo.pdf · Índice Presentación Módulos Gestión de Proyectos Ciclo de Vida Mercado Laboral Objetivos Conocer

Lógica de Datos I

Selección del modo de acceso a los datosRequerimientos: Acceso Optimo, 90% tablas de sólo lectura.Alternativas

JDBC “directo” / “hard coded”Framework JDBC

Jakarta Commons DbUtilsEntity BeansFramework ORM

HibernateTorqueCayenne

Ingeniería del SW

25

Page 26: Desarrollos de proyectos J2EEjtech.ua.es/j2ee/2003-2004/modulos/cr/desarrollo.pdf · Índice Presentación Módulos Gestión de Proyectos Ciclo de Vida Mercado Laboral Objetivos Conocer

Lógica de Datos II

Patrones J2EEJDBC For Reading

Las lecturas mediante JDBC “directo”Data Access ObjectSQLDictionaryServiceLocator

RolesJava DeveloperDBA (Perfil mixto)

Ingeniería del SW

26

Page 27: Desarrollos de proyectos J2EEjtech.ua.es/j2ee/2003-2004/modulos/cr/desarrollo.pdf · Índice Presentación Módulos Gestión de Proyectos Ciclo de Vida Mercado Laboral Objetivos Conocer

Lógica de Datos III

Añadir una capa de caché de Datos.OpenSymphony Cache (OSCache)

Flexibilidad Memoria/DiscoConfiguración algoritmo: LIFO, FIFO, ...Definición de GruposExpresiones CRON de caducidadPermite cachear contenido

HTML mediante taglibs• <cache:cache>texto cacheado</cache:cache>

Ingeniería del SW

27

Page 28: Desarrollos de proyectos J2EEjtech.ua.es/j2ee/2003-2004/modulos/cr/desarrollo.pdf · Índice Presentación Módulos Gestión de Proyectos Ciclo de Vida Mercado Laboral Objetivos Conocer

Lógica de Mensajeria

JMSDefinir la topología Punto a Punto vs Publish/SubscribeSolución : P2P

Dificultad: Mecanismo de construcción y parseo de tramas.Ningún producto, sólo suites con código propietario

Weblogic WorkshopWebSphere Business Integrator

Ingeniería del SW

28

Page 29: Desarrollos de proyectos J2EEjtech.ua.es/j2ee/2003-2004/modulos/cr/desarrollo.pdf · Índice Presentación Módulos Gestión de Proyectos Ciclo de Vida Mercado Laboral Objetivos Conocer

Lógica de Mensajeria II

Solución “hand-made”, genérica para futuras soluciones, basada en “reflection”.XML definen composición de:

Mensajes 1 ó + segmentosSegmentos 1 ó + subsegmentos

Subsegmento : mapping entre contenido de la trama y objeto de negocio

<subsegment class="TechnicalDetailSubsegment"><order>2</order><max>20</max><elements>

<element><name>segmentCode</name><size>2</size><order>1</order><type>int</type>

</element></elements>

</subsegment>

Ingeniería del SW

29

Page 30: Desarrollos de proyectos J2EEjtech.ua.es/j2ee/2003-2004/modulos/cr/desarrollo.pdf · Índice Presentación Módulos Gestión de Proyectos Ciclo de Vida Mercado Laboral Objetivos Conocer

Diagrama de ComponentesIngeniería del SW

30

Page 31: Desarrollos de proyectos J2EEjtech.ua.es/j2ee/2003-2004/modulos/cr/desarrollo.pdf · Índice Presentación Módulos Gestión de Proyectos Ciclo de Vida Mercado Laboral Objetivos Conocer

Diagrama de SecuenciaIngeniería del SW

31

Page 32: Desarrollos de proyectos J2EEjtech.ua.es/j2ee/2003-2004/modulos/cr/desarrollo.pdf · Índice Presentación Módulos Gestión de Proyectos Ciclo de Vida Mercado Laboral Objetivos Conocer

Situación actual

En España el desarrollo de productos no está tan difundido como en EEUU.Ofertas en las áreas:

ConsultoríaBody-ShoppingFactoryAdministración

Mundo laboralEmpresas Finales / Consultoras: Indra, Telefónica I+D, Cap & Gemini, Accenture, IBM, HP, EDS, IECISA, DMR ...Empresas de Servicios: Solkia, ICA, Intesys, EDR, Nextel Engineering, ...

Consejos Finales

32

Page 33: Desarrollos de proyectos J2EEjtech.ua.es/j2ee/2003-2004/modulos/cr/desarrollo.pdf · Índice Presentación Módulos Gestión de Proyectos Ciclo de Vida Mercado Laboral Objetivos Conocer

Carrera profesional

En España a diferencia de EEUU la carrera tecnológica no está lo suficientemente reconocida.

Consejos Finales

TEC

NO

LOG

ÍAG

ESTI

ÓN

33

Page 34: Desarrollos de proyectos J2EEjtech.ua.es/j2ee/2003-2004/modulos/cr/desarrollo.pdf · Índice Presentación Módulos Gestión de Proyectos Ciclo de Vida Mercado Laboral Objetivos Conocer

Reglas

Confianza y SinceridadHambre de ConocimientoCapacidad de comunicaciónAutoformación

Consejos Finales

34

Indexar documentaciónBuscar la mejor soluciónConocer el entorno de desarrolloNunca reinventar la rueda

Page 35: Desarrollos de proyectos J2EEjtech.ua.es/j2ee/2003-2004/modulos/cr/desarrollo.pdf · Índice Presentación Módulos Gestión de Proyectos Ciclo de Vida Mercado Laboral Objetivos Conocer

Preguntas...?

FIN