Desafios na construção de um Framework de acesso a dados em PHP

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

Download "Desafios na construção de um Framework de acesso a dados em PHP"

Transcrição

1 4

2 5 Desafios na construção de um Framework de acesso a dados em PHP Dimas Ferreira Vidal O presente artigo procura mostrar os principais desafios no processo de desenvolvimento do framework PHPO2_DB de acesso a dados em PHP, a partir das principais motivações que levaram ao seu desenvolvimento. São apresentadas soluções de arquitetura e padrões de projeto de software que foram utilizados, bem como uma apresentação dos resultados obtidos neste processo, através da descrição dos componentes e de suas funcionalidades. O framework PHPO2_DB é um dos frameworks integrantes da plataforma PHPO2 de desenvolvimento web, baseada em PHP, projeto este apoiado pela Diretoria de Pesquisa Aplicada da Universidade Estácio de Sá. Palavras chaves: Framework, Proxy de acesso a dados, PHP, linguagem de programação. This article attempts to show the main challenges in PHPO2_DB framework of the development process of data access in PHP, from the main motivations that led to its development. Architecture solutions are presented and software design patterns that were used as well as a presentation of the results obtained in this process, through the description of the components and their functionality. The PHPO2_DB framework is one of the frameworks members of PHPO2 web development platform based on PHP, this project supported by the Applied Research Board of the University Estacio de Sa. Key words: Framework, Proxy data access, PHP programming language.

3 6 O autor: Dimas Ferreira Vidal Economista pela UFRRJ e administrador pela UNESA, possui mestrado profissional em Administração e Desenvolvimento Empresarial pela UNESA, pós-graduação em Administração de Marketing e em Desenvolvimento de Sistemas Baseado em Objetos. Pesquisador e professor da Universidade Estácio de Sá, possui experiência em gestão financeira e no desenvolvimento de sistemas de informação de apoio a decisão empresarial. Introdução Diversos são os problemas envolvidos no desenvolvimento de sistemas orientado a objeto. Alguns, no entanto, se destacam. O primeiro, e talvez o mais importante, está relacionado ao alto nível de complexidade envolvida e a maneira de gerenciá-la. Em boa parte das vezes, a modularização de um sistema permite dividir um sistema complexo em subsistemas mais simples e, por conseguinte, mais fáceis de serem gerenciados. Dentre as diversas técnicas de modularização, a separação da complexidade de um sistema em camadas foi a que mais se transformou em um padrão de mercado. Para exemplificar o uso de camadas em um sistema, podemos destacar um dos padrões mais utilizados para integração entre um sistema orientado a objetos e banco de dados relacional. A figura 1 representa esta lógica. Figura 1 Representação do padrão de camadas

4 7 Esta questão nos leva ao segundo grande problema. O acoplamento necessário à integração e dependência entre os diversos objetos e componentes de um sistema orientado a objetos. Se considerarmos que o principio por trás do paradigma orientado a objetos é pensar em objetos ou em componentes como uma representação máxima do padrão de camadas, nos faz pensar em objetos e componentes de software o mais desacoplados possíveis um dos outros, permitindo com isso uma maior independência, flexibilidade e reuso de seus recursos. Estas características são fundamentais ao processo de desenvolvimento, de manutenção, de adição recursos necessários a novos requisitos de sistema. Isto nos leva ao terceiro grande problema. Como resolver a questão de dependência e comunição entre os objetos e componentes de software? Como fazê-lo com o menor nível de acoplamento possível? Um framework tem como principal função implementar soluções para estes problemas, tirando do desenvolvedor a responsabilidade de fazê-lo. Para tanto, um framework deve fornecer uma arquitetura, funcionalidades e mecanismos de controle que permitam a solução de problemas gerais ou específicos a que ele se destina. Isto nos leva a um dos principais conceitos que nos ajuda a definir um framework, o conceito da inversão de controle. Ao desenvolver um sistema ou parte de um sistema a partir de um framework, o que se espera é transferir o controle das soluções dos problemas apresentados a ele. Isto permite ao desenvolvedor se dedicar às soluções dos problemas de domínio do negócio ou do problema (ELLIOTT, O BRIEN & FOWLER, 2009 ; FOWLER at. al, 2008; HORSTMANN, 2007). Padrões de Arquitetura e de Projeto no desenvolvimento de sistemas Orientado a Objetos. Arquitetura em sistema de software não é um conceito fácil de ser definido e, por conseguinte, não há unanimidade ao fazê-lo. De uma maneira em geral a arquitetura de um sistema pode ser representada pela visão geral dos diversos recursos e componentes de um software e de como eles se organizam. Um sistema pode apresentar diversas soluções em arquitetura, uma para cada tipo de questão envolvida ou problemas para os quais são propostas soluções arquiteturais. No entanto, é através da arquitetura que se pode ter uma compreensão geral de um sistema ou de como ele será desenvolvido (FOWLER at. al., 2008). Um padrão de arquitetura, assim como um padrão de projeto busca descrever um problema geral ou específico de arquitetura ou de projeto que ocorre de forma sistemática para o qual é proposta uma solução que possa ser aplicada todas as vezes que problemas de mesma natureza surgirem (FOWLER at. al., 2008, GAMMA at. al., 2008).

