Framework para Camada de Apresentação

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

Download "Framework para Camada de Apresentação"

Transcrição

1 UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA CURSO DE CIÊNCIAS DA COMPUTAÇÃO Framework para Camada de Apresentação Claudio Ulisses Nunes Biava Florianópolis 2004

2 UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA CURSO DE CIÊNCIAS DA COMPUTAÇÃO Framework para Camada de Apresentação Claudio Ulisses Nunes Biava Orientador: Raul Sidnei Wazlawick Banca Examinadora: João Bosco M. Sobral Mario Dantas Florianópolis 2004

3 Aquilo que não nos mata, nos faz mais forte. (Friedrich Nietzsche) A mente que se abre a uma nova idéia jamais volta ao seu tamanho original. (Albert Einstein)

4 Agradeço aos meus pais pelo investimento, carinho e amor e confiança depositados em mim. Ao meu orientador por ter me aceito como seu orientando. Ao corpo docente pelo conhecimento a mim transmitido.

5 Sumário Resumo...8 Abstract Apresentação Motivação Objetivos do Trabalho Justificativa Padrões de Projetos Histórico Padrão Observador Padrão Command Padrão Template Method Padrão Singleton Padrão Arquitetural MVC(Model View Controller) Definições Como funciona Frameworks Orientados a Objetos Definição Qualidade de um bom Framework Generalidade Alterabilidade Extensibilidade Simplicidade Clareza Fronteiras Estudo do Framework Struts Projeto Jakarta Framework Struts Introdução Motivação para criação do Framework Struts Estrutura do Framework Struts Como funciona o struts Struts versus Framework Desenvolvido Uso de Frameworks Indivíduos Envolvidos com o Desenvolvimento e Uso de Frameworks Questões-Chave para Usar um Framework Framework Desenvolvido As principais classes do Framework Vantagens em usar o Framework Estrutura do Framework Criação do model (modelo) Criação da view (visão) Criação da aplicação...24

6 Criando um novo Controlador Criando uma aplicação sob o Framework Bmvc Criando a estrutura de diretórios Criando a aplicação Criando a classe modelo Criando as Views Criando a classe View Principal Criando a classe View EnqueteResultadoView Criando a classe Aplicação Conclusão Referências Anexo A Artigo Anexo B Código Fonte das Principais Classes...44

7 Lista de Figuras Figura 1 Aplicação sendo exibida por várias interfaces...7 Figura 2 - Fluxo de eventos e informações em uma arquitetura MVC...8 Figura 3 MVC em nível de aplicação...8 Figura 4 - Visão Conceitual da estrutura um Framework...11 Figura 5 - Visão do framework Struts e do MVC Figura 6 Struts e MVC...16

8 Resumo Frameworks orientados a objetos promovem reuso de projeto e código. Contudo, a ampla adoção desta abordagem é dificultada pela complexidade para desenvolver e para usar frameworks. Este trabalho apresenta o framework Bmvc que é um framework para camada de apresentação baseado na arquitetura MVC (Model View Controller). Será abordado Design Patterns (Padrões de Projeto) que foram utilizados para desenvolver o framework. E finalmente será criado uma aplicação utilizando o framework Bmvc e explicando passo a passo como fazê-la. Palavras-Chaves: framework orientados a objetos, reuso, MVC, Design Patterns

9 Abstract Object-oriented frameworks promote reuse design and code. However, the widespread adoption of this approach is made difficult by the complexity to develop and to use frameworks. This work presents the framework Bmvc that is a framework for presentation layer based on the architecture MVC (Model View Controller). It will be approach Design Patterns that were used to develop the framework. And finally will be created an application using framework Bmvc and explaining step by step as to make it. Keywords: Objects-oriented frameworks, reuse, MVC, Design Patterns.

10 1. Apresentação Este projeto é referente ao trabalho de conclusão do curso de Ciências da Computação da Universidade Federal de Santa Catarina. Este tem como propósito o desenvolvimento de um framework para camada de Apresentação Motivação O desenvolvimento de Frameworks se torna cada vez mais comum e necessário uma vez que existe uma necessidade de criar sistemas corporativos de modo mais rápido e a um baixo custo e de fácil manutenção. Framework é o esqueleto-base sobre o qual uma aplicação é construída, constituída de uma estrutura de classes com implementações incompletas, que estendidas permitem produzir novos aplicativos. A grande vantagem desta abordagem é a reutilização de código e projeto, que tem por intuito diminuir o tempo e o esforço no desenvolvimento de softwares. Este trabalho tem como objetivo implementar um framework para desenvolvimento de um Framework para Camada de Apresentação utilizando padrão arquitetural MVC (Model View Control). Seu desenvolvimento foi motivado pela necessidade de separar interface de código, ou seja, de se criar códigos de aplicações genéricos, não para interface especificas Objetivos do Trabalho Este trabalho tem como objetivo implementar um framework que facilite no desenvolvimento de aplicativos, uma vez que o projetista não vai precisar preocupar-se com a interação entre o modelo e a visão. Estudar e utilizar padrões de projetos para guiar na implementação de sua estrutura e relacionamento entre suas classes. O Framework Struts foi escolhido como objeto de estudo pois é um framework que implementa o Padrão Arquitetural MVC, padrão que foi implementado no framework desenvolvido. 1

11 1.3. Justificativa A principal justificativa para criação deste projeto é o fato de existirem poucas ferramentas que utilizam o padrão MVC, o que traz como conseqüência que desenvolvedores criem aplicações mal estruturas que muitas vezes é insuficiente para se ter um software de qualidade. Um grande benefício oferecido pelo padrão MVC é o fraco acoplamento caracterizado pela independência do modelo que representa as entidades do mundo real em relações a suas visões. Este fraco acoplamento permite um aumento de qualidade no aplicativo final desenvolvido. 2

12 2. Padrões de Projetos Nesta seção será dado um breve histórico dos Padrões de Projeto (Design Pattern), e apresentado em detalhes os padrões que foram utilizados no framework desenvolvido neste trabalho Histórico Nos anos setenta, Christopher Alexander escreveu vários livros relatando padrões na arquitetura e engenharia civil. A comunidade de software adotou a idéia de padrões baseada em seu trabalho, embora já existisse um crescente interesse nessas idéias por parte da comunidade. Os padrões de software foram popularizados com o livro Design Patterns: Elements of Reusable Object-Oriented Software de Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides (também conhecidos como Gang of Four, da onde veio à famosa sigla GoF). Salientando que os padrões que eles descrevem não foram inventados por eles. O que eles fizeram foi perceber que padrões se repetiam em numerosos projetos, eles identificaram e documentaram. Eles catalogaram 23 padrões. Dividos em: Padrões de Criação: abstraem o processo de instanciação de objetos Padrões Estruturais: definem a forma como as classes e objetos são compostos Padrões Comportamentais: definem algoritmos e a atribuição de responsabilidades entre objetos. Os padrões se referem à comunicação de problemas e soluções. Em outras palavras, os padrões permitem documentar um problema que se repete e sua solução em um contexto especifico e comunicar esse conhecimento para outras pessoas. Algumas características comuns dos padrões são: São observados através da experiência. Evitam a reinvenção da roda. Suportam melhorias continuas. Podem ser utilizados em conjunto para resolver problemas maiores. 3

