Pedro Lemos - Pedro Ribeiro - Departamente de Informática Universidade do Minho Braga, Portugal

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

Download "Pedro Lemos - pg10946@alunos.uminho.pt Pedro Ribeiro - pg11059@alunos.uminho.pt. Departamente de Informática Universidade do Minho Braga, Portugal"

Transcrição

1 Modelação de Arquitecturas Aplicacionais no desenvolvimento de Aplicações complexas expansíveis O sistema de disponibilização de resultados eleitorais Pedro Lemos - Pedro Ribeiro - Departamente de Informática Universidade do Minho Braga, Portugal Resumo O suporte dos diferentes modelos eleitorais, impõe o desenvolvimento de um modelo congurável, que permita acomodar com simplicidade, as diversas legislações regionais, quer na sua organização territorial quer nos algoritmos de cálculo aplicáveis. Sendo a utilização do sistema essencialmente restrita a umas horas após o fecho do acto eleitoral, é fundamental a garantia de qualidade, robustez, redundância e escalabilidade, para cumprir o objectivo da disponibilização dos resultados. Este artigo descreve um caso de estudo, de modelação e construção de uma plataforma eleitoral, que suporte a recolha, agregação e disponibilização dos resultados eleitorais por território, como forma de análise ao desenvolvimento de aplicações complexas e de larga escala bem como o impacto que a fase de concepção tem na criação de uma solução propícia a evoluções e adaptações aos requisitos. É neste contexto que surge este artigo, escrito no âmbito do Projecto da UCE15 do Mestrado de Engenharia Informática da Universidade do Minho, como forma de relatar e demonstrar o trabalho de Modelação de Arquitecturas Aplicacionais desenvolvido integradamente, com a Critical Software S.A., numa aplicação empresarial - a Plataforma Eleitoral. 1 Introdução Existem inúmeros sistemas eleitorais (ou de votação) como sejam referendos, legislativas, autárquicas, presidenciais, europeias, entre outras. Cada um desses sistemas eleitorais possui regras e requisitos bem denidos, e que os tornam diferentes entre si. Tanto que, as regras eleitorais hoje, podem não ser as mesmas amanhã. No entanto, pode-se armar que o propósito (escolher algo, ou alguém, de entre um conjunto de opções disponíveis através de contagem de votos) é o mesmo. Quer-se com isto dizer que, apesar de termos eleições diferentes, o propósito de expressão dos votos nessas eleições é o mesmo.

2 2 Lemos, Pedro; Ribeiro, Pedro Assim sendo, o objectivo principal deste trabalho passa por construir e modelar uma aplicação que suporte diferentes sistemas eleitorais e simultâneamente dê resposta às evoluções e actualizações de que estes sistemas possam ser alvo. Repare-se que construir um sistema eleitoral, é um processo rigoroso que necessita de especial atenção no que diz respeito à validação e aceitação dos requisitos. É preciso dar garantias que a aplicação está a funcionar exactamente como é previsto, é segura, preparada para grandes volumes de dados e níveis de acesso bastante elevados. Dessa forma, construir uma aplicação para umas eleições (por exemplo um Referendo) acaba por ser uma tarefa rigorosa, que obriga à utilização de uma equipa de projecto, que, se composta por cerca de 5 a 6 elementos 1, é provável que necessite de cerca de 2 meses para poder concluir o projecto, o que o torna custoso. O desao é portanto, acabar com as transformações de código de aplicações precedentes e modelar, planear e construir uma plataforma, baseada num modelo de serviços, para recolha, agregação e divulgação dos resultados por território, que seja: modular: com capacidade de expansão. Ou seja, que permita a adição de novas funcionalidades, através de importação de novas bibliotecas ou alteração de cheiros de conguração existentes, sendo a aplicação sucientemente "inteligente"para integrar essas novas funcionalidades de forma transparente sem necessidade de alterações ao nível do código. parametrizável: congurável. Que possa ser calibrada e ajustada às necessidades de cada eleição. extensível: que permita extender a funcionalidade base de forma facilitada sem alterações ao código. Por exemplo, através do uso de plugins ou módulos. escalável: na medida em que é capaz de suportar maiores cargas de acessos através da alocação de novos recursos. Aliado ao referido no parágrafo anterior, pretende-se neste artigo, salientar a fase de modelação porque, quando se trata da construção de sistemas complexos, a utilização de boas práticas na denição da arquitectura aplicacional é determinante para garantir uma solução de qualidade, com capacidade de expansão e maior facilidade em tarefas de manutenção. Segundo [BCK03], acredita-se que a arquitectura do software é o produto resultante do desenvolvimento de software que permite um maior ganho no que diz respeito à qualidade e custo do mesmo. Possivelmente essa é a principal razão pela qual as arquitecturas de software têm ganho relevância sendo hoje a sua prática fundamental para o desenvolvimento e evolução de sistemas de software complexo [TMD09]. 1 elementos com experiência e total domínio das tecnologias

3 Modelação e Desenvolvimento 3 2 Trabalho Relacionado Actualmente existem várias soluções destinadas a dar resposta às necessidades dos sistemas eleitorais. No entanto, cada uma delas foi desenvolvida para um acto eleitoral em especíco, arriscando-se a não ser utilizada novamente. Aquando da realização de um novo acto eleitoral, muito possivelmente com diferentes características, há a necessidade de desenvolver uma nova solução. O que acaba muitas das vezes por ser feito é uma reestruturação do código de soluções anteriores. Mas para tal, continua a ser necessário ter cerca de 3 pessoas durante um mês dedicadas a olhar para as aplicações anteriores e perceber o que é que se pode aproveitar para a nova eleição que surge, e adaptá-la às novas necessidades. O sistema de eleições é uma aplicação em que se destaca a segurança e performance, devido ao curto período de tempo em que é usada, a qual aliada a níveis de tráfego muito intensos, resulta num grande número de pedidos efectuados na hora da divulgação dos resultados via web. Chegando a atingir picos de acessos simultâneos na ordem dos 300 pedidos por segundo 2, fora nesse sentido adoptada a utilização da rede AKAMAI [CWS00, Rev04, adi07, Art06]. Consegue-se com o serviço do Akamai garantir a escalabilidade do website de disponibilização de resultados, garantindo a continuidade da entrega dos conteúdos publicados, bem como o aumento da segurança nas infra-estruturas de origem. Tudo isto porque o serviço permite [AKA09a]: colocação de mecanismos de cache, melhorando a performance da aplicação, nomeadamente na distribuição de conteúdos ao público; redução do peso nas infraestruturas; redução do número de transacções por segundo; aumento da largura de banda disponível. Segundo informação obtida na página web [AKA09b]: "Akamai routinely delivers between ten and twenty percent of all Web trac, at times reaching more than 650 Gigabits per second." 3 O que fora referido até agora nesta secção remete para o modo como as soluções de sistemas eleitorais são desenvolvidas de momento. No entanto o tipo de problemas abordado, como o caso de estudo da Plataforma Eleitoral, não é muito diferente dos que são necessários abordar no desenvolvimento de outro tipo de plataformas ou sistemas como homebanking ou mesmo um centro de apostas online. Pode-se dizer que estes sistemas se enquadram na mesma classe de problemas que a Plataforma Eleitoral, na medida em que possuem características semelhantes. Em todos os sistemas acima enunciados, se verica: 2 no caso de eleições realizadas em Portugal, abrangendo todo o território nacional 3 O Akamai rotinamente entrega entre dez a vinte porcento de todo o tráco da internet, atingindo muitas vezes mais de 650 Gigabits/seg.