5 8 Em geral, um padrão, seja de arquitetura, seja de projeto, é representado pelos seguintes elementos: 1: O nome do padrão Trata-se de uma referencia que pode ser utilizada para descrever a natureza do problema e a solução proposta. 2: A descrição do problema Descreve o contexto do problema, seja ele um problema geral ou específico. 3: A solução proposta Descreve o conjunto de elementos que compõem a solução proposta. De uma maneira em geral, as soluções propostas apresentam um arcabouço geral, deixando a cargo do projetista as adequações específicas para um contexto específico. 4: Consequências De uma maneira em geral, um padrão proposto apresenta um conjunto de características positivas e negativas, vantagens e desvantagens de se aplicar a solução proposta. Dentre os diversos padrões de arquitetura já apresentados, destacam-se o Padrão de Arquitetura em Camadas, dentre as quais as mais conhecidas são a Arquitetura Cliente Servidor, Arquitetura MVC Model, View and Control, e Arquitetura de Mapeamento Objeto Relacional. Seja qual for a arquitetura em camadas, seu principal objetivo será isolar em problemas menores e mais fáceis de serem gerenciados um sistema complexo (FOWLER at. al., 2008). Dentre os padrões de projeto, destacam-se os padrões desenvolvidos por Gamma, Helm, Johnson e Vlissides (2008). Conhecidos como a Gang do Quatros. Estes autores descreveram 23 padrões divididos três tipos de problemas para os quais propunham soluções. São eles Padrões de Criação de Objetos, Padrões Estruturais, e Padrões Comportamentais. No Quadro 1 são apresentados os padrões, bem como as descrições de seus propósitos. Quadro 1 Padrões de Projeto desenvolvidos pela Gang dos Quatro Padrões de Criação Abstract Factory: Fornecer uma interface para criação de famílias de objetos relacionados ou independentes sem especificar suas classes concretas. Builder: Separar a construção de um objeto complexo de sua representação, de modo que o mesmo processo de construção possa criar diferentes representações. Factory Method: Definir uma interface para criar um objeto, mas deixar as subclasses decidirem qual classe a ser instanciada.

6 9 Prototype: Especificar os tipos de objetos a serem criados usando uma instância prototípica e criar novos objetos copiando este protótipo. Singleton: Garantir que uma classe tenha somente uma instância e fornecer um ponto global de acesso a ela. Padrões Estruturais Adapter: Converter a interface de uma classe em outra interface esperada pelos clientes. O Adapter permite que classes que tenham interfaces incompatíveis trabalhem em conjunto. Bridge: Separar uma abstração de sua implementação, de modo que as duas possam variar independentemente. Composite: Compor objetos em estrutura de arvore para representar hierarquias do tipo partes-todo. O composite permite que os clientes tratem objetos individuais e composição de objetos de maneira uniforme. Decorator: Atribuir responsabilidades adicionais a um objeto dinamicamente. Os decorators fornecem uma alternativa flexível a subclasses para extensão da funcionalidade. Facade: Fornecer uma interface unificada para um conjunto de interfaces em um subsistema. O Facade define uma interface de nível mais alto que torna o subsistema mais fácil de usar. Flyweight: Usar compartilhamento para suportar grandes quantidades de objetos, de granularidade fina fácil de usar. Proxy: Fornecer um objeto representante, ou marcador de outro objeto, para controlar o acesso ao mesmo. Padrões Comportamentais Chain of Responsibility: Evitar o acoplamento do remetente de uma solicitação ao seu destino, dando a mais de um objeto a chance de tratar a solicitação. Command: Encapsular uma solicitação como objeto, desta forma permitindo que você parametrize clientes com diferentes solicitações, enfileire ou registre solicitações e suporte operações que podem ser desfeitas. Interpreter: Dada uma linguagem, define uma representação para sua gramática juntamente com um interpretador. Iterator: Fornecer uma maneira de acessar sequencialmente os elementos de um objeto agregado sem expor sua representação subjacente. Mediator: Definir um objeto que encapsula como um conjunto de objetos interage.

7 10 Memento: Sem violar o encapsulamento, captura e externaliza um estado interno de um objeto, de modo que o mesmo possa posteriormente ser restaurado para este estado. Observer: Define uma dependência um-para-muitos entre objetos, de modo que, quando um objeto muda de estado, todos os seus dependentes são automaticamente notificados e atualizados. State: Permite que um objeto altere seu comportamento quando seu estado interno muda. O objeto parecerá ter mudado sua classe. Strategy: Define uma família de algoritmos, encapsula cada um deles e fazê-los intercambiáveis. O Strategy permite que o algoritmo varie independente dos clientes que o utilizam. Template Method: Define o esqueleto de um algoritmo em uma operação, postergando a definição em alguns passos para as subclasses. Visitor: Representa uma operação a ser executada sobre os elementos da estrutura de um objeto. Fonte: Padrões de projeto da Gang dos Quatro (GAMMA at. al., 2008). Motivações para o desenvolvimento de um framework em PHP O PHP nasceu como uma linguagem de programação para a web. Suas características mais relevantes são: simplicidade, código aberto, desenvolvimento colaborativo, integração ao servidor web, dentre outras. Ao longo dos anos o PHP evoluiu e cresceu exponencialmente, muito devido a contribuição de dezena de milhares de colaboradores em todas as partes do mundo, representando hoje a maior infraestrutura de infraestrutura web disponível, particularmente com a combinação do PHP, o servidor web Apache e o servidor de banco de dados MySql. Esta evolução transformou o PHP em uma plataforma completa, flexível, com um volume de recursos sem igual na indústria de desenvolvimento, disponível a qualquer desenvolvedor em virtude de ter seu código fonte aberto. No entanto, este crescimento foi resultado de um desenvolvimento descentralizado e em boa parte das vezes, sem fazer uso de padrões de projetos maduros e disseminados no mercado. Com relação aos recursos disponíveis pelo PHP para gerenciar acesso a banco de dados relacional, estes sofrem as consequências deste processo. Apesar de poderosos e de uma diversidade

8 11 comparável às grandes plataformas de desenvolvimento, estas padecem da falta de uma interface padrão, e em sua maioria se apresentam confusas. Com a versão 5, foram introduzidos no PHP recursos mais maduros de Orientação a Objetos. Estes novos recursos criaram a condição do surgimento de frameworks e ferramentas de abstração dos diversos recursos disponíveis no PHP, fazendo uso das melhores práticas de desenvolvimento, padrões de arquitetura e de projetos, minimizando assim os efeitos deste crescimento desordenado (SOARES, 2013; DALL OGLIO, 2013; DALL OGLIO, 2009; NIEDERAUER, 2008). PHPO2_DB Framework de acesso a fonte de dados em Php. O PhpO2_db é um dos frameworks integrantes da plataforma de desenvolvimento web PHPO2 que está sendo desenvolvida. No entanto, ele foi projetado para funcionar totalmente independente, podendo ser utilizado em qualquer aplicação web que faça uso de PHP. Abaixo são apresentados objetivos e soluções a que ele se propõe: 1. Desacoplar qualquer necessidade de acesso a dados aos mecanismos que o fazem. 2. Permitir que a fonte de dados seja trocada sem que isto afete a aplicação. 3. Disponibilizar uma interface de acesso aos recursos do framework que seja de domínio da comunidade. 4. Permitir a integração dos diversos recursos disponibilizados pelo PHP através de uma interface amigável e de fácil aprendizado. 5. Disponibilizar mecanismos de configuração dos recursos de acesso a dados independentes da aplicação. 6. Implementar mecanismos de segurança que permitam aplicar as melhores práticas de mercado. A figura 2 representa a interface da camada de serviço do framework. Esta interface deverá ser usada, independente da fonte de dados que o sistema fizer uso.

