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
|
|
- Stéphanie di Azevedo Alencastre
- 8 Há anos
- Visualizações:
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 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 maisPadrõ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 maisAná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 maisPROGRAMAÇÃ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 maisAUTOR: 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 maisOrientaçã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 maisPADRÕ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 maisPrototype, 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 maisAULA 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 maisSistema 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 maisTestes 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 maisEngenharia 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 maisDESENVOLVENDO 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 mais2 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 maisProgramaçã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 maisProgramaçã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 maisProgramaçã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 maisUML - 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 maisProgramaTchê 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 maisProgramaçã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 maisModelagemde 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 maisPadrõ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 mais1Introduçã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 maisPHP 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 maisMÓ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 maisUML 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 maisJ930. 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 maisCurso - 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 mais5 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 maisUML 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 maisBRAlarmExpert. 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 maisPlano 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 maisSISTEMA 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 maissobre 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 maisOrientaçã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 maisGovernanç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 maisEngenharia 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 maisGerenciamento 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 maisSumá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 maisUNIVERSIDADE 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 maisCurso 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 maisLINGUAGEM 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 maisEspecificaçã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 maisProgramaçã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 maisDesenvolvendo 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 maisDESENVOLVIMENTO 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 maisFigura 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 mais04/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 maisEXERCÍ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 maisPHP 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 maisATIVIDADES 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 maisAutoria: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 maisArpPrintServer. 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 maisATRIBUTOS 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 maisSETIS- 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 maisALESSANDRO 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 maisHistó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 maisENGENHARIA 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 maisFACULDADE 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 maisUm 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 maisProjeto 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 maisGerenciamento 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 maisDesenvolvimento 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 maisPadrõ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 maisNa 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 maisINTRODUÇÃ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 maisProgramaçã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 maisUML 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 maisISO/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 maisProposta 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 mais1 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 maisIntroduçã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 maisPRODUTO 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 mais3 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 maisO 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 maisSISTEMA 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 maisApesar 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 maisCorporativo. 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 maisPlanejando 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 maisDesenvolvendo 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 maisAPOO 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 maisCONCEITOS 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 maisUniversidade 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 maisPalavras-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 maisDesenvolvimento 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 maisIMPLEMENTAÇÃ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 maisConceitos 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 maishttp://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 maisIBM 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 maisManual 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 maisPadrõ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 maisPADRÕ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 maisMUDANÇ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 maisPasteur 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 maisQUESTINAMENTOS 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 maisProjeto 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 maisNoçõ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