4 4 Lemos, Pedro; Ribeiro, Pedro elevado grau de complexidade; níveis de segurança exigentes: por estar a lidar com dados importantes e condenciais, que, em caso de falha, pode trazer danos bastante custosos, e talvez mesmo irreversíveis; necessidade de elevado grau de disponibilização de resultados: sendo fundamental que a informação disponibilizada aos utilizadores reicta em tempo real o estado actual do sistema; a necessidade de uma solução escalável: de forma a suportar o aumento do número de utilizadores sem haver a necessidade de reestruturar a aplicação; parametrizável: de forma a que se possa modicar comportamento rapidamente, sem modicação da aplicação. Podendo-se dessa forma ajustar o negócio (leis, regras, características, entre outras); modular: de forma a facilitar a adição de novos módulos, e proporcionar um rápido crescimento da aplicação; Algum do estudo realizado mostra a forma como, alguns dos sistemas da classe de problemas denida acima, são abordados. Em especíco, no que diz respeito ao desenho da arquitectura aplicacional. Segundo, a NOUS Infosystems, empresa de desenvolvimento de software, aplicações na área do jogo, como um centro de apostas online, têm normalmente como base uma arquitectura multi-camada [Inf], essencial para a correcta operação do sistema em tempo de execução permitindo ter várias camadas lógicas, as quais podem ser distribuídas, garantindo maior escalabilidade. Para além disso, segundo o CEO da Xendex, Michael Haberl [Ent08]: "Registrations on poker and gambling websites are exploding currently. Casino portal sites are under permanent full-load with gambling applications handling thousands of processes in the background that need to be controlled and executed with highest accuracy." Segundo [CdLF00], a forma de dotar uma aplicação web complexa, de capacidade de evolução reside no desenho de uma arquitectura composta por 3 camadas, que têm a comunicação entre si assegurada por inter-camadas. Esta solução foi aplicada em diferentes sistemas web de larga escala, observandose várias vantagens. Entre as quais se destaca a capacidade de integrar alterações feitas numa base de dados, ou nas interfaces, sem que essas alterações se propaguem para o exterior da camada de dados e apresentação respectivamente. Para além disso, verica-se uma maior facilidade na realização de tarefas de manutenção, e na melhoria de performance, sendo mais fácil a identicação de bottlenecks. 3 O Problema O principal problema na construção e modelação de uma plataforma para eleições é a enorme quantidade de variáveis com que se tem de lidar. Não só pelo facto de ser um sistema exigente, mas também por ser regulado por um conjunto de normas jurídicas [CNE09] que explicitam o seu funcionamento.

5 Modelação e Desenvolvimento 5 Essas variáveis dizem respeito a um conjunto de características que vão desde: a organização territorial e sua hierarquia. Por exemplo, em Portugal temos distritos, municípios e freguesias; a divisão (ou não) do território em círculos eleitorais; o número e distribuição dos mandatos; a forma de candidatura (individual ou por listas); a caracterização do boletim de voto; a forma como o eleitor pode exprimir a sua opção/opinião; as metodologias de cálculo aplicadas para conversão dos votos; entre muitas outras regras de negócio" Aspectos tão simples como as horas de abertura de uma eleição estão de- nidas na legislação (as assembleias de voto abrem as 8h e encerram as 19h horas locais). Mas todas estas pequenas regras no seu conjunto dão origem a um sistema bastante complexo mas rigorosamente denido. Sendo assim, é muito provável que tenhamos diferentes requisitos de uma eleição para outra. E, se temos requisitos diferentes, então o sistema que tinhamos construído anteriormente para outra eleição, por muito semelhante que seja, já não servirá a totalmente para esta nova eleição. Portanto, ajustes e adaptações vão ser necessárias para fazer cumprir os novos requisitos. Desta forma, e dadas a conhecer tais situações, para que possamos construir uma solução que suporte diferentes modelos eleitorais, é preciso pensar bem na solução que irá satisfazer as exigências de cada uma das eleições. E é neste contexto que as arquitecturas de software se mostram importantes. Não se pode simplesmente avançar para a implementação sem haver uma arquitectura aplicacional bem denida, dado que o conjunto de decisões tomadas na fase inicial do projecto serão as mais difíceis de se tomar, mas serão também, mais tarde, as mais difíceis de se alterar no processo de desenvolvimento. Portanto, tendo em conta o nosso objectivo é imprescindível modelar correctamente o sistema da plataforma eleitoral. Segundo Tom Mens [MD08], o Software tem-se tornado omnipresente e indispensável para a nossa sociedade baseada na informação. Sendo que, todos os que constroem software devem assumir responsabilidade sobre a sua abilidade. Originalmente isto signicava que o importante era ter implementações sem erros, no entanto, questões como a adaptabilidade e manutenção ganharam recentemente igual importância. Ora, montar uma plataforma eleitoral que seja capaz de ser utilizada para umas eleições hoje, e adaptada amanhã para outras completamente diferentes, bastando para tal efectuar algumas congurações, irá certamente ser uma mais valia, na medida em que permitirá poupar recursos que seriam necessários se não houvesse tal plataforma. Segundo Tom Mens [MD08]: The ability to evolve software rapidly and reliably is a major challenge for software engineering

6 6 Lemos, Pedro; Ribeiro, Pedro 4 A Solução Como foi referido atrás, pretende-se construir software com qualidade, que cumpra os requisitos propostos, e que seja portanto ável. E para tal, concentrase o estudo nas questões arquitecturais e de modelação pois, segundo [NFG + 06], não podemos simplesmente efectuar melhorias nas tecnologias e esperar que isso faça melhorar a nossa capacidade de construir software. É preciso utilizar práticas bem fundamentadas para a denição da arquitectura aplicacional, a qual é indispensável, em sistemas complexos, para obter resultados satisfatórios. No entanto, é necessário ter em atenção que não existe nenhum parâmetro de qualidade que dependa unicamente do design, nem unicamente da implementação. É necessário ter uma boa arquitectura mas é igualmente importante que a implementação esteja correcta. No caso prático em questão, como já fora referido anteriormente, optou-se pela construção de uma arquitectura que permita a adaptação a diferentes eleições e com isso dar uma melhor resposta às necessidades do cliente, bem como aproveitar para poupar nos recursos a alocar. Segundo Len Bass [BCK03], não existem propriamente nem boas nem más arquitecturas. Existem sim arquitecturas que servem melhor, ou pior, determinado propósito. Para que se possa construir e modelar uma boa arquitectura, segundo [Key02], é necessário adquirir uma profunda análise do sistema e funcionalidades do mesmo, antes de se poder decidir sobre a organização dos módulos, dado que produzir uma estrutura modular não é uma tarefa mecânica. Começou-se então por efectuar um estudo exaustivo dos sistemas eleitorais existentes bem como das diferentes características de cada um. Desse estudo resultou a decisão de estruturação da aplicação em vários módulos aplicacionais. Não apenas por ser um projecto de grande dimensão e complexidade, e por existirem tarefas e funcionalidades que se evidenciam e que, independentemente da eleição em questão, existem sempre. Mas também porque [TMD09, BCK03]: permite dotar a aplicação de capacidade de expansão: permitindo-nos adicionar, remover, recarregar componentes e módulos em tempo de execução sem afectar o restante sistema; melhora a segurança do sistema; facilita a manutenção da aplicação na medida em que um módulo é relativamente mais pequeno e autónomo relativamente aos outros; facilita a compreensão e realização de testes sobre o sistema; permite focar num componente e módulo: pois normalmente cada módulo está associado a diferentes elementos da equipa de projecto, e como tal a dedicação é total.

