Back-End

13 mai, 2013

Oracle Certified Master Java EE Enterprise Architect – Dicas de Estudos

Publicidade

No mês passado fui aprovado na certificação Oracle Certified Master, Java EE Enterprise Architect, e hoje eu gostaria de compartilhar as minhas dicas para os novos candidatos. Confesso que essa foi a prova mais difícil, demorada e cansativa que eu já fiz, mas que também foi a que mais me fez aprender e crescer como profissional. Esta certificação é composta por 5 fases:

Fase 1: Curso Obrigatório

Nesta fase o candidato é obrigado a fazer pelo menos um curso oficial da Oracle de Java em qualquer empresa parceira. Esse curso pode ser feito em qualquer momento da certificação – antes, durante ou depois. A minha dica é: se o candidato já tem experiência em Java e arquitetura, deixe para fazer o curso no fim. Se caso não, use os cursos para adquirir conhecimento para a prova fazendo os antes. Existe um grade completa de cursos de Java para o candidato adquirir know-how básico para essa certificação.

Fase 2: Java Enterprise Architect Certified Master Exam

Nesta fase o candidato tem que passar em um exame de 64 questões com a pontuação mínima de 57%. O conteúdo do exame cobre conhecimentos em princípios de design, arquiteturas de software, integrações entre soluções, mensageria, especificações e tecnologias Java, padrões de projetos e segurança.

Livros de estudos:

  • Livro Sun Certified Enterprise Architect for Java EE Study Guide Mark Cade, Humphrey Sheil
  • Livro Sun Certified Enterprise Architect for Java EE Study Guide (Exam 310-051) Paul Allen, Joseph Bambara
  • Oracle Certified Master, Java EE Enterprise Architect Practice Guide by Amritendu De

Mesmo os dois primeiros livros tenham o mesmo objetivo, cada um pontua e reforça aspectos diferentes, sendo necessário o estudo de ambos. Outro detalhe importante é que essa certificação cobre muitas outras coisas que estes livros não abordam. Sendo assim, é importante que o candidato faça primeiramente a leitura deles para poder diagnosticar assim o que sera necessário estudar a parte.

Resumo:

Durante os estudos e simulados eu acabei fazendo um resumo de todo o que se precisa saber e memorizar para se passar nessa parte da prova. Sendo assim, os candiados podem usar esse resumo para memorização e para saber quais são os tópicos necessários de estudo a parte caso não conhecimento sobre o assunto. [Donwload do Resumo].

Simulado:

Sobre simulados, eu perdi muito tempo fazendo muitos simulados pela web mas quase todos estão defasados. O único que foi suficiente e que valeu a pena mesmo, foi esse da whizlabs. Use o cupom de desconto “whizoffer10” para ter 10% de desconto.

Fase 3: Java Enterprise Architect Certified Master Assignment

Nesta fase o candidato é responsável por desenvolver um projeto completo baseado em um documento de requisitos. Neste documento vem descrito o cenário de negócio da corporação, os requisitos do produto a ser desenvolvido e que você esta sendo contratado para ser arquiteto responsável pela elaboração e a criação dessa nova solução. Como em qualquer projeto, o arquiteto precisa analisar o cenário da corporação, bem como seus requisitos e fazer a tomada de decisões de design.

Livros Sobre Decisões de Design

