Padrões de Projeto em Aplicações Web Desenvolvendo projetos web consistentes baseados em reuso de soluções

Tamanho: px
Começar a partir da página:

Download "Padrões de Projeto em Aplicações Web Desenvolvendo projetos web consistentes baseados em reuso de soluções"

Transcrição

1 1/ Padrões de Projeto em Aplicações Web Desenvolvendo projetos web consistentes baseados em reuso de soluções Adote as melhores práticas de reuso de soluções com a abordagem de Padrões de Projeto (Design Patterns) no desenvolvimento de aplicações web. CLÁUDIO MARTINS De que se trata o artigo: Este artigo apresenta a abordagem de padrões de projeto (design patterns) no contexto do desenvolvimento de aplicações web, e a importância da documentação e organização dos padrões em catálogos on-line. Para que serve: Ajudam os projetistas e desenvolvedor a tomar decisões por melhores soluções para problemas que recorrentemente ocorre nos projeto de aplicações, em especial as disponibilizadas na web. Em que situação o tema é útil: A adoção de padrões, organizados em catálogos, ajuda a manter a consistência e coerência dos projetos, além da qualidade que se obtém na arquitetura do software. Por facilitar a comunicação pelo uso de uma linguagem comum, essa abordagem é indicada para organizações que desenvolvam grandes projetos, possuam grandes e médias equipes ou que estejam distribuídas geograficamente. Resumo DevMan: Padrões de Projeto é uma técnica de reuso de software que oferece benefícios práticos no desenvolvimento de aplicações web, tais como prover soluções de projeto de forma consistente, orientar equipes de desenvolvimento com diretrizes e boas práticas, melhorar o processo de comunicação com a adoção de uma linguagem comum de padrões, entre outros. Padrões de projeto são boas soluções aplicadas a boa parte de problemas comuns em um determinado contexto. É uma abordagem para o desenvolvimento de software baseado no reuso de idéias e soluções genéricas, mas que devem ser contextualizadas para problemas específicos. As principais características são: (a) criam uma linguagem compreendida por todos; (b) facilitam a mentalização da solução; e, (c) são propostas em alto nível (sem detalhes de implementação) para problemas recorrentes. Apesar de terem sido criados inicialmente para solucionar problemas encontrados em projeto (design) de software orientado a objetos, o conceito se estendeu para outras preocupações da Engenharia de Software. Há padrões identificados para a análise de negócio, para transformação de código (refatoração), para projeto de banco de dados, para interfaces web, enfim, onde é possível identificar e catalogar boas soluções que são frequentemente aplicados, haverá padrões de projeto. Este artigo apresenta a abordagem de padrões de projeto no contexto do desenvolvimento de aplicações web, e discute a importância de se documentar e organizar os padrões em catálogos, ação que promove a sistematização dessa abordagem em um processo de construção de aplicações web.

2 2 Definição Os padrões de projeto surgiram de um conceito criado pelo arquiteto Christopher Alexander, em sua obra "The Timeless Way of Building", de O autor propôs que cada padrão é uma regra com três partes, que expressa a relação entre contexto, problema e solução. Cada padrão é um relacionamento entre um certo contexto, um certo sistema de forças que ocorre repetidamente nesse contexto (problema), e uma certa configuração (solução) que permite que essas forças se resolvam. Essas três partes, além do próprio nome do padrão, formam a essência da documentação de um padrão: a) O Contexto: se refere ao conjunto de situações que se repetem, nas quais o padrão de projeto pode ser aplicado; b) O Problema: que trata do conjunto de "forças" objetivos e limitações que ocorrem dentro do contexto; c) A Solução: que é uma estrutura formal para ser aplicada na resolução do problema. A primeira iniciativa em aplicar padrões no desenvolvimento de software veio com a publicação do livro de Erich Gamma e três colaboradores (Helm, Johnson e Vlissides), intitulado "Design Patterns: Elements of Reusable Object-Oriented Software" (1995), onde os autores identificaram 23 padrões para projeto orientado a objetos. Esses padrões formam a base para a maiorias dos padrões que tratam de problemas em projetos dessa natureza, como o catálogo de padrões Blueprints, também chamados de Core J2EE Patterns. Catálogos de Padrões A importância de padrões de projeto aumenta quando os padrões são documentados em um repositório ou biblioteca, também denominados catálogos. A adoção de catálogos de padrões é uma forma efetiva de documentar e compartilhar soluções para problemas recorrentes de projeto, facilitando o reuso dessas soluções e ajudando a manter certa consistência no projeto. Além disso, melhoram a eficiência do processo de desenvolvimento e aumentam a produtividade dos designers por reduzir o retrabalho de pesquisa de boas soluções, minimizando a prática da "reinvenção da roda". Embora padrões sejam soluções de projeto independente de questões de implementação, há muitos benefícios para equipes de desenvolvimento pelo uso de componentes de software que suportem e instanciam padrões de projeto. Depois que um padrão é escolhido, equipes podem reutilizar e adaptar os componentes e trechos de código (como templates) para implementar um determinado padrão selecionado, reduzindo o tempo gasto no desenvolvimento de aplicações web. A eficiência de reuso é melhor obtida quando um catálogo permite relacionar os padrões (por dependência) e identificam quais componentes incorporam esses padrões de projeto. Por exemplo, a implementação do padrão Front Controller pode necessitar do padrão Command, dessa forma o desenvolvedor terá mais facilidade em construir o código a partir do momento que conhece todos os padrões envolvidos na solução. A maior dificuldade em catalogar um padrão é saber realmente se o padrão é um padrão de fato. Há uma discussão entre especialistas no tema em identificar o que é padrão e o que é antipadrão (aquele que parece ser uma boa solução mas conduz a práticas improdutivas e ineficientes). Um exemplo em aplicações web é o padrão Tela de Splash, aquela página pop-up que abre automaticamente no início de uma homepage; para alguns autores é considerado um antipadrão, pois contraria a heurística de prover feedback ao usuário ou de antecipar sobre o que pode ocorrer na aplicação. Outra dificuldade encontrada para adoção de padrões de projeto e uso de catálogos é o pouco consenso em definir o que é um padrão, estabelecer um nome e os limites do seu contexto (para o qual ele foi definido). Muitos padrões são semelhantes entre si, mas possuem denominações diferentes, dependendo de quem documentou e registrou; atuam em contextos complexos que dificultam a sua aplicabilidade. Um bom padrão é aquele que, a partir do seu nome, qualquer desenvolvedor consiga entender e aplicar.