13 2.2. Padrão Observador Também conhecido como: Publisher-Subscriber, Event Generator, Dependents. O padrão Observador permite que objetos interessados sejam avisados da mudança de estado ou outros eventos ocorrendo num outro objeto. Com esse padrão parte da responsabilidade de processamento decorrente da mudança de estado de um objeto é distribuída a observadores. Também temos baixo acoplamento entre o objeto observado e os observadores. O objeto sendo observado é chamado de: "Subject" (GoF) "Observable" (java.util) "Source" ou "Event Source" (java.swing e java.beans) Provedor de informação (Bill Venners) Gerador de eventos (Bill Venners) O objeto que observa é chamado de Observer (GoF e java.util) Listener (java.swing) Uma das motivações em utilizar esse padrão é que às vezes alterar um objeto requer mudanças em outros e não se sabe quantos objetos precisam ser mudados. No framework desenvolvido o objeto observado será o modelo e os objetos interessados nas suas mudanças serão as views Padrão Command O padrão Comando específica à definição de uma classe para cada mensagem ou comando, cada uma com um método execute. A chave para este padrão é uma classe abstrata Comando, que declara uma interface para execução de operações. Cada subclasse de Comando tem um único método execute que especifica as ações para aquele comando. Vantagens desse padrão: Suportar undo (desfazer). A operação Execute do Comando pode armazenar o estado para reverter seus efeitos no próprio comando. A classe Comando deve 4

14 ter uma operação adicional unexecute que reverte os efeitos de uma chamada prévia para Execute. Estruturar um sistema em volta de operações de alto nível construídas sobre operações primitivas. O padrão Comando separa o objeto que invoca a operação daquele que sabe executá-la. Permite que seja criado um log (registro) dos comandos que foram executados. Este padrão será utilizado pelo Controlador do framework em resposta aos eventos que ocorram nas views. A cada evento que ocorra nas interfaces será chamado um objeto comando responsável pela execução daquele evento Padrão Template Method Define o esqueleto de um algoritmo em uma operação, postergando alguns passos para subclasses. Esse padrão ilustra o Princípio de Hollywood: não me chame, nos chamaremos você. Um método template é um método que ao ser chamado invoca pelo menos um outro método chamado método hook. Método hook é um método gancho que fornece comportamento adicional ao método template. O método template comporta a parte imutável de um procedimento. A flexibilização do procedimento se da pelo overriding (sobrescrita) do(s) método(s) hook invocados. O padrão Template Method pode ser usado: Para implementar as partes invariantes de um algoritmo uma só vez e deixar para as subclasses a implementação do comportamento que pode variar. Para controlar extensões de subclasses. Você pode definir um método template que chama métodos ganchos (hook) em pontos específicos, desta forma permitindo extensões somente nestes pontos. 5

15 No framework desenvolvido o método template é o método que inicializa o framework, e os métodos hook são os métodos de criação do modelo e visão, que darão comportamento adicional ao método template Padrão Singleton O objetivo desse padrão é assegurar que uma classe tenha uma única instância e prover um ponto de acesso global a esta instância. Com ele é fácil fazer com que seja crie um número fixo, ou um número máximo de instâncias em vez de apenas uma única instância, apenas basta mudar implementação interna do Singleton. Este padrão foi utilizado para assegurar que a classe Aplicação do framework tem uma única instância e um ponto de acesso global a esta instância Padrão Arquitetural MVC(Model View Controller) Surgiu na comunidade de Smalltalk.A idéia é permitir que uma mesma lógica de negócios (modelo, model) possa ser acessada e visualizada através de várias interfaces (visão, view). Sua principal função é "separar" o sistema em 3 camadas, facilitando assim o entendimento, desenvolvimento e manutenção, deixando bem claras as funções desempenhadas por cada camada. O padrão MVC vem sendo amplamente usado em aplicações WEB, sendo principalmente implementada com o auxílio de frameworks entre estes se destacam o projeto "jakarta struts" que será discutido em frente, facilitando assim a criação de páginas dinâmicas de fácil manutenção e acelerado desenvolvimento. O conceito MVC também pode ser utilizado no desenvolvimento de aplicações desktop mantendo as mesmas vantagens citadas. Com as diversas possibilidades de interfaces que conhecemos hoje, a arquitetura MVC é uma ferramenta indispensável para desenvolvimento de aplicações mais complexas (Figura 1). 6

16 Figura 1 Aplicação sendo exibida por várias interfaces Definições Modelo (Model): contém os dados da aplicação junto com a lógica dos negócios que define como alterar e acessar os dados; o modelo pode ser compartilhado entre vários objetos, visões e controladores. O modelo é usado para gerenciar informações e notificar aos observadores quando esta informação sofre mudanças. O modelo encapsula mais do que somente dados e funções que operam sobre ele. Um modelo é feito para servir como uma aproximação de um modelo computacional, ou uma abstração de algum processo ou sistema do mundo real. Ele captura não somente o estado de um processo ou sistema, mas também com o sistema funciona. Na arquitetura MVC, o modelo não sabe de quantas nem quais interfaces com o usuário estão exibindo seu estado. Visão (View): é a forma de apresentação dos dados do modelo para o mundo externo, pode ser na forma de GUI (Graphical User Interface), fala, som, listagens ou mesmo em uma saída não orientada a usuários, como ligar um ar condicionado. Controlador (Controller): transforma eventos gerados pela interface em ações de negócio, alterando o modelo.. Por exemplo, se o usuário clica o botão do mouse ou 7

17 seleciona um item de menu, o controlador é o responsável por determinar como a aplicação deve responder. Na Figura 2 é ilustrado a interação destes três componentes: Figura 2 - Fluxo de eventos e informações em uma arquitetura MVC Figura 3 MVC em nível de aplicação Como funciona O modelo, a visão e o controlador são intimamente relacionados e estão constantemente se comunicando. Assim sendo, eles devem referenciar uns aos outros. A Figura 3 ilustra basicamente uma relação no estilo Model-View-Controller. 8

18 Ela mostra as linhas de comunicação dentre as camadas de modelo, visão e controlador. Na figura, o modelo aponta para a visão, que permite que ele envie notificações de alterações. Esta é só uma associação básica o modelo não deve estar ciente das visões que o observam, este baixo acoplamento é conseguido com o Padrão Observador. Em contraste a isto, a visão sabe exatamente que tipo de modelo ela está observando. A visão também tem uma associação de alto nível com o modelo, permitindo que ela chame qualquer outra função do mesmo. O controlador é o responsável por determinar como a aplicação deve responder em resposta as ações do usuário. 9

19 3. Frameworks Orientados a Objetos 3.1. Definição Um framework é uma aplicação quase completa, mas com pedaços faltando. Criar uma aplicação sob um framework consiste em prover os pedaços que são específicos para sua aplicação. Um framework provê uma solução para uma família de problemas semelhantes. Algumas definições de outros autores: Framework é um esqueleto de implementação de uma aplicação ou um subsistema de aplicação, em um domínio de problema particular. É composto de classes abstratas e concretas e provê um modelo de interação ou colaboração entre as instancias de classes definidas pelo framework [WIA 91]. Um framework é utilizado através de configuração ou conexão de classes concretas e derivação de novas classes concretas a partir das classes abstratas do framework [WIR 90]. Um framework é um conjunto de classes inter-relacionadas com o objetivo de facilitar o desenvolvimento de um determinado domínio de aplicação. São compostas de classes concretas e abstratas, estas ultimas possuindo implementações incompletas que devem ser estendidas para compor as classes completas da aplicação final. A motivação para o desenvolvimento de frameworks é a reutilização de código e projeto, com o intuito de aumentar a produtividade no desenvolvimento de softwares [SIR 00]. Um framework captura as decisões de projeto que são comuns ao seu domínio de aplicação. Assim, frameworks enfatizam a reutilização de projeto em relação à reutilização de código, embora um framework, geralmente inclua subclasses concretas que o desenvolvedor pode utilizar imediatamente [GAM 02]. O que trás como conseqüência que temos aplicações similares, que facilita no seu gerenciamento. Por outro lado, o desenvolvedor perde um pouco de liberdade uma vez que muitas decisões de projetos já foram tomas anteriormente. A diferença fundamental entre um framework e a reutilização de classes de uma biblioteca, é que neste caso as colaborações são criadas pela própria aplicação, cabendo ao desenvolvedor estabelecê-las. E no caso do framework, as colaborações estão embutidas. 10