7 Modelação e Desenvolvimento 7 A arquitectura resultante da análise feita é apresentada na Figura 1. E, como se pode ver, separamos a aplicação em cinco módulos, que representam funcionalidades distintas e autónomas: Core - é o cérebro de todo o sistema (contém as regras de negócio). E, para além disso, é aquele com quem todos os outros módulos interagem. Nele existem 2 sub-módulos (DataLoader e Cache) que serão abordados posteriormente. Web Back Oce - módulo com a responsabilidade de fornecer funcionalidades de gestão da aplicação durante a sua execução. É este módulo que permite alterar a congurabilidade da aplicação através da interacção com o Core, mais especicamente com o sub-módulo DataLoader, permitindo a alteração das regras de negócio da aplicação. Data Insertion - módulo que fornece uma interface para introdução de votos e auências no sistema através de comunicação com o Core. Results Disclosure - módulo responsável pela disponibilização dos dados e resultados da aplicação através de páginas web. Interage com o módulo Core, mais especicamente com o módulo de Cache. Web Services - módulo responsável por fornecer dados de forma prioritária a entidades especiais através de fornecimento de webservices. Interage também com o sub-módulo de Cache, do módulo Core. Data Loader - módulo responsável pela leitura dos dados (de cheiro) necessários à aplicação, como informações territoriais, candidatos, círculos eleitorais, entre outras. É um sub-módulo integrado no Core, com o qual comunica e que facilita grande parte do processo de adaptação de umas eleições para outras carregando tudo o que seja congurações de forma rápida e transparente; Cache - módulo responsável por determinar o funcionamento da cache aplicacional. É um sub-módulo integrado no Core que garante o fornecimento de resultados ao público. Segundo [BD04], a decomposição e organização dos componentes de software é tão indispensável que todas as abordagens às questões de arquitectura de software acabam por abordar este assunto de uma maneira ou de outra. A mais valia da separação de uma aplicação em módulos é a sua exibilidade. Imagine-se, por exemplo, que agora, ao invés de se lerem os dados necessários à aplicação a partir de cheiro, os queremos importar de uma base de dados. O que se teria de fazer era substituir o módulo Data Insertion - que lê os dados de cheiro - por um novo módulo que lesse os dados a partir de uma base de dados. Até aqui concentramo-nos na vista estrutural que as arquitecturas de software nos fornecem em termos de componentes e suas relações. No entanto, a separação modular da arquitectura não resolve todos os problemas, sendo que alguns dos requisitos exigidos pelo negócio deverá ser abordado mais em termos de comportamento do que em termos estruturais.

8 8 Lemos, Pedro; Ribeiro, Pedro Figura 1. Módulos da aplicação e sua organização. É caso disso a denição dos territórios nas eleições. Pois, estes têm inuência não só no que diz respeito à organização e hierarquia dos territórios, mas também à inserção de votos e auências, particularmente devido à denição dos níveis de inserção desses mesmos dados. A solução encontrada para o problema foi a utilização de cheiros XML de conguração para a aplicação, nos quais se dene algumas das regras da aplicação (de modo a que possam ser parametrizáveis), incluindo a hierarquia dos territórios a usar ou os níveis dos territórios que irão receber os votos e as auências. Como consequência da utilização de regras parametrizáveis, temos de ter especial atenção na forma como denimos cada uma das funcionalidades que depende directa ou indirectamente da hierarquia dos territórios. Um exemplo disso é a inserção de votos e auências, que apesar de serem introduzidas a um determinado nível territorial (em Portugal esse nível é a freguesia), cada uma dessas inserções inuencia os resultados de todos os territórios de nível superior (munícipio, distrito e país - no caso de Portugal). A situação acima descrita, levanta outra questão que se prende com o facto de, quando se inserem votos e auências, estamos já a mostrar os resultados ao público. Esta situação leva a um dos requisitos mais importantes do sistema: impreterivelmente os dados da aplicação têm de estar sempre num estado consistente. Assim sendo, imaginemos o seguinte exemplo: Exemplo: Sejam 2 freguesias {'A1' e 'A2'} que pertencem a 1 município 'A'. Então quando inserimos em 'A1' 10 votos, temos que ter em 'A' igualmente '10'

9 Modelação e Desenvolvimento 9 votos. E, assim que inserirmos em 'A2' 14 votos, temos que em 'A' passar a ter 24 votos. Este requisito é extremamente crítico pois, inuencia: o modo como se efectuam inserções de votos e auências na aplicação; o modo como se trata a propagação dos resultados de um território de inserção para todos os outros a ele associados; e também o desempenho da aplicação. Imaginemos o caso de Portugal, com mais de 4000 freguesias, mais de 300 concelhos, 18 distritos e 2 regiões autónomas. Quando as inserções começassem a ser feitas (ao nível das freguesias), teríamos que actualizar os dados dos concelhos, distritos e regiões autónomas e país. Isso iria implicar a necessidade de efectuar locks à base de dados e consequentemente ir-se-ia formar uma la de espera, devido aos pedidos de inserções pendentes para actualizar os valores na base de dados de um determinado território. Para acrescer ao problema teríamos ainda o problema de leitura dos valores da base de dados, para mostrar ao público os resultados. O que iria implicar um lock global para que ao lermos os valores das freguesias, e posteriormente os valores dos municípios (distritos e pais), os valores estivessem consistentes. Como é expectável, isto iria degradar o desempenho da aplicação. Para se resolverem estes problemas decidiu-se que ao ser feita uma inserção num território (freguesia), não se iria propagar (de imediato) o resultado para os níveis superiores, mas de certa forma simular essa propagação através da utilização de uma cache aplicacional. A qual tem como principal objectivo guardar conteúdos frequentemente acedidos, de modo a melhorar o tempo de resposta da aplicação. No caso em questão, é útil essencialmente para mostrar os resultados das eleições ao público, nos vários níveis territoriais hierárquicos (por exemplo: desde uma freguesia, subindo para o nível dos municípios, depois distritos, e nalmente o próprio país) garantindo a sua consistência e disponibilidade. Como resultado da utilização de um mecanismo de cache aumentamos o desempenho da aplicação, e garantimos a consistência dos dados(pois ainda que o servidor da base de dados seja desligado, continua a ser possível consultar os resultados, mostrando-se os últimos valores em cache). Assim sendo, as inserções de votos e auências passam a ser mais rápidas, na medida em que se deixa de efectuar a propagação dos resultados inseridos (durante a fase de inserções de resultados, devido aos acessos concorrentes) 4 e como tal deixa de haver a necessidade de locks à base de dados. 4 Todos os valores serão propagados assim que tenha terminado a fase de inserções

10 10 Lemos, Pedro; Ribeiro, Pedro Por isso, sempre que for necessário mostrar os resultados inseridos, tiramos um snapshot à base de dados e efectuam-se os cálculos e respectiva propagação para níveis superiores com os valores que se obtêm do snapshot, com isso garante-se que os resultados dos níveis territoriais superiores se encontram sempre consistentes. Em seguida passam-se os valores calculados para a cache. E posteriormente, quaisquer resultados que sejam passados para o exterior serão sempre lidos da cache. 4.1 Padrões Arquitecturais No decorrer da modelação da aplicação procurou-se, sempre que possível, aplicar design patterns que são úteis por já terem sido testados e representarem uma boa solução (para determinado contexto bem denido), solução essa que pode ser reutilizada. Para além disso facilitam a implementação, teste e manutenção das aplicações na medida em que denem um modelo standard que é reconhecido por outros developers, tanto para comunicarem, documentarem e explorarem alternativas de design, melhorando efectivamente o nível de programação de cada um. [GHJ + 93] Os 'patterns' são bastante úteis na medida em que fornecem uma boa solução para um problema comum. [AMC + 03] Refere-se assim, em seguida, um conjunto de patterns utilizados na arquitectura da aplicação em estudo - Plataforma Eleitoral - de modo a resolver alguns dos problemas. Singleton Como foi referido anteriormente a aplicação em questão, contem vários cheiros de conguração. Os dados contidos nestes cheiros são utilizados por diferentes componentes do sistema, durante o tempo de vida da aplicação. Com o intuito de melhorar a performance, estes dados são mantidos em memória. No entanto, precisam de ser únicos no sistema de forma a preservar a sua consistência e a serem alcançáveis pelos diversos componentes. Para solucionar este problema foi utilizado o pattern singleton. Este pattern de criação assegura a existência de apenas uma instância de uma determinada classe, a qual possui um ponto global de acesso [GHJV95]. A Figura 2 exemplica a utilização deste pattern no caso de estudo, em que a instancia ConfigurationManager é única no sistema e acessível por todos os outros componentes. Esta contém o objecto ConfigurationData que possui todos os dados de conguração. Simple Factory