9 12 Figura 2 Interface da camada de serviço do PhpO2_db. DataProvider: A partir de uma classe de configuração, este componente é o responsável por retornar um objeto Connection selecionado dinamicamente em função da definição do Servidor de Banco de Dados. Para isso, ele fornece um método estático, o qual permite acesso à funcionalidade diretamente pela classe DataProvider. Abaixo um exemplo do uso do método: Figura 3 Exemplo de método createconnection

10 13 DbConfig: Classe destinada a fornecer as configurações necessárias aos provedores de acesso a dados. As configurações deverão ser feitas diretamente nas propriedades da classe, pois por uma necessidade de segurança, não estão disponíveis métodos para adicionar ou alterar os valores de suas propriedades. Dentre as propriedades disponíveis se destacam as três reservadas para os tipos de usuários e suas respectivas senhas. O objetivo é permitir ao desenvolvedor utilizar usuários com as permissões adequadas aos requisitos de segurança, dependendo das funcionalidades que serão utilizadas. Esta classe não estará disponível para ser utilizada pela aplicação, ficando reservada ao Framework. Na figura 4 são apresentadas as propriedades da classe DbConfig que deverão ser configurada pelo desenvolvedor. Figura 4 Exemplo de configuração de DbConfig Connection: Interface responsável por estabelecer conexão com o servidor de banco de dados. A definição da classe concreta de conexão é estabelecida dinamicamente em função das definições disponibilizadas pela classe DbConfig. A interface Connection disponibiliza, ainda, um método abstrato responsável por retornar objetos Statement ou StatementCollection. A figura 5 apresenta exemplos de métodos da classe Connection.

11 14 Figura 5 Exemplo de métodos da classe Connection Statement: Interface responsável executar strings Sql a partir de uma conexão estabelecida. Estão disponíveis duas classes concretas desta interface, para cada servidor suportado. Uma para executar comandos únicos e outra para executar uma coleção de string Sql. Ao executar um comando de consulta, ambas as classes retorna Datasets, seja diretamente, no caso de classes Statement, seja através da coleção, no caso de classes StatementCollection. A figura 6 apresenta exemplos de métodos da classe Statement. Figura 6 Exemplo de métodos da classe Statement

12 15 A figura 7 apresenta exemplo do uso do objeto StatementCollection. Figura 7 Exemplo de uso da classe StatementCollection Dataset: Interface responsável por armazenar resultados de consultas Sql a banco de dados. As classes concretas Dataset implementam métodos de navegação, de iteração e de acesso aos dados armazenados. A figura 7 mostra exemplo de funcionalidades do Dataset. Figura 8 Exemplo de métodos da classe Dataset

13 16 Desafios de projeto e desenvolvimento do framework PhpO2_db Dois aspectos principais nortearam o projeto do framework PhpO2_db. O primeiro foi transferir para o framework a responsabilidade de gerenciamento do acesso às fontes de dados através de um provedor de dados e a definição de quais componentes e objetos seriam necessários para fazê-lo. O segundo foi disponibilizar uma camada de serviço API mais amigável, tal que promovesse uma abstração das complexidades dos recursos e dos proxys de acesso a gerenciadores de banco de dados disponibilizados pelo PHP. Este segundo aspecto assumiu uma relevância maior em virtude das questões apresentadas anteriormente. Com relação ao primeiro aspecto, o framework disponibiliza um componente DataProvider responsável pela definição do provedor de acesso que será utilizado pela aplicação. Para tanto, ele faz uso de uma classe estática de configuração a qual fica responsável pela definição dos componentes que serão utilizados em função do servidor gerenciador de banco de dados SGDB (Figura 2). O componente Dataprovider faz uso do design pattern Factory Method para definir e retornar quais objetos fará uso, a partir da informação do SGDB disponibilizada pela classe de configuração. Este método, por ser estático, permite que se tenha acesso a um objeto connection através de uma chamada pela própria classe. Ele faz uso de um recurso do PHP que permite criar uma instância de uma classe dinamicamente, como mostra o código da figura 4, abaixo. Figura 4 Método fábrica createconnection. Além de definir dinamicamente a classe que fornecerá a instância de conexão, o método fabrica também faz a inclusão do arquivo onde a classe foi definida, isto em tempo execução. Para

14 17 garantir que uma sessão da aplicação não faça uso de mais de uma instância da classe de conexão, foi utilizado o design pattern Singleton, como mostra a figura 4 (XAVIER, 2011; ZANDSTRA, 2009, GAMMA at. al, 2008). Como um dos objetivos principais do framework era disponibilizar uma interface amigável de acesso à camada de servido de acesso aos dados, foram utilizados diversos design patterns, dentre os quais se destaca o Façade (GAMMA at. al, 2008), o qual permitiu isolar a aplicação cliente das complexidades e problemas levantados sobre os recursos nativos do PHP, através de uma interface única e amplamente aceita pela comunidade. A figura 5 mostra as classes de abstração implementadas pelo padrão Fachada design patterns Façada. Figura 5 Abstrações implementadas pelo design patterns Façada Estas abstrações fazem uso do design pattern Abstract Factory para definir em tempo de execução quais classes concretas serão instanciadas, em função das definições fornecidas por uma classe de configuração. Como em alguns casos, estas classes fazem uso de classes nativas do PHP, elas também fazem uso do padrão Singleton para que objetos responsáveis por abrir conexão com banco de dados forneçam uma única instância deste objeto. Fazem uso também do design pattern Strategy com a finalidade de estender a estas classes funcionalidades de filtros, tais como filtros contra injeção de SQL. O framework introduz, também, instrumentos para a adoção de práticas de segurança aos dados provenientes de SGDB, disponibilizando ao desenvolvedor o acesso a três níveis de usuários de banco de dados. Assim o desenvolvedor poderá usar um usuário que tenha somente permissão de leitura ao banco de dados para algumas das funcionalidades do sistema, bem como usuários com permissão de leitura e gravação, ou ainda um terceiro com uma permissão mais ampla, quando este