20 Figura 4 - Visão Conceitual da estrutura um Framework 3.2. Qualidade de um bom Framework Para termos um bom Framework algumas características devem ser cumpridas: generalidade, alterabilidade e extensibilidade. Para que isto ocorra, o projeto do framework deve ser bem elaborado, buscando identificar que partes devem ser mantidas flexíveis para produzir um projeto bem estruturado. Desta forma, deve-se utilizar os princípios de um projeto orientado a objetos, como o uso da herança, polimorfismo, classes abstratas Generalidade Reflete a capacidade do framework em dar suporte a várias aplicações diferentes de um mesmo domínio, sendo flexível o suficiente para que as características de alterabilidade e extensibilidade possam ser aplicadas. 11

21 Alterabilidade Esta associada à capacidade do framework de alterar suas funcionalidades em função da necessidade de uma aplicação especifica sem que estas alterações resultem em conseqüências imprevistas no conjunto de sua estrutura Extensibilidade Reflete a capacidade do framework de ampliar sua funcionalidade sem conseqüências imprevistas no conjunto de sua estrutura. Ligada diretamente na manutenção do framework, permite que sua estrutura evolua Simplicidade A estrutura geral do framework deve ser de fácil compreensão de forma que o desenvolvedor possa aprendê-lo em pouco tempo. Esta simplicidade é alcançada pelo projeto de interfaces limpas e consistentes, pela utilização de padrões em seu projeto, código, interfaces e nomenclaturas Clareza Os aspectos comportamentais do framework devem ser encapsulados. Não há necessidade do desenvolvedor saber todos os detalhes do framework para que ele possa utilizá-lo Fronteiras Um framework tem responsabilidades claras e sucintas, e deve acatá-las e nada mais. Todas as funcionalidades exteriores a fronteira do framework devem ser tratadas pelo desenvolvedor. Quando um framework ultrapassa esta fronteira, ele se torna complexo e provavelmente o desenvolvedor ao tentar utilizá-lo precisará implementar código adicional junto a framework para conseguir o comportamento desejado. Um framework não prove a funcionalidade da aplicação, ele prove o esqueleto sobre o qual a aplicação é construída. 12

22 Caso o framework deseje prover classes mais especializadas, estas devem ser fornecidas em bibliotecas de classes separadas como subclasses das classes do framework. Isto permitirá ao desenvolvedor escolher usar ou não estas classes, fazendo assim uma clara distinção entre framework e o kit de ferramentas do desenvolvedor. 13

23 4. Estudo do Framework Struts Nesta seção será apresentado o Framework Struts, um framework que vem sendo amplamente utilizado em aplicações na WEB. Ele será apresentado por implementar o Padrão Arquitetural MVC, padrão que foi implementado no framework desenvolvido Projeto Jakarta O projeto Jakarta tem como objetivo criar e manter soluções de código aberto na Plataforma Java. Produtos de Jakarta são desenvolvidos e são distribuídos por vários subprojetos. Dentro destes subprojetos temos o Framework Struts. O projeto Jakarta é patrocinado por Apache Software Foundation Framework Struts Introdução Struts foi criado por Craig R. McClanahan, e doado para Apache Software Foundation em Maio de O objetivo do Framework Struts é proporcionar um framework de código aberto para construção de aplicações web. O nome struts=suporte, que lembra partes que suportam construções, casas, pontes que são de certa forma invisíveis para as mesmas. Umas das principais características desse framework é que controle das camadas é baseado em tecnologias como Java Servlets, JavaBeans, ResourceBundles, e Extensible Markup Language (XML). Struts é baseado no padrão MVC (Model-View-Controller) Struts possui seu próprio componente controlador. Para o Modelo, Struts pode interagir com qualquer tecnologia padrão de acesso de dados, incluindo Enterprise Java Beans, JDBC, e Object Relational Bridge. Para Visão, struts pode utilizar JSP (JavaServer Pages), incluindo JSTL (JavaServer Standard Tag Library) e JSF (JavaServer Faces). 14

24 Motivação para criação do Framework Struts Muito claramente desenvolvedores perceberam que JSPs (JavaServer Pages) e servlets poderiam ser usados juntos para o desenvolvimento de aplicações web. Os servlets poderias ajudar no controle de fluxo, e o JSPs com a escrita do código HTML. O que deu origem ao Modelo Dois (usando JSPs e servlets juntos e JavaBeans) e no modelo 1(usava JSPs e JavaBeans), nas Figura 5 e Figura 6 vemos respectivamente a representações do Modelo 1 e do Modelo Estrutura do Framework Struts Figura 5 - Visão do framework Struts e do MVC. 7 Java Servlets: são projetados para manipular requisições feitas pelo Web browsers. Vantagens: Melhor que o padrão CGI (um dos primeiros mecanismos a permitir que um servidor WWW criasse conteúdo de forma dinâmica). Alta performance Conveniência Portabilidade Segurança Cria threads para cada requisição Web. 15

25 Java ServerPages são projetados para criar paginas Web dinâmicas. Struts usa Servlet como um controlador das requisições feitas pelo Web browsers para destinar para o ServerPage. Isto faz com que aplicações Web sejam mais fáceis de projetar, criar e alterar. MVC. Figura 6 Struts e MVC Na Figura 6 temos um detalhamento maior do framework Struts juntamente com o Como funciona o struts Num exemplo bem característico da arquitetura MVC, o framework struts, as views são renderizadas por arquivos jsps, sendo que o modelo, ou a lógica de negócio ficam com as classes Java e a parte do controle é praticamente todo implementada em um arquivo struts- 16

26 config.xml, no qual são definidas as ações para determinadas requisições vindas do cliente. Os três componentes do MVC no struts: Model: é tudo que envolve o Business Logic, sem considerações de interface. JavaBeans (ou EJBs) são usados para Business Logic (Model). View: representa numa interface o estado corrente do Model. JSP são usados para representar a View. Struts ajuda a validar formulários com classes "Form". Controller: é usado para alimentar o Model quando ocorrem entradas na interface. O Controller é um servlet que já vem pronto em struts O que o Controller faz: Intercepta requests HTTP vindo de um cliente. Cada request recebe seu próprio thread. Traduz o request numa operação específica a ser feita. Chama a operação diretamente (ou delega para um Action Object). O servlet roteia o request para o destino correto (o objeto Action). Ajuda a selecionar a próxima View a mostrar para o cliente. Retorna a View para o cliente Struts versus Framework Desenvolvido No framework desenvolvido foi usado o padrão Arquitetural MVC do Smalltalk que usa o padrão de Notificação Observer, já no Struts é usado Modelo 2, também conhecido como: MVC2, Web MVC. Isso ocorre porque o padrão de notificação Observer não funciona bem em um ambiente web. O HTTP é um protocolo de extração : cliente solicita e o servidor responde. O padrão Observer requer um protocolo de anexação para a notificação, a fim de 17

27 que o servidor possa transferir uma mensagem para um cliente quando houver mudanças no modelo. Esse padrão funciona bem quando todos os recursos estão no mesmo servidor e os clientes têm uma conexão aberta com esse servidor. Não funciona bem tão bem quando os recursos são distribuídos em diversos servidores e os clientes não mantêm uma conexão aberta com a aplicação. 18

