RICARDO ISHIBASHI MOREIRA DE ALMEIDA UTILIZAÇÃO DE PADRÕES DE PROJETO NO DESENVOLVIMENTO DE APLICAÇÕES WEB COM PHP 5 RELATÓRIO FINAL DE ESTÁGIO

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

Download "RICARDO ISHIBASHI MOREIRA DE ALMEIDA UTILIZAÇÃO DE PADRÕES DE PROJETO NO DESENVOLVIMENTO DE APLICAÇÕES WEB COM PHP 5 RELATÓRIO FINAL DE ESTÁGIO"

Transcrição

1 RICARDO ISHIBASHI MOREIRA DE ALMEIDA UTILIZAÇÃO DE PADRÕES DE PROJETO NO DESENVOLVIMENTO DE APLICAÇÕES WEB COM PHP 5 RELATÓRIO FINAL DE ESTÁGIO PALMAS 2004

2 2 RICARDO ISHIBASHI MOREIRA DE ALMEIDA UTILIZAÇÃO DE PADRÕES DE PROJETO NO DESENVOLVIMENTO DE APLICAÇÕES WEB COM PHP 5 Monografia apresentada como requisito parcial da disciplina Prática de Sistemas de Informação I (Estágio) do curso de Sistemas de Informação, coordenada pelo Prof. Fernando Luiz de Oliveira. PALMAS 2004

3 3 RICARDO ISHIBASHI MOREIRA DE ALMEIDA UTILIZAÇÃO DE PADRÕES DE PROJETO NO DESENVOLVIMENTO DE APLICAÇÕES WEB COM PHP 5 Monografia apresentada como requisito parcial da disciplina Prática de Sistemas de Informação I (Estágio) do curso de Sistemas de Informação, coordenada pelo Prof. Fernando Luiz de Oliveira. Aprovada em dezembro de BANCA EXAMINADORA Prof. Fernando L. Oliveira Centro Universitário Luterano de Palmas Prof. Ricardo Marx Costa Soares de Jesus Centro Universitário Luterano de Palmas Prof. Msc. Eduardo Leal Centro Universitário Luterano de Palmas PALMAS 2004

4 4 SUMÁRIO 1. INTRODUÇÃO REVISÃO DE LITERATURA PHP PHP e a Orientação a Objetos Construtores e Destrutores Herança Encapsulamento Propriedades Estáticas Interface Classes Abstratas Padrões de Projeto Conceito Motivos para se adotar Padrões de Projeto Padrões de Responsabilidade Singleton Padrões de Construção Abstract Factory Padrões de Operação Template Method Padrões de Extensão MATERIAL E MÉTODOS Local e Período Materiais Hardware Software Bibliografia Utilizada Métodos RESULTADOS E DISCUSSÃO Descrição da Aplicação: Ordem do Dia...30

5 Situações e Soluções Propostas Comunicação com o Banco de Dados Gerenciamento de Sessões de Usuário Redefinição de Usuários CONSIDERAÇÕES FINAIS Trabalhos futuros REFERÊNCIAS BIBLIOGRÁFICAS...41

6 6 LISTA DE FIGURAS Figura 1: Tecnologia server-side (MORGAN & PARK & CONVERSE, 2004)...12 Figura 2: Construtores e destrutores...14 Figura 3: Modelo de Herança...15 Figura 4: Herança...15 Figura 5: Encapsulamento...16 Figura 6: Propriedades Estáticas...17 Figura 7: Interface (DALL OGLIO, 2004)...18 Figura 8: Classes Abstratas...18 Figura 9: Singleton (DALL OGLIO, 2004)...22 Figura 10: Abstract Factory 1 (DALL OGLIO, 2004)...23 Figura 11: Abstract Factory 2 (DALL OGLIO, 2004)...24 Figura 12: Template Method (DALL OGLIO, 2004)...25 Figura 13: Singleton Implementação da classe conexao...32 Figura 14: Abstract Factory - Implementação da classe membro...33 Figura 15: Abstract Factory - Implementação da classe participantes...34 Figura 16: Abstract Factory - Implementação da classe Factory...35 Figura 17: Abstract Factory - Exemplo de Utilização...35 Figura 18: Template Method - Implementação da classe usuario...37 Figura 19: Template Method - Implementação das subclasses admin e funcionario...38

7 7 RESUMO Esse trabalho possui como foco a utilização de metodologias de desenvolvimento baseadas em Padrões de Projeto para o desenvolvimento de uma ferramenta voltada para a Web. A ferramenta a ser utilizada como estudo de caso é denominada Ordem do Dia, e tem por objetivo auxiliar a Assembléia Legislativa do Estado do Tocantins a organizar os documentos referentes à pauta de cada sessão parlamentar realizada na referida Instituição. Como um dos objetivos da Assembléia Legislativa é aumentar sua transparência para com a sociedade, definiu-se que a ferramenta seria desenvolvida para estar disponível via Web. Assim, optou-se por utilizar a linguagem de desenvolvimento Web PHP 5, que é Orientada a Objetos e com isso, proporciona maiores benefícios ao desenvolvimento. O objetivo desse trabalho é enfocar a utilização dos Padrões de Projeto juntamente com o paradigma da Orientação a Objetos no desenvolvimento da ferramenta Ordem do Dia e não a ferramenta propriamente dita. Por isto, a mesma não será apresentada integralmente, abordando apenas situações e partes do seu desenvolvimento que foram solucionadas com a utilização de Padrões de Projeto.

8 8 ABSTRACT This article focus the application of methodologies based on Design Patterns in the web tools development. It was based on a case study: the Ordem do Dia (Order of the Day) tool development. That tool supports the organization of the documentation that reports each Tocantins State Legislature parliamentary session. The tool also provides that documentation through the Web, so the Tocantins State Legislature will make them totally available to the people. It was implemented using PHP 5, so that, benefiting the project with all the advantages provided by that object oriented programming language. However, it is important to mention that the target is not the tool itself but the application of Design Patterns in the software development. So, the tool will not be integrally presented, but we will present situations and parts of its development where Design Patterns solutions were adopted successfully.