3 3/ Mesmo com todas as dificuldades em adotar catálogos de padrões, o seu emprego deve ser encorajado em organizações que desenvolvam grandes projetos, possuam equipes com muitos membros, ou que seus membros estejam distribuídos geograficamente. Um catálogo ajuda a manter a consistência e coerência no projeto, além da consequente qualidade que se obtém na arquitetura do software. Na web encontramos alguns catálogos de padrões de projeto, em destaque há uma prevalência por catálogos de padrões para tratar problemas de interface, interação e navegação em aplicações web. Exemplos como Welie.com e UI-patterns.com, mantidos pela comunidade de designers; o do livro de Jennifer Tidwell (2010) denominado "Designing Interfaces: Patterns para Design de Interação Efetiva". Outro catálogo de relevância é o Yahoo! Design Pattern Library, um catálogo de padrões web com mais de 50 padrões documentados e organizados em categorias (ver Figura 1). Figura 1. Site do catálogo de padrões do Yahoo! Padrões de Projeto em Aplicações Web Quando se trata de padrões de projeto para aplicações web há, em geral, três dimensões ou preocupações que devem ser consideradas: a) Voltados para o design de interface ou visual: são os padrões mais visíveis, aqueles que trabalham a visualização dos sistemas na web, focando a apresentação e formatação do conteúdo. b) Voltados para interação e navegação: dizem respeito à dinâmica da interação do usuário com a aplicação, ponto crucial para o sucesso da aplicação web c) Voltados para a arquitetura de construção: são os padrões que fornecem a infraestrutura para desenvolvimento do software da aplicação web, que tratam desde a modelagem e organização dos componentes de software, até o projeto (design) da solução.