28 5. Uso de Frameworks Utilizar um framework consiste em criar aplicações a partir deste. A motivação para produzir aplicações a partir de frameworks é a perspectiva de aumento de qualidade e produtividade. Para produzir aplicações sob um framework deve-se estender sua estrutura. Um dos obstáculos em desenvolver uma aplicação sob um framework está no fato que um desenvolvedor de aplicações pode necessitar de um esforço superior para aprender a usar um framework que desenvolver sua aplicação do início ao fim. Para diminuir o esforço requerido pode-se criar ferramentas que auxiliem na compreensão de como usar framework. Como documentação no estilo cookbook Indivíduos Envolvidos com o Desenvolvimento e Uso de Frameworks O desenvolvimento tradicional de aplicações envolve dois tipos de individuo: desenvolvedor de aplicação e usuário de aplicação (nos dois casos isto pode corresponder a grupos de indivíduos com diferentes funções). Desenvolvedores devem levantar os requisitos de uma aplicação, desenvolvê-la(o que inclui a documentação que ensina a usar a aplicação, como manuais de usuário) e entregá-la aos usuários. Usuários interagem com uma aplicação apenas através de sua interface. O desenvolvimento de frameworks introduz outro individuo, alem do desenvolvedor e usuário de aplicação: o desenvolvedor de framework. No contexto dos frameworks, o papel do usuário de aplicação é o mesmo descrito acima. O papel do desenvolvedor de aplicações difere do caso anterior pela inserção do framework no processo de desenvolvimento de aplicações. Com isto, o desenvolvedor de aplicações é para a produção de aplicações. Ele tem as mesmas funções do caso anterior: obter os requisitos da aplicação desenvolvê-la usando o framework, (o que em geral, não dispensa completamente do desenvolvedor de aplicações a necessidade de produzir código) e desenvolver a documentação da aplicação. O novo papel criado no contexto dos frameworks, o desenvolvedor de framework, tem a responsabilidade de produzir frameworks e algum modo de ensinar como usá-los para produzir aplicações. [SIR 00]. 19

29 5.2. Questões-Chave para Usar um Framework Usuários de frameworks desenvolvidos segundo a abordagem caixa-preta ou black-box ou data-driven precisam apenas conhecer que objetos estão disponíveis e as regras para combiná-los. As instanciações e composições feitas determinam as particularidades da aplicação. No caso dos frameworks caixa-branca (white-box ou architecture-driven) e caixacinza, necessitam saber quais classes devem ser geradas, quais classes podem ser geradas, e precisam diferenciar os dois casos. Também necessitam conhecer quais as responsabilidades e as funcionalidades das classes a serem geradas. Assim, no caso geral, as três questões-chave a seguir devem ser respondidas: Questão 1 Quais classes? As classes concretas de uma aplicação podem ser criadas ou reutilizadas do framework. Então, que classes devem ser desenvolvidas pelo usuário e que classes concretas do framework podem ser reutilizadas? Questão 2 Quais métodos? Um método de uma classe abstrata pode ser classificado como: - abstrato: um método que tem apenas a sua assinatura definida na classe abstrata; - template: é definido em termos de outros métodos (métodos hook); - base: é completamente definido. Na execução de um método template ocorre à chamada de pelo menos um método hook, que pode ser um método abstrato, base ou template. Ao produzir uma aplicação: - métodos abstratos precisam ser definidos; - métodos template fornecem uma estrutura de algoritmo definida, mas permitem flexibilidade através dos métodos hook chamados. A avaliação da necessidade ou conveniência de produção de métodos deve ser estendida para os métodos hook. - método base de acordo com o projeto do framework, não precisa ser alterado (mas é possível sobrepô-los). Assim ao gerar uma classe concreta para uma aplicação (considerando o caso de subclasse de classe abstrata do framework), que métodos devem ser definidos e que métodos herdados podem ser reutilizados? 20

30 Questão 3 O que os métodos fazem?: Os métodos cuja estrutura deve ser definida pelo usuário do framework produzem o comportamento especifico da aplicação sob desenvolvimento. Assim, definidas as classes e os respectivos métodos a desenvolver, quais as responsabilidades destes métodos, em que situações de processamento eles atuam e como eles implementam a cooperação entre diferentes objetos? [SIR 00]. 21

31 6. Framework Desenvolvido O principal padrão de projeto utilizado nesse framework é o padrão MVC(Model View Controller) que tem o objetivo de separar a aplicação em três camadas. No framework modelo será a classe BmvcModel, a visão classe BmvcView, e o controlador a classe BmvcController As principais classes do Framework BmvcModel: responsável pelo modelo de dados. Esta classe deve ser extendida e implementada ao se criar uma aplicação sob o framework. BmvcView: responsável pela apresentação do dados. Para cada visão teremos uma subclasse da BmvcView. BmvcController: controla a aplicação. Para cada componente visual que gere eventos na interface deve ser implementado um controlador. Exemplo para controlador eventos que são gerados por botões deve ser implementado um controlador. A classe BmvcButtonCTRL implementa um controlador para botões. BmvcCommand: executa os eventos gerados na interface. BmvcAplic: classe a aplicação Vantagens em usar o Framework Para melhor expor as vantagens do uso do framework foi criado uma aplicação sem usá-lo, o código fonte se encontra no anexo. Entre elas temos que a arquitetura de camadas já está definida. Diminuindo o esforço do desenvolvedor uma vez que esta decisão já foi tomada, cabendo a ele seguí-la. Sem ter que se preocupar com colaborações entre as classes da aplicação, já que elas estão embutidas no framework. Por exemplo, o desenvolvedor não precisaria preocupar-se com interação entre modelo e visão, pois o próprio framework faz isso através do padrão MVC. Na aplicação sem o uso do framework ocorreu um forte acoplamento entre modelo e visão, visto que sempre que ocorrem alterações do modelo às visões devem ser notificadas dessas alterações o que trás como conseqüência que o modelo faça referência direta às visões. Porquanto muitas vezes 22

32 nem sabemos quais visões devem ser alteradas e tendo que novas visões poderiam ser criadas no futuro, toda vez que isso ocorre teríamos que mudar o modelo. Este fraco acoplamento permite um aumento de qualidade no aplicativo final desenvolvido. Com os controladores do framework não precisamos ter conhecimento sobre os controladores Swing do Java. Além que todos eventos dos controladores são executados pelo padrão Command que tem várias vantagens como: ele separa o objeto que invoca a operação daquele que sabe executá-la, a operação execute do padrão Command pode armazenar o estado para reverter seus efeitos no próprio comando, termos log dos comandos executados. Finalizando, se fosse criar uma aplicação sem o framework utilizando os padrões usados no framework teríamos consideravelmente um aumento de complexidade na aplicação. E o código não ficaria tão limpo quanto o código de uma aplicação desenvolvida sob o framework. Perderíamos em qualidade, tempo, esforço no desenvolvimento da mesma Estrutura do Framework O framework desenvolvido (Bmvc) foi feito na linguagem Java. Para desenvolver uma aplicação sob ele é necessário conhecimento básico na mesma. Para criar uma aplicação sob o Bmvc os seguintes passos devem ser seguidos, a seqüência é mais por motivos didáticos, mas não necessariamente precisa ser na ordem apresentada. 1) Criar o model (modelo) da aplicação 2) Criar a view (visão) ou as views da aplicação 3) Criar aplicação Note-se que apesar de estarmos usando o padrão MVC, não será necessário criar o Controlador, apenas será reutilizado os controladores que já vem com o framework. Sempre que houver necessidade pode-se facilmente criar novos controladores garantindo a extensibilidade do framework. 23

