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

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

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

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

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

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

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

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

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

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

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

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

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

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

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

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

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

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

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

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

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

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

UML Aspectos de projetos em Diagramas de classes

UML Aspectos de projetos em Diagramas de classes UML Aspectos de projetos em Diagramas de classes Após ser definido o contexto da aplicação a ser gerada. Devemos pensar em detalhar o Diagrama de Classes com informações visando uma implementação Orientada

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

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

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

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2 UML 2 Guia Prático Gilleanes T.A. Guedes Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2 Novatec capítulo 1 Introdução à UML A UML (Unified Modeling Language ou Linguagem de Modelagem

Leia mais

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert: BRAlarmExpert Software para Gerenciamento de Alarmes A TriSolutions conta com um produto diferenciado para gerenciamento de alarmes que é totalmente flexível e amigável. O software BRAlarmExpert é uma

Leia mais

Plano de Gerenciamento do Projeto

Plano de Gerenciamento do Projeto Projeto para Soluções Contábeis 2015 Plano de Gerenciamento do Projeto Baseado na 5ª edição do Guia PMBOK Brendon Genssinger o e Elcimar Silva Higor Muniz Juliermes Henrique 23/11/2015 1 Histórico de alterações

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

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

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

Governança de TI. ITIL v.2&3. parte 1

Governança de TI. ITIL v.2&3. parte 1 Governança de TI ITIL v.2&3 parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR ITIL 1 1 ITIL Gerenciamento de Serviços 2 2 Gerenciamento de Serviços Gerenciamento de Serviços 3 3 Gerenciamento de Serviços

Leia mais

Engenharia de Requisitos Estudo de Caso

Engenharia de Requisitos Estudo de Caso Engenharia de Requisitos Estudo de Caso Auxiliadora Freire Fonte: Engenharia de Software 8º Edição / Ian Sommerville 2007 Slide 1 Engenharia de Requisitos Exemplo 1 Reserva de Hotel 1. INTRODUÇÃO Este

Leia mais

Gerenciamento de software como ativo de automação industrial

Gerenciamento de software como ativo de automação industrial Gerenciamento de software como ativo de automação industrial INTRODUÇÃO Quando falamos em gerenciamento de ativos na área de automação industrial, fica evidente a intenção de cuidar e manter bens materiais

Leia mais

Sumário. Uma visão mais clara da UML

Sumário. Uma visão mais clara da UML Instituto Federal de Santa Catarina Câmpus Chapecó Ensino Médio Integrado em Informática Módulo V Unidade Curricular: Engenharia de Software Professora: Lara P. Z. B. Oberderfer Uma visão mais clara da

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar

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

LINGUAGEM DE BANCO DE DADOS

LINGUAGEM DE BANCO DE DADOS LINGUAGEM DE BANCO DE DADOS Gabriela Trevisan Bacharel em Sistemas de Informação Universidade Federal do Rio Grande Pós-Graduanda Formação Pedagógica de Professores (FAQI) Conceito de BD Um banco de dados

Leia mais

Especificação do 3º Trabalho

Especificação do 3º Trabalho Especificação do 3º Trabalho I. Introdução O objetivo deste trabalho é abordar a prática da programação orientada a objetos usando a linguagem Java envolvendo os conceitos de classe, objeto, associação,

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

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA RESUMO Ricardo Della Libera Marzochi A introdução ao Service Component Architecture (SCA) diz respeito ao estudo dos principais fundamentos

Leia mais

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3 DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3 Eduardo Laguna Rubai, Tiago Piperno Bonetti Universidade Paranaense (Unipar) Paranavaí PR- Brasil eduardorubay@gmail.com, bonetti@unipar.br Resumo.

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

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc. MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 1 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Apresenta a diferença entre dado e informação e a importância

Leia mais

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS Campus Cachoeiro de Itapemirim Curso Técnico em Informática Disciplina: Análise e Projeto de Sistemas Professor: Rafael Vargas Mesquita Este exercício deve ser manuscrito e entregue na próxima aula; Valor

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

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

Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre César M de Oliveira

Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre César M de Oliveira Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Introdução Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre

Leia mais

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 ArpPrintServer Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 1 Sumário INTRODUÇÃO... 3 CARACTERÍSTICAS PRINCIPAIS DO SISTEMA... 3 REQUISITOS DE SISTEMA... 4 INSTALAÇÃO

Leia mais

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS ATRIBUTOS PRIVADOS Podemos usar o modificador private, para tornar um atributo privado, obtendo um controle centralizado Definimos métodos para implementar todas as lógicas que utilizam ou modificam o

Leia mais

SETIS- III Seminário de Tecnologia Inovação e Sustentabilidade 4 e 5 de novembro de 2014.

SETIS- III Seminário de Tecnologia Inovação e Sustentabilidade 4 e 5 de novembro de 2014. A importância da comunicação no gerenciamento de projetos de softwares: reflexões teóricas Lucas Krüger lucas_kruger-@hotmail.com Resumo: Esse artigo objetiva estudar a comunicação entre cliente e desenvolvedor

Leia mais

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA INTRODUÇÃO O projeto de um banco de dados é realizado sob um processo sistemático denominado metodologia de projeto. O processo do

Leia mais

Histórico de Revisão Data Versão Descrição Autor

Histórico de Revisão Data Versão Descrição Autor H6Projetos Documento de Requisitos Versão 1.3 Histórico de Revisão Data Versão Descrição Autor 05/09/2013 1.0 Preenchimento do Capítulo 2 Requisitos Funcionais Evilson Montenegro 26/09/2013 1.1 Preenchimento

Leia mais

ENGENHARIA DE SOFTWARE I

ENGENHARIA DE SOFTWARE I ENGENHARIA DE SOFTWARE I Prof. Cássio Huggentobler de Costa [cassio.costa@ulbra.br] Twitter: www.twitter.com/cassiocosta_ Agenda da Aula (002) Metodologias de Desenvolvimento de Softwares Métodos Ágeis

Leia mais

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador> FACULDADE DE ENGENHARIA DE COMPUTAÇÃO PROJETO FINAL I e II PLANO DE TRABALHO O Trabalho de Conclusão de Curso (TCC) a ser desenvolvido

Leia mais

Um Driver NDIS Para Interceptação de Datagramas IP

Um Driver NDIS Para Interceptação de Datagramas IP Um Driver NDIS Para Interceptação de Datagramas IP Paulo Fernando da Silva psilva@senior.com.br Sérgio Stringari stringari@furb.br Resumo. Este artigo apresenta o desenvolvimento de um driver NDIS 1 para

Leia mais

Projeto Disciplinar de Infra-Estrutura de Software SISPA FACULDADE SENAC

Projeto Disciplinar de Infra-Estrutura de Software SISPA FACULDADE SENAC 1 Projeto Disciplinar de Infra-Estrutura de Software SISPA FACULDADE SENAC Edilberto Silva 1, André Luiz (1012545), Andreia Pereira da Silva (1012547) Carlos Alberto (1012206), Humberto César de Carvalho

Leia mais

Gerenciamento de Incidentes

Gerenciamento de Incidentes Gerenciamento de Incidentes Os usuários do negócio ou os usuários finais solicitam os serviços de Tecnologia da Informação para melhorar a eficiência dos seus próprios processos de negócio, de forma que

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

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

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

Leia mais

INTRODUÇÃO A PORTAIS CORPORATIVOS

INTRODUÇÃO A PORTAIS CORPORATIVOS INTRODUÇÃO A PORTAIS CORPORATIVOS Conectt i3 Portais Corporativos Há cinco anos, as empresas vêm apostando em Intranet. Hoje estão na terceira geração, a mais interativa de todas. Souvenir Zalla Revista

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

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

ISO/IEC 12207: Gerência de Configuração

ISO/IEC 12207: Gerência de Configuração ISO/IEC 12207: Gerência de Configuração Durante o processo de desenvolvimento de um software, é produzida uma grande quantidade de itens de informação que podem ser alterados durante o processo Para que

Leia mais

Proposta de Avaliação de Empresas para o uso do SAAS

Proposta de Avaliação de Empresas para o uso do SAAS 1 INSTITUTO DE EDUCAÇÃO TECNOLÓGICA PÓS-GRADUAÇÃO Gestão e Tecnologia da Informação/ IFTI 1402 Turma 25 09 de abril de 2015 Proposta de Avaliação de Empresas para o uso do SAAS Raphael Henrique Duarte

Leia mais

1 Sumário... 2. 2 O Easy Chat... 3. 3 Conceitos... 3. 3.1 Perfil... 3. 3.2 Categoria... 3. 4 Instalação... 5. 5 O Aplicativo... 7 5.1 HTML...

1 Sumário... 2. 2 O Easy Chat... 3. 3 Conceitos... 3. 3.1 Perfil... 3. 3.2 Categoria... 3. 4 Instalação... 5. 5 O Aplicativo... 7 5.1 HTML... 1 Sumário 1 Sumário... 2 2 O Easy Chat... 3 3 Conceitos... 3 3.1 Perfil... 3 3.2 Categoria... 3 3.3 Ícone Específico... 4 3.4 Janela Específica... 4 3.5 Ícone Geral... 4 3.6 Janela Geral... 4 4 Instalação...

Leia mais

Introdução a listas - Windows SharePoint Services - Microsoft Office Online

Introdução a listas - Windows SharePoint Services - Microsoft Office Online Page 1 of 5 Windows SharePoint Services Introdução a listas Ocultar tudo Uma lista é um conjunto de informações que você compartilha com membros da equipe. Por exemplo, você pode criar uma folha de inscrição

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

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio 32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio

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

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

Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma:

Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma: 1 Introdução A utilização de frameworks como base para a construção de aplicativos tem sido adotada pelos desenvolvedores com três objetivos básicos. Primeiramente para adotar um padrão de projeto que

Leia mais

Corporativo. Transformar dados em informações claras e objetivas que. Star Soft. www.starsoft.com.br

Corporativo. Transformar dados em informações claras e objetivas que. Star Soft. www.starsoft.com.br Corporativo Transformar dados em informações claras e objetivas que possibilitem às empresas tomarem decisões em direção ao sucesso. Com essa filosofia a Star Soft Indústria de Software e Soluções vem

Leia mais

Planejando o aplicativo

Planejando o aplicativo Um aplicativo do Visual FoxPro geralmente inclui um ou mais bancos de dados, um programa principal que configura o ambiente de sistema do aplicativo, além de uma interface com os usuários composta por

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

APOO Análise e Projeto Orientado a Objetos. Requisitos

APOO Análise e Projeto Orientado a Objetos. Requisitos + APOO Análise e Projeto Orientado a Objetos Requisitos Requisitos 2 n Segundo Larman: n São capacidades e condições às quais o sistema e em termos mais amplos, o projeto deve atender n Não são apenas

Leia mais

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web; CONCEITOS INICIAIS Agenda A diferença entre páginas Web, Home Page e apresentação Web; O que é necessário para se criar páginas para a Web; Navegadores; O que é site, Host, Provedor e Servidor Web; Protocolos.

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

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

IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET

IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET 1 IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET Daniel da Silva Carla E. de Castro Franco Diogo Florenzano Avelino daniel.silva1@ext.mpsa.com

Leia mais

Conceitos de Banco de Dados

Conceitos de Banco de Dados Conceitos de Banco de Dados Autor: Luiz Antonio Junior 1 INTRODUÇÃO Objetivos Introduzir conceitos básicos de Modelo de dados Introduzir conceitos básicos de Banco de dados Capacitar o aluno a construir

Leia mais

http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho vi http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Administração de Redes de Computadores Resumo de Serviços em Rede Linux Controlador de Domínio Servidor DNS

Leia mais

IBM Managed Security Services for Agent Redeployment and Reactivation

IBM Managed Security Services for Agent Redeployment and Reactivation Descrição de Serviços IBM Managed Security Services for Agent Redeployment and Reactivation EM ADIÇÃO AOS TERMOS E CONDIÇÕES ESPECIFICADOS ABAIXO, ESSA DESCRIÇÃO DE SERVIÇOS INCLUI AS IBM MANAGED SECURITY

Leia mais

Manual SAGe Versão 1.2 (a partir da versão 12.08.01)

Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Submissão de Relatórios Científicos Sumário Introdução... 2 Elaboração do Relatório Científico... 3 Submissão do Relatório Científico... 14 Operaçã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 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

MUDANÇAS NA ISO 9001: A VERSÃO 2015

MUDANÇAS NA ISO 9001: A VERSÃO 2015 MUDANÇAS NA ISO 9001: A VERSÃO 2015 Está em andamento o processo de revisão da Norma ISO 9001: 2015, que ao ser concluído resultará na mudança mais significativa já efetuada. A chamada família ISO 9000

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

QUESTINAMENTOS AO EDITAL DE CONCORRÊNCIA 01/2013

QUESTINAMENTOS AO EDITAL DE CONCORRÊNCIA 01/2013 QUESTINAMENTOS AO EDITAL DE CONCORRÊNCIA 01/2013 Prezados Senhores da comissão de licitação da UENF, seguem alguns questionamentos acerca do edital de concorrência 01/2013 para esclarecimentos: 1. ANEXO

Leia mais

Projeto Você pede, eu registro.

Projeto Você pede, eu registro. Projeto Você pede, eu registro. 1) IDENTIFICAÇÃO 1.1) Título do Projeto: Você pede eu registro. 1.2) Equipe responsável pela coordenação do projeto: Pedro Paulo Braga Bolzani Subsecretario de TI Antonio

Leia mais

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

Leia mais