Os 5 Níveis de Reuso

3,100 views

Published on

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.

Published in: Technology

Os 5 Níveis de Reuso

  1. 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. 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. 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. 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. 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. 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
  7. 7. Os tipos de reuso Globalcode – Open4Education
  8. 8. Os 5 níveis de reuso 5 5 oo Frameworks Frameworks 4 4 oo Patterns Patterns 3 3 oo Componentes Componentes oo 2 2 Herança / /Polimorfismo Herança Polimorfismo oo 1 1 Classes Classes Objetos Objetos Características ++Comportamentos Características Comportamentos Globalcode – Open4Education
  9. 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. 10. Herança e Polimorfismo > Reuso de código. Herança / /Polimorfismo Herança Polimorfismo > Collections API Globalcode – Open4Education
  11. 11. Herança e Polimorfismo > Reuso de código. > Collections API Globalcode – Open4Education
  12. 12. Herança e Polimorfismo > Manutenibilidade de código. Globalcode – Open4Education
  13. 13. Herança e Polimorfismo > Manutenibilidade de código. Globalcode – Open4Education
  14. 14. Herança e Polimorfismo > Manutenibilidade de código. Globalcode – Open4Education
  15. 15. Herança e Polimorfismo > Manutenibilidade de código. Globalcode – Open4Education
  16. 16. Herança e Polimorfismo > Manutenibilidade de código. Globalcode – Open4Education
  17. 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. 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. 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
  20. 20. Patterns > Reuso de modelagem; > Soluções para problemas recorrentes; > Tipos: Código, projeto, análise e arquitetura > JavaBeans; > Design Patterns; > Analysis Patterns; > Architectural Patterns: MVC Globalcode – Open4Education
  21. 21. Exemplo Design Pattern > Composite Globalcode – Open4Education
  22. 22. Exemplo Design Pattern > Composite: Java I/O API Globalcode – Open4Education
  23. 23. Exemplo Design Pattern > Composite: Java I/O API OOS BOS FOS Java App Stream Arquivo Globalcode – Open4Education
  24. 24. Exemplo Design Pattern > Composite: Java I/O API OOS BOS FOS Java App Stream Arquivo Globalcode – Open4Education
  25. 25. Exemplo Design Pattern > Composite: Java Swing Globalcode – Open4Education
  26. 26. Exemplo Design Pattern > Model-View-Controller (MVC) Globalcode – Open4Education
  27. 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. 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. 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. 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
  31. 31. Perguntas & Respostas Globalcode – Open4Education

×