11 Modelação e Desenvolvimento 11 Figura 2. Singleton pattern Uma das funcionalidades do caso em estudo é o calculo de resultados. Estes resultados são consequência da execução de um algoritmo, que pode ser diferente perante varias eleições, e variar ao longo do tempo. De forma a resolver este problema deniu-se um componente que permite carregar classes por reflection. Esta tecnologia permite que programas em Java carreguem novas classes, individualmente, permitindo alcançar um maior grau de exibilidade. Como esta operação ocorre inteiramente dentro do Java, a portabilidade é também preservada [FF04]. No entanto, este mecanismo de criação de classes de algoritmo, poderá mudar. Por esta razão existiu a necessidade de separar a instanciação da classe concreta que implementa o algoritmo, e assim utilizou-se o pattern Simple Factory. Este pattern devolve uma instância, de várias possíveis, dependendo do tipo de dados que lhe é passado [Coo00] Ao encapsular a criação de um objecto numa outra classe, existe apenas um sítio para alterar quando a implementação muda. Como se pode vericar na Figura 3, a classe AlgorithmFactory possui apenas o método create, que tem como objectivo criar um algoritmo. Este algoritmo é criado segundo o método descrito anteriormente: reflection. Caso haja a necessidade de alterar o mecanismo de instanciação de algoritmos (e.g denir os algoritmos em tempo de compilação), basta modicar o método create do simple factory e tudo o resto se mantém. A classe Algorithm é abstracta e obriga que todas as suas subclasses implementem o método calculateresults. Exemplos de algoritmos que poderão ser utilizados são o método D'Hondt [STA], e o método Absoluto. Data Access Object A aplicação em questão, foi desenvolvida com base numa arquitectura multicamada, contendo diferentes camadas de apresentação as quais comunicam com o módulo Core através de Session Beans [mic] locais. Para separar o camada de negócio da camada de dados foi utilizado o pattern DAO 5, o qual implementa mecanismos de acesso e manipulação de dados persistentes, podendo apenas ser acedidos pelas Session Beans presentes no modulo Core. Estes foram utilizados em todos os objectos da camada de dados com o objectivo de dissociar a implementação de acesso a dados da lógica de negócio facilitando a manutenção, a portabilidade e a segurança [AMC + 03]. Um dos 5 Data Access Object

12 12 Lemos, Pedro; Ribeiro, Pedro Figura 3. Factory pattern DAO's implementados na aplicação encontra-se presente na Figura 4, o qual por utilizar a tecnologia Java Persistence, interage com Entity Beans, como é o caso das classes ElectoralAct e Election. Figura 4. Data Access Object pattern Facade Uma boa prática na resolução de um problema, é a separação deste em vários mais pequenos, facilitando a sua resolução, bem como tarefas de manutenção. Assim sendo, foi utilizado o pattern facade, que dene uma interface unicada de maior nível que permite esconder a complexidade de objectos que

13 Modelação e Desenvolvimento 13 contribuem para a resolução do problema [FFBS04]. A figura 5 exemplica o uso deste pattern. Neste, a Session Bean BackOce utiliza a Session Bean LifeCicleManager para validar a possibilidade de executar determinadas operações tendo em conta não só as conguração como o estado interno do sistema. Para além disso, foram utilizados mecanismo de protecção, para evitar acessos directos aos DAOs apartir da camada de apresentação, pois apenas os facades criados têm acesso a estes. Service Locator Figura 5. Facade pattern O acesso a um serviço da camada de negócio, (por exemplo a partir da camada de apresentação) é feito com a ajuda do InititialContext. No entanto, criar um JNDI 6 InitialContext e através deste obter a interface pretendida (lookup), é potencialmente uma operação dispendiosa, e que se realizada repetidamente poderá degradar o desempenho [AMC + 03]. De forma a minimizar este problema foi utilizado o pattern Service Locator, o qual implementa e encapsula o acesso ao serviço de lookup de componentes, disponibilizando um ponto único de controlo e melhorando a performance ao utilizar um mecanismo de cache. O Service Locator é implementado tipicamente como um singleton e pode ser reutilizado por clientes da aplicação, reduzindo assim a complexidade do seu código. Este pattern encontra-se exemplicado na Figura 6. Iterator 6 Java Naming and Directory Interface

14 14 Lemos, Pedro; Ribeiro, Pedro Figura 6. Service Locator pattern Como na aplicação em estudo temos uma arquitectura separada em camadas, existe a necessidade de passar informação da camada de negócio para a camada de apresentação, de uma forma sequencial, permitindo uma abstracção da estrutura interna do agregado de objectos [FFBS04]. A solução para este problema está na utilização do pattern iterator, que disponibiliza todas estas características. A Figura 7 demonstra este pattern, utilizado para obter informações de cada eleição, tendo em conta que o número de eleições é congurável. Figura 7. Iterator pattern

15 5 Caso de Estudo: Plataforma Eleitoral Modelação e Desenvolvimento 15 Para denir o comportamento do acto eleitoral foram utilizados cheiros xml [W3C]. A razão pelo qual foi escolhido este tipo de cheiros, tem a ver com a capacidade de descrever bastantes tipos de dados. Trata-se pois de um formato neutro que permite a organização dos dados de forma hierárquica. Estes cheiros contêm não só dados especícos de cada eleição, como o nome, territórios associados, datas entre outras, mas também dados que introduzem comportamento no negócio. Isto é, contém o nome das classes a serem carregadas por reexion em tempo de execução, nomeadamente classes que possibilitam o cálculo de resultados. Permitem também a geração de utilizadores, que podem entrar em contacto com o sistema, e outros dados que variam de eleição para eleição. Figura 8. Diagrama de Deployment A aplicação - Plataforma Eleitoral - foi desenhada de forma a que, em caso de shutdown (ou falha) inesperada do servidor de origem, seja possível retomar rapidamente a aplicação, recuperando o estado em que se encontrava imediatamente antes do servidor ter sido desligado, sem que para isso seja necessária

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

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

Leia mais

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

Enunciado de apresentação do projecto

Enunciado de apresentação do projecto Engenharia de Software Sistemas Distribuídos 2 o Semestre de 2009/2010 Enunciado de apresentação do projecto FEARSe Índice 1 Introdução... 2 2 Cenário de Enquadramento... 2 2.1 Requisitos funcionais...

Leia mais

ServidorEscola Plataforma Web de apoio Administrativo

ServidorEscola Plataforma Web de apoio Administrativo ServidorEscola Plataforma Web de apoio Administrativo Introdução Co-habitamos uma sociedade de informação universal, aliados ao paradigma da evolução tecnológica que se verifica e se revela como um meio

Leia mais

Introdução à Padrões de Projeto. Glauber Magalhães Pires

Introdução à Padrões de Projeto. Glauber Magalhães Pires Introdução à Padrões de Projeto Glauber Magalhães Pires Agenda O que são padrões de projeto? Para que servem e por que utilizá-los? Elementos constituintes Como escolher o padrão a ser usado? Como são

Leia mais

Análise de Sistemas. Conceito de análise de sistemas

Análise de Sistemas. Conceito de análise de sistemas Análise de Sistemas Conceito de análise de sistemas Sistema: Conjunto de partes organizadas (estruturadas) que concorrem para atingir um (ou mais) objectivos. Sistema de informação (SI): sub-sistema de

Leia mais

Information Router: Plataforma webservice de comunicação entre aplicações

Information Router: Plataforma webservice de comunicação entre aplicações Information Router: Plataforma webservice de comunicação entre aplicações Pedro Silva 1, José Castro 1, e Ildemundo Roque 1 Telbit, Tecnologias de Informação Rua Banda da Amizade, 38 r/c Dto. 3810-059

Leia mais

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

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