9 9 1. INTRODUÇÃO O cenário mundial, cada vez mais globalizado e competitivo, cria um ciclo vicioso que exige das organizações um constante investimento em tecnologia. Assim, qualquer micro empresa nos dias de hoje passa a se preocupar em ter pelo menos algum sistema que dê suporte a seus processos gerenciais, para que, assim, não corra o risco de ficar totalmente fora do mercado. Porém, com a quantidade e velocidade que as informações e as tecnologias surgem atualmente, os sistemas precisam ser cada vez mais robustos e ágeis para que possibilitem uma boa aquisição e gerência dessas informações. E, para que isso seja possível, é necessário construir softwares seguindo metodologias que permitam um desenvolvimento otimizado, e que minimize as falhas. Com esse cenário, aplicam-se os Padrões de Projeto, que se tornam uma alternativa para solucionar esse problema. Nesse contexto, onde as informações são cada vez mais volumosas e rápidas, estar ligado a Internet tornou-se um fator de extrema importância para uma organização. Junto com essa necessidade cresce a importância das linguagens voltadas para o desenvolvimento de ferramentas para Internet. Esse desenvolvimento vem acontecendo com o surgimento de linguagens cada vez mais confiáveis. O PHP 5 é uma destas linguagens que visa o desenvolvimento Web que, a cada versão, foi se aprimorando e agregando suporte ao Paradigma da Orientação a Objetos. Aliado a esse paradigma, acrescenta-se, metodologias de Padrões de Projeto associadas, o que traz para o ambiente de desenvolvimento avanços significativos na área de desenvolvimentos de ferramentas Web. A Assembléia Legislativa do Estado do Tocantins, como uma instituição pública, tem o dever de deixar a sociedade bem informada sobre todas as decisões tomadas pelos seus parlamentares e, portanto, necessita que suas informações sejam trabalhadas de uma

10 10 forma transparente e com agilidade. Buscando esse propósito, a Assembléia Legislativa do Estado do Tocantins propôs uma reformulação em dois dos sistemas existentes na Instituição. O primeiro refere-se à reformulação do seu website e o outro se refere ao sistema Ordem do Dia. Esse trabalho utilizará o sistema Ordem do Dia como estudo de caso. Porém, não apresentará o seu desenvolvimento em detalhes. O objetivo se concentra em usar Padrões de Projeto, implementados em PHP 5, como possíveis soluções para determinadas situações detectadas durante o desenvolvimento do sistema Ordem do Dia, buscando sempre otimizar o código, aproveitando as características advindas e proporcionadas pela Programação Orientada a Objetos. Esse trabalho está assim organizado: a seção 2 trata da fundamentação teórica deste trabalho, abordando os conceitos da linguagem de desenvolvimento Web PHP5, além dos conceitos da metodologia de Padrões de Projeto. A seção 3 trata dos tipos de fontes de pesquisas e dos recursos utilizados para realização deste trabalho. A seção 4 aborda os resultados e discussão, gerados por esse trabalho a partir do estudo de caso do desenvolvimento do sistema Ordem do Dia. A seção 5 contém as conclusões e considerações finais do trabalho. E por fim, a seção 6 aborda as referências bibliográficas utilizadas para o desenvolvimento desse trabalho.

11 11 2. REVISÃO DE LITERATURA Esta seção apresenta os conceitos necessários para a fundamentação e para o desenvolvimento deste trabalho. Para tanto, será abordada a linguagem de programação Web PHP 5, verificando a sua adequação ao paradigma da Orientação a Objetos. Na seqüência serão abordados alguns padrões de projetos que auxiliam o desenvolvimento de software, sendo esses descritos e exemplificados, de acordo com a necessidade para o desenvolvimento do trabalho. 2.1 PHP 5 O PHP é uma linguagem voltada para o desenvolvimento Web, que foi desenvolvida para trabalhar em conformidade com a estrutura cliente-servidor. Nessa estrutura, o servidor é o responsável por interpretar os scripts que compõem o documento solicitado, transformá-los em código HTML (HyperText Markup Language) e enviar o resultado ao cliente, que fez a solicitação. Dessa forma, O PHP permite a criação de sites Web dinâmicos com a utilização de consultas a Banco de Dados, controle de cookies e váriáveis de seção, dentre muitos outros recursos. A figura a seguir de MORGAN & PARK & CONVERSE (2004) ilustra o funcionamento da tecnologia server-side.

12 12 Figura 1: Tecnologia server-side (MORGAN & PARK & CONVERSE, 2004) O PHP vem demonstrando ao longo de suas versões um grande amadurecimento como linguagem de programação, e no decorrer do tempo veio agregando características de Orientação a Objetos (OO). Na sua versão 4 já era possível utilizar vários destes recursos, mas somente em sua versão 5 é que o PHP se aproximou mais de uma linguagem OO, oferecendo suporte às principais características desse paradigma, porém, sem deixar de dar suporte aos scripts escritos nas suas versões anteriores. Os conceitos e o suporte a OO pelo PHP serão discutidos com mais detalhes nas seções seguintes PHP e a Orientação a Objetos Seguindo a vertente adotada pela maior parte das linguagens de programação, o PHP aos poucos foi agregando os conceitos da Orientação a Objetos. Esta adequação culminou no desenvolvimento da versão 5, que engloba a maior parte destes conceitos. Essa adequação possibilitou aos desenvolvedores usufruir das principais vantagens advindas com a OO no processo de desenvolvimento de aplicações, tais como reutilização de código, métodos construtores e destrutores, herança, encapsulamento.

13 13 Dessa forma, a camada de negócios de uma aplicação Web passa a ser trabalhada tal como seria desenvolvida em um aplicativo desktop, se apoiando em padrões de desenvolvimento que facilitem a manutenção e a reusabilidade de código. As seções seguintes abordam os conceitos implementados pela linguagem PHP, os quais serão descritos e exemplificados Construtores e Destrutores Segundo LINDEN (1997), um construtor é um tipo de método especial que inicializa um objeto. LINDEN (1997) afirma ainda que a necessidade do construtor se faz porque apenas os membros da mesma classe conseguem acessar dados cujo escopo seja limitado (dados geralmente do tipo private ou protected), não permitindo acesso externo. Por essa razão existe a necessidade de uma função com privilégios dentro da classe para preencher os valores iniciais dos dados de um objeto recém-criado. Já os destrutores são métodos que alertam o sistema quando um objeto chegou ao fim de sua execução. Eles são, portanto, o oposto dos contrutores, pois ao invés de inicializar um objeto, os destrutores desalocam o objeto. A versão anterior do PHP já dispunha de construtores, porém não de destrutores de objetos. O construtor era definido especificando um método com o mesmo nome da classe. Porém, a partir da versão 5, o PHP passou a dispor de dois métodos para implementar estas propriedades ( construct() e destruct()), os quais são executados no momento da construção e destruição de um objeto. A seguir será apresentado o código em PHP que corresponde à implementação destas propriedades.

