Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
Desarrollos de proyectos J2EE
Aitor Medrano / Analista – Arquitecto J2EEConferencias Técnicas – Universidad Alicante
04 de Junio de 2004
Í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
¿ De donde vienen los proyectos ?
Necesidades generadas por los clientes.
Usuarios internosMercadoEstrategiaEtc.
ConsultoríaNegocioTecnológicaProcesos
Gestión de Proyectos - I
PliegoDesarrollo internoASPOutsourcingHostingBPO
3
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
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
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
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
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
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
Prototipos NavegaciónIngeniería del SW
10
Diseño GráficoIngeniería del SW
11
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
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
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
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
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
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
Lógica de Presentación I
Model – View – Controller (MVC)
Ingeniería del SW
18
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
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
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
Lógica de Negocio I
Necesidad de Escalabilidad y Transaccionalidad Solución:
Stateless Session Bean
Ingeniería del SW
22
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
Lógica de Negocio III
Patrones J2EEBusiness DelegateSession FaçadeService Locator
RolesDesarrollador JavaArquitecto J2EE
Pruebas: JUnit, Cactus
Ingeniería del SW
24
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
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
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
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
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
Diagrama de ComponentesIngeniería del SW
30
Diagrama de SecuenciaIngeniería del SW
31
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
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
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
Preguntas...?
FIN