33 Criação do model (modelo) Para criar o modelo deve-se estender a classe BmvcModel, e nela deverá ser colocado apenas o que pertence ao Model sem nenhuma ligação com a View (apresentação dos dados). Para facilitar coloque o nome da classe como xxxmodel.java. Essa classe é bem simples de definir a única coisa necessária é estender do framework a classe BmvcModel usando xxxmodel extends BmvcModel. No construtor da classe inicialize os dados do modelo Criação da view (visão) Para criar a view estenda a classe BmvcView, a sua classe por padronização ficaria assim xxxview.java. Na view é necessário criar o método updateview, que será chamado pela classe BmvcView, toda a vez que a view for atualizada. No corpo desse método coloque o código que produz a alteração da View. Esse método ficaria assim: public void updateview() {... No construtor da classe deve-se pegar uma referência do modelo, está referência é conseguida pedindo para a aplicação o modelo (com temos baixo acoplamento), em seguida será mostrado a classe aplicação com mais detalhes Criação da aplicação Para criar a classe aplicação deve-se estender a classe BmvcAplic. O nome da sua classe aplicação pode ser MinhaAplicacao.java. Nessa classe será instanciado o modelo e todas as views. Métodos que devem ser definidos nessa classe: 1) public void criamodelo () {... esse é um método hook, que será chamado pela classe BmvcAplic. Nele deve ser instanciado o modelo e setado o modelo para que o framework saiba quem é o modelo da aplicação para isso use o método: setmodel(seumodelo); 2) public void criavisao () {... esse é um método hook, que será chamado pela classe BmvcAplic. Nele deve ser instanciado as views e adicionado as views para o framework, para isso use o método: addinternalframe(suaview) 3) public static void main(string[] args) { 24

34 Aqui deve ser instanciado a própria classe aplicação no caso MinhaAplicacao, usando: MinhaAplicacao aplic = new MinhaAplicacao("Esta é a minha aplicação"). E em seguida showaplicacao(para mostrar a aplicação) Criando um novo Controlador O framework já vem com alguns controladores prontos, mas é possível criar novos controladores. Para isso estenda a classe BmvcController, que é a classe controladora principal. No construtor chame o construtor da superclasse passando como parâmetros o componente para o qual está sendo criado o controlador e o comando que deve ser executado quando ocorre uma ação nesse componente. Para esse componente também é necessário adicionar um listener. Em seguida será mostrado um controlador em detalhes. 25

35 7. Criando uma aplicação sob o Framework Bmvc Nesse tópico será mostrado os principais pontos para criação de uma aplicação sob o framework Bmvc. A aplicação criada será de uma Enquete de Sistemas Operacionais.Algumas partes do código não será explicitada, todo o código da aplicação está no anexo do trabalho Criando a estrutura de diretórios Siga os passos abaixo para criar a estrutura de diretórios: 1) Inicialmente crie uma nova pasta (c:\minhaaplicacao); 2) Nessa pasta criada, coloque uma copia do framework Bmvc, nela constará três pastas: model, view, controller; 3) Agora cria outra pasta (c:\minhaaplicacao\enquete) 4) Dentro dela cria as pastas: model, view, recursos Na pasta model ficará o modelo; Na pasta view as visões; Na pasta recursos ficará imagens, etc Criando a aplicação Criando a classe modelo 1) Vá ao seu editor java e crie um novo arquivo e salve ele como: (C:\minhaAplicacao\aplicacao\enquete\model\ EnqueteModel.java) 2) Código comentado: //nome do seu pacote package enquete.model; //importação da classe BmvcModel do framework.model import framework.model.bmvcmodel; 26

36 //estendendo a super classe Model public class EnqueteModel extends BmvcModel { //dados do modelo public EnqueteModel() { //coloque aqui a inicialização do modelo public void votar (String opcao) { //coloque aqui o código de quando ocorre um voto... //notifica as view que houve mudança notifyviews(); //outros métodos... Na parte do modelo o que deve ser ressaltado é o método notifyviews() que informa as views que houve mudança. 27

37 Criando as Views Criaremos aqui duas views, no código em anexo foram criado quatro views Criando a classe View Principal Chamaremos de MainView a view principal. 1) Crie um novo arquivo no seu editor e salve (C:\minhaAplicacao\aplicacao\enquete\view\MainView.java). 2) Código comentado: //nome do seu pacote package aplicacao.enquete.view; //pacotes importados //utiliza o modelo para pegar os dados do mesmo e apresentá-los na tela import aplicacao.enquete.model.*; //aqui fica as imagens que são exibidas na tela, existe uma classe(recursos.java) que captura o diretório onde as mesmas estão. import aplicacao.enquete.recursos.*; //utilizada para ter acesso à classe Aplicação que tem um ponto global de acesso(padrão Singleton), no anexo existe uma implementação simples desse padrão de projeto (SingletonPattern.java) ou na própria classe do framework (BmvcAplic.java). import framework.*; // utiliza os controladores que serão responsáveis por trocar informação entre a View e Model. import framework.controller.*; //superclasse view import framework.view.*; //estendendo a superclasse do framework 28

38 public class MainView extends BmvcView { //a view tem uma referência ao modelo private EnqueteModel modelo; public MainView() { //pegando uma referencia do modelo modelo = (EnqueteModel) BmvcAplic.getModel(); // aqui é utilizado o padrão Observador. // O padrão Observador permite que objetos interessados sejam avisados // da mudança de estado ou outros eventos ocorrendo num outro objeto. No nosso caso //a view será notificada quando houve mudanças no modelo. modelo.addview(this); //menu principal para a view principal JMenu aplicacaomenu = new JMenu("Aplicação"); aplicacaomenu.setmnemonic('a'); //Padrão Command (no anexo a uma implementacao simples de padrão //CommandPattern.java) //note que aqui é criado o comando que será executado quando houver uma ação sobre, //esse caso será dado um voto no Sistema Operacional Windows. BmvcCommand cmdvotarwindows = new BmvcCommand () { public void execute(actionevent event) { modelo.votar("windows"); ; // submenus Aplicacao->Windows //aqui está sendo utilizado uns dos controladores do framework, e note que está sendo //passado para ele o comando que deve ser executado(cmdvotarwindows) quando 29

39 //houver um evento. BmvcMenuItemCTRL aplicacaowindows = New BmvcMenuItemCTRL(aplicacaoMenu, "Windows", Recursos.getRecursos("win.gif"), 'W', "F2", cmdvotarwindows );... 30

40 Criando a classe View EnqueteResultadoView Chamaremos de EnqueteResultadoView a view que mostrara a quantidade de votos. 1) Crie um novo arquivo no seu editor e salve (C:\minhaAplicacao\aplicacao\enquete\view\ EnqueteResultadoView.java). 2) Código comentado: // nome do seu pacote package aplicacao.enquete.view; //pacotes utilizados import aplicacao.enquete.model.*; import framework.*; import framework.view.*;... public EnqueteResultadoView(int x, int y) { //pega uma referencia do modelo modelo = (EnqueteModel) BmvcAplic.getModel(); // aqui novamente é utilizado o padrão Observador. // O padrão Observador permite que objetos interessados sejam avisados // da mudança de estado ou outros eventos ocorrendo num outro objeto. No nosso caso //a view será notificada quando houve mudanças no modelo. modelo.addview(this); 31

41 // esse método será chamado pela classe BmvcView, toda a vez que a view for //atualizada. No corpo desse método coloca-se o código que produz a alteração //da View public void updateview() {... 32

42 Criando a classe Aplicação 1) Vá ao seu editor java e crie um novo arquivo e salve ele: (C:\minhaAplicacao\aplicacao\enquete\model\EnqueteModel.java) 2) Código comentado: // nome do seu pacote package aplicacao.enquete; //pacotes utilizados import aplicacao.enquete.model.*; import framework.*; import framework.model.*; import aplicacao.enquete.view.mainview; import aplicacao.enquete.view.enqueteresultadoview; import aplicacao.enquete.view.enqueteresultadoporcview; import aplicacao.enquete.view.enqueteresultadograficoview; //estendendo a superclasse do framework public class Enquete extends BmvcAplic { // construtor public Enquete(String name) { super(name, true, true); // aplicação criada com menu(segundo parâmetro) e toolbar(segundo parâmetro)... //aqui temos um método hook, que será chamada por um método template(padrão //Template). Um método template é um método que ao ser chamado invoca pelo menos //um outro método chamado método hook. Método hook é um método gancho que 33