Leia mais

Engenharia de Software Sistemas Distribuídos. 2º Semestre, 2007/2008. Departamento Engenharia Informática. Enunciado do projecto: Loja Virtual

Engenharia de Software Sistemas Distribuídos. 2º Semestre, 2007/2008. Departamento Engenharia Informática. Enunciado do projecto: Loja Virtual Engenharia de Software Sistemas Distribuídos 2º Semestre, 2007/2008 Departamento Engenharia Informática Enunciado do projecto: Loja Virtual Fevereiro de 2008 Índice Índice...2 Índice de Figuras...3 1 Introdução...4

Leia mais

Padrões de Desenho (Design Patterns)

Padrões de Desenho (Design Patterns) Padrões de Desenho (Design Patterns) O que são padrões de desenho Porque são úteis Conhecer alguns padrões 1 Padrões (Patterns) Design Patterns Explained: A New Perspective on Object-Oriented Design, Alan

Leia mais

Design Patterns STRATEGY EMERSON BARROS DE MENESES

Design Patterns STRATEGY EMERSON BARROS DE MENESES Design Patterns STRATEGY EMERSON BARROS DE MENESES 1 Breve Histórico Sobre Design Patterns A origem dos Design Patterns (Padrões de Desenho ou ainda Padrões de Projeto) vem do trabalho de um arquiteto

Leia mais

Chord. Tecnologias de Middleware. Fernando Martins - fmp.martins@gmail.com

Chord. Tecnologias de Middleware. Fernando Martins - fmp.martins@gmail.com Chord Tecnologias de Middleware 2006/2007 Fernando Martins - fmp.martins@gmail.com Tópicos Objectivo Motivação Peer-To-Peer Chord Descrição Geral Características Distintivas Comparação DNS Modelo do Sistema

Leia mais

Escola Superior de Tecnologia de Setúbal. Projecto Final

Escola Superior de Tecnologia de Setúbal. Projecto Final Instituto Politécnico de Setúbal Escola Superior de Tecnologia de Setúbal Departamento de Sistemas e Informática Projecto Final Computação na Internet Ano Lectivo 2002/2003 Portal de Jogos Executado por:

Leia mais

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores Primeiro Teste 21 de Outubro de 2006, 9:00H 10:30H Nome: Número:

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

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

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO CONCEITOS BÁSICOS 1 Necessidade das base de dados Permite guardar dados dos mais variados tipos; Permite

Leia mais

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira ENTERPRISE JAVABEANS 3 Msc. Daniele Carvalho Oliveira Apostila Servlets e JSP www.argonavis.com.br/cursos/java/j550/index.html INTRODUÇÃO Introdução Enterprise JavaBeans é um padrão de modelo de componentes

Leia mais

Arquitetura de Software. Silvia Regina Vergilio

Arquitetura de Software. Silvia Regina Vergilio Arquitetura de Software Silvia Regina Vergilio Atividades de Projeto Projeto Geral ou Preliminar: fase que traduz a especificação do sistema em termos da arquitetura de dados e de módulos. Descreve a organização

Leia mais

Projecto de Modelação, Engenharia de Software e Sistemas Distribuídos 2008-09. Requisitos para a 3ª entrega do projecto.

Projecto de Modelação, Engenharia de Software e Sistemas Distribuídos 2008-09. Requisitos para a 3ª entrega do projecto. Departamento de Engenharia Informática Modelação, Engenharia de Software, Sistemas Distribuídos Requisitos para a 3ª entrega do projecto Test O Matic 10 de Maio de 2009 1 Índice 1 Índice... 1 2 Sumário...

Leia mais

Desenvolvimento de Sistemas de Software

Desenvolvimento de Sistemas de Software Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática Desenvolvimento de Sistemas de Software Ano Lectivo de 2009/10 João Fernandes, João Gonçalves, José Pereira,

Leia mais

PHC dteamcontrol Interno

PHC dteamcontrol Interno O módulo PHC dteamcontrol Interno permite acompanhar a gestão de todos os projectos abertos em que um utilizador se encontra envolvido. PHC dteamcontrol Interno A solução via Internet que permite acompanhar

Leia mais

Arquitecturas de Software

Arquitecturas de Software UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO Arquitecturas de Software Mestrado em Engenharia Informática e de Computadores Primeiro Exame 21 de Janeiro de 2010, 17:00H 19:00H Nome: Número:

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 uma Aplicação WEB para monitorização de BD Oracle

Desenvolvimento de uma Aplicação WEB para monitorização de BD Oracle Desenvolvimento de uma Aplicação WEB para monitorização de BD Oracle Luís Filipe Borges Pinto Resumo: Este projecto consiste na implementação de uma aplicação WEB para monitorização

Leia mais

3. Engenharia de Requisitos

3. Engenharia de Requisitos Engenharia de Software 3. Engenharia de Requisitos Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Fases do desenvolvimento de software que mais erros originam (fonte: "Software Testing", Ron Patton)

Leia mais

J930. Padrões. Projeto. Introdução. argonavis.com.br. Helder da Rocha (helder@acm.org)

J930. Padrões. Projeto. Introdução. argonavis.com.br. Helder da Rocha (helder@acm.org) Padrões de J930 Projeto Introdução Helder da Rocha (helder@acm.org) argonavis.com.br O que é um padrão? Maneira testada ou documentada de alcançar um objetivo qualquer Padrões são comuns em várias áreas

Leia mais

1Introdução Helder da Rocha (helder@acm.org)

1Introdução Helder da Rocha (helder@acm.org) J930 Padrões Projeto de 1Introdução Helder da Rocha (helder@acm.org) argonavis.com.br O que é um padrão? Maneira testada ou documentada de alcançar um objetivo qualquer Padrões são comuns em várias áreas

Leia mais

SICOP Sistema de Inovação, Controlo e Optimização de Produtos

SICOP Sistema de Inovação, Controlo e Optimização de Produtos SICOP Sistema de Inovação, Controlo e Optimização de Produtos Célia Alves, Liliana Monteiro, Fernanda Barbosa, Ana Borges, Jorge Barbosa* Resumo De modo a facilitar e estandardizar o ciclo de desenvolvimento,

Leia mais

Alberto Manuel Simões, José João Almeida, and Xavier Gomez Guinovart

Alberto Manuel Simões, José João Almeida, and Xavier Gomez Guinovart Memórias de Tradução Distribuídas Alberto Manuel Simões, José João Almeida, and Xavier Gomez Guinovart Departamento de Informática, Universidade do Minho {albie@alfarrabio. jj@}di.uminho.pt Universidade

Leia mais

Um Arcabouço open source em Python para DBC com

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

Leia mais

O Padrão Arquitetural Auto-Adaptável

O Padrão Arquitetural Auto-Adaptável MAC5715 - Tópicos Avançados em POO O Padrão Arquitetural Auto-Adaptável Raphael Y. de Camargo e Carlos Alexandre Queiroz 30 de outubro de 2003 1 Intenção O padrão auto-adaptável permite o desenvolvimento

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

Argo Navis J931 - Padrões de Design J2EE. Introdução. Objetivos de aprender padrões J2EE. Conhecer padrões para uso na plataforma J2EE

Argo Navis J931 - Padrões de Design J2EE. Introdução. Objetivos de aprender padrões J2EE. Conhecer padrões para uso na plataforma J2EE Padrões de Projeto J2EE J931 Introdução Helder da Rocha (helder@acm.org) argonavis.com.br Objetivos de aprender padrões J2EE Conhecer padrões para uso na plataforma J2EE Padrões permitem maior reuso, menos

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

PHC dteamcontrol Interno

PHC dteamcontrol Interno PHC dteamcontrol Interno A gestão remota de projectos em aberto A solução via Internet que permite acompanhar os projectos em aberto em que o utilizador se encontra envolvido, gerir eficazmente o seu tempo

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 5 Servidores de Aplicação

Leia mais

Padrões de Projeto de Software Orientado a Objetos