A minha primeira dica é relacionada aos livros que você pode ler para aprender quais são as decisões de design mais comuns em soluções corporativas e quais são os prós e contras de cada uma delas. Segue os livros:

  1. POJO in Action by Chris Richardson – Esse livro apresenta versões de produtos Java antigas, mas as decisões de projeto ainda continuam a mesma. Eu indico como leitura inicial para que os candidatos aprendam o core básico das decisões, desprezando os produtos tecnológicos antigos utilizados pelo autor.
  2. Patterns of Enterprise Application Architecture by Martin Fowler – Esse livro é o mais indicado para essa fase dois da certificação aonde Martin Fowler descreve detalhadamente cada decisão de design dentro de uma solução corporativa acompanhando com os seus prós e contras. Ele pode até ser utilizado como “regra de bolo” para suas decisões de projeto durante a certificação.
  3. Domain Drive Design by Erick Vans – Esse livro aborda o principal design da atualidade que é o fato de se construir e documentar soluções orientadas a objetos sem gerar amarrações com tecnologias ou plataformas. Nele Erick Vans te ensina a visualizar e construir uma solução puramente orientada e objetos, independentemente de plataforma ou tecnologia.
  4. Design Patterns: Elements of Reusable Object Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides – Esse livro contém o catalogo de padrões mais básicos do paradigma da orientação a objetos que sem dúvidas nenhuma você precisa para resolver as estruturas das classes/componentes na solução.
  5. Real World Patterns Rethinking Practices by Adan Bien – Esse livro trás o estudo feito pelo Adan Bien que readapta e aposenta os antigos padrões da versão J2EE para as versões mais atuais do JEE 6+. Nele você aprendera como e quais padrões continuar usando e aqueles que não precisam mais ser utilizados.

Cada livro te oferece conhecimento voltado para uma parte da solução da certificação e o ideal seria que o candidato investisse na leitura destes livros antes de encarar a prova, uma vez que o tempo de entrega da segunda fase é de apenas seis meses.  

Estudo de Casos Fictícios

A segunda dica é sobre livros e artigos que apresentam exemplos de soluções desenvolvidas para a segunda fase da prova, servindo também como estudo de caso para que os novos candidatos tenham uma noção básica e inicial de como a coisa é feita. Segue as dicas:

  1. Enterprise Enterprise JavaBean 3.0 by Bill Burke (chapter 21) – Nesse livro Bil Burke apresenta passos de como desenvolver uma solução JEE utilizando EJB3 recheado de detalhes e explicações que podem ser utilizados para aprender inúmeros detalhes semelhantes da segunda fase da prova.
  2. Sun Certified Enterprise Architect for Java EE Study Guide by Mark Cade and Humphrey Sheil – Nesse livro os autores cobrem todas as partes da certificação, apresentando nos capítulos finais uma solução exemplo com detalhes interessantes.
  3. Sun Certified Enterprise Architect for Java EE Study Guide (Exam 310-051) by Paul Allen and Joseph Bambara – Nesse livro os autores também cobrem todas as partes da certificação, apresentando nos capítulos finais uma solução exemplo com detalhes interessantes.
  4. Oracle Certified Master, Java EE Enterprise Architect Practice Guide by Amritendu De – Esse livro é o mais recente sobre essa certificação que foi lançado após eu ser aprovado no qual eu ainda não tive a oportunidade de ler, mas que como os outros, também possuem uma solução exemplo nos capítulos finais.
  5. Epractizelab Simulator – Simulador pago da empresa Epractizelab que traz um exemplo de um projeto e a solução que também pode ser utilizado como estudo. Como eu não comprei, não posso opinar se é bom ou não. Para todas as dúvidas acesse http://www.epractizelabs.com/certification/sun/scea-5-part23-exam.html
  6. Revista Mundo Java Edição 35 Artigo SCEA5 Certificação de Arquiteto – Artigo completo sobre um projeto e a solução fictício escrito por Marcio Varchavsky.

Criando a Solução:

Segue algumas dicas para você começar a sua solução. Preste atenção na extração de requisitos:

  • Descrição da história da empresa.
  • Descrição dos sistemas legados.
  • Descrição de casos de uso.
  • Descrição da infraestrutura necessária.

Documentação de requisitos da certificação é obscura, incompleto e pode até vir propositalmente com alguns erros. Você poderá precisar fazer algumas correções e ou suposições em cima do contexto para complementar o projeto, tornando o implementável. É justamente por isso que faz parte da entrega da solução um documento de decisões de projeto no qual você deverá descrever suas suposições e como elas afetaram a sua solução final. Preste atenção na extração dos requisitos não-funcionais e destaque as descrições associadas a cada exigência. Exemplos:

  • Número de demanda para uso da solução
  • Expectativa de aumento de escalabilidade.
  • Tempo de resposta de usuário final.
  • Tempo de resposta de comunicação nas integrações com outros sistemas.