43 //fornece comportamento adicional ao método template. public void criamodelo() { // criar o modelo EnqueteModel modelo = new EnqueteModel(); // setado o modelo para que o framework saiba quem é o modelo da aplicação setmodel( (BmvcModel) modelo); // povoa o modelo modelo.additem("linux"); modelo.additem("mac SO"); modelo.additem("windows"); ; //método hook public void criavisao() { // cria as views mainview = new MainView(); enqueteresultadoview = new EnqueteResultadoView(20, 30); enqueteresultadoporcview = new EnqueteResultadoPorcView(20, 190); enqueteresultadograficoview = new EnqueteResultadoGraficoView(255, 30); //adiciona as views ao framework BmvcAplic.addInternalFrame(enqueteResultadoView.getInternalFrame()); BmvcAplic.addInternalFrame(enqueteResultadoPorcView.getInternalFrame()); BmvcAplic.addInternalFrame(enqueteResultadoGraficoView.getInternalFrame()); ; //finalmente temos o método main, aqui é instanciado a classe Enquete. public static void main(string[] args) { 34

44 final Enquete termometro = new Enquete("Aplicação - Enquete de Sistemas Operacionais"); //mostra a aplicação. BmvcAplic.showAplicacao(); 35

45 8. Conclusão A abordagem de frameworks contribui significativamente para reutilização no desenvolvimento de artefatos de software. Frameworks é uma abordagem que está sendo cada vez mais utilizada, com o objetivo de diminuir o tempo e esforços no desenvolvimento de artefatos de software. Para se ter um bom projeto, este deve ser bem estruturado e planejado. Padrões de projeto ajudam o projetista no desenvolvimento de projetos melhor estruturados, oferecendo soluções que foram desenvolvidas e aperfeiçoadas ao longo do tempo. O framework desenvolvido permite a separação das camadas de dados, controle e visualização. Esta separação oferece vantagens para desenvolvedores como a otimização das habilidades de equipes e a redução de custos associados ao desenvolvimento, além de favorecer a extensibilidade e reutilização do código. Temos também o reuso de projeto e código proporcionado pelo framework. O fraco acoplamento do modelo de dados permite um aumento de qualidade no aplicativo final desenvolvido. Outro ponto é que o framework força o desenvolvedor a criar aplicações mais bem estruturadas. Para testar o framework foram criados para um mesma aplicação três versões da mesma: a primeira utilizando o framework, segunda sem usar o framework e sem padrões de projeto e a ultima sem usar o framework e usando padrões de projeto. Para as três versões a que teve menos linhas de códigos escritas e também levou menos tempo para desenvolver foi a utilizando o framework. 36

46 9. Referências [WIR 90] WIRFS-BROCK, R, Johnson, R. E. Surveying current research in object-oriented design. Communications of the ACM. V.33, n.9. sep [WIA 91] WIRFS-BROCK, A. et. Al. Designing reusable designs: Experiences designing object-oriented frameworks. In: Object-Oriented Programming Systems, Languages and Applications Conference; European on Object-Oriented Programming, [SIR 00] SILVA, Ricardo P. Suporte ao desenvolvimento e uso de frameworks e componentes. Tese para a obtenção do grau de Doutor em Ciências da Computação. Universidade Federal do Rio Grande do Sul, UFRGS. Porto Alegre, [GAM 02] GAMMA, Eric, HELM, Richard, JOHNSON, Ralph, VLISSIDES, John. Padrões de Projeto: soluções reutilizáveis de software orientado a objetos. Porto Alegre: Bookman, LARMAN, Craig. Utilizando UML e padrões: Uma introdução à análise e ao projeto orientado a objetos. Tradução Luiz A. M. Salgado. Porto Alegre: Bookman, LARMAN, Craig.Applying UML and Patterns: A introduction to object-oriented analysis and design and the unified process. 2 ed: Prentice Hall, JAKARTA, Projeto Jakarta. Disponível em < Acesso em 10 jun STRUTS, Framework Struts. Disponível em < Acesso em 11 jun

47 JAVA WORLD, Exploring the MVC design pattern. Disponível em < Acesso em 11 jun HUSTED, Framework Struts. Disponível em < >. Acesso em 12 jun

48 10. Anexo A Artigo Framework para Camada de Apresentação Claudio Ulisses Nunes Biava Departamento de Informática e Estatística Universidade Federal de Santa Catarina (UFSC) biava@inf.ufsc.br Resumo Frameworks orientados a objetos promovem reuso de projeto e código. Contudo, a ampla adoção desta abordagem é dificultada pela complexidade para desenvolver e para usar frameworks. Este trabalho apresenta o framework Bmvc que é um framework para camada de apresentação baseado na arquitetura MVC (Model View Controller). Será abordado Design Patterns (Padrões de Projeto) que foram utilizados para desenvolver o framework. E finalmente será criado uma aplicação utilizando o framework Bmvc e explicando passo a passo como fazê-la. Palavras-Chaves: framework orientados a objetos, reuso, MVC, Design Patterns Abstract Object-oriented frameworks promote reuse design and code. However, the widespread adoption of this approach is made difficult by the complexity to develop and to use frameworks. This work presents the framework Bmvc that is a framework for presentation layer based on the architecture MVC (Model View Controller). It will be approach Design Patterns that were used to develop the framework. And finally will be created an application using framework Bmvc and explaining step by step as to make it. Keywords: Objects-oriented frameworks, reuse, MVC, Design Patterns. 1. Introdução O desenvolvimento de Frameworks se torna cada vez mais comum e necessário uma vez que existe uma necessidade de criar sistemas corporativos de modo mais rápido e a um baixo custo e de fácil manutenção. Framework é o esqueleto-base sobre o qual uma aplicação é construída, constituída de uma estrutura de classes com implementações incompletas, que estendidas permitem 39

49 produzir novos aplicativos. A grande vantagem desta abordagem é a reutilização de código e projeto, que tem por intuito diminuir o tempo e o esforço no desenvolvimento de softwares. Este trabalho tem como objetivo implementar um framework para desenvolvimento de um Framework para Camada de Apresentação utilizando padrão arquitetural MVC (Model View Control), ou seja, separação de modelo e visão. Seu desenvolvimento foi motivado pela necessidade de separar interface de código, ou seja, de se criar códigos de aplicações genéricos, não para interface especificas. 2. Padrões de Projeto Os padrões de software foram popularizados com o livro Design Patterns: Elements of Reusable Object-Oriented Software de Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides (também conhecidos como Gang of Four, da onde veio à famosa sigla GoF). Salientando que os padrões que eles descrevem não foram inventados por eles. O que eles fizeram foi perceber que padrões se repetiam em numerosos projetos, eles identificaram e documentaram. Eles catalogaram 23 padrões. Dividos em: Padrões de Criação: abstraem o processo de instanciação de objetos Padrões Estruturais: definem a forma como as classes e objetos são compostos Padrões Comportamentais: definem algoritmos e a atribuição de responsabilidades entre objetos. Os padrões se referem à comunicação de problemas e soluções. Em outras palavras, os padrões permitem documentar um problema que se repete e sua solução em um contexto especifico e comunicar esse conhecimento para outras pessoas. Nesse trabalho foram utilizados os seguintes padrões: Observador, Command, Template Method, Singleton, Padrão Arquitetural MVC 3. Padrão Arquitetural MVC Sua principal função é "separar" o sistema em 3 camadas, facilitando assim o entendimento, desenvolvimento e manutenção, deixando bem claras as funções desempenhadas por cada camada. O padrão MVC vem sendo amplamente usado em aplicações WEB, sendo principalmente implementada com o auxílio de frameworks entre estes se destacam o projeto "jakarta struts" que será discutido em frente, facilitando assim a criação de páginas dinâmicas de fácil manutenção e acelerado desenvolvimento. O conceito MVC também pode ser utilizado no desenvolvimento de aplicações desktop mantendo as mesmas vantagens citadas. Modelo (Model): contém os dados da aplicação junto com a lógica dos negócios que define como alterar e acessar os dados; o modelo pode ser compartilhado entre vários objetos, visões e controladores. 40