Padrões de Projeto de Software Orientado a Objetos Padrões de Projeto de Software Orientado a Objetos Ricardo Argenton Ramos [Baseado nos slides do professor Fabio Kon - USP] 1 Padrões de Projeto de Software OO Também conhecidos como Padrões de Desenho

Leia mais

SIBS PROCESSOS cria solução de factura electrónica com tecnologias Microsoft

SIBS PROCESSOS cria solução de factura electrónica com tecnologias Microsoft SIBS PROCESSOS cria solução de factura electrónica com tecnologias Microsoft A solução MB DOX oferece uma vantagem competitiva às empresas, com a redução do custo de operação, e dá um impulso à factura

Leia mais

Modelo Cascata ou Clássico

Modelo Cascata ou Clássico Modelo Cascata ou Clássico INTRODUÇÃO O modelo clássico ou cascata, que também é conhecido por abordagem top-down, foi proposto por Royce em 1970. Até meados da década de 1980 foi o único modelo com aceitação

Leia mais

RELATÓRIO DE ESPECIFICAÇÃO DE REQUISITOS

RELATÓRIO DE ESPECIFICAÇÃO DE REQUISITOS RELATÓRIO DE ESPECIFICAÇÃO DE REQUISITOS LABORATÓRIO DE GESTÃO DE PROJECTO Carlos Frias Manuel Seixas Sérgio Junior FACULDADE DE ENGENHARIA UNIVERSIDADE DO PORTO 22 Março 2013 Filipe Mota Manuel Melo Tiago

Leia mais

Design Patterns. Viviane Torres da Silva viviane.silva@ic.uff.br. http://www.ic.uff.br/~viviane.silva/2012.1/es1

Design Patterns. Viviane Torres da Silva viviane.silva@ic.uff.br. http://www.ic.uff.br/~viviane.silva/2012.1/es1 Design Patterns Viviane Torres da Silva viviane.silva@ic.uff.br http://www.ic.uff.br/~viviane.silva/2012.1/es1 Sumário Reuso de Software Introdução Benefícios e Desvantagens Visão do Reuso Padrões de Projeto

Leia mais

4.2. UML Diagramas de classes

4.2. UML Diagramas de classes Engenharia de Software 4.2. UML Diagramas de classes Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Um diagrama de classes serve para modelar o vocabulário de um sistema Construído e refinado ao longo

Leia mais

Front-End: corresponde ao que será visualizado pelo utilizador via web. Deve ser acessível para todo e qualquer utilizador.

Front-End: corresponde ao que será visualizado pelo utilizador via web. Deve ser acessível para todo e qualquer utilizador. Projecto Final Introdução O objectivo do projecto final da disciplina de Computação na Internet é colocar em prática todos os conhecimentos adquiridos na disciplina e, assim, desenvolver um sistema que

Leia mais

Programação com Objectos. Programação Centrada em Objectos. Home Page. Ano Lectivo 2008/2009 1º Semestre. Objectivos Programa Bibliografia Avaliação

Programação com Objectos. Programação Centrada em Objectos. Home Page. Ano Lectivo 2008/2009 1º Semestre. Objectivos Programa Bibliografia Avaliação Última actualização: 25 de Outubro de 2008 Ano Lectivo 2008/2009 1º Semestre ção com Objectos ção Centrada em Objectos Docente: Paulo Leocádio Web: www.uac.pt/~pleocadio E-mail: pleocadio@uac.pt : Competências:

Leia mais

Gestão de Configurações II

Gestão de Configurações II Gestão de Configurações II Bibliografia Livro: Software Configuration Management Patterns: Effective Teamwork, Practical Integration Gestão de Projecto 14 Padrões de Gestão Os padrões de gestão de configurações

Leia mais

Acta n.º 1 1. PROVA DE CONHECIMENTOS

Acta n.º 1 1. PROVA DE CONHECIMENTOS Concurso interno com vista ao preenchimento de 1 posto de trabalho na carreira (não revista) de Especialista de Informática, categoria de especialista de informática dos graus 1 ou 2, níveis 1 ou 2, do

Leia mais

PHC dcrm. Aumente o potencial da força de vendas da sua empresa ao aceder remotamente à informação comercial necessária à sua actividade

PHC dcrm. Aumente o potencial da força de vendas da sua empresa ao aceder remotamente à informação comercial necessária à sua actividade PHC dcrm DESCRITIVO O módulo PHC dcrm permite aos comerciais da sua empresa focalizar toda a actividade no cliente, aumentando a capacidade de resposta aos potenciais negócios da empresa. PHC dcrm Aumente

Leia mais

Instituto Superior de Engenharia do Porto Administração de Sistemas Informáticos I Clusters

Instituto Superior de Engenharia do Porto Administração de Sistemas Informáticos I Clusters Instituto Superior de Engenharia do Porto Administração de Sistemas Informáticos I Clusters Trabalho elaborado por: 980368 - Sérgio Gonçalves Lima 1010949 - Nisha Sudhirkumar Chaganlal Clusters O que é

Leia mais

TECNOLOGIAS DE INFORMAÇÃO E COMUNICAÇÃO

TECNOLOGIAS DE INFORMAÇÃO E COMUNICAÇÃO TECNOLOGIAS DE INFORMAÇÃO E COMUNICAÇÃO ACCESS 2010 Conceitos Básicos Ficha Informativa Professor : Vanda Pereira módulo didáctico Conceitos Básicos Necessidade das base de dados Permite guardar dados

Leia mais

XACML. extensible Access Control Markup Language

XACML. extensible Access Control Markup Language XACML extensible Access Control Markup Language Autor Orientador Doutor Diogo Gomes Colaborador Engenheiro Ricardo Azevedo Universidade de Aveiro Instituto de Telecomunicações Portugal Telecom Inovação

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

Ferramenta computacional para implementação de redes neuronais optimização das capacidades gráficas

Ferramenta computacional para implementação de redes neuronais optimização das capacidades gráficas INEB- PSI Technical Report 2007-2 Ferramenta computacional para implementação de redes neuronais optimização das capacidades gráficas Alexandra Oliveira aao@fe.up.pt Professor Joaquim Marques de Sá December

Leia mais

ITIL v3 melhora Gestão de Serviço de TI no CHVNG/Espinho

ITIL v3 melhora Gestão de Serviço de TI no CHVNG/Espinho Centro Hospitalar Vila Nova de Gaia/Espinho ITIL v3 melhora Gestão de Serviço de TI no CHVNG/Espinho Sumário País Portugal Sector Saúde Perfil do Cliente O Centro Hospitalar Vila Nova de Gaia/Espinho envolve

Leia mais

Programação Avançada. Padrões de Projeto de Software. Fonte: Oswaldo B. Peres e K19 Treinamentos

Programação Avançada. Padrões de Projeto de Software. Fonte: Oswaldo B. Peres e K19 Treinamentos Programação Avançada Padrões de Projeto de Software 1 Fonte: Oswaldo B. Peres e K19 Treinamentos Introdução Projetar software OO reusável e de boa qualidade é uma tarefa difícil; Para realizar essa tarefa

Leia mais

Vantagem Garantida PHC

Vantagem Garantida PHC Vantagem Garantida PHC O Vantagem Garantida PHC é um aliado para tirar maior partido das aplicações PHC A solução que permite à empresa rentabilizar o seu investimento, obtendo software actualizado, formação

Leia mais

Linguateca e Processamento de Linguagem Natural na Área da Saúde: Alguns Comentários e Sugestões

Linguateca e Processamento de Linguagem Natural na Área da Saúde: Alguns Comentários e Sugestões Capítulo 7 Linguateca e Processamento de Linguagem Natural na Área da Saúde: Alguns Comentários e Sugestões Liliana Ferreira, António Teixeira e João Paulo da Silva Cunha Luís Costa, Diana Santos e Nuno

Leia mais