Faça Suposições

Na questão das suposições, você tem dois caminhos a seguir:

  1. Suponha que alguma coisa já exista na solução proposta e assim não faça nada relacionado com aquilo e documente essa suposição.
  2. Suponha que alguma coisa não exista na solução proposta e assim necessitando ser adicionando e considerado na arquitetura como parte da sua solução proposta. Tenha cuidado com esse caminho, uma vez que você estará aumentando seu projeto e consequentemente abrindo mais espaços para inconsistências e erros.

A minha dica sobre isso é: não assuma ou invente coisas que adicione complexidade ao seu projeto. Faça suposições de coisas que estão faltando com o objetivo de complementar as possíveis faltas de informações. Resista a tentação de fazer coisas mirabolantes.

Diagramas

Segue algumas dicas para a construção dos diagramas:

  • Os diagramas precisam estar desacoplados de qualquer detalhe de tecnologia ou framework especifico, independente de fornecedor.
  • A essência dos diagramas é apresentar a estrutura que resolve os problemas do contexto proposto e não a infraestrutura de tecnologia e frameworks adotada.
  • Mantenha os diagramas em alto nível. Ou seja, não se preocupe em mostrar coisas de baixo nível como algoritmos, detalhes de API, etc.
  • Comece com o diagrama de implantação, depois classes, depois sequencia e por fim o de componentes.
  • Não se esqueça de ir documentando todas as suposições e as decisões de design que você for fazendo ao longo da construção de diagramas.

Fase 4: Java Enterprise Architect Certified Master Essay Exam

Na última fase da prova, o candidato precisara responder a 8 perguntas relacionadas ao projeto desenvolvido. A minha dica aqui é a seguinte: responda às questões de arquiteturas durante a fase de projeto, ao mesmo tempo em que você produz o documento de decisões. Segue abaixo uma listagem de possíveis perguntas que poderá encontrar na prova:

  • How does your design handle availability? Why did you choose it? pros and cons of your approach?
  • How does your design handle reliability? Why did you choose it? pros and cons of your approach?
  • How does your design handle scalability? Why did you choose it? pros and cons of your approach?
  • How does your design handle performance? Why did you choose it?  pros and cons of your approach?
  • How does your design handle security? Why did you choose it? pros and cons of your approach?
  • How does your design handle extensibility? Why did you choose it? pros and cons of your approach?
  • How does your design handle maintainability? Why did you choose it? pros and cons of your approach?
  • Set of design patterns on which layer and why?
  • How does your design support session/state handling?
  • How does your design handle persistence?
  • How does your client tier talk to business tier?
  • How does your design handle Qos 5 Sec in peak time?
  • How does your design handle transactions?
  • How does your design handle authentication and authorization?
  • What technology u have used in presentation and business tier why?
  • How many SB’s you used and purpose of them?
  • Why have you chosen framework If any If not why not ?

Não deixe para pensar e elaborar essas respostas na hora da prova por que você não terá tempo hábil para isso. Respondendo elas antecipadamente, te ajudara a chegar a ultima prova bem preparado e até mostrar erros que você cometeu durante a elaboração do projeto, levando você refatorar alguma coisa.

Fase 5: Course Submission Form

Depois de fazer o curso obrigatório e ser aprovado nas três provas que compõem a certificação, nesta fase o candidato entrará na ferramenta da VUE para enviar a confirmação do curso obrigatório feito para o sistema da Oracle com o objetivo de notificar que o candidato finalizou a grade da certificação. Com isso, a Oracle enviara posteriormente o kit de credencial de profissional arquiteto Java. Para todas as informações, acesse a grade oficial da prova.

Eu me coloco a disposição para qualquer eventual dúvida relacionado a arquitetura ou sobre a certificação. Agora é renovar a metas e continuar avançando. Até a próxima pessoal!