50 Visão (View): é a forma de apresentação dos dados do modelo para o mundo externo, pode ser na forma de GUI (Graphical User Interface), fala, som, listagens ou mesmo em uma saída não orientada a usuários, como ligar um ar condicionado. Controlador (Controller): transforma eventos gerados pela interface em ações de negócio, alterando o modelo.. Por exemplo, se o usuário clica o botão do mouse ou seleciona um item de menu, o controlador é o responsável por determinar como a aplicação deve responder. 4. Frameworks Orientados a Objetos Um framework é uma aplicação quase completa, mas com pedaços faltando. Criar uma aplicação sob um framework consiste em prover os pedaços que são específicos para sua aplicação. Um framework provê uma solução para uma família de problemas semelhantes. 5. Qualidade de um bom Framework Para termos um bom Framework algumas características devem ser compridas: generalidade, alterabilidade e extensibilidade. Para que isto ocorra, o projeto do framework deve ser bem elaborado, buscando identificar que partes devem ser mantidas flexíveis para produzir um projeto bem estruturado. Desta forma, deve-se utilizar os princípios de um projeto orientado a objetos, como o uso da herança, polimorfismo, classes abstratas. Características de um bom framework: Generalidade, Alterabilidade, Extensibilidade, Simplicidade, Clareza, Fronteiras. 6. Framework Desenvolvido O principal padrão de projeto utilizado nesse framework é o padrão MVC(Model View Controller) que tem o objetivo de separar a aplicação em três camadas. No framework modelo será a classe BmvcModel, a visão classe BmvcView, e o controlador a classe BmvcController. As principais classes do Framework: BmvcModel: responsável pelo modelo de dados. Esta classe deve ser extendida e implementada ao se criar uma aplicação sob o framework. BmvcView: responsável pela apresentação do dados. Para cada visão teremos uma subclasse da BmvcView. BmvcController: controla a aplicação. Para cada componente visual que gere eventos na interface deve ser implementado um controlador. Exemplo para controlador eventos que são gerados por botões deve ser implementado um controlador. A classe BmvcButtonCTRL implementa um controlador para botões. BmvcCommand: executa os eventos gerados na interface. BmvcAplic: classe a aplicação. 41

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

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

Leia mais

Prototype, um Design Patterns de Criação

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

Leia mais

MVC e Camadas - Fragmental Bliki

MVC e Camadas - Fragmental Bliki 1 de 5 20-03-2012 18:32 MVC e Camadas From Fragmental Bliki Conteúdo 1 Introdução 2 Camadas: Separação Entre Componentes 3 MVC: Interação Entre Componentes 4 Conclusão 5 Referências Introdução A Arquitetura

Leia mais

Padrões de Projeto WEB e o MVC

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

Leia mais

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

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

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate Tiago Peres Souza 1, Jaime Willian Dias 1,2 ¹Universidade paranaense (Unipar) Paranavaí PR Brasil tiagop_ti@hotmail.com 2 Universidade

Leia mais

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

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

Leia mais

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

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

Leia mais

Curso de Aprendizado Industrial Desenvolvedor WEB

Curso de Aprendizado Industrial Desenvolvedor WEB Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos II Professor: Cheli dos S. Mendes da Costa Servidor de Aplicações WEB Tomcat Servidor Tomcat Foi desenvolvido

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

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

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

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

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

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

Leia mais

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

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

Aula 03 - Projeto Java Web

Aula 03 - Projeto Java Web Aula 03 - Projeto Java Web Para criação de um projeto java web, vá em File/New. Escolha o projeto: Em seguida, na caixa Categorias selecione Java Web. Feito isso, na caixa à direita selecione Aplicação

Leia mais

Universidade da Beira Interior

Universidade da Beira Interior Universidade da Beira Interior Relatório Apresentação Java Server Pages Adolfo Peixinho nº4067 Nuno Reis nº 3955 Índice O que é uma aplicação Web?... 3 Tecnologia Java EE... 4 Ciclo de Vida de uma Aplicação

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

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

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

Leia mais

Análise e Projeto Orientados por Objetos

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

Leia mais

Entendendo como funciona o NAT

Entendendo como funciona o NAT Entendendo como funciona o NAT Vamos inicialmente entender exatamente qual a função do NAT e em que situações ele é indicado. O NAT surgiu como uma alternativa real para o problema de falta de endereços

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

2 Geração Dinâmica de Conteúdo e Templates de Composição

2 Geração Dinâmica de Conteúdo e Templates de Composição 2 Geração Dinâmica de Conteúdo e Templates de Composição Alguns dos aspectos mais importantes na arquitetura proposta nesta dissertação são: a geração dinâmica de conteúdo e a utilização de templates de

Leia mais

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

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

Leia mais

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

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

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

Leia mais

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3 Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3 A LEGO Education tem o prazer de trazer até você a edição para tablet do Software LEGO MINDSTORMS Education EV3 - um jeito divertido

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

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

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS Pablo dos Santos Alves Alexander Roberto Valdameri - Orientador Roteiro da apresentação Introdução Objetivos Motivação Revisão bibliográfica

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

Java para Desenvolvimento Web

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

Leia mais

Behavioral Patterns - Command

Behavioral Patterns - Command Encapsula uma requisição como um objeto. Um comando como um objeto. Situação onde é necessário emitir requisição e não se tem conhecimento sobre o que exatamente será feito ou o receptor não desconhece

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

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor

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

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

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

Leia mais

Definição de Padrões. Padrões Arquiteturais. Padrões Arquiteturais. Arquiteturas de Referência. Da arquitetura a implementação. Elementos de um Padrão

Definição de Padrões. Padrões Arquiteturais. Padrões Arquiteturais. Arquiteturas de Referência. Da arquitetura a implementação. Elementos de um Padrão DCC / ICEx / UFMG Definição de Padrões Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Um padrão é uma descrição do problema e a essência da sua solução Documenta boas soluções para problemas recorrentes

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

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

Engenharia de Requisitos

Engenharia de Requisitos Engenharia de Requisitos Introdução a Engenharia de Requisitos Professor: Ricardo Argenton Ramos Aula 08 Slide 1 Objetivos Introduzir a noção de requisitos do sistema e o processo da engenharia de requisitos.

Leia mais

Eduardo Bezerra. Editora Campus/Elsevier

Eduardo Bezerra. Editora Campus/Elsevier Princípios de Análise e Projeto de Sistemas com UML 2ª edição Eduardo Bezerra Editora Campus/Elsevier Capítulo 11 Arquitetura do sistema Nada que é visto, é visto de uma vez e por completo. --EUCLIDES

Leia mais

Projeto de Arquitetura

Projeto de Arquitetura Introdução Projeto de Arquitetura (Cap 11 - Sommerville) UNIVERSIDADE FEDERAL DE ALAGOAS Curso de Ciência da Computação Engenharia de Software I Prof. Rômulo Nunes de Oliveira Até agora, estudamos: Os

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender

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

gerenciamento de portais e websites corporativos interface simples e amigável, ágil e funcional não dependendo mais de um profissional especializado

gerenciamento de portais e websites corporativos interface simples e amigável, ágil e funcional não dependendo mais de um profissional especializado O NetPublisher é um sistema de gerenciamento de portais e websites corporativos (intranets ou extranets), apropriado para pequenas, médias e grandes empresas. O conteúdo do website pode ser atualizado