ANEXO 1. Formulário de Candidatura da Instituição Projecto Final de Curso de IGE/ETI. Instituição de acolhimento. Supervisor nomeado pela instituição

ANEXO 1. Formulário de Candidatura da Instituição Projecto Final de Curso de IGE/ETI. Instituição de acolhimento. Supervisor nomeado pela instituição INSTITUTO SUPERIOR DE CIÊNCIAS DO TRABALHO E DA EMPRESA Departamento de Ciências e Tecnologias de Informação DCTI Formulário de Candidatura da Instituição Projecto Final de Curso de IGE/ETI ANEXO 1 Instituição

Leia mais

Argo Navis J931 - Padrões de Design J2EE. Versão 2.0 (setembro de 2003) Objetivos

Argo Navis J931 - Padrões de Design J2EE. Versão 2.0 (setembro de 2003) Objetivos de Projeto J931 J2EE Versão 2.0 (setembro de 2003) Helder da Rocha (helder@acm.org) argonavis.com.br Objetivos Identificar os principais padrões de projeto J2EE Distinguir os principais padrões de projeto

Leia mais

01.00 CDNs Introdução

01.00 CDNs Introdução 01.00 CDNs Introdução Redes de Distribuição de Conteúdos Introdução A Web surgiu enquanto forma de partilha de conteúdos e serviços Aumento de utilizadores e conteúdos, aumenta a necessidade de largura

Leia mais

Virtualização e Consolidação de Centro de Dados O Caso da UTAD António Costa - acosta@utad.pt

Virtualização e Consolidação de Centro de Dados O Caso da UTAD António Costa - acosta@utad.pt Universidade de Trás-os-Montes e Alto Douro Virtualização e Consolidação de Centro de Dados O Caso da UTAD António Costa - acosta@utad.pt Agenda A UTAD Virtualização Uma definição Introdução e abrangência

Leia mais

E se conseguisse reduzir os seus custos de energia até 20%?

E se conseguisse reduzir os seus custos de energia até 20%? E se conseguisse reduzir os seus custos de energia até 20%? Uma solução eficaz de Gestão Energética para o Retalho Eficiência Energética no Retalho Será que está a gastar mais em energia do que necessita?

Leia mais

Implemente a sua solução de Gestão de Marketing, Vendas e Serviço de Clientes, em menos de 7 dias.