15 18 for necessário. O gerenciamento deste recurso fica a cargo da classe de configuração, garantindo um total desacoplamento entre a aplicação e o gerenciamento de permissões (LISBOA, 2013; ZANDSTRA, 2009; GAMMA at. al, 2008). As figuras 6, 7 e 8 apresentam exemplos de aplicação dos padrões adotados. Figura 6 Método do uso do padrão Singleton e do padrão de definição de nível de usuário. Figura 7 Apresentação da arquitetura a partir dos design patterns adotados

16 19 Figura 8 Exemplo do uso do uso do padrão Strategy Assim como diversos mecanismos maduros de acesso a banco de dados, o framework PhpO2_db faz uso do design pattern Command com o propósito de encapsular as solicitações de comandos ao banco de dados através da classe abstrata Statement. O framework disponibiliza, ainda, os principais recursos de controles de acesso a dados, tais como, preparação de consulta SQL, filtros de tratamento de variáveis em função de requisitos de segurança e controle de transação, etc. Por fim, o framework disponibiliza a classe abstrata Dataset responsável por armazenar os dados resultantes de uma consulta realizada pelo Statement, disponibilizando recursos de navegação e iteração pela matriz de resultados. TRANSAÇÕES Tirando proveito dos recursos disponíveis no PHP, o framework disponibiliza recursos de transação a partir dos Servidores de Bancos de Dados que os implementam. Para usar os recursos de transação do framework será necessário fazer uso dos métodos BEGIN, COMMIT E ROLLBACK.

17 20 O método BEGIN abre uma transação no servidor de banco de dados. Este método permite que se faça uso dos métodos COMMIT E ROLLBACK. O método COMMIT efetiva uma transação, caso não haja algum problema. Retorna true ou false no caso de sucesso ou insucesso na transação. O método ROLLBACK retorna o status anterior do banco de dados antes da transação, desfazendo possíveis alterações sofridas por este. TRATAMENTO DE EXCEÇÕES A partir da versão 5 do PHP estão disponíveis mecanismos maduros de tratamento de exceções. Estes mecanismos foram adicionados ao framework PHPO2_DB, tal que permita ao desenvolvedor mais flexibilidade no tratamento de erros e das exceções que são lançadas pelo framework. O PHP disponibiliza o bloco TRY para adicionar toda a lógica a ser implementada com os recursos do framework, e o bloco CATCH para implementar a lógica do tratamento do erro. Neste caso, o desenvolvedor poderá apresentar a mensagem de erro disparada pela exceção, poderá redirecionar a outra página usando os recursos do PHP, dentre outras possíveis ações. Por uma questão de segurança, o framework disponibiliza dois tipos de apresentação das mensagens de erro, conforme a configuração da classe Dbconfig. Caso a propriedade status_message da classe DbConfig esteja definida como DEV (desenvolvimento), em caso de exceções, os textos das mensagem de erro serão apresentados. Caso esteja definida como PRO (produção), só serão apresentados o códigos de erro. Exemplo da aplicação do tratamento de exceções do framework (figura 9).

18 21 Figura 9 Exemplo da aplicação do tratamento de exceções do framework CONCLUSÕES Neste artigo foram apresentadas algumas das questões que envolveram o projeto e o desenvolvimento de um framework de acesso a dados em PHP. Foram apresentadas as motivações e os principais objetivos que levaram ao seu desenvolvimento, bem como, as principais soluções que foram implementadas, sejam elas viabilizadas por padrões de arquitetura e de projetos maduros, sejam elas em função da busca de soluções de integração dos diversos recursos que o PHP disponibiliza. Por se tratar de uma versão beta, algumas questões foram deixadas para serem tratadas de forma mais adequada nas próximas etapas do desenvolvimento, particularmente aquelas

19 22 relacionadas com a gestão de estado de alguns componentes, no entanto, as alterações que realizadas não afetarão os mecanismos de acesso às suas funcionalidades, ou seja, as mudanças internas não afetarão sua interface. Em virtude de estar em fase inicial de desenvolvimento, só estará disponível para download a biblioteca de acesso ao servidor Mysql. No entanto, já estão em fase de teste os componentes para outros servidores. Para aqueles que queiram testar o framework, juntamente com os arquivos do framework, também está disponível para download o e-book PHPO2_DB Framework de acesso a dados: GUIA RÁPIDO com a descrição da biblioteca de componentes com exemplos detalhados da aplicação de suas funcionalidades. O download poderá ser feito no endereço Brevemente estará disponível um fórum para troca de experiências e compartilhamento de conhecimento entre a comunidade.

20 23 BIBLIOGRAFIA FLOWLER, M., RICE, D., FOEMMEL, M., HIEATT, E. MEE, R. STAFFORD, R. Padrões de Arquitetura de Aplicações Corporativas. Bookman, Porto Alegre, GAMMA, E., HELM, R., JOHNSON, R., VLISSDES, J. Padrões de Projeto: soluções reutilizáveis de software orientado a objetos. Bookman, Porto Alegre GUERRA, Eduardo. Design Patterns com Java, Casa do Código, São Paulo, HORSTMANN, Cay. Padrões e Projeto Orientados a Objetos. Bookman, Porto Alegre, TURBAN, E. MCLEAN, E. & WETHERBE, J. Tecnologia da Informação para Gestão: transformando os negócios na economia digital, Bookman, Porto Alegre, DALL OGLIO, Pablo. PHP, Programando com Orientação a Objetos. Novatec, São Paulo NIEDERAUER, Juliano. PHP para quem conhece PHP. Novatec, São Paulo SINTES, Anthony. Programação Orientado a Objetos, Makron Books, São Paulo SILVA, Maurício Samy, JQuery UI: componentes de interface rica para aplicações web. Novatec, São Paulo BEBIN, Lee. Ajax com PHP; do iniciante ao profissional. Alta Books. Rio de Janeiro SOARES, Walace. Ajax: Asynchronous Javascript and XML. Érica. São Paulo

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

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

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

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

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

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õ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