Leia mais

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

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Processos- Clientes, Servidores, Migração Capítulo 3 Agenda Clientes Interfaces de usuário em rede Sistema X Window Software do lado cliente para

Leia mais

Curso - Padrões de Projeto Módulo 5: Model-View- Controller

Curso - Padrões de Projeto Módulo 5: Model-View- Controller Curso - Padrões de Projeto Módulo 5: Model-View- Controller 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:

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 Índice 1 - Objetivo 2 - Descrição do ambiente 2.1. Tecnologias utilizadas 2.2. Estrutura de pastas 2.3. Bibliotecas já incluídas 3 - Características gerais 4 - Criando

Leia mais

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano Programação Servidor para Sistemas Web 1 Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano Objetivo: Apresentar a teoria por trás dos padrões na construção de aplicações Web. INTRODUÇÃO Nas aulas anteriores

Leia mais

CONSTRUÇÃO DE UM FRAMEWORK PARA O DESENVOLVIMENTO DE APLICAÇÕES WEB

CONSTRUÇÃO DE UM FRAMEWORK PARA O DESENVOLVIMENTO DE APLICAÇÕES WEB ISBN 978-85-61091-05-7 V EPCC Encontro Internacional de Produção Científica Cesumar 27 a 30 de outubro de 2009 CONSTRUÇÃO DE UM FRAMEWORK PARA O DESENVOLVIMENTO DE APLICAÇÕES WEB Lincoln Fernandes Paulino

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

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

Padrão Arquitetura em Camadas

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

Leia mais

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

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

3 Arquitetura do Sistema

3 Arquitetura do Sistema 3 Arquitetura do Sistema Este capítulo irá descrever a arquitetura geral do sistema, justificando as decisões de implementação tomadas. Na primeira seção iremos considerar um conjunto de nós interagindo

Leia mais

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

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

Leia mais

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

02 - Usando o SiteMaster - Informações importantes

02 - Usando o SiteMaster - Informações importantes 01 - Apresentação do SiteMaster - News Edition O SiteMaster foi desenvolvido para ser um sistema simples de gerenciamento de notícias, instalado em seu próprio computador e com configuração simplificada,

Leia mais

SUMÁRIO Acesso ao sistema... 2 Atendente... 3

SUMÁRIO Acesso ao sistema... 2 Atendente... 3 SUMÁRIO Acesso ao sistema... 2 1. Login no sistema... 2 Atendente... 3 1. Abrindo uma nova Solicitação... 3 1. Consultando Solicitações... 5 2. Fazendo uma Consulta Avançada... 6 3. Alterando dados da

Leia mais

Documento de Arquitetura

Documento de Arquitetura Documento de Arquitetura A2MEPonto - SISTEMA DE PONTO ELETRÔNICO A2MEPonto - SISTEMA DE PONTO ELETRÔNICO #1 Pág. 1 de 11 HISTÓRICO DE REVISÕES Data Versão Descrição Autor 28/10/2010 1 Elaboração do documento

Leia mais

Manual de Utilização do Zimbra

Manual de Utilização do Zimbra Manual de Utilização do Zimbra Compatível com os principais navegadores web (Firefox, Chrome e Internet Explorer) o Zimbra Webmail é uma suíte completa de ferramentas para gerir e-mails, calendário, tarefas

Leia mais

Frameworks. Pasteur Ottoni de Miranda Junior

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

Leia mais

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

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

Leia mais

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

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

Leia mais

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2 SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2 1.1 Introdução... 2 1.2 Estrutura do IP... 3 1.3 Tipos de IP... 3 1.4 Classes de IP... 4 1.5 Máscara de Sub-Rede... 6 1.6 Atribuindo um IP ao computador... 7 2

Leia mais

DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS

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

Leia mais

UM ESTUDO SOBRE OS FRAMEWORKS JSF E PRIMEFACES NO DESENVOLVIMENTO DE SOFTWARE WEB

UM ESTUDO SOBRE OS FRAMEWORKS JSF E PRIMEFACES NO DESENVOLVIMENTO DE SOFTWARE WEB UM ESTUDO SOBRE OS FRAMEWORKS JSF E PRIMEFACES NO DESENVOLVIMENTO DE SOFTWARE WEB Adriano Schulter Moenster 1, Tiago Piperno Bonetti 1 ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil adrmoenster@gmail.com,

Leia mais

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial 1 of 14 27/01/2014 17:33 Sistema de Paginação de Esportes Universitários Documento de Arquitetura de Software Versão 1.0 Histórico da Revisão Data 30 de novembro de 1999 Versão Descrição Autor 1.0 Versão

Leia mais

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto Engenharia de Software I Informática 2009 Profa. Dra. Itana Gimenes RUP: Artefatos de projeto Modelo de Projeto: Use-Case Realization-projeto

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

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

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

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

Leia mais

Satélite. Manual de instalação e configuração. CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br

Satélite. Manual de instalação e configuração. CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br Satélite Manual de instalação e configuração CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br Índice Índice 1.Informações gerais 1.1.Sobre este manual 1.2.Visão geral do sistema 1.3.História

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

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

Procedimentos para Reinstalação do Sisloc

Procedimentos para Reinstalação do Sisloc Procedimentos para Reinstalação do Sisloc Sumário: 1. Informações Gerais... 3 2. Criação de backups importantes... 3 3. Reinstalação do Sisloc... 4 Passo a passo... 4 4. Instalação da base de dados Sisloc...

Leia mais

Novidades no Q-flow 3.02

Novidades no Q-flow 3.02 Novidades no Q-flow 3.02 Introdução Um dos principais objetivos do Q-flow 3.02 é adequar-se às necessidades das grandes organizações. Por isso, o Q-flow 3.02 possui uma versão Enterprise que inclui funcionalidades

Leia mais

O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE

O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE Renan Leme Nazário, Ricardo Rufino Universidade Paranaense (Unipar) Paranavaí PR - Brasil renazariorln@gmail.com, ricardo@unipar.br Resumo. Este artigo

Leia mais

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread.

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread. 5 THREADS Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread. 5.1 VISÃO GERAL Uma definição mais abrangente para threads é considerá-lo

Leia mais

Processos Técnicos - Aulas 4 e 5

Processos Técnicos - Aulas 4 e 5 Processos Técnicos - Aulas 4 e 5 Trabalho / PEM Tema: Frameworks Públicos Grupo: equipe do TCC Entrega: versão digital, 1ª semana de Abril (de 31/03 a 04/04), no e-mail do professor (rodrigues.yuri@yahoo.com.br)

Leia mais

INFORMATIZAÇÃO DE FARMÁCIAS PÚBLICAS UTILIZANDO SOFTWARE

INFORMATIZAÇÃO DE FARMÁCIAS PÚBLICAS UTILIZANDO SOFTWARE INFORMATIZAÇÃO DE FARMÁCIAS PÚBLICAS UTILIZANDO SOFTWARE Murilo Nunes Elias 1 1 Departamento de Informática e Estatística Universidade Federal de Santa Catarina(UFSC) Caixa Postal 475 88.040 900 Florianópolis

Leia mais

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

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

Leia mais

Documento de Análise e Projeto VideoSystem

Documento de Análise e Projeto VideoSystem Documento de Análise e Projeto VideoSystem Versão Data Versão Descrição Autor 20/10/2009 1.0 21/10/2009 1.0 05/11/2009 1.1 Definição inicial do documento de análise e projeto Revisão do documento

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

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

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

Leia mais

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

Scriptlets e Formulários

Scriptlets e Formulários 2 Scriptlets e Formulários Prof. Autor: Daniel Morais dos Reis e-tec Brasil Programação Avançada Para Web Página1 Meta Permitir ao aluno aprender a criar um novo projeto Java para web no Netbeans IDE,

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