Dos objetos aos frameworks na plataforma Java. Slides apresentados no evento Wire2010 na USP/SP/Brasil realizado no dia 28/Jun/2010 das 13:10 às 14:00.
Dicas e Truques sobre Performance em Java EE, JPA e JSF
Os 5 Níveis de Reuso
1. Os Cinco Níveis de Reuso
Do objetos aos frameworks na plataforma Java
Alberto J Lemos (Dr. Spock)
Senior Software Architect
Instrutor Globalcode
Globalcode – Open4Education
2. Palestrante
> Bacharel e especialista em Física pela UFV e
Unicamp;
> Instrutor na Globalcode em Campinas e SP
desde 2005;
> Desenvolvedor de aplicações Web desde 96;
> Desenvolvedor de aplicações Java desde 99;
> Atuação como arquiteto de software;
> Certificações Java: SCJP e SCWCD;
> Palestrante em eventos nacionais e
internacionais: JustJava, TDC e JavaOne.
Globalcode – Open4Education
3. Objetivo
“Apresentar alguns elementos da
Orientação a Objetos usados no
desenvolvimento de aplicações corporativas
com Java promovendo o reuso e
manutenibilidade”
Globalcode – Open4Education
4. Agenda
> Sobre algumas métricas de qualidade de
software
> As principais métricas para OO e Java
> Os 5 níveis de uso na plataforma Java
> Conclusões
> Perguntas & Respostas
Globalcode – Open4Education
5. Métricas de Qualidade de
Software
Scalability Maintainability Reliability
Availability Extensibility Manageability
Performance Mobility Compatibility
Usability Connectivity Testability
Modularity Interoperability Security
Toolability Auditability Reusability
Commercial Support Cost Productivity
Team Skills Accessibility Sustainability
Globalcode – Open4Education
6. Métricas relevantes para OO e
Java
Scalability Maintainability Reliability
Availability Extensibility Manageability
Performance Mobility Compatibility
Usability Connectivity Testability
Modularity Interoperability Security
Toolability Auditability Reusability
Commercial Support Cost Productivity
Team Skills Accessibility Sustainability
Globalcode – Open4Education
9. Objetos e Classes
> Objeto = Entidade com características +
comportamentos;
> Classe = Descrição dos objetos com as mesmas
características e os mesmos comportamentos;
> No Java:
> Template para criação de objetos;
> Definição de tipos
customizados. Classes
Classes
Objetos
Objetos
Características ++Comportamentos
Características Comportamentos
Globalcode – Open4Education
10. Herança e Polimorfismo
> Reuso de código. Herança / /Polimorfismo
Herança Polimorfismo
> Collections API
Globalcode – Open4Education
17. Componentes
> Reuso de serviços Componentes
Componentes
> Não são peças substituíveis
> Exemplos de componentes:
> Servlet/JSP → Web Server, HTTP, Threads,
sessão, etc;
> EJB → transação, segurança declarativa, pool,
RMI/IIOP, etc;
> JSF → modelo padrão de componentes
visuais e eventos efetivo (c/ AJAX),
validação de dados e conversão de tipos, etc.
Globalcode – Open4Education
18. Componentes
> Reuso de serviços
> Não são peças substituíveis
> Exemplos de componentes:
> Servlet/JSP → Web Server, HTTP, Threads,
sessão, etc;
> EJB → transação, segurança declarativa, pool,
RMI/IIOP;
> JSF → modelo padrão de componentes
visuais e eventos efetivo (c/ AJAX),
validação de dados e conversão de tipos.
Globalcode – Open4Education
19. Componentes
> Reuso de serviços
> Não são peças substituíveis
> Exemplos de componentes:
> Servlet/JSP → Web Server, HTTP, Threads,
sessão, etc;
> EJB → transação, segurança declarativa, pool,
RMI/IIOP;
> JSF → modelo padrão de componentes
visuais e eventos efetivo (c/ AJAX),
validação de dados e conversão de tipos.
Globalcode – Open4Education
27. Frameworks
> Framework = Components + Patterns;
> IoC = Inversion of Control;
> Orientado a um domínio de problemas;
> Exemplos:
> Persistência: Hibernate, TopLink, JPA
> Integração: Spring, Seam
> UI/RIA Web: JSF, Struts, GWT
> Componentização: EJB no Java EE
Globalcode – Open4Education
28. JSP ou XHTML? ICEFaces?
TopLink?
Richfaces?
Swing? Facelets? Glassfish?
Struts?
Maven? Desktop ou web?
iBatis? Flex?
Spring ou Seam? JSF?
JBossAS?
EJB3? Confuso? JDBC?
Tobago? JDeveloper? NetBeans?
Tomcat?
GWT? Ant? JavaFx? Tomahawk?
Ajax? MDB? WebSphere? Eclipse?
Globalcode – Open4Education
29. Conclusões
> Reuso e manutenibilidade está no cerne da OO;
> Reuso é uma questão de atitude;
> Itens reusáveis devem ser bem documentados e
ter um ou mais exemplos reais de como usá-los;
> Framework é o ápice do reuso no Java;
> There is no silver bullet!
> O único caminho para tornar o reuso uma
realidade é planejar;
> OO, Java e frameworks exigem conhecimento,
experiência e persistência para uso efetivo!
Globalcode – Open4Education
30. Mais informações
> Types of Reuse In Information Tecnology
http://www.ambysoft.com/essays/typesOfReuse.html
> A realistic look at Object-Oriented reuse
http://www.drdobbs.com/architecture-and-design/184415594
> Object-Oriented application Frameworks
http://portal.acm.org/citation.cfm?id=262798
> Frameworks = Components + Patterns
http://portal.acm.org/citation.cfm?id=262799
> Elements of Reusable Object-Oriented Software
http://www.amazon.com/dp/0201633612
> Analysis Patterns
http://www.amazon.com/dp/0201895420
Globalcode – Open4Education