Programação Orientada a Objetos. Padrões de Criação

Programação Orientada a Objetos. Padrões de Criação Programação Orientada a Objetos Padrões de Criação Cristiano Lehrer, M.Sc. Objetivos Apresentar cada um dos 23 padrões clássicos descrevendo: O problema que solucionam. A solução. Diagramas UML (Unified

Leia mais

Padrões clássicos ou padrões GoF O livro "Design Patterns (1994) de Erich Gamma, John Vlissides, Ralph Jonhson e Richard Helm, descreve 23 padrões de

Padrões clássicos ou padrões GoF O livro Design Patterns (1994) de Erich Gamma, John Vlissides, Ralph Jonhson e Richard Helm, descreve 23 padrões de Padrões de Projeto Disciplina: Engenharia de Software - 2009.1 Professora: Rossana Maria de Castro Andrade Assistente da disciplina: Ricardo Fernandes de Almeida 1 O que é um Padrão? Um padrão descreve

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

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

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

Testes com Design Patterns

Testes com Design Patterns Helder da Rocha (helder.darocha@gmail.com) 31 de março de 2005 71. Que padrão de design pode ser usado para permitir que uma implementação específica e uma hierarquia de abstrações possa variar independentemente?

Leia mais

Design Pattern Implementation in Java and AspectJ

Design Pattern Implementation in Java and AspectJ Design Pattern Implementation in Java and AspectJ Jan Hannemann Gregor Kiczales In Proceedings of 2002 ACM SIGPLAN conference on OOPSLA. NY, USA. Introdução 2 Introdução 3 Introdução 4 Introdução 5 Introdução

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

PADRÕES DE PROJETO FAÇADE, FLYWEIGHT E VISITOR

PADRÕES DE PROJETO FAÇADE, FLYWEIGHT E VISITOR FACULDADE DE CIÊNCIAS APLICADAS SAGRADO CORAÇÃO DIRETORIA DE ENSINO SUPERIOR COORDENAÇÃO DO CURSO DE SISTEMAS DE INFORMAÇÃO GUSTAVO ANDRÉ DE FREITAS RILIANE ALPOIM PARIS RODRIGO SILVA DE SOUZA PADRÕES

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

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

Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI PCO203 Tópicos Especiais em Programação

Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI PCO203 Tópicos Especiais em Programação UNIFEI Disciplina Professor Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI PCO203 Tópicos Especiais em Programação Enzo Seraphim 1 Padrões de Projeto

Leia mais

Padrões de Projeto em PHP

Padrões de Projeto em PHP Aprendendo Padrões de Projeto em PHP William Sanders Novatec Authorized Portuguese translation of the English edition of titled Learning PHP Design Patterns ISBN 9781449344917 2013 William B. Sanders.

Leia mais

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de

Leia mais

Programação Orientada a Objetos Padrões de Projeto (design patterns) Fernando Vanini IC - UNICAMP

Programação Orientada a Objetos Padrões de Projeto (design patterns) Fernando Vanini IC - UNICAMP Programação Orientada a Objetos Padrões de Projeto (design patterns) Fernando Vanini IC - UNICAMP Padrões de Projeto (design patterns) Apresentação do conceito de design pattern Classificação dos design

Leia mais

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE Amarildo Aparecido Ferreira Junior 1, Ricardo Ribeiro Rufino 1 ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil aapfjr@gmail.com

Leia mais

Pasteur Ottoni de Miranda Junior. Alguns Padrões de Projeto Gamma

Pasteur Ottoni de Miranda Junior. Alguns Padrões de Projeto Gamma Pasteur Ottoni de Miranda Junior Alguns Padrões de Projeto Gamma Padrões Gamma de Projeto(ou Gang-of-Four, gof) Os padrões gof foram publicados por Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides

Leia mais

Flexibilidade e Reusabilidade em Sistemas Orientados a Objetos - Uma Proposta para Implementação no EB

Flexibilidade e Reusabilidade em Sistemas Orientados a Objetos - Uma Proposta para Implementação no EB Flexibilidade e Reusabilidade em Sistemas Orientados a Objetos - Uma Proposta para Implementação no EB GLAUBER VOLKMER SILVIO DANILO DE OLIVEIRA MARÇAL DE LIMA HOKAMA Resumo. Os padrões de projetos tratam

Leia mais

Aula 2: RIA - Aplicações Ricas para Internet Fonte: Plano de Aula Oficial da Disciplina

Aula 2: RIA - Aplicações Ricas para Internet Fonte: Plano de Aula Oficial da Disciplina Programação para Internet Rica 1 Aula 2: RIA - Aplicações Ricas para Internet Fonte: Plano de Aula Oficial da Disciplina Objetivo: Identificar as principais características de uma Aplicação Internet Rica.

Leia mais

2 Conceitos relativos a Web services e sua composição

2 Conceitos relativos a Web services e sua composição 15 2 Conceitos relativos a Web services e sua composição A necessidade de flexibilidade na arquitetura das aplicações levou ao modelo orientado a objetos, onde os processos de negócios podem ser representados

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

Especialização em web com interfaces ricas

Especialização em web com interfaces ricas Especialização em web com interfaces ricas Padrões de Projeto - Comportamentais Prof. Fabrízzio Alphonsus A. M. N. Soares fabrizzio@inf.ufg.br professor.fabrizzio@gmail.com Instituto de Informática Universidade

Leia mais

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Tópicos Motivação e Objetivos LP e SOA Processo ADESE

Leia mais

Uma Introdução aos Padrões de Projeto com Java. Roberto Willrich INE-CTC-UFSC

Uma Introdução aos Padrões de Projeto com Java. Roberto Willrich INE-CTC-UFSC Uma Introdução aos Padrões de Projeto com Java Roberto Willrich INE-CTC-UFSC 1 Introdução aos Padrões de Projeto Programação Introdução Motivação, Definição, Características, Histórico Descrição de um

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

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

SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária

SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária Cascavel Novembro de 2009 Pedro Patitucci Finamore Daniel Bordignon Cassanelli Marco Antonio da Rosa DIAGRAMAS DE CLASSE E SEQUÊNCIA

Leia mais

Padrões de Software (Software Patterns)

Padrões de Software (Software Patterns) Padrões de Software (Software Patterns) Cleidson de Souza - cdesouza@ufpa.br Departamento de Informática Universidade Federal do Pará Agenda! Definição! Histórico! Motivação! Exemplo Estratégia MVC! Forma

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

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

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE Aluno: Roberto Reinert Orientador: Everaldo A. Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Workflow Processo

Leia mais

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) RELATÓRIO DE ENTREGA DO PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) PARA A ELABORAÇÃO DOS PLANOS MUNICIPAIS DE GESTÃO INTEGRADA DE RESÍDUOS SÓLIDOS PMGIRS PARA OS MUNICÍPIOS DE NOVO HORIZONTE, JUPIÁ, GALVÃO,

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 07 Padrões GoF (Command e Template Method) Edirlei Soares de Lima Padrões GoF Criação: Abstract Factory Builder Factory Method Prototype

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