Implemente a sua solução de Gestão de Marketing, Vendas e Serviço de Clientes, em menos de 7 dias. GoldMine QuickStart Implemente a sua solução de Gestão de Marketing, Vendas e Serviço de Clientes, em menos de 7 dias. O GoldMine é uma ferramenta de gestão da relação com os clientes (CRM-Costumer Relationship

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

O aumento da força de vendas da empresa

O aumento da força de vendas da empresa PHC dcrm O aumento da força de vendas da empresa O enfoque total na actividade do cliente, através do acesso remoto à informação comercial, aumentando assim a capacidade de resposta aos potenciais negócios

Leia mais

FAZER MAIS COM MENOS Maio 2012 White Paper

FAZER MAIS COM MENOS Maio 2012 White Paper CLOUD COMPUTING FAZER MAIS COM MENOS Maio 2012 CLOUD COMPUTING FAZER MAIS COM MENOS Cloud Computing é a denominação adotada para a mais recente arquitetura de sistemas informáticos. Cada vez mais empresas

Leia mais

Design Patterns na plataforma Java

Design Patterns na plataforma Java Design Patterns na plataforma Java Uma experiência no processo de migração para.net João Saraiva Instituto Superior Técnico / INESC-ID (Grupo de Sistemas de Informação) Sumário Apresentação de alguns padrões

Leia mais

A ARTSOFT é uma empresa especializada no desenvolvimento e comercialização de soluções tecnológicas de apoio à gestão empresarial.

A ARTSOFT é uma empresa especializada no desenvolvimento e comercialização de soluções tecnológicas de apoio à gestão empresarial. POWERING BUSINESS QUEM SOMOS A ARTSOFT é uma empresa especializada no desenvolvimento e comercialização de soluções tecnológicas de apoio à gestão empresarial. Desde 1987 que desenvolvemos um trabalho

Leia mais

Uso de Design Patterns e J2EE: um estudo de caso

Uso de Design Patterns e J2EE: um estudo de caso Uso de Design Patterns e J2EE: um estudo de caso Rogério Sorroche (FURB) rs@furb.br Maurício Capobianco Lopes (FURB) mclopes@furb.br Resumo. Este trabalho apresenta um estudo de caso sobre o desenvolvimento

Leia mais

ARTIGO TÉCNICO. Os objectivos do Projecto passam por:

ARTIGO TÉCNICO. Os objectivos do Projecto passam por: A metodologia do Projecto SMART MED PARKS ARTIGO TÉCNICO O Projecto SMART MED PARKS teve o seu início em Fevereiro de 2013, com o objetivo de facultar uma ferramenta analítica de confiança para apoiar

Leia mais

DEPARTAMENTO DE ENGENHARIA INFORMÁTICA FACULDADE DE CIÊNCIAS E TECNOLOGIA DA UNIVERSIDADE DE COIMBRA

DEPARTAMENTO DE ENGENHARIA INFORMÁTICA FACULDADE DE CIÊNCIAS E TECNOLOGIA DA UNIVERSIDADE DE COIMBRA DEPARTAMENTO DE ENGENHARIA INFORMÁTICA FACULDADE DE CIÊNCIAS E TECNOLOGIA DA UNIVERSIDADE DE COIMBRA Sistemas Operativos 2003/2004 Trabalho Prático #2 -- Programação em C com ponteiros -- Objectivos Familiarização

Leia mais

PHC dcrm. Aumente o potencial da força de vendas da sua empresa, ao aceder remotamente à informação comercial necessária à sua actividade

PHC dcrm. Aumente o potencial da força de vendas da sua empresa, ao aceder remotamente à informação comercial necessária à sua actividade O módulo PHC dcrm permite aos comerciais da sua empresa focalizar toda a actividade no cliente, aumentando a capacidade de resposta aos potenciais negócios da empresa. PHC dcrm Aumente o potencial da força

Leia mais

Especificação do Projecto

Especificação do Projecto MERC 2010/11 RCM/TRC/SIRS Especificação do Projecto Grupo nº: _5 Turno (e campus): Taguspark Nome Número João Vasques 63512 Rui Costa 63524 Mário Nzualo 62551 1 Nome do Projecto Mobile Payment System -

Leia mais

ILM e as Arquitecturas Empresariais por Pedro Sousa

ILM e as Arquitecturas Empresariais por Pedro Sousa ILM e as Arquitecturas Empresariais por Pedro Sousa Neste artigo clarifica-se os objectivos do ILM (Information Life Cycle Management) e mostra-se como estes estão dependentes da realização e manutenção

Leia mais

Portal AEPQ Manual do utilizador

Portal AEPQ Manual do utilizador Pedro Gonçalves Luís Vieira Portal AEPQ Manual do utilizador Setembro 2008 Engenharia Informática - Portal AEPQ Manual do utilizador - ii - Conteúdo 1 Introdução... 1 1.1 Estrutura do manual... 3 1.2 Requisitos...

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Desenho de Software Departamento de Matemática Universidade dos Açores Hélia Guerra helia@uac.pt desenho Desenho (dicionário Priberam on-line) do Lat.! designu s. m., arte de representar

Leia mais

Padrões Arquiteturais e de Integração - Parte 1

Padrões Arquiteturais e de Integração - Parte 1 1 / 58 - Parte 1 Erick Nilsen Pereira de Souza T017 - Arquitetura e Design de Aplicações Análise e Desenvolvimento de Sistemas Universidade de Fortaleza - UNIFOR 11 de fevereiro de 2015 2 / 58 Agenda Tópicos

Leia mais

J2EE TM Java 2 Plataform, Enterprise Edition

J2EE TM Java 2 Plataform, Enterprise Edition CURSO DE GRADUAÇÃO J2EE TM Java 2 Plataform, Enterprise Edition Antonio Benedito Coimbra Sampaio Junior abc@unama.br OBJETIVOS DO CURSO Capacitar os alunos no desenvolvimento de aplicações para a WEB com

Leia mais

Capítulo 1 - Introdução 14

Capítulo 1 - Introdução 14 1 Introdução Em seu livro Pressman [22] define processo de software como um arcabouço para as tarefas que são necessárias para construir software de alta qualidade. Assim, é-se levado a inferir que o sucesso

Leia mais

Enunciado do Projecto

Enunciado do Projecto C O M P U T A Ç Ã O M Ó V E L 2 0 0 7 / 2 0 0 8 Enunciado do Projecto 17 de Março de 2008 1. Objectivos Desenvolver uma aplicação num domínio aplicacional específico que envolva replicação e sincronização

Leia mais

1.1 A abordagem seguida no livro

1.1 A abordagem seguida no livro 1- Introdução A área de administração de sistemas e redes assume cada vez mais um papel fundamental no âmbito das tecnologias da informação. Trata-se, na realidade, de uma área bastante exigente do ponto

Leia mais

Livraria dos Mestres

Livraria dos Mestres Gestão de Projectos Informáticos Livraria dos Mestres 3ª Entrega Empresa B Grupo nº 11 João Maurício nº 53919 Ricardo Carapeto nº 53942 Nuno Almeida nº 53946 Page 1 of 28 Índice 1. Sumário para a Gestão

Leia mais

OurDocs. Sistemas Distribuídos Engenharia de Software. Sistema de gestão documental. ic-sod@mega.ist.utl.pt ic-es@mega.ist.utl.pt

OurDocs. Sistemas Distribuídos Engenharia de Software. Sistema de gestão documental. ic-sod@mega.ist.utl.pt ic-es@mega.ist.utl.pt Sistemas Distribuídos Engenharia de Software 2º Semestre, 2006/2007 Departamento Engenharia Informática Enunciado do projecto: OurDocs Sistema de gestão documental ic-sod@mega.ist.utl.pt ic-es@mega.ist.utl.pt

Leia mais

PRIMAVERA BUSINESS SOFTWARE SOLUTIONS, SA

PRIMAVERA BUSINESS SOFTWARE SOLUTIONS, SA PRIMAVERA BUSINESS SOFTWARE SOLUTIONS, SA Introdução Nesta edição do Catálogo de Serviços apresentamos os vários tipos de serviços que compõe a actual oferta da Primavera na área dos serviços de consultoria.

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

PHC dsuporte Externo. ππ Aumentar a satisfação dos seus clientes. ππ Aumentar a velocidade de resposta dos pedidos

PHC dsuporte Externo. ππ Aumentar a satisfação dos seus clientes. ππ Aumentar a velocidade de resposta dos pedidos PHC dsuporte Externo DESCRITIVO O módulo PHC dsuporte Externo permite prestar assistência técnica pós-venda, aumentar de forma significativa a eficiência e a qualidade do serviço, o que resulta na maior

Leia mais

Módulo 8 Ethernet Switching

Módulo 8 Ethernet Switching CCNA 1 Conceitos Básicos de Redes Módulo 8 Ethernet Switching Comutação Ethernet 2 Segmentação de Redes Numa Ethernet o meio de transmissão é compartilhado Só um nó pode transmitir de cada vez. O aumento

Leia mais

Conceito. As empresas como ecossistemas de relações dinâmicas

Conceito. As empresas como ecossistemas de relações dinâmicas Conceito As empresas como ecossistemas de relações dinâmicas PÁG 02 Actualmente, face à crescente necessidade de integração dos processos de negócio, as empresas enfrentam o desafio de inovar e expandir

Leia mais

UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática

UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática 1 Este é o seu teste de avaliação de frequência. Leia as perguntas com atenção antes de responder. Escreva as suas respostas nesta folha de teste, marcando um círculo em volta da opção ou opções que considere

Leia mais

Iteração 2 Design inicial

Iteração 2 Design inicial Universidade de Aveiro Departamento de Electrónica, Telecomunicações e Informática Engenharia de Software Iteração 2 Design inicial Projecto: FX-Center Grupo: BEDS David Pacheco (nº 32665) Cesário Lucas

Leia mais

PHC dteamcontrol Externo

PHC dteamcontrol Externo PHC dteamcontrol Externo A gestão remota de projectos e de informação A solução via Internet que permite aos seus Clientes participarem nos projectos em que estão envolvidos, interagindo na optimização

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Introdução Departamento de Matemática Universidade dos Açores Hélia Guerra helia@uac.pt Engenharia de software A economia de todos os países desenvolvidos depende do software. O

Leia mais

Serviços de Comunicações. Serviços de Comunicações. Módulo 7 Qualidade de Serviço em redes IP. condições de rede existentes em cada momento

Serviços de Comunicações. Serviços de Comunicações. Módulo 7 Qualidade de Serviço em redes IP. condições de rede existentes em cada momento Módulo 7 Qualidade de Serviço em redes IP 7.1. O porquê da Qualidade de Serviço 7.2. Mecanismos para QoS 7.3. Modelo de Serviços Integrados - IntServ 7.4. Modelo de Serviços Diferenciados - DiffServ 1

Leia mais

Bases de Dados. Bibliografia. 1. Parte I Componente Teórica. Pedro Quaresma

Bases de Dados. Bibliografia. 1. Parte I Componente Teórica. Pedro Quaresma Índice Bases de Dados Pedro Quaresma Departamento de Matemática Universidade de Coimbra 2010/2011 1. Parte I Componente Teórica 1.1 Introdução 1.2 Modelo ER 1.3 Modelo Relacional 1.4 SQL 1.5 Integridade

Leia mais

Perguntas e Respostas via WebCast Roadshow Mais PHC 2009 O novo SNC

Perguntas e Respostas via WebCast Roadshow Mais PHC 2009 O novo SNC Perguntas e Respostas via WebCast Roadshow Mais PHC 2009 O novo SNC PERGUNTAS VIA WEB CAST: Dado que vamos ter necessariamente durante o período de transição que efectuar lançamentos manuais na contabilidade,

Leia mais

OS SISTEMAS GEOGRÁFICA DE INFORMAÇÃO NOS NEGÓCIOS INFRA-ESTRUTURA DE INFORMAÇÃO PARA A TERCEIRA GERAÇÃO DE APLICAÇÕES NO INÍCIO DO TERCEIRO MILÉNIO

OS SISTEMAS GEOGRÁFICA DE INFORMAÇÃO NOS NEGÓCIOS INFRA-ESTRUTURA DE INFORMAÇÃO PARA A TERCEIRA GERAÇÃO DE APLICAÇÕES NO INÍCIO DO TERCEIRO MILÉNIO 22 B&S DOSSIER SIG Por Marco Painho, Professor Associado, Director do Instituto Superior de Estatística e Gestão de Informação da Universidade Nova de Lisboa. OS SISTEMAS DE INFORMAÇÃO GEOGRÁFICA NOS NEGÓCIOS

Leia mais

CUSTO TOTAL DE PROPRIEDADE DO PANDA MANAGED OFFICE PROTECTION. 1. Resumo Executivo

CUSTO TOTAL DE PROPRIEDADE DO PANDA MANAGED OFFICE PROTECTION. 1. Resumo Executivo 1. Resumo Executivo As empresas de todas as dimensões estão cada vez mais dependentes dos seus sistemas de TI para fazerem o seu trabalho. Consequentemente, são também mais sensíveis às vulnerabilidades

Leia mais

manual instalação e configuração v13 1

manual instalação e configuração v13 1 manual instalação e configuração v13 1 Conteúdo Introdução... 3 Conteúdo do DVD:... 3 Instalação e configuração do ERP... 4 Instalação do ERP... 4 Configuração do ERP... 6 Como actualização de versão...

Leia mais