14 14 class usuario { Function construct() { //construtor new usuario Function destruct() { //destrutor Figura 2: Construtores e destrutores Herança Herança é uma forma de reutilização de software em que novas classes são criadas a partir de classes existentes, absorvendo seus atributos e comportamentos e sofisticando-os com capacidades que as novas classes exigem (DEITEL, 2001). O conceito de herança é outra novidade do PHP 5 que não estava presente nas versões anteriores da linguagem. O PHP 5 implementa a herança chamando o método construtor da classe herdada (classe pai) no interior do construtor da classe herdante (classe filha). A figura a seguir apresenta um exemplo de herança, onde a classe Automóvel é a classe pai e possui as classes Moto, Carro e Ônibus como classes filhas.

15 15 Automóvel roda combustivel construct() Moto Carro Onibus Figura 3: Modelo de Herança A seguir é apresentado o código em PHP que representa um exemplo de implementação da figura acima. class automovel{ $roda; $combustivel; Function construct(){ //contruindo classe automovel class carro extends automovel{ Function construct(){ parent:: construct(); //Chama construtor do pai $roda = 4; $combustivel = gasolina; class moto extends automovel{ Function construct(){ parent:: construct(); //Chama construtor do pai $roda = 2; $combustivel = gasolina; class onibus extends automovel{ Function construct(){ parent:: construct(); //Chama construtor do pai $roda = 6; $combustivel = diesel; Figura 4: Herança

16 Encapsulamento Segundo LINDEN (1997), encapsulamento é a maneira de se associar os dados e as operações executadas neles de forma organizada, especificando claramente quais delas podem ser executadas em quais objetos. O PHP 5 introduziu os operadores de encapsulamento Public, Protected e Private para que se possa garantir quem terá acesso ou não a cada um dos objetos de uma classe. Cada operador de encapsulamento tem suas características, as quais serão apresentadas a seguir: Public: permite acesso irrestrito ao objeto; Protected: permite que apenas objetos da mesma classe e de suas classes filhas acessem o objeto desse tipo; Private: apenas objetos da mesma classe podem acessar um objeto Private. Com o intuito de manter a compatibilidade com as versões anteriores do PHP, se não for especificado nenhum operador de encapsulamento, o PHP entenderá como sendo do tipo Public. O código a seguir apresenta um exemplo de implementação deste conceito no PHP 5. class usuario{ protected $nome; protected function getidade(){ Return $this->idade; class funcionario extends usuario{ function maiordeidade(){ if(usuario::getidade()>=18){ return true; else{ return false; function getnome(){ return $this->nome; Figura 5: Encapsulamento

17 Propriedades Estáticas Segundo LINDEN (1997), um item estático é alguma coisa em uma classe que ocorre apenas uma vez, ao invés de ocorrer uma vez em cada instância da classe. Em sua versão 4, o PHP já permitia fazer chamada a métodos estáticos, ou seja, executar um método sem instanciar uma classe (DALL OGLIO, 2004). Porém, o PHP 5 ampliou a aplicação deste conceito, acrescentando esta propriedade aos atibutos de classe. class funcionario { static $salario=1; function getsalario() { return funcionario::$salario; static function getempresa() { return Empresa do Fulano S.A ; Figura 6: Propriedades Estáticas Interface Interface define um conjunto de funções que devem, obrigatoriamente, ser implementadas por uma classe. Na figura 7, que foi baseada em DALL OGLIO (2004), a interface Automovel define a função Ligar que deve ser, obrigatoriamente, implementada pela classe Palio.

18 18 interface Automovel { public function Ligar(); class Palio implements Automovel { public function Ligar() { //classe obrigatória Figura 7: Interface (DALL OGLIO, 2004) Classes Abstratas Uma classe abstrata é uma classe que não é concebida para criar instâncias. Seu propósito é servir como uma superclasse para outras classes (BARNES, 2004). Uma classe abstrata não pode conter instâncias diretas, podendo apenas ser herdada. O código abaixo exemplifica a utilização de uma classe abstrata no PHP 5. abstract class Automovel { //Classe abstrata class Fiat extends Automovel { //classe Fiat subclasse de Automovel $Palio = new Fiat; Figura 8: Classes Abstratas No exemplo da figura 8 a classe Fiat é uma subclasse de Automóvel que se trata de uma classe abstrata. Ao inicializar a variável Palio, deve-se instanciar a classe Fiat, pois a classe Automovel, por ser abstrata, não pode ser instanciada.

19 Padrões de Projeto Conceito Padrões de Projeto, também conhecido como Design Patterns, têm como objetivo encontrar métodos eficazes de se atingir um objetivo, ou resolver problemas (METSKER, 2004). Para tanto, podem-se aplicar padrões tanto na área de desenvolvimento de software, como também a qualquer meio onde se tenha um problema a ser solucionado. Erich Gamma, Richard Helm, Ralph Jonhson e John Vlissides, foram os precursores do movimento de Padrões de Projeto na área da Computação com o lançamento do livro "Design Patterns: Elements of Reusable Object-Oriented Software". Porém, a partir destes, inúmeros outros surgiram e estão surgindo para resolver os mais variados problemas. Problemas estes que são classificados em diversas formas. Por exemplo, em GAMMA (2000), são apresentados vinte e três (23) padrões, classificados em 3 categorias: Criacional, Estrutural e Comportamental. Já em METSKER (2004), são apresentados diversos padrões, os quais estão classificados em: Interface, Responsabilidade, Construção, Operação e Extensão. Este trabalho irá utilizar esta segunda vertente, porém, não irá abordar padrões de todas as categorias, se restringindo a alguns que serão úteis para o desenvolvimento do mesmo Motivos para se adotar Padrões de Projeto A utilização de Padrões de Projeto proporciona vários benefícios, onde ALUR & CRUPI & MALKS (2001) e ARRINGTON (2001), destacam: Alavancar o uso de uma solução comprovada: após comprovado o sucesso de um padrão, este pode ser reutilizado em tantos outros projetos futuros quantos forem necessários, prevenindo redundâncias comuns em projetos de software;

20 20 Prover um vocabulário comum: geralmente um projeto de software é desenvolvido por uma equipe e a comunicação é um fator crucial para o sucesso deste projeto. Padrões de projeto podem otimizar a comunicação entre a equipe, melhorar a troca de idéias e aumentar o nível de abstração, resultando em uma diminuição do risco de interpretaçõe errôneas; Restringir o domínio da solução: Padrões de Projeto evitam o emprego de soluções muito sobrecarregadas, levando o projeto a um caminho de soluções mais simples e rápidas; Facilidade de uso: desde o início do movimento existe um grande esforço para promover a documentação dos padrões criados, englobando as mais diversas áreas de aplicação, assim como um esforço para tornar essa documentação acessível; Reforçar a teoria OO: a prática demonstrou que a teoria OO não é facilmente assimilável para a maioria das pessoas. No entanto, por trabalhar com um universo bem delimitado, os padrões de projeto desenvolvidos segundo os conceitos da OO, tornam-se excelentes estudos de casos sobre a Orientação a Objetos Padrões de Responsabilidade Os padrões que compõem esta categoria são implementados como objetos que delegam tarefas vindas de um ambiente externo para outros objetos ou para uma unidade central. Uma boa maneira de se controlar a responsabilidade de cada objeto do sistema é utilizar nomes adequados e que indiquem exatamente o que eles fazem. A utilização de padrões de responsabilidade é uma boa maneira para se aplicar encapsulamento no sistema. Os padrões orientados a responsabilidade endereçam contextos nos quais precisamos nos desviar da regra normal de que a responsabilidade deveria ser distribuída tanto quanto possível (METSKER, 2004).

21 21 Existem diversos padrões de responsabilidade, cada qual com sua característica e aplicação. METSKER (2004) destaca os seguintes padrões: Singleton: centraliza a responsabilidade em uma única instância de uma classe; Observer: define uma dependência, de modo que quando um objeto mudar de estado, todos os seus dependentes sejam modificados e atualizados automaticamente; Mediator: centraliza a responsabilidade em uma classe responsável por supervisionar como um conjunto de outros objetos; Proxy: deixa um objeto agir em benefício de outro objeto; Chain of Responsibility: permite que uma solicitação percorra uma cadeia de objetos até que um desses objetos lide com ela; Flyweight: centraliza a responsabilidade em objetos compartilhados. Neste trabalho não serão discutidos todos os tipos de padrões, mas apenas alguns que se mostram úteis ao projeto deste estágio. Dos padrões de responsabilidade citados acima, será detalhado na próxima seção apenas o padrão Singleton Singleton O padrão Singleton caracteriza-se por centralizar a responsabilidade em uma única instância de uma classe. Assim, segundo METSKER (2004), utiliza-se Singleton quando se precisa garantir que uma classe só tenha uma instância e que forneça um ponto global de acesso a ela. A intenção do padrão Singleton sugere que um objeto específico carrega uma responsabilidade da qual outros objetos dependem (METSKER, 2004). No PHP, o padrão Singleton pode ser implementado associando os conceitos de propriedades estáticas a um método qualquer, que no caso da Figura 9 foi definido um para

22 retornar uma instância da conexão a um Banco de Dados. A figura a seguir de DALL OGLIO (2004), apresenta essa situação. 22 class conexao { private static $instancia = null; private function construct() { public static function RetornaInstancia(){ if(self::$instancia == null){ self::$instancia = new conexao; return self::$instancia; Figura 9: Singleton (DALL OGLIO, 2004) Padrões de Construção Segundo METSKER (2004), os padrões orientados para construção permitem a construção de um novo objeto mediante outros meios que não a chamada de um método construtor de classes. METSKER (2004) destaca os seguintes padrões de construção: Builder: Reúne informações para um objeto gradualmente, antes de solicitar sua construção; Factory Method: Posterga a decisão de qual classe instanciar; Abstract Factory: Constrói uma família de objetos que compartilhem uma característica; Prototype: Especifica um objeto a criar a partir de um exemplo existente; Memento: Reconstrói um objeto a partir de uma versão inativa que contenha apenas o estado interno do objeto. A seguir será discutido o Padrão de Construção Abstract Factory Abstract Factory

23 23 A intenção do padrão Abstract Factory é proporcionar a criação de uma família de objetos relacionados ou dependentes (METSKER, 2004). Este padrão atua centralizando a criação dos objetos de maneira a facilitar e padronizar a manutenção do código. A seguir é apresentado um exemplo de implementação em PHP para o padrão Abstract Factory retirado de DALL OGLIO (2004). # Classe Cliente Class Cliente{ function Cliente(){ echo "cliente...\n"; # Classe Fornecedor class Fornecedor{ function Fornecedor(){ echo "fornecedor...\n"; Figura 10: Abstract Factory 1 (DALL OGLIO, 2004) Na figura 10 são criadas as classes Cliente e Fornecedor, porém, verifica-se que em nenhuma delas há a presença de um construtor, pois como dito anteriormente, no Abstract Factory, a criação dos objetos é feita em uma classe centralizadora. Neste exemplo a classe centralizadora será a classe Factory que é apresentada na figura 11.

24 24 # Classe Fábrica de Objetos Class Factory { function CriarCliente($nome) { return new Cliente($nome); function CriarFornecedor($nome) { return new Fornecedor($nome); # Cria objeto Factory $Fabrica = new Factory; # Cria instancias de objetos. $Joao = $Fabrica->CriarCliente('joao'); $Jose = $Fabrica->CriarFornecedor('jose'); # Exibe resultado var_dump($joao); var_dump($jose); Figura 11: Abstract Factory 2 (DALL OGLIO, 2004) Padrões de Operação Os padrões orientados à operação tratam de contextos em que precisamos de mais de um método, geralmente com a mesma assinatura, para participar de um Projeto (METSKER, 2004). METSKER (2004) afirma ainda que classes diferentes podem implementar uma operação de maneira diferente, caracterizando o polimorfismo. Dentre os padrões orientados a operação, destacam-se: Template Method: implementa um algoritmo em um método, postergando a definição de alguns passos do algoritmo para que as subclasses possam redefini-los; State: Distribui uma operação de modo que cada classe represente um estado diferente;

25 25 Strategy: Encapsula uma operação, tornando as implementações intercambiáveis; Command: Encapsula uma chamada de método em um objeto; Interpreter: Distribui uma operação para que cada implementação se aplique a um tipo diferente de composição. A seguir será discutido o Padrão de Operação Template Method Template Method O Template Method é um padrão onde as subclasses podem redefinir o comportamento das classes sem alterar sua estrutura. As partes invariantes são implementadas na superclasse e as variantes são customizadas na subclasse. DALL OGLIO (2004), com o exemplo a seguir, ilustra a implementação de uma classe abstrata Casa, onde o próprio método construtor é o Template Method. # Classe abstrata Casa abstract class Casa{ #Método Construtor public final function Casa(){ print "Template::Construção\n"; // Chama métodos específicos $this->eletricidade(); $this->garagem(); // declara método como obrigatório protected abstract function Eletricidade(); // método opcional protected function Garagem() { # SubClasse MinhaCasa class MinhaCasa extends Casa{ // Método Instalação Elétrica protected function Eletricidade(){ print "Concreta::Eletricidade\n"; // Método Constrói Garagem protected function Garagem(){ print "Concreta::Garagem\n"; # Cria nova instância de MinhaCasa. $a = new MinhaCasa; Figura 12: Template Method (DALL OGLIO, 2004)

26 No exemplo da figura 12 a subclasse MinhaCasa redefine os métodos Eletricidade e Garagem da sua super classe Padrões de Extensão Os padrões orientados à extensão tratam de contextos nos quais precisamos acrescentar comportamento específico para uma coleção de objetos ou acrescentar novos comportamentos a um objeto sem alterar sua classe (METSKER, 2004). Ainda de acordo com METSKER (2004), tem-se os seguintes padrões que implementam Extensão: Template Method: permite a inserção de uma operação dentro de um algoritmo; Command: permite a implementação de uma nova operação que executa em resposta a um evento; Decorator: anexa responsabilidades adicionais a um objeto dinamicamente; Iterator: Fornece um meio de acessar uma coleção de instâncias de uma classe criada; Visitor: permite o acréscimo de novas operações em uma classe, sem alterá-la. Não será discutido nenhum Padrão de Extensão neste capítulo, pois já foi discutido no capítulo anterior o padrão Template Method que também é considerado um Padrão de Extensão.

27 27 3. MATERIAL E MÉTODOS Este trabalho foi realizado com o auxílio de materiais bibliográficos, apoiado por recursos de software e hardware que, juntamente com metodologias e orientação, tornaram possível a realização do mesmo. 3.1 Local e Período O desenvolvimento desse trabalho se deu no segundo semestre do ano de 2004 como parte da disciplina Prática em Sistemas de Informação I. Para tanto, o mesmo foi desenvolvido basicamente no setor de desenvolvimento de softwares da Assembléia Legislativa do Estado do Tocantins. 3.2 Materiais Os materiais utilizados para o desenvolvimento deste trabalho são em sua maioria patrimônio da Assembléia Legislativa do Estado do Tocantins, tendo também alguns recursos pessoais agregados para o auxílio no desenvolvimento Hardware Atlhon 1.4Ghz, 512Mb de RAM (Computador pessoal); Athlon XP 1.8Ghz, 256Mb de RAM (Recurso da Assembléia); Pentium IV 2.4Ghz, 768Mb de RAM (Recurso da Assembléia).

28 Software Microsoft Windows XP Professional; Microsoft Office XP Professional; Macromedia Dreamweaver MX; Macromedia Fireworks MX; Internet Explorer 6.0; Adobe Acrobat Reader 6.0; Microsoft SQLServer 2000; Rational Rose Bibliografia Utilizada Livros; Sites diversos; Artigos técnicos; Artigos científicos; Trabalhos de Conclusão de Curso. 3.3 Métodos Foram feitos levantamentos bibliográficos sobre Padrões de Projetos. A partir da identificação da popularidade e fácil usabilidade da linguagem PHP, entre as demais existentes, foram levantadas as características básicas da linguagem, bem como seu suporte à Orientação a Objetos. Foram encontradas situações onde a aplicação das metodologias de Padrões de Projeto juntamente com a linguagem PHP 5 se mostraram eficazes para a solução de tais problemas.

29 29 4. RESULTADOS E DISCUSSÃO Com a crescente globalização e o crescimento da Internet, as organizações percebem cada vez mais a necessidade de um modelo de negócios que lhe permita comunicar e estar inseridas dentro desse novo mundo virtual. Com esse novo cenário, as aplicações desktop tendem cada vez mais a serem integradas, ou até mesmo substituídas por versões para Web. Tal cenário também traz a necessidade de que novas tecnologias surjam para dar suporte ao crescimento acelerado da Web. O PHP 5 aparece como uma ferramenta preparada para atender essas necessidades e vem demonstrando um grande amadurecimento enquanto linguagem, mostrando que a Web está cada vez mais ganhando espaço, deixando de ser considerada como fator secundário nas tecnologias. Esse amadurecimento possibilita que se aplique em ferramentas Web conceitos e metodologias particulares ao desenvolvimento desktop. Outra característica decorrente desta situação trata da evolução das linguagens de desenvolvimento Web, que estão buscando agregar teorias mais consolidadas e que podem proporcionar vantagens no desenvolvimento de software, tal como ocorreu com a adequação da maior parte das linguagens com a Orientação a Objetos. Em decorrência disto, muito do que foi desenvolvido baseado na POO passa a ser utilizado no desenvolvimento de sistemas Web, tal como ocorre com muitos dos Padrões de Projeto existentes e disponibilizados para auxiliar na construção mais eficiente de sistemas computacionais. Para aplicar os conhecimentos adquiridos por esse trabalho, bem como verificar a validade das vantagens acima citadas, optou-se pelo desenvolvimento de um sistema, denominado Ordem do Dia, para a Assembléia Legislativa do Estado do Tocantins, no qual serão aplicados alguns Padrões de Projeto, assim como a utilização da linguagem PHP 5 para o seu desenvolvimento. O objetivo do referido sistema é possibilitar à Assembléia Legislativa mecanismos para organizar os documentos referentes às sessões ordinárias e

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

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

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

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

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

PHP INTRODUÇÃO CLASSES E OBJETOS

PHP INTRODUÇÃO CLASSES E OBJETOS INTRODUÇÃO PHP AULA 8 ORIENTAÇÃO A OBJETOS Professor: Leonardo Pereira E-mail: leongamerti@gmail.com Facebook: leongamerti Material de Estudo: http://www.leonti.vv.si A orientação a objetos ou OO é o paradigma

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

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

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

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 1. Conceitos de Orientação a Objetos Introdução O paradigma da POO Classes

Leia mais

Orientação a Objeto e UML Questões 2014 Prof. Felipe Leite

Orientação a Objeto e UML Questões 2014 Prof. Felipe Leite Orientação a Objeto e UML Questões 2014 Prof. Felipe Leite Pessoal, fiz uma coletânea das questões mais recentes de concursos públicos de TODO o Brasil de várias bancas diferentes sobre os assuntos Orientação

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

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP 1) Introdução Programação Orientada a Objetos é um paradigma de programação bastante antigo. Entretanto somente nos últimos anos foi aceito realmente

Leia mais

PS: Este artigo é destinado a quem já possui conhecimentos razoáveis em orientação a objetos. Não entrando em muitos detalhes conceituais.

PS: Este artigo é destinado a quem já possui conhecimentos razoáveis em orientação a objetos. Não entrando em muitos detalhes conceituais. O PHP5 traz diversas novidades em termos de recursos, principalmente em relação à Orientação a Objetos. Neste artigo iremos ver de forma sucinta quais são estes recursos e de que forma podemos aplicálos

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

ProgramaTchê programatche.net Programação OO com PHP

ProgramaTchê programatche.net Programação OO com PHP Roteiro 2 Objetivos: * Apresentar a sintaxe básica para utilização de Orientação a Objetos em PHP. Ferramentas necessárias Navegador, NetBeans, Servidor Apache. 1 Orientação a Objetos em PHP PHP é uma

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

Novemax Biblioteca OO para abstração de componentes HTML, desenvolvida em PHP

Novemax Biblioteca OO para abstração de componentes HTML, desenvolvida em PHP Novemax Biblioteca OO para abstração de componentes HTML, desenvolvida em PHP Isac Velezo de C. Aguiar isacaguiar@gmail.com Jailson Oliveira da Boa Morte jailsonboamorte@gmail.com Instituto de Matemática

Leia mais

Autor: Ricardo Francisco Minzé Júnior - ricardominze@yahoo.com.br Desenvolvendo aplicações em camadas com PHP 5.

Autor: Ricardo Francisco Minzé Júnior - ricardominze@yahoo.com.br Desenvolvendo aplicações em camadas com PHP 5. Desenvolvendo aplicações em camadas com PHP 5. Talvez a primeira vista você ache estranha a palavra Camada em programação, mas o que vem a ser Camada? Segundo o dicionário: Camada 1 - Qualquer matéria

Leia mais

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP AULA 4 VISÃO BÁSICA DE CLASSES EM PHP Antes de mais nada, vamos conhecer alguns conceitos, que serão importantes para o entendimento mais efetivos dos assuntos que trataremos durante a leitura desta apostila.

Leia mais

sobre rogério gonçalves gerente de projetos > digitale agência digital rogerio@digitale.com.br h7p://www.digitale.com.br h7p://leveme.

sobre rogério gonçalves gerente de projetos > digitale agência digital rogerio@digitale.com.br h7p://www.digitale.com.br h7p://leveme. sobre rogério gonçalves gerente de projetos > digitale agência digital rogerio@digitale.com.br h7p://www.digitale.com.br h7p://leveme.la/rogerio definição - é uma forma de programar e organizar um sistema

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

PROVA DE NÍVEL SUPERIOR. CARGO: Técnico de Nível Superior Júnior II - TECNOLOGIA DA INFORMAÇÃO

PROVA DE NÍVEL SUPERIOR. CARGO: Técnico de Nível Superior Júnior II - TECNOLOGIA DA INFORMAÇÃO PROVA DE NÍVEL SUPERIOR CARGO: Técnico de Nível Superior Júnior II - TECNOLOGIA DA INFORMAÇÃO 1. O ambiente Delphi suporta o desenvolvimento de aplicações orientadas a objetos por meio da linguagem Object

Leia mais

PHP Orientado a Objetos Análise e Desenvolvimento de Sistemas Prof. Marcelo da Silveira Siedler siedler@gmail.com

PHP Orientado a Objetos Análise e Desenvolvimento de Sistemas Prof. Marcelo da Silveira Siedler siedler@gmail.com PHP Orientado a Objetos Análise e Desenvolvimento de Sistemas Prof. Marcelo da Silveira Siedler siedler@gmail.com SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL FACULDADE DE TECNOLOGIA SENAC PELOTAS Introdução

Leia mais

Bibliografia. Desenvolvimento Orientado a Objetos. Introdução. Bibliografia. O que você vê?

Bibliografia. Desenvolvimento Orientado a Objetos. Introdução. Bibliografia. O que você vê? Bibliografia Desenvolvimento Orientado a Objetos Prof.: Edson dos Santos Cordeiro LARMAN, Graig. Utilizando UML e padrões. Porto Alegre: Bookman, 2000. STAA, Arndt von. Programação modular. Rio de Janeiro:

Leia mais

UM ESTUDO PARA A EVOLUÇÃO DO PHP COM A LINGUAGEM ORIENTADA A OBJETOS

UM ESTUDO PARA A EVOLUÇÃO DO PHP COM A LINGUAGEM ORIENTADA A OBJETOS UM ESTUDO PARA A EVOLUÇÃO DO PHP COM A LINGUAGEM ORIENTADA A OBJETOS Jean Henrique Zenzeluk* Sérgio Ribeiro** Resumo. Este artigo descreve os conceitos de Orientação a Objetos na linguagem de programação

Leia mais

Parte I. Orientação a objetos no PHP. Contato: Site: http://professores.chapeco.ifsc.edu.br/lara/

Parte I. Orientação a objetos no PHP. Contato: <lara.popov@ifsc.edu.br> Site: http://professores.chapeco.ifsc.edu.br/lara/ Parte I Programação para WEB II Orientação a objetos no PHP Contato: Site: http://professores.chapeco.ifsc.edu.br/lara/ Programação para WEB II 1 PHP Estruturado Os programadores

Leia mais

PHP: Programando com Orientação a Objetos

PHP: Programando com Orientação a Objetos PHP: Programando com Orientação a Objetos Pablo Dall'Oglio Adianti Solutions www.adianti.com.br Roteiro Conceitos de Orientação a Objetos; Classes, objetos, propriedades, métodos; Métodos construtores

Leia mais

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 SUMÁRIO 1 Conceitos Básicos... 3 1.1 O que é Software?... 3 1.2 Situações Críticas no desenvolvimento

Leia mais

SISTEMA DE CONTROLE INTERNO DE FLUXO DE CAIXA DO SETOR DE APOIO FINANCEIRO (ULBRA GUAÍBA)

SISTEMA DE CONTROLE INTERNO DE FLUXO DE CAIXA DO SETOR DE APOIO FINANCEIRO (ULBRA GUAÍBA) SISTEMA DE CONTROLE INTERNO DE FLUXO DE CAIXA DO SETOR DE APOIO FINANCEIRO (ULBRA GUAÍBA) Alessandra Lubbe 1 Alexandre Evangelista 2 Jeandro Perceval 3 José Ramiro Pereira 4 Luiz Gustavo Mahlmann 5 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

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

Frameworks. Pasteur Ottoni de Miranda Junior

Frameworks. Pasteur Ottoni de Miranda Junior Frameworks Pasteur Ottoni de Miranda Junior 1-Definição Apesar do avanço das técnicas de desenvolvimento de software, a construção de software ainda é um processo extremamente complexo.a reutilização tem

Leia mais

5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância

5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância 5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância O capítulo anterior apresentou uma discussão sobre a inclusão dos chamados learning services no processo

Leia mais

Capítulo 2 Introdução à ferramenta Flash

Capítulo 2 Introdução à ferramenta Flash Capítulo 2 Introdução à ferramenta Flash Índice 1. O uso da ferramenta Flash no projeto RIVED.... 1 2. História do Flash... 4 1. O uso da ferramenta Flash no projeto RIVED. É importante, antes de iniciarmos

Leia mais

Programação Orientada a Objetos em Java

Programação Orientada a Objetos em Java Programação Orientada a Objetos em Java Rone Ilídio da Silva Universidade Federal de São João del-rei Campus Alto Paraopeba 1:14 1 Objetivo Apresentar os principais conceitos de Programção Orientada a

Leia mais

José Benedito Lopes Junior ¹, Marcello Erick Bonfim 2

José Benedito Lopes Junior ¹, Marcello Erick Bonfim 2 ISBN 978-85-61091-05-7 Encontro Internacional de Produção Científica Cesumar 27 a 30 de outubro de 2009 Definição de uma tecnologia de implementação e do repositório de dados para a criação da ferramenta

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

QUESTÕES PROVA 2 (28 a 44)

QUESTÕES PROVA 2 (28 a 44) QUESTÕES PROVA 2 (28 a 44) 28) A orientação a objetos é uma forma abstrata de pensar um problema utilizando-se conceitos do mundo real e não, apenas, conceitos computacionais. Nessa perspectiva, a adoção

Leia mais

Histórico da Orientação a Objetos Ciclo de vida de Desenvolvimento de SW

Histórico da Orientação a Objetos Ciclo de vida de Desenvolvimento de SW Histórico da Orientação a Objetos Ciclo de vida de Desenvolvimento de SW Baseado nos materiais dos profs: Prof.: Edilberto M. Silva http://www.edilms.eti.br Edna Canedo Marcio de Carvalho Victorino Brasília-DF,

Leia mais

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Aula 3 Virtualização de Sistemas 1. Conceito Virtualização pode ser definida

Leia mais

Modelagemde Software Orientadaa Objetos com UML

Modelagemde Software Orientadaa Objetos com UML Modelagemde Software Orientadaa Objetos com UML André Maués Brabo Pereira Departamento de Engenharia Civil Universidade Federal Fluminense Colaborando para a disciplina CIV 2802 Sistemas Gráficos para

Leia mais

Orientação a Objetos

Orientação a Objetos Orientação a Objetos Daniel Destro do Carmo Softech Network Informática daniel@danieldestro.com.br Histórico A orientação a objetos (OO) foi concebida na década de 70. Origem na linguagem SIMULA-67 (década

Leia mais

SAPENS - Sistema Automático de Páginas de Ensino

SAPENS - Sistema Automático de Páginas de Ensino SAPENS - Sistema Automático de Páginas de Ensino Eduardo Kokubo kokubo@inf.univali.br Fabiane Barreto Vavassori, MSc fabiane@inf.univali.br Universidade do Vale do Itajaí - UNIVALI Centro de Ensino Superior

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

Boas Práticas de Desenvolvimento Seguro

Boas Práticas de Desenvolvimento Seguro Boas Práticas de Desenvolvimento Seguro Julho / 2.012 Histórico de Revisões Data Versão Descrição Autor 29/07/2012 1.0 Versão inicial Ricardo Kiyoshi Página 2 de 11 Conteúdo 1. SEGURANÇA DA INFORMAÇÃO

Leia mais

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO UTILIZANDO O HIBERNATE Rafael Laurino GUERRA, Dra. Luciana Aparecida Martinez ZAINA Faculdade de Tecnologia de Indaiatuba FATEC-ID 1 RESUMO Este artigo apresenta

Leia mais

Um objeto é uma instância de uma 'classe'. Você define uma classe utilizando o trecho de código abaixo;

Um objeto é uma instância de uma 'classe'. Você define uma classe utilizando o trecho de código abaixo; um objeto; é definido; Um objeto é uma instância de uma 'classe'. Você define uma classe utilizando o trecho de código abaixo; class ClasseBase{ é instanciado; $objetobase = new ClasseBase; Caso queira,

Leia mais

Figura 1 - Arquitetura multi-camadas do SIE

Figura 1 - Arquitetura multi-camadas do SIE Um estudo sobre os aspectos de desenvolvimento e distribuição do SIE Fernando Pires Barbosa¹, Equipe Técnica do SIE¹ ¹Centro de Processamento de Dados, Universidade Federal de Santa Maria fernando.barbosa@cpd.ufsm.br

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

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

UML - Unified Modeling Language

UML - Unified Modeling Language UML - Unified Modeling Language Casos de Uso Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 24 de abril

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

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS O termo metodologia não possui uma definição amplamente aceita, sendo entendido na maioria das vezes como um conjunto de passos e procedimentos que

Leia mais

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel Ambiente de Desenvolvimento Orientação a Objetos É uma técnica de desenvolvimento de softwares que consiste em representar os elementos do mundo

Leia mais

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos Programação Estruturada e Orientada a Objetos Fundamentos Orientação a Objetos 2013 O que veremos hoje? Introdução aos fundamentos de Orientação a Objetos Transparências baseadas no material do Prof. Jailton

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

Universidade Federal Rural de Pernambuco. Bacharelado em Sistemas de Informação. Disciplina: Análise e Projeto de Sistemas de Informação

Universidade Federal Rural de Pernambuco. Bacharelado em Sistemas de Informação. Disciplina: Análise e Projeto de Sistemas de Informação Universidade Federal Rural de Pernambuco Bacharelado em Sistemas de Informação Disciplina: Análise e Projeto de Sistemas de Informação Docente: Rodrigo Aluna: Thays Melo de Moraes Diagramas do Projeto

Leia mais

PADRÕES PARA O DESENVOLVIMENTO NA WEB

PADRÕES PARA O DESENVOLVIMENTO NA WEB PADRÕES PARA O DESENVOLVIMENTO NA WEB Ederson dos Santos Cordeiro de Oliveira 1,Tiago Bonetti Piperno 1, Ricardo Germano 1 1 Universidade Paranaense (UNIPAR) Paranavaí PR- Brasil edersonlikers@gmail.com,

Leia mais

3. PARADIGMA ORIENTADO A OBJETOS

3. PARADIGMA ORIENTADO A OBJETOS Paradigmas de Linguagens I 1 3. PARADIGMA ORIENTADO A OBJETOS Este paradigma é o que mais reflete os problemas atuais. Linguagens orientada a objetos (OO) são projetadas para implementar diretamente a

Leia mais

Programação Orientada a Objeto

Programação Orientada a Objeto Programação Orientada a Objeto Prof Márcio Bueno poonoite@marciobueno.com Ementa Levar o aluno a discutir, exercitar e consolidar o uso de técnicas de programação que tenham um impacto considerável sobre

Leia mais

JavaScript 2.0X 1.0 3.0X 1.1 4.0 4.05 1.2 4.06 4.61 1.3 5.0 1.4 6.0 1.5

JavaScript 2.0X 1.0 3.0X 1.1 4.0 4.05 1.2 4.06 4.61 1.3 5.0 1.4 6.0 1.5 JavaScript Diego R. Frank, Leonardo Seibt FIT Faculdades de Informática de Taquara Fundação Educacional Encosta Inferior do Nordeste Av. Oscar Martins Rangel, 4500 Taquara RS Brasil difrank@terra.com.br,

Leia mais

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem

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

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 10 Persistência de Dados

Leia mais

Desenvolvimento de aplicações web com JSP

Desenvolvimento de aplicações web com JSP Desenvolvimento de aplicações web com JSP Leandro Soares de Sousa, Paulo Henrique de Sousa Sistemas de Informação Centro Universitário Luterano de Palmas (CEULP/ULBRA) Cx. Postal 160 77054-970 Palmas TO

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

Qualidade de Software

Qualidade de Software Qualidade de Software O software é algo abstrato, pois são as instruções que quando executadas atingem o propósito desejado no sistema computacional. (Algoritmo). As principais características são: Complexidade:

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

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

Programação Orientada a Objetos Herança Técnico em Informática. Prof. Marcos André Pisching, M.Sc.

Programação Orientada a Objetos Herança Técnico em Informática. Prof. Marcos André Pisching, M.Sc. Herança Técnico em Informática, M.Sc. Herança 2 Herança Reutilização de código Exemplo Banco: Um banco oferece diversos serviços que podem ser contratados individualmente pelos clientes. Quando um serviço

Leia mais

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

Desafios na construção de um Framework de acesso a dados em PHP 4 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

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o.

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 08 APRESENTAÇÃO Na aula de hoje vamos apresentar e discutir como definir

Leia mais

Sistema de Controle de Solicitação de Desenvolvimento

Sistema de Controle de Solicitação de Desenvolvimento Sistema de Controle de Solicitação de Desenvolvimento Introdução O presente documento descreverá de forma objetiva as principais operações para abertura e consulta de uma solicitação ao Setor de 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

Programa do Módulo 2. Fundações do Modelo Objeto

Programa do Módulo 2. Fundações do Modelo Objeto 2.1 Programa do Módulo 2 Orientação a Objetos Conceitos Básicos Análise Orientada a Objetos (UML) Processo Unificado (RUP) Fundações do Modelo Objeto 2.2 Programação Orientada a Objetos: é um método de

Leia mais

Desenvolvendo um Ambiente de Aprendizagem a Distância Utilizando Software Livre

Desenvolvendo um Ambiente de Aprendizagem a Distância Utilizando Software Livre Desenvolvendo um Ambiente de Aprendizagem a Distância Utilizando Software Livre Fabrício Viero de Araújo, Gilse A. Morgental Falkembach Programa de Pós-graduação em Engenharia de Produção - PPGEP Universidade

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

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Aula 2 Computação em Nuvem Desafios e Oportunidades A Computação em Nuvem

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

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 01 Orientação a Objetos Edirlei Soares de Lima Paradigmas de Programação Um paradigma de programação consiste na filosofia adotada na

Leia mais

ALÉM DO BUG TRACKING : GERENCIANDO O SETOR DE SUPORTE COM O MANTISBT

ALÉM DO BUG TRACKING : GERENCIANDO O SETOR DE SUPORTE COM O MANTISBT ALÉM DO BUG TRACKING : GERENCIANDO O SETOR DE SUPORTE COM O MANTISBT Juliano Flores Prof. Lucas Plautz Prestes Centro Universitário Leonardo da Vinci - UNIASSELVI Gestão de Tecnologia da Informação (GTI034)

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

Desenvolvimento de um CMS 1 para a criação e publicação de web sites acessíveis por deficientes visuais.

Desenvolvimento de um CMS 1 para a criação e publicação de web sites acessíveis por deficientes visuais. Desenvolvimento de um CMS 1 para a criação e publicação de web sites acessíveis por deficientes visuais. Tales Henrique José MOREIRA 1 ; Gabriel da SILVA 2 ; 1 Estudante de Tecnologia em Sistemas para

Leia mais

Curso de PHP. FATEC - Jundiaí. A programação orientada a objetos (object-oriented oriented programming

Curso de PHP. FATEC - Jundiaí. A programação orientada a objetos (object-oriented oriented programming Curso de PHP FATEC - Jundiaí A programação orientada a objetos (object-oriented oriented programming OOP) é um conjunto de técnicas t para organizar o código c em torno de entidades ou objetos representados

Leia mais

1 UML (UNIFIED MODELING LANGUAGE)

1 UML (UNIFIED MODELING LANGUAGE) 1 UML (UNIFIED MODELING LANGUAGE) Segundo Tonsig (2003), para conseguir desenvolver um software capaz de satisfazer as necessidades de seus usuários, com qualidade, por intermédio de uma arquitetura sólida

Leia mais

Manual do Usuário. Sistema/Ferramenta: Spider-ACQ. Versão do Sistema/Ferramenta: 1.0. www.spider.ufpa.br

Manual do Usuário. Sistema/Ferramenta: Spider-ACQ. Versão do Sistema/Ferramenta: 1.0. www.spider.ufpa.br Manual do Usuário Sistema/Ferramenta: Spider-ACQ Versão do Sistema/Ferramenta: 1.0 www.spider.ufpa.br Histórico de Revisões Data Versão Descrição Autor 27/05/2011 1.0 Criação da seção de instalação/configuração

Leia mais

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento HOME O QUE É TOUR MÓDULOS POR QUE SOMOS DIFERENTES METODOLOGIA CLIENTES DÚVIDAS PREÇOS FALE CONOSCO Suporte Sou Cliente Onde sua empresa quer chegar? Sistemas de gestão precisam ajudar sua empresa a atingir

Leia mais

UML 01. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

UML 01. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan Faculdade INED UML 01 Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan Referências BARBIERI, Carlos. Análise e Programação

Leia mais

Análise dos Navegadores de Internet

Análise dos Navegadores de Internet Análise dos Navegadores de Internet Midia Proativa Patos de Minas 2012 Esta análise tem o objetivo de mostrar uma comparação entre os navegadores de internet utilizados atualmente. Queremos deixar claro

Leia mais

UMA ABORDAGEM COMPARATIVA ENTRE AS LINGUAGENS DE PROGRAMAÇÃO JAVA E C#

UMA ABORDAGEM COMPARATIVA ENTRE AS LINGUAGENS DE PROGRAMAÇÃO JAVA E C# UMA ABORDAGEM COMPARATIVA ENTRE AS LINGUAGENS DE PROGRAMAÇÃO JAVA E C# Robson Bartelli¹, Wyllian Fressatti¹. ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil robson_lpbartelli@yahoo.com.br,wyllian@unipar.br

Leia mais

Desenvolvendo para WEB

Desenvolvendo para WEB Nível - Básico Desenvolvendo para WEB Por: Evandro Silva Neste nosso primeiro artigo vamos revisar alguns conceitos que envolvem a programação de aplicativos WEB. A ideia aqui é explicarmos a arquitetura

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

ATIVIDADES PRÁTICAS SUPERVISIONADAS

ATIVIDADES PRÁTICAS SUPERVISIONADAS ATIVIDADES PRÁTICAS SUPERVISIONADAS CST em Análise e Desenvolvimento de Sistemas 5ª. Série Programação e Design para Web A atividade prática supervisionada (ATPS) é um procedimento metodológico de ensino-aprendizagem

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

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