UM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS

UM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS UM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS Edi Carlos Siniciato ¹, William Magalhães¹ ¹ Universidade Paranaense (Unipar) Paranavaí PR Brasil edysiniciato@gmail.com,

Leia mais

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011 CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011 O curso foi especialmente planejado para os profissionais que desejam trabalhar com desenvolvimento de sistemas seguindo o paradigma

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

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural Resumo: Perguntas a fazer ao elaborar um projeto arquitetural Sobre entidades externas ao sistema Quais sistemas externos devem ser acessados? Como serão acessados? Há integração com o legado a ser feita?

Leia mais

Eduardo Bezerra. Editora Campus/Elsevier

Eduardo Bezerra. Editora Campus/Elsevier Princípios de Análise e Projeto de Sistemas com UML 2ª edição Eduardo Bezerra Editora Campus/Elsevier Capítulo 8 Modelagem de classes de projeto A perfeição (no projeto) é alcançada, não quando não há

Leia mais

SOA Introdução. SOA Visão Departamental das Organizações

SOA Introdução. SOA Visão Departamental das Organizações 1 Introdução A Organização é a forma pela qual nós coordenamos nossos recursos de todos os tipos para realizar o trabalho que nos propusemos a fazer. A estrutura de nossas organizações manteve-se basicamente

Leia mais

Padrões Comportamentais

Padrões Comportamentais Padrões Comportamentais Formulário para Descrição de Padrões Nome e Classificação Intenção Também Conhecido Como Motivação Aplicabilidade Estrutura Participantes Colaboradores Conseqüências Implementação

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

Palavras-chave: i3geo, gvsig, Mapserver, integração, plugin. Contato: edmar.moretti@terra.com.br ou edmar.moretti@gmail.com

Palavras-chave: i3geo, gvsig, Mapserver, integração, plugin. Contato: edmar.moretti@terra.com.br ou edmar.moretti@gmail.com III Jornada Latinoamericana e do Caribe do gvsig Artigo: Integração do software i3geo com o gvsig Autor: Edmar Moretti Resumo: O i3geo é um software para a criação de mapas interativos para internet qu

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

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

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br SCE-557 Técnicas de Programação para WEB Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br 1 Cronograma Fundamentos sobre servidores e clientes Linguagens Server e Client side

Leia mais

Semântica para Sharepoint. Busca semântica utilizando ontologias

Semântica para Sharepoint. Busca semântica utilizando ontologias Semântica para Sharepoint Busca semântica utilizando ontologias Índice 1 Introdução... 2 2 Arquitetura... 3 3 Componentes do Produto... 4 3.1 OntoBroker... 4 3.2 OntoStudio... 4 3.3 SemanticCore para SharePoint...

Leia mais

Padrões de Desenho. ---------Engenharia de Software---------

Padrões de Desenho. ---------Engenharia de Software--------- Padrões de Desenho Objectivos: Compreender o que são os padrões de desenho? Vantagens e desvantagens em usar os padrões de desenho? Qual o formato de um padrão de desenho? Conhecer as varias secções de

Leia mais

GERADOR DE CÓDIGO JSP BASEADO EM PROJETO DE SGBD. Acadêmico: Maicon Klug Orientadora: Joyce Martins

GERADOR DE CÓDIGO JSP BASEADO EM PROJETO DE SGBD. Acadêmico: Maicon Klug Orientadora: Joyce Martins GERADOR DE CÓDIGO JSP BASEADO EM PROJETO DE SGBD Acadêmico: Maicon Klug Orientadora: Joyce Martins Roteiro Introdução Objetivos do trabalho Fundamentação teórica Desenvolvimento do trabalho Conclusão Extensões

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

Service Oriented Architecture (SOA)

Service Oriented Architecture (SOA) São Paulo, 2011 Universidade Paulista (UNIP) Service Oriented Architecture (SOA) Prof. MSc. Vladimir Camelo vladimir.professor@gmail.com 04/09/11 vladimir.professor@gmail.com 1 04/09/11 vladimir.professor@gmail.com

Leia mais

ARQUITETURA DE SISTEMAS. Cleviton Monteiro (cleviton@gmail.com)

ARQUITETURA DE SISTEMAS. Cleviton Monteiro (cleviton@gmail.com) ARQUITETURA DE SISTEMAS Cleviton Monteiro (cleviton@gmail.com) Roteiro Definição Documento de arquitetura Modelos de representação da arquitetura Estilos arquiteturais Arquitetura de sistemas web Arquitetura

Leia mais

Estilos Arquiteturais. Estilos Arquiteturais. Exemplos de Estilos Arquiteturais. Estilo: Pipe e Filtros

Estilos Arquiteturais. Estilos Arquiteturais. Exemplos de Estilos Arquiteturais. Estilo: Pipe e Filtros Em geral sistemas seguem um estilo, ou padrão, de organização estrutural Os estilos diferem: nos tipos de componentes que usa na maneira como os componentes interagem com os outros (regras de interação)

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

Programação com Objectos

Programação com Objectos Programação com Objectos PADRÕES DE DESENHO Classificaçã Objectivo Criação Estrutura Comportamento Introdução Alguns Padrões de Desenho Classe Factory Method Adapter Interpreter Template Method O que é

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

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