4 4 A classificação dos padrões é uma decisão de quem mantém o catálogo de padrões, não necessariamente segue a mesma classificação listada aqui. Para exemplificar, o Yahoo organiza o seu catálogo em cinco grandes categorias de padrões: Layout, Navegação, Seleção, Interação Rica e Design Social, cada uma está dividida em coleções especializadas. O mesmo ocorre com outros catálogos online, como o Welie, que organiza o seu catálogo em: Necessidade do Usuário (padrões que atendam a uma necessidade direta do usuário), Necessidades de aplicação (padrões que ajudam a aplicação, ou o designer, se comunicar melhor com o usuário), e Contexto do design (diz respeito a padrões de estruturação do conteúdo e do projeto do site). Para exemplificar alguns dos padrões para aplicações web, este artigo apresenta dois padrões JEE (Front Controller e Command), e dois de interação e apresentação visual (Paginação e Carrinho de Compras). Para efeito de demonstração do formato de documentação, recomendado para registro em um catálogo, adotamos o formato mínimo para o primeiro padrão (Front Controller); nos padrões seguintes adotamos uma apresentação mais livre de formalismo. Padrão "Front Controller" O objetivo do Front Controller é centralizar o processamento de requisições em uma única fachada. Front Controller permite criar uma interface genérica para processamento de comandos. Problema Deseja-se um ponto de acesso centralizado para processamento de todas as requisições recebidas pela camada de apresentação para: (a) controlar a navegação entre os objetos de visão; (b) remover duplicação de código; e, (c) estabelecer responsabilidades mais definidas para cada objeto, facilitando manutenção e extensão. O acesso de páginas clientes sem passar por um mecanismo centralizado, pode dificultar o controle de navegação e segurança da aplicação, pois uma página pode ser aberta por alguém que não deveria ter acesso. Outro problema recorrente em aplicações desse tipo é o existência de código de controle duplicado e misturado ao código de apresentação. Solução O Controlador é ponto de acesso para processamento de requisições: chama serviços de segurança (autenticação e autorização), delega processamento à camadas de negócio, define uma visão apropriada, realiza tratamento de erros, define estratégias de geração de conteúdo. A Figura 1 mostra dois cenários possíveis para um Front Controller. No cenário "a", o controlador utiliza um objeto Dispatcher (despachante), solução que é usada para redirecionar /repassar para a página de resposta correspondente, como no exemplo (usando Servlet) visto na Listagem 1. Listagem 1. Solução de Front Controller usando = "FrontController", urlpatterns = {"/FrontController ") public class FrontController extends HttpServlet { protected void processrequest(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { //... código // despacho para a página de resposta request.getrequestdispatcher("clienteresposta.jsp").forward(request, response); No cenário "b" (Figura 2), o Front Controller delega processamento a um objeto de apoio (Helper). Nessa solução, pode-se aplicar padrões como Command, Value Beans, e outros onde a competência para realizar a operação é decidida.

5 5/ Figura 2. Dois cenários para um Front Controller Padrão "Command" O padrão Command separa o mecanismo que trata a solicitação (request) do serviço que realiza a tarefa a ser executada. Command (no contexto de aplicações web) é uma adaptação do padrão de Gamma et al. (1995) como estratégia de implementação do Front Controller. É um padrão que pode ser implementado em aplicações web na forma mais simples, até à mais elaborada. Para aplicações que adotam Servlets, por exemplo, uma solução simples é tratar o comando que vem na solicitação, enviado com parâmetro na solicitação, normalmente chamado de action ou comando. Esse parâmetro que informa a ação do comando contém um de vários valores das tarefas a serem executados na aplicação. O servlet de controle recupera o valor da ação como parâmetro da solicitação, e determina qual a lógica de negócio deve ser executado pelo objeto Command. A definição desse padrão no catálogo JEE de padrões é realizada pelo padrão "Service to Worker". A Figura 3 mostra um exemplo simplificado de Command para uma calculadora que deve executar operações para somar, subtrair, multiplicar e dividir dois números. O código dessa solução é visto na Listagem 2 (a interface de Command) e na Listagem 3 é mostrada as classes controladora e de implementação do Command. Figura 3. Exemplo do padrão Command usando servlet

6 6 Listagem 2. Interface Command public interface Command { public String execute () ; Listagem 3.Implementação de Command e o Controlador public class RequestHelperCommand implements Command { private HttpServletRequest request; private HttpServletResponse response; public RequestHelperCommand(HttpServletRequest request, HttpServletResponse response) { this.request = request; this.response = public String execute() { // tratar a requisicao float n1 = Float.parseFloat(this.getRequest().getParameter("n1")); float n2 = Float.parseFloat(this.getRequest().getParameter("n2")); String acao = this.getrequest().getparameter("acao"); float result = 0; if (acao.equalsignorecase("somar")) { result = n1 + n2; if (acao.equalsignorecase("subtrair")) { result = n1 - n2; // outras ações // retornar página de resposta return "calcform.jsp?resposta=" + result + "&n1=" + n1 + "&n2=" + n2; // gets e set s // Fim da classe // Classe = "ControladorCalc", urlpatterns = {"/ControladorCalc") public class ControladorCalc extends HttpServlet { protected void service(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { // o objeto helper ajuda a obter os parametros e processar o request RequestHelperCommand helper = new RequestHelperCommand(request, response); // delega o processamento o metodo de execucao do helper String paginaresposta = helper.execute(); // redireciona a página de resposta request.getrequestdispatcher(paginaresposta).forward(request, response); // fim da classe controladora Padrão "Paginação" Paginação é um padrão para projeto de interação de interface com usuário. É indicado quando o usuário necessita visualizar um subconjunto de dados que não serão fáceis de mostrar dentro de uma única página. Esse problema é solucionado com a adição de um mecanismo de paginação, normalmente uma barra que permite navegar entre as páginas que são geradas como resultado da paginação. Um exemplo bem conhecido é a lista de resultados de uma pesquisa do Google, como é visto na Figura 4.

7 7/ Note que a solução deve prover meios para: a) quebrar a lista de itens em uma seqüência de páginas; b) fornecer links para acessar tanto as páginas anteriores, quanto as próximas em relação à página que está sendo exibida; c) fornecer links para saltar para a primeira e última páginas do conjunto; d) destacar qual o número da página que o usuário está navegando. Figura 4. Exemplo do padrão "Paginação" na barra de resultados do Google A instanciação do padrão Paginação, quando se desenvolve aplicações web com Java Server Faces (JSF), quase sempre é resolvido com o uso de componentes baseados em tag library. Um exemplo é o componente datascroller do RichFaces, como pode ser visto na Listagem 4 e renderizado como na Figura 5. Neste exemplo, um conjunto de dados é tabulado a partir da coleção registrada no bean gerenciado (cidademb.cidades), o componente <rich:datascroller> trabalha em colaboração com o componente <rich:datatable>, onde se especifica o número máximo de itens a serem exibidos em cada paginação (rows="4"). Listagem 4.Exemplo de código JSF do componente datatable do Richfaces <rich:datatable value="#{cidademb.cidades" var="cid" rows="4"> <rich:column> <f:facet name="header"> <h:outputtext value="cidade" /> </f:facet> <h:outputtext value="#{cid.nome"/> </rich:column> <rich:column> <f:facet name="header"> <h:outputtext value="frete" /> </f:facet> <h:outputtext value="#{cid.valorfrete"/> </rich:column> <f:facet name="footer"> <rich:datascroller renderifsinglepage="true" /> </f:facet> </rich:datatable> Figura 5. Exemplo do componente "Paginação" usando Richfaces

8 8 Padrão "Carrinho de Compras" Um padrão bastante adotado em aplicações de comércio eletrônico é o "Carrinho de Compras". O padrão permite que clientes comprem produtos em uma loja virtual, utilizando a metáfora do carrinho de compras, onde o cliente pode selecionar os produtos antes de realizar o pagamento. De uma forma geral, o padrão fornece funcionalidades com as vistas na Figura 6. Neste exemplo, identificamos as principais operações que serão codificadas em métodos como adicionar produto, remover produto e finalizarcompra, que é demonstrado na solução de uma classe Java do tipo Managed Bean (JSF), CarrinhoBean, como mostra a Listagem 5; a Listagem 6 mostra a classe Produto. Para implementar esse padrão é necessário atentar para dois requisitos da aplicação. Primeiro, uma instância da classe CarrinhoBean não deve atender vários clientes para não misturar produtos escolhidos por clientes diferentes, solução fornecida pela Segundo, os produtos adicionados devem ser mantidos entre as chamadas dos métodos da classe CarrinhoBean. Em outras palavras, é necessário manter o estado do carrinho representado por uma estrutura de dados do tipo coleção ou lista. A solução, neste caso, é utilizar no código o objeto de coleção "produtos" (Set<Produto> produtos), que mantém o estado da lista de produtos adicionados no carrinho. Figura 6. Página com a metáfora do padrão "Carrinho de Compras" Listagem 5.Exemplo de código JSF do componente datatable public class CarrinhoBean { private Set<Produto> produtos = new HashSet<Produto>(); public CarrinhoBean() { public void adicionar(produto produto) { this.produtos.add(produto); public void excluir(produto produto) { this.produtos.remove(produto); public void finalizarcompra() { // código para finalizar a compra. // gets e set s Listagem 6.Código da classe Produto public class Produto { private String nome; private int quantidade; private float preçounid ; private float preçototal; // gets e set s

9 9/ Conclusões Padrões de Projeto é uma técnica de reuso de software que oferece benefícios práticos no desenvolvimento de aplicações web, tais como prover soluções de projeto de forma consistente, orientar equipes de desenvolvimento com diretrizes e boas práticas, melhorar o processo de comunicação com a adoção de uma linguagem comum de padrões, entre outros. Entretanto, para atingir esses benefícios é importante que os padrões de projetos estejam documentados e disponíveis em um formato que promova o reuso. Várias coleções de padrões estão documentadas e disponíveis na Web, normalmente em forma de bibliotecas ou catálogos, como é o caso de Welie (http://www.welie.com) e Yahoo! Design Pattern Library (http://developer.yahoo.com/patterns/). Apesar da popularidade de padrões e dos catálogos de padrões, atualmente não há um consenso em como os padrões deveriam ser documentados, mantidos e compartilhados por todos. Contudo, é inegável a importância de utilizar padrões de projeto para orientar as decisões por melhores soluções para problemas que recorrentemente ocorre nos projeto de aplicações, em especial as disponibilizadas na web. Links Catálogo do Yahoo! Design Pattern Library Catálogo com mais de 130 padrões de interação web. Catálogo com 58 padrões de projeto de interface web, agrupados em cinco categorias. Catálogo dos padrões JEE (Blueprints, Core J2EE Patterns) Livros (opcional) Padrões de Projeto: Soluções Reutilizáveis de Software Orientado a Objetos; Gamma, Helm, Johnson e Vlissides; Artmed, Primeiro livro a abordar o assunto, apresenta um catálogo com 23 padrões para solucionar problemas de design orientado a objetos. Core J2EE Patterns, 3a. Edição; Alur, Crupi; Campus/Elsevier, Apresenta um catálogo com 21 padrões com as melhores práticas, estratégias de design e soluções para as principais tecnologias JEE. Web Application Design Patterns (Interactive Technologies); Pawan Vora; Morgan Kaufmann Publishers, Apresenta uma coleção com mais de cem padrões documentados para design de aplicações web. Designing Web interfaces; Bill Scott,Theresa Neil; O'Reilly, Apresenta mais de 75 padrões de projeto para construção de interfaces web.

10 10 Cláudio Martins é Mestre em Computação pela UFRGS, professor do Instituto Federal do Pará (IFPA) e analista de sistema da Companhia de Informática de Belém (Cinbesa). Trabalha há dez anos com a plataforma Java.

Tecnologias Web. Padrões de Projeto - Camada de Apresentação

Tecnologias Web. Padrões de Projeto - Camada de Apresentação Tecnologias Web Padrões de Projeto - Camada de Apresentação Cristiano Lehrer, M.Sc. Padrões da Camada de Apresentação (1/2) Intercepting Filter Viabiliza pré e pós processamento de requisições. Front Controller

Leia mais

J550. Model View Controller

J550. Model View Controller J550 Model View Controller 1 Design de aplicações JSP Design centrado em páginas Aplicação JSP consiste de seqüência de páginas (com ou sem beans de dados) que contém código ou links para chamar outras

Leia mais

Padrões de Projeto WEB e o MVC

Padrões de Projeto WEB e o MVC Padrões de Projeto WEB e o MVC Padrões de Projeto WEB e o MVC O que são padrões? "Cada padrão descreve um problema que ocorre freqüentemente em seu ambiente, e então descreve o cerne da solução para aquele

Leia mais

Transaction Scripts: Uma Forma mais Simples de Organizar Lógica de Domínio

Transaction Scripts: Uma Forma mais Simples de Organizar Lógica de Domínio Roberto Perillo (jrcperillo@yahoo.com.br) é bacharel em Ciência da Computação e está atualmente cursando mestrado no ITA, onde já concluiu o curso de especialização em Engenharia de Software. Trabalha

Leia mais

MÓDULO Modelagem de classes de projeto

MÓDULO Modelagem de classes de projeto MÓDULO Modelagem de classes de projeto A perfeição (no projeto) é alcançada, não quando não há nada mais para adicionar, mas quando não há nada mais para retirar. -Eric Raymond, The Cathedral and the Bazaar

Leia mais

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse Como criar um EJB Criando um projeto EJB com um cliente WEB no Eclipse Gabriel Novais Amorim Abril/2014 Este tutorial apresenta o passo a passo para se criar um projeto EJB no Eclipse com um cliente web

Leia mais

Design Patterns STRATEGY EMERSON BARROS DE MENESES

Design Patterns STRATEGY EMERSON BARROS DE MENESES Design Patterns STRATEGY EMERSON BARROS DE MENESES 1 Breve Histórico Sobre Design Patterns A origem dos Design Patterns (Padrões de Desenho ou ainda Padrões de Projeto) vem do trabalho de um arquiteto

Leia mais

Prof. Roberto Desenvolvimento Web Avançado

Prof. Roberto Desenvolvimento Web Avançado Resposta exercício 1: Configuração arquivo web.xml helloservlet br.com.exercicios.helloservlet

Leia mais

Arquitetura de uma Webapp

Arquitetura de uma Webapp Arquitetura de uma Webapp Arquitetura J2EE Containers e componentes MVC: introdução Frederico Costa Guedes Pereira 2006 fredguedespereira@gmail.com Plataforma J2EE World Wide Web e a Economia da Informação

Leia mais

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC Arquitetura de Aplicações JSP/Web Padrão Arquitetural MVC Arquitetura de Aplicações JSP/Web Ao projetar uma aplicação Web, é importante considerála como sendo formada por três componentes lógicos: camada

Leia mais

Java para WEB. Servlets

Java para WEB. Servlets Servlets Servlets são classes Java que são instanciadas e executadas em associação com servidores Web, atendendo requisições realizadas por meio do protocolo HTTP. Servlets é a segunda forma que veremos

Leia mais

Use a Cabeça! FREEMAN, Eric e Elisabeth. HTML com CSS e XHTML BASHMAN, Brian / SIERRA Kathy / BATES, Bert. Servlets & JSP

Use a Cabeça! FREEMAN, Eric e Elisabeth. HTML com CSS e XHTML BASHMAN, Brian / SIERRA Kathy / BATES, Bert. Servlets & JSP Use a Cabeça! FREEMAN, Eric e Elisabeth. HTML com CSS e XHTML BASHMAN, Brian / SIERRA Kathy / BATES, Bert. Servlets & JSP Software cliente: browser e outros Protocolo HTTP Infraestrutura de transporte

Leia mais

Argo Navis J931 - Padrões de Design J2EE. Introdução. Objetivos de aprender padrões J2EE. Conhecer padrões para uso na plataforma J2EE

Argo Navis J931 - Padrões de Design J2EE. Introdução. Objetivos de aprender padrões J2EE. Conhecer padrões para uso na plataforma J2EE Padrões de Projeto J2EE J931 Introdução Helder da Rocha (helder@acm.org) argonavis.com.br Objetivos de aprender padrões J2EE Conhecer padrões para uso na plataforma J2EE Padrões permitem maior reuso, menos

Leia mais

Programação Web Aula 12 - Java Web Software

Programação Web Aula 12 - Java Web Software Programação Web Aula 12 - Java Web Software Bruno Müller Junior Departamento de Informática UFPR 25 de Maio de 2015 1 Java 2 Java Web Software 3 Servlets Modelo de Trabalho Funcionamento API Java Código

Leia mais

Padrões de Projeto. Prof. Jefersson Alex dos Santos (jefersson@dcc.ufmg.br) http://www.dcc.ufmg.br/~jefersson

Padrões de Projeto. Prof. Jefersson Alex dos Santos (jefersson@dcc.ufmg.br) http://www.dcc.ufmg.br/~jefersson Padrões de Projeto Prof. Jefersson Alex dos Santos (jefersson@dcc.ufmg.br) http://www.dcc.ufmg.br/~jefersson Apresentação Conceitos Definição Ponto de vista prático História Padrões de Projeto Conhecidos

Leia mais

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. Servlets A,L,F,M

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. Servlets A,L,F,M JAVA Marcio de Carvalho Victorino 1 Servlets 2 1 Plataforma WEB Baseada em HTTP (RFC 2068): Protocolo simples de transferência de arquivos Sem estado (não mantém sessão aberta) Funcionamento (simplificado):

Leia mais

Desenvolvimento WEB em JAVA. Palestrante: Lourival F. de Almeida Júnior

Desenvolvimento WEB em JAVA. Palestrante: Lourival F. de Almeida Júnior Desenvolvimento WEB em JAVA Palestrante: Lourival F. de Almeida Júnior Agenda Introdução Servlet Arquitetura de Software Velocity Struts Conclusão Referências Introdução (antes) Programador Produto Introdução

Leia mais

!" # # # $ %!" " & ' ( 2

! # # # $ %!  & ' ( 2 !"# # #$ %!" "& ' ( 2 ) *+, - 3 . / 4 !" 0( # "!#. %! $""! # " #.- $ 111.&( ( 5 # # 0. " % * $(, 2 % $.& " 6 # #$ %% Modelo (Encapsula o estado da aplicação) Implementado como JavaBeans Responde a consulta

Leia mais

Padrões GoF. Leonardo Gresta Paulino Murta leomurta@ic.uff.br

Padrões GoF. Leonardo Gresta Paulino Murta leomurta@ic.uff.br Padrões GoF Leonardo Gresta Paulino Murta leomurta@ic.uff.br Agenda Introdução Padrões de Criação Padrões de Estrutura Padrões de comportamento Leonardo Murta Padrões GoF 2 Introdução Os padrões GoF (Gamma

Leia mais

J550 Padrões de Projeto J2EE para Aplicações Web

J550 Padrões de Projeto J2EE para Aplicações Web J550 Padrões de Projeto J2EE para Aplicações Web Helder da Rocha (helder@acm.org) www.argonavis.com.br 1 Introdução Este módulo aborda os principais padrões de projeto J2EE, dentre o catálogo organizado

Leia mais

Curso - Padrões de Projeto Módulo 1: Introdução

Curso - Padrões de Projeto Módulo 1: Introdução Curso - Padrões de Projeto Módulo 1: Introdução Vítor E. Silva Souza vitorsouza@gmail.com http://www.javablogs.com.br/page/engenho http://esjug.dev.java.net Sobre o Instrutor Formação: Java: Graduação

Leia mais

Associação Carioca de Ensino Superior Centro Universitário Carioca

Associação Carioca de Ensino Superior Centro Universitário Carioca Desenvolvimento de Aplicações Web Lista de Exercícios Métodos HTTP 1. No tocante ao protocolo de transferência de hipertexto (HTTP), esse protocolo da categoria "solicitação e resposta" possui três métodos

Leia mais

Java para Desenvolvimento Web

Java para Desenvolvimento Web Java para Desenvolvimento Web Servlets A tecnologia Servlet foi introduzida pela Sun Microsystems em 1996, aprimorando e estendendo a funcionalidade e capacidade de servidores Web. Servlets é uma API para

Leia mais

Padrões de Desenho (Design Patterns)

Padrões de Desenho (Design Patterns) Padrões de Desenho (Design Patterns) O que são padrões de desenho Porque são úteis Conhecer alguns padrões 1 Padrões (Patterns) Design Patterns Explained: A New Perspective on Object-Oriented Design, Alan

Leia mais

Técnicas de Programação Avançada TCC-00.174 Prof.: Anselmo Montenegro www.ic.uff.br/~anselmo anselmo@ic.uff.br

Técnicas de Programação Avançada TCC-00.174 Prof.: Anselmo Montenegro www.ic.uff.br/~anselmo anselmo@ic.uff.br Técnicas de Programação Avançada TCC-00.174 Prof.: Anselmo Montenegro www.ic.uff.br/~anselmo anselmo@ic.uff.br Conteúdo: Padrão MVC Documento baseado no material preparado pelo Prof. Luiz André (http://www.ic.uff.br/~lapaesleme/)

Leia mais

Curso de Introdução ao

Curso de Introdução ao Curso de Introdução ao Daniel Destro do Carmo Softech Network Informática daniel@danieldestro.com.br O que é? Struts Struts é um framework gratuito para construção de aplicações web implementadas em Java.

Leia mais

JSP e Servlet Princípio de MVC

JSP e Servlet Princípio de MVC UNIPÊ Centro Universitário de João Pessoa Desenvolvimento para Web HTTP e Servlets JSP e Servlet Princípio de MVC ducaribas@gmail.com 1 12 JSP e Servlets Desvantagens de JSP e Servlets Servlets Escrever

Leia mais

Padrão Arquitetura em Camadas

Padrão Arquitetura em Camadas Padrão Arquitetura em Camadas Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Definição Estimula a organização

Leia mais

Prototype, um Design Patterns de Criação

Prototype, um Design Patterns de Criação Prototype, um Design Patterns de Criação José Anízio Pantoja Maia Este artigo tem como finalidade compreender o funcionamento do padrão de projeto prototype, serão abordados os participantes que compõe

Leia mais

PROJETO PEDAGÓGICO DE CURSOS

PROJETO PEDAGÓGICO DE CURSOS 1 de 6 PROJETO PEDAGÓGICO DE CURSOS BURITREINAMENTOS MANAUS-AM MARÇO / 2015 2 de 6 PACOTES DE TREINAMENTOS BURITECH A Buritech desenvolveu um grupo de pacotes de treinamentos, aqui chamados de BuriPacks,

Leia mais

Desenvolvimento Web TCC-00.226 Turma A-1

Desenvolvimento Web TCC-00.226 Turma A-1 Desenvolvimento Web TCC-00.226 Turma A-1 Conteúdo Arquitetura de Aplicações Distribuídas na Web Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2013.2/tcc-00.226

Leia mais

Desenvolvendo Aplicações Web com NetBeans

Desenvolvendo Aplicações Web com NetBeans Desenvolvendo Aplicações Web com NetBeans Aula 3 Cap. 4 Trabalhando com Banco de Dados Prof.: Marcelo Ferreira Ortega Introdução O trabalho com banco de dados utilizando o NetBeans se desenvolveu ao longo

Leia mais

MedEl: Uma solução de E-Learning utilizando tecnologia Microsoft ASP.NET

MedEl: Uma solução de E-Learning utilizando tecnologia Microsoft ASP.NET MedEl: Uma solução de E-Learning utilizando tecnologia Microsoft ASP.NET Átila Correia Cunha 1, 2, Glaucon Henrique Mauricio Maia 1, 2, Waner Ferreira Tavares 1, 2, Jorge Bergson¹, Rui Gomes Patrício 3

Leia mais

Prova Específica Cargo Desenvolvimento

Prova Específica Cargo Desenvolvimento UNIVERSIDADE FEDERAL DO PIAUÍ Centro de Educação Aberta e a Distância CEAD/UFPI Rua Olavo Bilac 1148 - Centro CEP 64.280-001 Teresina PI Brasil Fones (86) 3215-4101/ 3221-6227 ; Internet: www.uapi.edu.br

Leia mais

Servlets e Applets, funcionamento e comparativo.

Servlets e Applets, funcionamento e comparativo. Servlets e Applets, funcionamento e comparativo. Airon Rabel Teixeira Rua Guarapuava Joinville SC airon@ymail.com Resumo: Este artigo explica de maneira breve o funcionamento de servlets e applets, mostrando

Leia mais

Design Patterns. Viviane Torres da Silva viviane.silva@ic.uff.br. http://www.ic.uff.br/~viviane.silva/2012.1/es1

Design Patterns. Viviane Torres da Silva viviane.silva@ic.uff.br. http://www.ic.uff.br/~viviane.silva/2012.1/es1 Design Patterns Viviane Torres da Silva viviane.silva@ic.uff.br http://www.ic.uff.br/~viviane.silva/2012.1/es1 Sumário Reuso de Software Introdução Benefícios e Desvantagens Visão do Reuso Padrões de Projeto

Leia mais

J550 Testes em Aplicações Web com Cactus

J550 Testes em Aplicações Web com Cactus J550 Testes em Aplicações Web com Cactus Helder da Rocha (helder@acm.org) www.argonavis.com.br 1 Sobre este módulo Este módulo descreve um framework - o Jakarta Cactus - que pode ser utilizado para testar

Leia mais

Gerador de código JSP baseado em projeto de banco de dados MySQL

Gerador de código JSP baseado em projeto de banco de dados MySQL Gerador de código JSP baseado em projeto de banco de dados MySQL Juliane Menin Orientanda Prof. Alexander Roberto Valdameri Orientador Roteiro Introdução e Objetivos Fundamentação Teórica Especificação

Leia mais

Geração e execução de scripts de teste em aplicações web a partir de casos de uso direcionados por comportamento 64

Geração e execução de scripts de teste em aplicações web a partir de casos de uso direcionados por comportamento 64 direcionados por comportamento 64 5 Estudo de caso Neste capítulo serão apresentadas as aplicações web utilizadas na aplicação da abordagem proposta, bem como a tecnologia em que foram desenvolvidas, o

Leia mais

MÓDULO Programação para Web 2

MÓDULO Programação para Web 2 MÓDULO Programação para Web 2 USANDO O JSF Continuação Interdependência e Injeção Instâncias de Managed Beans podem conversar entre si para dividir o processamento das requisições dos usuários de acordo

Leia mais

Curso de Java. Geração de Páginas WEB. TodososdireitosreservadosKlais

Curso de Java. Geração de Páginas WEB. TodososdireitosreservadosKlais Curso de Java Geração de Páginas WEB Aplicação WEB Numa aplicação WEB de conteúdo dinâmico As páginas são construídas a partir de dados da aplicação (mantidos num banco de dados). Usuários interagem com

Leia mais

Padrões de Interação com o Usuário

Padrões de Interação com o Usuário Padrões de Interação com o Usuário Granularidade dos Padrões Padrões estão relacionados a 3 elementos: Contexto ocorre Problema resolve Solução Problemas e Soluções podem ser observados em diferentes níveis

Leia mais

Autenticação e Autorização

Autenticação e Autorização Autenticação e Autorização Introdução A segurança em aplicações corporativas está relacionada a diversos aspectos, tais como: autenticação, autorização e auditoria. A autenticação identifica quem acessa

Leia mais

Histórico de revisões

Histórico de revisões Design Patterns Histórico de revisões Data Versão Descrição Autor 15/1/2014 1.0 Finalização da primeira versão HEngholmJr OBJETIVOS Fornecer uma visão geral sobre Design Patterns visando atingir os requisitos

Leia mais

Java II. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com

Java II. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Java II Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Servlets Servlet Aplicação Java que é executada no servidor que estende a capacidade do servidor Web Alternativa Java para os scripts CGI Gerenciado

Leia mais

PADRÕES DE PROJETO E FRAMEWORK NO DESENVOLVIMENTO DE SOFTWARE

PADRÕES DE PROJETO E FRAMEWORK NO DESENVOLVIMENTO DE SOFTWARE PADRÕES DE PROJETO E FRAMEWORK NO DESENVOLVIMENTO DE SOFTWARE Nelson Ribeiro de Carvalho Júnior 1 RESUMO Atualmente o cenário mundial cuja dependência do software está cada vez mais evidente requer que

Leia mais

Java II. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com

Java II. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Java II Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Por quê JSP? Com Servlets é fácil Ler dados de um formulário Recuperar dados de uma requisição Gerar informação de resposta Fazer gerenciamento

Leia mais

Introdução à Padrões de Projeto. Glauber Magalhães Pires

Introdução à Padrões de Projeto. Glauber Magalhães Pires Introdução à Padrões de Projeto Glauber Magalhães Pires Agenda O que são padrões de projeto? Para que servem e por que utilizá-los? Elementos constituintes Como escolher o padrão a ser usado? Como são

Leia mais

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES Alexandre Egleilton Araújo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil araujo.ale01@gmail.com, jaime@unipar.br Resumo.

Leia mais

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional Juarez Bachmann Orientador: Alexander Roberto Valdameri Roteiro Introdução Objetivos Fundamentação teórica Desenvolvimento

Leia mais

J930. Padrões. Projeto. Introdução. argonavis.com.br. Helder da Rocha (helder@acm.org)

J930. Padrões. Projeto. Introdução. argonavis.com.br. Helder da Rocha (helder@acm.org) Padrões de J930 Projeto Introdução Helder da Rocha (helder@acm.org) argonavis.com.br O que é um padrão? Maneira testada ou documentada de alcançar um objetivo qualquer Padrões são comuns em várias áreas

Leia mais

1Introdução Helder da Rocha (helder@acm.org)

1Introdução Helder da Rocha (helder@acm.org) J930 Padrões Projeto de 1Introdução Helder da Rocha (helder@acm.org) argonavis.com.br O que é um padrão? Maneira testada ou documentada de alcançar um objetivo qualquer Padrões são comuns em várias áreas

Leia mais

Padrões Arquiteturais no Java EE 7

Padrões Arquiteturais no Java EE 7 Padrões Arquiteturais no Java EE 7 Vagner F. Le Roy Júnior Curso de Pós Graduação em Arquitetura de Software Distribuído Pontifícia Universidade Católica de Minas Gerais Belo Horizonte, MG Brasil vagnerleroy@gmail.com

Leia mais

JSF e PrimeFaces. Professor: Ricardo Luis dos Santos IFSUL Campus Sapucaia do Sul

JSF e PrimeFaces. Professor: Ricardo Luis dos Santos IFSUL Campus Sapucaia do Sul JSF e PrimeFaces Professor: Ricardo Luis dos Santos IFSUL 2015 Agenda Introdução Desenvolvimento Web Java Server Faces Exercício 2 Introdução Ao longo dos anos diversas linguagens de programação foram

Leia mais

Padrões do Catálogo J2EE. Lincoln Souza Rocha, M.Sc. (lincolnrocha@gmail.com)

Padrões do Catálogo J2EE. Lincoln Souza Rocha, M.Sc. (lincolnrocha@gmail.com) Padrões do Catálogo J2EE Lincoln Souza Rocha, M.Sc. (lincolnrocha@gmail.com) Livros Deepak Alur, John Crupi e Dan Malks. Core J2EE Patters: Best Practices and Design Strategies, Second Edition (2003).

Leia mais

Uso de Design Patterns e J2EE: um estudo de caso

Uso de Design Patterns e J2EE: um estudo de caso Uso de Design Patterns e J2EE: um estudo de caso Rogério Sorroche (FURB) rs@furb.br Maurício Capobianco Lopes (FURB) mclopes@furb.br Resumo. Este trabalho apresenta um estudo de caso sobre o desenvolvimento

Leia mais

DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS

DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS Emanuel M. Godoy 1, Ricardo Ribeiro Rufino 1 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil godoymanel@gmail.com,

Leia mais

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: WEB Container Aula 04

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: WEB Container Aula 04 Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: WEB Container Aula 04 Agenda 1. 2. Web Container TomCat 2 3 J2EE permite criar aplicações Web dinâmicas (com conteúdo dinâmico)

Leia mais

J550. Apache Struts. Helder da Rocha (helder@acm.org) www.argonavis.com.br

J550. Apache Struts. Helder da Rocha (helder@acm.org) www.argonavis.com.br J550 Apache Struts Helder da Rocha (helder@acm.org) www.argonavis.com.br 1 Sobre este módulo Este é um módulo opcional. Apresenta uma visão geral do framework Struts, usado para desenvolver aplicações

Leia mais

Argo Navis J931 - Padrões de Design J2EE. Versão 2.0 (setembro de 2003) Objetivos

Argo Navis J931 - Padrões de Design J2EE. Versão 2.0 (setembro de 2003) Objetivos de Projeto J931 J2EE Versão 2.0 (setembro de 2003) Helder da Rocha (helder@acm.org) argonavis.com.br Objetivos Identificar os principais padrões de projeto J2EE Distinguir os principais padrões de projeto

Leia mais

GERENCIAMENTO CENTRALIZADO DELL POWERVAULT DL 2000 BASEADO EM TECNOLOGIA SYMANTEC

GERENCIAMENTO CENTRALIZADO DELL POWERVAULT DL 2000 BASEADO EM TECNOLOGIA SYMANTEC GERENCIAMENTO CENTRALIZADO DELL POWERVAULT DL 2000 BASEADO EM TECNOLOGIA SYMANTEC RESUMO EXECUTIVO O PowerVault DL2000, baseado na tecnologia Symantec Backup Exec, oferece a única solução de backup em

Leia mais

Guia para Iniciantes do WebWork

Guia para Iniciantes do WebWork Guia para Iniciantes do WebWork Marcelo Martins Este guia descreve os primeiros passos na utilização do WebWork Introdução Desenvolver sistemas para Web requer mais do que simplesmente um amontoado de

Leia mais

Java EE 6. A revolução do. Um overview sobre as novidades da JSR 316. a r t i g o

Java EE 6. A revolução do. Um overview sobre as novidades da JSR 316. a r t i g o a r t i g o Pedro Henrique S. Mariano (pedro.mariano@caelum.com.br) técnologo em Análise e Desenvolvimento de Sofware pela FIAP, possui as certificações SCJP 6 e SCRUM master.trabalha como consultor e

Leia mais

Arquiteturas de Aplicações Web. Leonardo Gresta Paulino Murta leomurta@ic.uff.br

Arquiteturas de Aplicações Web. Leonardo Gresta Paulino Murta leomurta@ic.uff.br Arquiteturas de Aplicações Web Leonardo Gresta Paulino Murta leomurta@ic.uff.br Aplicações Convencionais vs. Web Aplicações convencionais Escritas usando uma linguagem de programação (ex.: Java) Sites de

Leia mais

Executando comandos do Sistema Operacional em uma aplicação WEB Java

Executando comandos do Sistema Operacional em uma aplicação WEB Java Executando comandos do Sistema Operacional em uma aplicação WEB Java Criei uma aplicação muito simples que demonstra como um Servlet pode invocar uma classe que efetua um comando qualquer no sistema operacional.

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Apresentação da Disciplina Edirlei Soares de Lima Objetivos da Disciplina Apresentar e discutir técnicas avançadas de Análise e Projeto de

Leia mais

Engenharia de Software I

Engenharia de Software I Engenharia de Software I Rogério Eduardo Garcia (rogerio@fct.unesp.br) Bacharelado em Ciência da Computação Aula 05 Material preparado por Fernanda Madeiral Delfim Tópicos Aula 5 Contextualização UML Astah

Leia mais

Design Patterns: Padrões para toda a vida

Design Patterns: Padrões para toda a vida Design Patterns: Padrões para toda a vida Palestrantes: Elaine Quintino da Silva Formada em Ciência da Computação pela Unifenas-MG. Possui Mestrado e Doutorado em Ciência da Computação pelo ICMC-USP. Atualmente

Leia mais

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br Java Marcio de Carvalho Victorino www.dominandoti.eng.br 3. Considere as instruções Java abaixo: int cont1 = 3; int cont2 = 2; int cont3 = 1; cont1 += cont3++; cont1 -= --cont2; cont3 = cont2++; Após a

Leia mais

Padrões de Projeto de Software Orientado a Objetos

Padrões de Projeto de Software Orientado a Objetos Padrões de Projeto de Software Orientado a Objetos Ricardo Argenton Ramos [Baseado nos slides do professor Fabio Kon - USP] 1 Padrões de Projeto de Software OO Também conhecidos como Padrões de Desenho

Leia mais

J2EE. Exemplo completo Utilização Servlet. Instrutor HEngholmJr

J2EE. Exemplo completo Utilização Servlet. Instrutor HEngholmJr J2EE Exemplo completo Utilização Servlet Instrutor HEngholmJr Page 1 of 9 AT09 Exemplo complete Utilização Servlet Version 1.1 December 5, 2014 Indice 1. BASEADO NOS EXEMPLOS DE CÓDIGO DESTA APOSTILA,

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 5 Servidores de Aplicação

Leia mais

Introdução a Servlets e JSP. Prof. Samuel Martins samuellunamartins at gmail dot com Faculdade São Miguel

Introdução a Servlets e JSP. Prof. Samuel Martins samuellunamartins at gmail dot com Faculdade São Miguel Introdução a Servlets e JSP samuellunamartins at gmail dot com Conteúdo da aula Introdução a HTML Introdução a Servlets Preparando o ambiente de programação Exemplo de Servlets 2 Websites na década de

Leia mais

Reuso. Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior

Reuso. Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Reuso Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Reutilização de Software Na maioria das áreas de engenharia de software, sistemas são desenvolvidos

Leia mais

Técnicas de Reuso de Software aplicados na elaboração de Arquiteturas Corporativas

Técnicas de Reuso de Software aplicados na elaboração de Arquiteturas Corporativas MAC0499-Trabalho de Formatura Monografia USP - Universidade de São Paulo Instituto de Matemática e Estatística Bacharelado em Ciência da Computação Técnicas de Reuso de Software aplicados na elaboração

Leia mais

Laboratório de ENGSOF Estudo de Caso. Prof. André Pereira, MSC, PMP

Laboratório de ENGSOF Estudo de Caso. Prof. André Pereira, MSC, PMP Laboratório de ENGSOF Estudo de Caso Aula de Hoje: Desenvolver um sistema UML inteiro: Aplicação Banco Online. Nosso Estudo de Caso! RSA V7 O que será feito para o projeto? 1) Criando um Projeto UML: 1)

Leia mais

Programação com Objectos. Programação Centrada em Objectos. Home Page. Ano Lectivo 2008/2009 1º Semestre. Objectivos Programa Bibliografia Avaliação

Programação com Objectos. Programação Centrada em Objectos. Home Page. Ano Lectivo 2008/2009 1º Semestre. Objectivos Programa Bibliografia Avaliação Última actualização: 25 de Outubro de 2008 Ano Lectivo 2008/2009 1º Semestre ção com Objectos ção Centrada em Objectos Docente: Paulo Leocádio Web: www.uac.pt/~pleocadio E-mail: pleocadio@uac.pt : Competências:

Leia mais

Prof.ª Esp. Talita Pagani

Prof.ª Esp. Talita Pagani Especialização em Engenharia de Software Prof.ª Esp. Talita Pagani talita.cpb@gmail.com @talitapagani 21/02/2014 Design Patterns Aula 1 Prof.ª Esp. Talita Pagani 1 Informações gerais 1. Definição de Design

Leia mais

Programação Avançada. Padrões de Projeto de Software. Fonte: Oswaldo B. Peres e K19 Treinamentos

Programação Avançada. Padrões de Projeto de Software. Fonte: Oswaldo B. Peres e K19 Treinamentos Programação Avançada Padrões de Projeto de Software 1 Fonte: Oswaldo B. Peres e K19 Treinamentos Introdução Projetar software OO reusável e de boa qualidade é uma tarefa difícil; Para realizar essa tarefa

Leia mais

PictureFrame: Um padrão para criação de imagens reutilizáveis

PictureFrame: Um padrão para criação de imagens reutilizáveis PictureFrame: Um padrão para criação de imagens reutilizáveis Paulo A. S. Costa 1,2,3, Ismayle S. Santos 1,2,3, Rossana M. C. Andrade 1,2,4 1 Grupo de Redes, Engenharia de Software e Sistemas - GREaT 2

Leia mais

ANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.

ANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação. ANEXO 11 O MATRIZ Para o desenvolvimento de sites, objeto deste edital, a empresa contratada obrigatoriamente utilizará o framework MATRIZ desenvolvido pela PROCERGS e disponibilizado no início do trabalho.

Leia mais

DESENVOLVENDO APLICAÇÕES UTILIZANDO JAVASERVER FACES E MVC

DESENVOLVENDO APLICAÇÕES UTILIZANDO JAVASERVER FACES E MVC DESENVOLVENDO APLICAÇÕES UTILIZANDO JAVASERVER FACES E MVC Felipe Moreira Decol Claro 1, Késsia Rita da Costa Marchi 1 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil felipe4258@hotmail.com, kessia@unipar.br

Leia mais

Padrões de projeto 1

Padrões de projeto 1 Padrões de projeto 1 Design Orientado Objeto Encapsulamento Herança Polimorfismo Design Patterns 2 Responsabilidades Booch e Rumbaugh Responsabilidade é um contrato ou obrigação de um tipo ou classe. Dois

Leia mais

Introdução ao OpenUP (Open Unified Process)

Introdução ao OpenUP (Open Unified Process) Introdução ao OpenUP (Open Unified Process) Diferentes projetos têm diferentes necessidades de processos. Fatores típicos ditam as necessidades de um processo mais formal ou ágil, como o tamanho da equipe

Leia mais

PDS - DATASUS. Processo de Desenvolvimento de Software do DATASUS

PDS - DATASUS. Processo de Desenvolvimento de Software do DATASUS PDS - DATASUS Processo de Desenvolvimento de Software do DATASUS Coordenação Geral de Arquitetura e Engenharia Tecnológica Coordenação de Padronização e Qualidade de Software Gerência de Padrões e Software

Leia mais

PADRÕES DE SOFTWARE. Jerffeson Teixeira de Souza, Ph.D. Tarciane de Castro Andrade. Grupo de Padrões de Software da UECE (GPS.

PADRÕES DE SOFTWARE. Jerffeson Teixeira de Souza, Ph.D. Tarciane de Castro Andrade. Grupo de Padrões de Software da UECE (GPS. PADRÕES DE SOFTWARE 1 Jerffeson Teixeira de Souza, Ph.D. Tarciane de Castro Andrade Grupo de Padrões de Software da UECE (GPS.UECE) Julho-2009 CONTEÚDO Introdução aos Padrões de Software O quê são padrões?

Leia mais

CONCORRÊNCIA AA Nº 05/2009 BNDES ANEXO VI PROJETO BÁSICO: REQUISITOS DE ARQUITETURA DE SOFTWARE. Sumário

CONCORRÊNCIA AA Nº 05/2009 BNDES ANEXO VI PROJETO BÁSICO: REQUISITOS DE ARQUITETURA DE SOFTWARE. Sumário CONCORRÊNCIA AA Nº 05/2009 BNDES ANEXO VI PROJETO BÁSICO: REQUISITOS DE ARQUITETURA DE SOFTWARE Sumário 1. INTRODUÇÃO...264 2. FRAMEWORK DE INTEGRAÇÃO...264 3. ARQUITETURA DE APLICAÇÕES...265 4. ARQUITETURA

Leia mais

Curso - Padrões de Projeto Módulo 2: Padrões de Criação

Curso - Padrões de Projeto Módulo 2: Padrões de Criação Curso - Padrões de Projeto Módulo 2: Padrões de Criação Vítor E. Silva Souza vitorsouza@gmail.com http://www.javablogs.com.br/page/engenho http://esjug.dev.java.net Sobre o Instrutor Formação: Java: Graduação

Leia mais

J550. Helder da Rocha (helder@acm.org) www.argonavis.com.br

J550. Helder da Rocha (helder@acm.org) www.argonavis.com.br J550 Helder da Rocha (helder@acm.org) www.argonavis.com.br 1 O que são Filtros Um filtro éum componente Web que reside no servidor Intercepta as requisições e respostas no seu caminho até o servlet e de

Leia mais

Java na WEB Servlet. Sumário

Java na WEB Servlet. Sumário 1 Java na WEB Servlet Objetivo: Ao final da aula o aluno será capaz de: Utilizar Servlets para gerar páginas web dinâmicas. Utilizar Servlets para selecionar páginas JSPs. Utilizar Servlets como elemento

Leia mais

Java Server Pages. Arquitectura de uma aplicação distribuída em Internet. Figura 1 Modelo 2

Java Server Pages. Arquitectura de uma aplicação distribuída em Internet. Figura 1 Modelo 2 Java Server Pages Arquitectura de uma aplicação distribuída em Internet Figura 1 Modelo 2 A implementação desta arquitectura, com um controlador que direcciona a execução de s, de Servlets e de JavaBeans,

Leia mais

RESUMO DA SOLUÇÃO CA ERwin Modeling. Como eu posso gerenciar a complexidade dos dados e aumentar a agilidade dos negócios?

RESUMO DA SOLUÇÃO CA ERwin Modeling. Como eu posso gerenciar a complexidade dos dados e aumentar a agilidade dos negócios? RESUMO DA SOLUÇÃO CA ERwin Modeling Como eu posso gerenciar a complexidade dos dados e aumentar a agilidade dos negócios? O CA ERwin Modeling fornece uma visão centralizada das principais definições de

Leia mais

Enterprise Java Beans

Enterprise Java Beans Enterprise Java Beans Prof. Pasteur Ottoni de Miranda Junior DCC PUC Minas Disponível em www.pasteurjr.blogspot.com 1-O que é um Enterprise Java Bean? O Entertprise Java Bean (EJB) é um componente server-side

Leia mais

Padrões Arquiteturais e de Integração - Parte 1

Padrões Arquiteturais e de Integração - Parte 1 1 / 58 - Parte 1 Erick Nilsen Pereira de Souza T017 - Arquitetura e Design de Aplicações Análise e Desenvolvimento de Sistemas Universidade de Fortaleza - UNIFOR 11 de fevereiro de 2015 2 / 58 Agenda Tópicos

Leia mais

Demoiselle Report Guide. Demoiselle Report. Marlon Carvalho. Rodrigo Hjort. Robson Ximenes

Demoiselle Report Guide. Demoiselle Report. Marlon Carvalho. <marlon.carvalho@gmail.com> Rodrigo Hjort. <rodrigo.hjort@gmail.com> Robson Ximenes Demoiselle Report Guide Demoiselle Report Marlon Carvalho Rodrigo Hjort Robson Ximenes Demoiselle Report... v 1. Configuração

Leia mais

J550 Integração com Bancos de Dados

J550 Integração com Bancos de Dados J550 Integração com Bancos de Dados Helder da Rocha (helder@acm.org) www.argonavis.com.br 1 Objetivos Este módulo apresenta estratégias para conectar servlets com a camada de dados usando um DAO - Data

Leia mais

Introdução. Templates. Configurações. Componentes. Prof. Enzo Seraphim

Introdução. <facelets> Templates. Configurações. Componentes. Prof. Enzo Seraphim Introdução Templates Configurações Componentes Prof. Enzo Seraphim Definição Linguagem de descrição de páginas (PDL Page Description Language) criada para JSF. Estabelece templates que suportam

Leia mais

Minha primeira aplicação utilizando Java Server Faces + Glassfish

Minha primeira aplicação utilizando Java Server Faces + Glassfish Minha primeira aplicação utilizando Java Server Faces + Glassfish Este tutorial apresenta de forma simples, como iniciar no desenvolvimento com o framework Java Server faces 1.2, utilizando-se o servidor

Leia mais

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas)

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Web Container: e JSP Sumário Protocolo HTTP Exemplos de JSP (Java Server Pages) Exemplos JSP 2 Protocolo HTTP URL: Um URL (Uniform

Leia mais

Questionário. A ferramenta auxilia na alocação de Não (0) x x x. Satisfatório (5) complexidade de um caso de uso? de uso (72) Sim (10)

Questionário. A ferramenta auxilia na alocação de Não (0) x x x. Satisfatório (5) complexidade de um caso de uso? de uso (72) Sim (10) Questionário Nível Avaliado Gerador de plano de teste Gerador de dados Função/característica do produto Gestão dos dados do plano de teste (51) Perguntas Pontuação Selenium BadBoy Canoo A ferramenta auilia

Leia mais