PHP Profissional. Alexandre Altair de Melo Mauricio G. F. Nascimento

PHP Profissional. Alexandre Altair de Melo Mauricio G. F. Nascimento PHP Profissional APRENDA A DESENVOLVER SISTEMAS PROFISSIONAIS ORIENTADOS A OBJETOS COM PADRÕES DE PROJETO Alexandre Altair de Melo Mauricio G. F. Nascimento Novatec Sumário Agradecimentos...13 Sobre os

Leia mais

Framework utilizando reflexão e aspectos para persistência de objetos em java

Framework utilizando reflexão e aspectos para persistência de objetos em java Framework utilizando reflexão e aspectos para persistência de objetos em java Antonio Carlos Rolloff (UNIPAR) acrolloff@gmail.com Arthur Cattaneo Zavadski (UNIPAR) arthur@datacoper.com.br Maria Aparecida

Leia mais

Produto: Webscan Relatório II Programas desenvolvidos, testados e documentados

Produto: Webscan Relatório II Programas desenvolvidos, testados e documentados Produto: Webscan Relatório II Programas desenvolvidos, testados e documentados Sérgio Oliveira Campos Contrato N : 2008/000514 Sumário 1 Introdução 1 2 Bibliotecas Utilizadas 2 2.1 Reconhecimento de Texto

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Basedos na Web Capítulo 12 Agenda Arquitetura Processos Comunicação Nomeação Sincronização Consistência e Replicação Introdução

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

3 Serviços na Web (Web services)

3 Serviços na Web (Web services) 3 Serviços na Web (Web services) 3.1. Visão Geral Com base na definição do Word Wide Web Consortium (W3C), web services são aplicações autocontidas, que possuem interface baseadas em XML e que descrevem

Leia mais

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro Desenvolvimento em PHP usando Frameworks Elton Luís Minetto Agenda Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro Ambiente Web É o ambiente

Leia mais

Um Arcabouço open source em Python para DBC com

Um Arcabouço open source em Python para DBC com Um Arcabouço open source em Python para DBC com Suporte à Evolução Dinâmica não Antecipada Yguaratã C. Cavacanti 1, Hyggo Oliveira de Almeida 1, Evandro Costa 2 1 Instituto de Computação Universidade Federal

Leia mais

Especialização em web com interfaces ricas. Padrões de Projeto - Estruturais

Especialização em web com interfaces ricas. Padrões de Projeto - Estruturais Especialização em web com interfaces ricas Padrões de Projeto - Estruturais Prof. Fabrízzio Alphonsus A. M. N. Soares fabrizzio@inf.ufg.br professor.fabrizzio@gmail.com Instituto de Informática Universidade

Leia mais

SCE 186- Engenharia de Software

SCE 186- Engenharia de Software Reuso de Software SCE 186- Engenharia de Software Profa Rosana T. Vaccare Braga (parte do material elaborado com base no tutorial sobre reuso da Profa. Claudia Werner) 1 Sumário Introdução Benefícios X

Leia mais

Fábrica de Software 29/04/2015

Fábrica de Software 29/04/2015 Fábrica de Software 29/04/2015 Crise do Software Fábrica de Software Analogias costumam ser usadas para tentar entender melhor algo ou alguma coisa. A idéia é simples: compara-se o conceito que não se

Leia mais

Padrões. Identificando padrões

Padrões. Identificando padrões Padrões Padrões são soluções para problemas específicos que ocorrem de forma recorrente em um determinado contexto que foram identificados a partir da experiência coletiva de desenvolvedores de software.

Leia mais

Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge.net. www.serpro.gov.

Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge.net. www.serpro.gov. Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge.net www.serpro.gov.br Agenda História Introdução Objetivos técnicos Modelo de aplicação

Leia mais

Desenvolvendo Websites com PHP

Desenvolvendo Websites com PHP Desenvolvendo Websites com PHP Aprenda a criar Websites dinâmicos e interativos com PHP e bancos de dados Juliano Niederauer 19 Capítulo 1 O que é o PHP? O PHP é uma das linguagens mais utilizadas na Web.

Leia mais

SISTEMA GERENCIAL TRATORPLAN

SISTEMA GERENCIAL TRATORPLAN SISTEMA GERENCIAL TRATORPLAN SIGET Fabrício Pereira Santana¹, Jaime William Dias¹, ², Ricardo de Melo Germano¹ ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil fabricioblack@gmail.com germano@unipar.br

Leia mais

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração Desenvolvimento em PHP usando Frameworks Elton Luís Minetto Agenda Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração Ambiente Web É o ambiente formado

Leia mais

1 http://www.google.com

1 http://www.google.com 1 Introdução A computação em grade se caracteriza pelo uso de recursos computacionais distribuídos em várias redes. Os diversos nós contribuem com capacidade de processamento, armazenamento de dados ou

Leia mais

Curso de Aprendizado Industrial Desenvolvedor WEB

Curso de Aprendizado Industrial Desenvolvedor WEB Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos II Professor: Cheli dos S. Mendes da Costa Modelo Cliente- Servidor Modelo de Aplicação Cliente-servidor Os

Leia mais

CURSO DESENVOLVEDOR JAVA Edição Intensiva de Férias

CURSO DESENVOLVEDOR JAVA Edição Intensiva de Férias CURSO DESENVOLVEDOR JAVA Edição Intensiva de Férias O curso foi especialmente planejado para os profissionais que desejam trabalhar com desenvolvimento de sistemas seguindo o paradigma Orientado a Objetos

Leia mais

USANDO O IZCODE PARA GERAR SOFTWARE RAPIDAMENTE

USANDO O IZCODE PARA GERAR SOFTWARE RAPIDAMENTE USANDO O IZCODE PARA GERAR SOFTWARE RAPIDAMENTE SUMÁRIO usando o izcode... 1 para gerar software rapidamente... 1 introdução... 2 o que é o izcode?... 2 Como funciona o izcode?... 2 os tipos diferentes

Leia mais

Pós Graduação Engenharia de Software

Pós Graduação Engenharia de Software Pós Graduação Engenharia de Software Ana Candida Natali COPPE/UFRJ Programa de Engenharia de Sistemas e Computação FAPEC / FAT Estrutura do Módulo Parte 1 QUALIDADE DE SOFTWARE PROCESSO Introdução: desenvolvimento

Leia mais

Agenda da Aula. Resumo dos Padrões (Aula 4) Padrões Arquiteturais. Arquitetura Cliente-Servidor. Arquitetura Cliente-Servidor

Agenda da Aula. Resumo dos Padrões (Aula 4) Padrões Arquiteturais. Arquitetura Cliente-Servidor. Arquitetura Cliente-Servidor Reuso de Software Aula 05 Agenda da Aula Linha de Produtos de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com 19 Março 2012 Padrões arquiteturais Cliente-Servidor

Leia mais

PADRÕES DE PROJETO. Cleviton Monteiro (cleviton@gmail.com)

PADRÕES DE PROJETO. Cleviton Monteiro (cleviton@gmail.com) PADRÕES DE PROJETO Cleviton Monteiro (cleviton@gmail.com) Roteiro Atributos de qualidade Boas práticas de projeto Code Smell Padrões de Projeto Atributos de qualidade Coesão Acoplamento Atributos de qualidade

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

Banco de Dados. Introdução. João Eduardo Ferreira Osvaldo Kotaro Takai. jef@ime.usp.br DCC-IME-USP

Banco de Dados. Introdução. João Eduardo Ferreira Osvaldo Kotaro Takai. jef@ime.usp.br DCC-IME-USP Banco de Dados Introdução João Eduardo Ferreira Osvaldo Kotaro Takai jef@ime.usp.br DCC-IME-USP Importância dos Bancos de Dados A competitividade das empresas depende de dados precisos e atualizados. Conforme

Leia mais

Zend. Framework. Flávio Gomes da Silva Lisboa. Novatec. Desenvolvendo em PHP 5 orientado a objetos com MVC

Zend. Framework. Flávio Gomes da Silva Lisboa. Novatec. Desenvolvendo em PHP 5 orientado a objetos com MVC Zend Framework Desenvolvendo em PHP 5 orientado a objetos com MVC Flávio Gomes da Silva Lisboa Novatec 1 Introdução CAPÍTULO O desenvolvimento de aplicações tornou-se uma atividade extremamente complexa

Leia mais

Roteiro 2 Conceitos Gerais

Roteiro 2 Conceitos Gerais Roteiro 2 Conceitos Gerais Objetivos: UC Projeto de Banco de Dados Explorar conceitos gerais de bancos de dados; o Arquitetura de bancos de dados: esquemas, categorias de modelos de dados, linguagens e

Leia mais

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados: MC536 Introdução Sumário Conceitos preliminares Funcionalidades Características principais Usuários Vantagens do uso de BDs Tendências mais recentes em SGBDs Algumas desvantagens Modelos de dados Classificação

Leia mais

Frameworks para criação de Web Apps para o Ensino Mobile

Frameworks para criação de Web Apps para o Ensino Mobile 393 Frameworks para criação de Web Apps para o Ensino Mobile Lucas Zamim 1 Roberto Franciscatto 1 Evandro Preuss 1 1 Colégio Agrícola de Frederico Westphalen (CAFW) Universidade Federal de Santa Maria

Leia mais

Persistência. 2004 Fernando Lozano, http://www.lozano.eti.br Persistência Objeto-Relacional com Java Pag. 1

Persistência. 2004 Fernando Lozano, http://www.lozano.eti.br Persistência Objeto-Relacional com Java Pag. 1 Persistência Objeto-Relacional com Java Fernando Lozano http://www.lozano.eti.br Consultor Independente Prof. Faculdades UniABEU Prof. SENAC Editor Adjunto da Revista Java Magazine 2004 Fernando Lozano,

Leia mais

FERRAMENTA WEB PARA MODELAGEM LÓGICA EM PROJETOS DE BANCOS DE DADOS RELACIONAIS

FERRAMENTA WEB PARA MODELAGEM LÓGICA EM PROJETOS DE BANCOS DE DADOS RELACIONAIS FERRAMENTA WEB PARA MODELAGEM LÓGICA EM PROJETOS DE BANCOS DE DADOS RELACIONAIS PAULO ALBERTO BUGMANN ORIENTADOR: ALEXANDER ROBERTO VALDAMERI Roteiro Introdução Objetivos Fundamentação teórica Desenvolvimento

Leia mais

Manipulação de Dados em PHP (Visualizar, Inserir, Atualizar e Excluir) Parte 2

Manipulação de Dados em PHP (Visualizar, Inserir, Atualizar e Excluir) Parte 2 Desenvolvimento Web III Manipulação de Dados em PHP (Visualizar, Inserir, Atualizar e Excluir) Parte 2 Prof. Mauro Lopes 1-31 21 Objetivos Nesta aula iremos trabalhar a manipulação de banco de dados através

Leia mais

INDICE 3.APLICAÇÕES QUE PODEM SER DESENVOLVIDAS COM O USO DO SAXES

INDICE 3.APLICAÇÕES QUE PODEM SER DESENVOLVIDAS COM O USO DO SAXES w w w. i d e a l o g i c. c o m. b r INDICE 1.APRESENTAÇÃO 2.ESPECIFICAÇÃO DOS RECURSOS DO SOFTWARE SAXES 2.1. Funcionalidades comuns a outras ferramentas similares 2.2. Funcionalidades próprias do software

Leia mais

CURSO DESENVOLVEDOR JAVA Edição 2009

CURSO DESENVOLVEDOR JAVA Edição 2009 CURSO DESENVOLVEDOR JAVA Edição 2009 O curso foi especialmente planejado para os profissionais que desejam trabalhar com desenvolvimento de sistemas seguindo o paradigma Orientado a Objetos e com o uso

Leia mais

Usando ferramentas já conhecidas integradas ao Visual Studio Team System 2008

Usando ferramentas já conhecidas integradas ao Visual Studio Team System 2008 Usando ferramentas já conhecidas integradas ao Visual Studio Team System 2008 White Paper Maio de 2008 Para obter as últimas informações, visite o site www.microsoft.com/teamsystem As informações contidas

Leia mais