Pedro Lemos - pg10946@alunos.uminho.pt Pedro Ribeiro - pg11059@alunos.uminho.pt. 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 - pg10946@alunos.uminho.pt Pedro Ribeiro - pg11059@alunos.uminho.pt 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

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

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

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

Servidores Virtuais. Um servidor à medida da sua empresa, sem investimento nem custos de manutenção.

Servidores Virtuais. Um servidor à medida da sua empresa, sem investimento nem custos de manutenção. es Virtuais Um servidor à medida da sua empresa, sem investimento nem custos de manutenção. O que são os es Virtuais? Virtual é um produto destinado a empresas que necessitam de um servidor dedicado ligado

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

5. Métodos ágeis de desenvolvimento de software

5. Métodos ágeis de desenvolvimento de software Engenharia de Software 5. Métodos ágeis de desenvolvimento de software Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Desenvolver e entregar software o mais rapidamente possível é hoje em dia um dos

Leia mais

Base de Dados para Administrações de Condomínios

Base de Dados para Administrações de Condomínios Base de Dados para Administrações de Condomínios José Pedro Gaiolas de Sousa Pinto: ei03069@fe.up.pt Marco António Sousa Nunes Fernandes Silva: ei03121@fe.up.pt Pedro Miguel Rosário Alves: alves.pedro@fe.up.pt

Leia mais

Engenharia de Software Sistemas Distribuídos

Engenharia de Software Sistemas Distribuídos Engenharia de Software Sistemas Distribuídos 2 o Semestre de 2009/2010 FEARSe Requisitos para a 1 a entrega 18 de Março de 2010 1 Introdução O projecto conjunto das disciplinas de Engenharia de Software

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

OFICIAL DA ORDEM MILITAR DE CRISTO MEDALHA DE EDUCAÇÃO FÍSICA E BONS SERVIÇOS. Circular n.º 023-A/2014 Portal F.P.T. - Inscrições (Aditamento)

OFICIAL DA ORDEM MILITAR DE CRISTO MEDALHA DE EDUCAÇÃO FÍSICA E BONS SERVIÇOS. Circular n.º 023-A/2014 Portal F.P.T. - Inscrições (Aditamento) Circular n.º 023-A/2014 Portal F.P.T. - Inscrições (Aditamento) Exmo. Sr. Presidente, A Direcção da F.P.T. tem emitido, ao longo dos últimos meses, diversas Circulares, com o objectivo de ir informando,

Leia mais

OFICIAL DA ORDEM MILITAR DE CRISTO MEDALHA DE EDUCAÇÃO FÍSICA E BONS SERVIÇOS. Circular n.º 029/2014 PORTAL FPT Abertura aos atletas

OFICIAL DA ORDEM MILITAR DE CRISTO MEDALHA DE EDUCAÇÃO FÍSICA E BONS SERVIÇOS. Circular n.º 029/2014 PORTAL FPT Abertura aos atletas Circular n.º 029/2014 PORTAL FPT Abertura aos atletas Exmo. Sr. Presidente, Após muitos meses de desenvolvimento e melhorias contínuas na nova plataforma informática onde se inclui o amplamente divulgado

Leia mais

PHC Serviços CS. A gestão de processos de prestação de serviços

PHC Serviços CS. A gestão de processos de prestação de serviços PHC Serviços CS A gestão de processos de prestação de serviços A solução que permite controlar diferentes áreas de uma empresa: reclamações e respectivo tratamento; controlo de processos e respectivos

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

Serviço a Pedido ( On Demand ) da CA - Termos e Política de Manutenção Em vigor a partir de 1 de Setembro de 2010

Serviço a Pedido ( On Demand ) da CA - Termos e Política de Manutenção Em vigor a partir de 1 de Setembro de 2010 Serviço a Pedido ( On Demand ) da CA - Termos e Política de Manutenção Em vigor a partir de 1 de Setembro de 2010 A Manutenção do Serviço a Pedido ( On Demand ) da CA consiste numa infra-estrutura de disponibilidade

Leia mais

Ministério das Finanças Instituto de Informática. Departamento de Sistemas de Informação

Ministério das Finanças Instituto de Informática. Departamento de Sistemas de Informação Ministério das Finanças Instituto de Informática Departamento de Sistemas de Informação Assiduidade para Calendários Específicos Junho 2010 Versão 6.0-2010 SUMÁRIO 1 OBJECTIVO 4 2 ECRÃ ELIMINADO 4 3 NOVOS

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 projetos em aberto A solução via Internet que permite acompanhar os projetos em aberto em que o utilizador se encontra envolvido, gerir eficazmente o seu tempo

Leia mais

Gestão do Risco e da Qualidade no Desenvolvimento de Software

Gestão do Risco e da Qualidade no Desenvolvimento de Software Gestão do Risco e da Qualidade no Desenvolvimento de Software Questionário Taxinómico do Software Engineering Institute António Miguel 1. Constrangimentos do Projecto Os Constrangimentos ao Projecto referem-se

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

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

Software PHC com MapPoint

Software PHC com MapPoint Software PHC com MapPoint A análise de informação geográfica A integração entre o Software PHC e o Microsoft Map Point permite a análise de informação geográfica, desde mapas a rotas, com base na informação

Leia mais

PHC dteamcontrol Externo

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

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

A SÈTIMA. O nosso principal objectivo

A SÈTIMA. O nosso principal objectivo 03 A SÈTIMA A SÉTIMA produz soluções de software maioritariamente com recurso à WEB, de modo a dar suporte ao crescimento tecnológico que é já a maior realidade do século XXI. Esta aposta deve-se ao facto

Leia mais

GereComSaber. Desenvolvimento de Sistemas de Software. Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática

GereComSaber. Desenvolvimento de Sistemas de Software. Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática Desenvolvimento de Sistemas de Software Ano Lectivo de 2009/10 GereComSaber Ana Duarte, André Guedes, Eduardo

Leia mais

4.1. UML Diagramas de casos de uso

4.1. UML Diagramas de casos de uso Engenharia de Software 4.1. UML Diagramas de casos de uso Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Utilizados para ajudar na análise de requisitos Através da forma como o utilizador usa o sistema

Leia mais

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

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

Leia mais

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

Processo do Serviços de Manutenção de Sistemas de Informação

Processo do Serviços de Manutenção de Sistemas de Informação Processo do Serviços de Manutenção de Sistemas de Informação 070112=SINFIC HM Processo Manutencao MSI.doc, Página 1 Ex.mo(s) Senhor(es): A SINFIC agradece a possibilidade de poder apresentar uma proposta

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

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

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

SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária

SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária Cascavel Novembro de 2009 Pedro Patitucci Finamore Daniel Bordignon Cassanelli Marco Antonio da Rosa DIAGRAMAS DE CLASSE E SEQUÊNCIA

Leia mais

Suporte Técnico de Software HP

Suporte Técnico de Software HP Suporte Técnico de Software HP Serviços Tecnológicos HP - Serviços Contratuais Dados técnicos O Suporte Técnico de Software HP fornece serviços completos de suporte de software remoto para produtos de

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

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

Aprend.e Sistema integrado de formação e aprendizagem

Aprend.e Sistema integrado de formação e aprendizagem Aprend.e Sistema integrado de formação e aprendizagem Pedro Beça 1, Miguel Oliveira 1 e A. Manuel de Oliveira Duarte 2 1 Escola Aveiro Norte, Universidade de Aveiro 2 Escola Aveiro Norte, Departamento

Leia mais

Engenharia de Software e Sistemas Distribuídos. Enunciado Geral do Projecto

Engenharia de Software e Sistemas Distribuídos. Enunciado Geral do Projecto LEIC-A, LEIC-T, LETI, MEIC-T, MEIC-A Engenharia de Software e Sistemas Distribuídos 2 o Semestre 2014/2015 Enunciado Geral do Projecto O que se segue é uma descrição geral do domínio do projecto a desenvolver

Leia mais

A VISTA BACKSTAGE PRINCIPAIS OPÇÕES NO ECRÃ DE ACESSO

A VISTA BACKSTAGE PRINCIPAIS OPÇÕES NO ECRÃ DE ACESSO DOMINE A 110% ACCESS 2010 A VISTA BACKSTAGE Assim que é activado o Access, é visualizado o ecrã principal de acesso na nova vista Backstage. Após aceder ao Access 2010, no canto superior esquerdo do Friso,

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

GESTÃO de PROJECTOS. Gestor de Projectos Informáticos. Luís Manuel Borges Gouveia 1

GESTÃO de PROJECTOS. Gestor de Projectos Informáticos. Luís Manuel Borges Gouveia 1 GESTÃO de PROJECTOS Gestor de Projectos Informáticos Luís Manuel Borges Gouveia 1 Iniciar o projecto estabelecer objectivos definir alvos estabelecer a estratégia conceber a estrutura de base do trabalho

Leia mais

Rock In Rio - Lisboa

Rock In Rio - Lisboa Curso de Engenharia Informática Industrial Rock In Rio - Lisboa Elaborado por: Ano Lectivo: 2004/05 Tiago Costa N.º 4917 Turma: C Gustavo Graça Patrício N.º 4757 Turma: C Docente: Professora Maria Estalagem

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

GereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios

GereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática 3ºAno Disciplina de Desenvolvimento de Sistemas de Software Ano Lectivo de 2009/2010 GereComSaber Sistema de

Leia mais

WebSphere_Integration_Developer_D_Jan06 Script

WebSphere_Integration_Developer_D_Jan06 Script WebSphere_Integration_Developer_D_Jan06 Script 1a Nesta demonstração, Will Dunlop, um programador de integração da JK, utiliza o IBM, [ IBM], ou WID para construir um novo serviço orientado para os processos

Leia mais

Manual de Utilizador. Disciplina de Projecto de Sistemas Industriais. Escola Superior de Tecnologia. Instituto Politécnico de Castelo Branco

Manual de Utilizador. Disciplina de Projecto de Sistemas Industriais. Escola Superior de Tecnologia. Instituto Politécnico de Castelo Branco Escola Superior de Tecnologia Instituto Politécnico de Castelo Branco Departamento de Informática Curso de Engenharia Informática Disciplina de Projecto de Sistemas Industriais Ano Lectivo de 2005/2006

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelos e arquitecturas 14/15 Sistemas Distribuídos 1 Modelos arquitecturais 14/15 Sistemas Distribuídos 2 Camadas de Software: o Middleware Aplicações Middleware Sistema Operativo

Leia mais

WEB DESIGN LAYOUT DE PÁGINA

WEB DESIGN LAYOUT DE PÁGINA LAYOUT DE PÁGINA Parte 1 José Manuel Russo 2005 2 Introdução Quando se projecta um Web Site é fundamental definir com o máximo rigor possível os Objectivos a atingir no projecto, para que a sua concepção

Leia mais

Plano de Gerenciamento do Projeto

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

Leia mais

Projeto de Sistemas I

Projeto de Sistemas I Instituto Federal de Educação, Ciência e Tecnologia de São Paulo Projeto de Sistemas I Professora: Kelly de Paula Cunha E-mail:kellypcsoares@ifsp.edu.br Requisitos: base para todo projeto, definindo o

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

Introdução à Computação

Introdução à Computação Aspectos Importantes - Desenvolvimento de Software Motivação A economia de todos países dependem do uso de software. Cada vez mais, o controle dos processos tem sido feito por software. Atualmente, os

Leia mais

Sistema de Gestão de Ciclo de Vida de Farmácias AVP003. Manual de Utilizador Externo - Entregas ao Domicílio e Vendas via Internet

Sistema de Gestão de Ciclo de Vida de Farmácias AVP003. Manual de Utilizador Externo - Entregas ao Domicílio e Vendas via Internet Sistema de Gestão de Ciclo de Vida de Farmácias AVP003 Manual de Utilizador Externo - Entregas ao Domicílio e Vendas via de Índice 1 Introdução... 4 1.1 Objetivo...4 1.2 Funcionalidades...5 1.3 Autenticação...5

Leia mais

A Secretária de Estado dos Transportes. Ana Paula Vitorino

A Secretária de Estado dos Transportes. Ana Paula Vitorino Intervenção de Sua Excelência, A Ana Paula Vitorino por ocasião da Sessão de encerramento da apresentação dos novos serviços online do IMTT Lisboa, 18 de Dezembro de 2008 (vale a versão lida) 1/14 Senhor

Leia mais

ISO 9001:2008. A International Organization for Standardization (ISO) publicou em 2008-11- 14 a nova edição da Norma ISO 9000:

ISO 9001:2008. A International Organization for Standardization (ISO) publicou em 2008-11- 14 a nova edição da Norma ISO 9000: A International Organization for Standardization (ISO) publicou em 2008-11- 14 a nova edição da Norma ISO 9000: ISO 9001:2008 Esta nova edição decorre do compromisso da ISO em rever e actualizar as Normas,

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

Programação 2ºSemestre MEEC - 2010/2011. Programação 2º Semestre 2010/2011 Enunciado do projecto

Programação 2ºSemestre MEEC - 2010/2011. Programação 2º Semestre 2010/2011 Enunciado do projecto Mestrado Integrado em Engenharia Electrotécnica e de Computadores Programação 2º Semestre 2010/2011 Enunciado do projecto O projecto a desenvolver pelos alunos consistirá numa sistema de monitorização,

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

Aplicação Prática de Lua para Web

Aplicação Prática de Lua para Web Aplicação Prática de Lua para Web Aluno: Diego Malone Orientador: Sérgio Lifschitz Introdução A linguagem Lua vem sendo desenvolvida desde 1993 por pesquisadores do Departamento de Informática da PUC-Rio

Leia mais

Itinerários de Ônibus Relatório Final

Itinerários de Ônibus Relatório Final CENTRO UNIVERSITÁRIO SENAC Itinerários de Ônibus Relatório Final Grupo 5 Caio Roque Daniel Nunes Elise Roese José Caneiro Marcos Grignani São Paulo Junho de 2007 1 ÍNDICE 1. Introdução... 3 2. Desenvolvimento...

Leia mais

ENGENHARIA DE SOFTWARE I

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

Leia mais

Universidade do Minho Licenciatura em Engenharia Informática

Universidade do Minho Licenciatura em Engenharia Informática Universidade do Minho Licenciatura em Engenharia Informática Disciplina de Desenvolvimento de Sistemas de Software Trabalho Prático Fase 1 Ano Lectivo de 2009/10 GereComSaber Grupo 15 Cláudio Manuel Rigueiro

Leia mais

Comunicação documentos de transporte AT via Webservice Singest Sistema Integrado de Gestão. 22-05-2013 Cambragest Serviços de Gestão e Software

Comunicação documentos de transporte AT via Webservice Singest Sistema Integrado de Gestão. 22-05-2013 Cambragest Serviços de Gestão e Software Comunicação documentos de transporte AT via Webservice 22-05-2013 Cambragest Serviços de Gestão e Software I. Índice I. Índice... 1 II. Introdução... 2 III. Configuração de documentos de transporte...

Leia mais

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

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

Leia mais

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

Universidade do Minho. Licenciatura em Engenharia Informática. Desenvolvimento de Sistemas de Software. Gere Com Saber

Universidade do Minho. Licenciatura em Engenharia Informática. Desenvolvimento de Sistemas de Software. Gere Com Saber Universidade do Minho Gere Com Saber Grupo 3: 430 José Carvalho 4377 Pedro Ribeiro 4394 Tiago Airosa 49333 Bernardino Fernandes 4936 Luís Carvalho Índice ÍNDICE ÍNDICE DE FIGURAS 5 INTRODUÇÃO 7. MODELO

Leia mais

DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES. Trabalho de Graduação

DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES. Trabalho de Graduação DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES Trabalho de Graduação Orientando: Vinicius Stein Dani vsdani@inf.ufsm.br Orientadora: Giliane

Leia mais

Manual de utilização do Moodle

Manual de utilização do Moodle Manual de utilização do Moodle Iniciação para docentes Universidade Atlântica Versão: 1 Data: Fevereiro 2010 Última revisão: Fevereiro 2010 Autor: Ricardo Gusmão Índice Introdução... 1 Registo no Moodle...

Leia mais

Informática II Cap. 3

Informática II Cap. 3 Cap. 3 1 Tradicionalmente, programar significava apenas a escrita de um programa, que resolvesse o problema pretendido de uma forma aparentemente correcta. Problema Problema Programa Programa Desvantagens:

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 atividade do cliente, através do acesso remoto à informação comercial, aumentando assim a capacidade de resposta aos potenciais negócios

Leia mais

Arquitetura de Informação

Arquitetura de Informação Arquitetura de Informação Ferramentas para Web Design Prof. Ricardo Ferramentas para Web Design 1 Arquitetura de Informação? Ferramentas para Web Design 2 Arquitetura de Informação (AI): É a arte de expressar

Leia mais

Tarefa Orientada 16 Vistas

Tarefa Orientada 16 Vistas Tarefa Orientada 16 Vistas Objectivos: Vistas só de leitura Vistas de manipulação de dados Uma vista consiste numa instrução de SELECT que é armazenada como um objecto na base de dados. Deste modo, um

Leia mais

TIC Unidade 2 Base de Dados. Informação é todo o conjunto de dados devidamente ordenados e organizados de forma a terem significado.

TIC Unidade 2 Base de Dados. Informação é todo o conjunto de dados devidamente ordenados e organizados de forma a terem significado. Conceitos relativos à Informação 1. Informação O que á a informação? Informação é todo o conjunto de dados devidamente ordenados e organizados de forma a terem significado. 2. Dados Em informática designa-se

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

Instituto Superior Politécnico de VISEU. Escola Superior de Tecnologia

Instituto Superior Politécnico de VISEU. Escola Superior de Tecnologia 1 Tradicionalmente, programar significava apenas a escrita de um programa, que resolvesse o problema pretendido de uma forma aparentemente correcta. Problema Problema Programa Programa Desvantagens: Programas

Leia mais

GUIA PARA O PREENCHIMENTO DOS FORMULÁRIOS ENTIDADE GESTORA ERP PORTUGAL

GUIA PARA O PREENCHIMENTO DOS FORMULÁRIOS ENTIDADE GESTORA ERP PORTUGAL GUIA PARA O PREENCHIMENTO DOS FORMULÁRIOS ENTIDADE GESTORA ERP PORTUGAL Versão: 1.0 Data: 05-06-2009 Índice Acesso e estados dos Formulários... 3 Escolha do Formulário e submissão... 4 Bases para a navegação

Leia mais

Trabalhos Práticos. Programação II Curso: Engª Electrotécnica - Electrónica e Computadores

Trabalhos Práticos. Programação II Curso: Engª Electrotécnica - Electrónica e Computadores Trabalhos Práticos Programação II Curso: Engª Electrotécnica - Electrónica e Computadores 1. Objectivos 2. Calendarização 3. Normas 3.1 Relatório 3.2 Avaliação 4. Propostas Na disciplina de Programação

Leia mais

Guia de Especificação de Caso de Uso Metodologia CELEPAR

Guia de Especificação de Caso de Uso Metodologia CELEPAR Guia de Especificação de Caso de Uso Metodologia CELEPAR Agosto 2009 Sumário de Informações do Documento Documento: guiaespecificacaocasouso.odt Número de páginas: 10 Versão Data Mudanças Autor 1.0 09/10/2007

Leia mais

Restituição de cauções aos consumidores de electricidade e de gás natural Outubro de 2007

Restituição de cauções aos consumidores de electricidade e de gás natural Outubro de 2007 Restituição de cauções aos consumidores de electricidade e de gás natural Outubro de 2007 Ponto de situação em 31 de Outubro de 2007 As listas de consumidores com direito à restituição de caução foram

Leia mais

Engenharia de Software Sistemas Distribuídos

Engenharia de Software Sistemas Distribuídos Engenharia de Software Sistemas Distribuídos 2 o Semestre de 2007/2008 Requisitos para a 1 a entrega Loja Virtual 1 Introdução O enunciado base do projecto conjunto das disciplinas de Engenharia de Software

Leia mais

Segurança e Higiene do Trabalho

Segurança e Higiene do Trabalho Guia Técnico Segurança e Higiene do Trabalho Volume XXXI Trabalhos com segurança em telhados um Guia Técnico de Copyright, todos os direitos reservados. Este Guia Técnico não pode ser reproduzido ou distribuído

Leia mais

Relatório de Progresso

Relatório de Progresso Luís Filipe Félix Martins Relatório de Progresso Mestrado Integrado em Engenharia Electrotécnica e de Computadores Preparação para a Dissertação Índice Introdução... 2 Motivação... 2 Cloud Computing (Computação

Leia mais

Registro e Acompanhamento de Chamados

Registro e Acompanhamento de Chamados Registro e Acompanhamento de Chamados Contatos da Central de Serviços de TI do TJPE Por telefone: (81) 2123-9500 Pela intranet: no link Central de Serviços de TI Web (www.tjpe.jus.br/intranet) APRESENTAÇÃO

Leia mais

DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS

DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS Planificação Anual da Disciplina de TIC Módulos 1,2,3-10.ºD CURSO PROFISSIONAL DE TÉCNICO DE APOIO À GESTÃO DESPORTIVA Ano Letivo 2015-2016 Manual adotado:

Leia mais

Aspectos técnicos do desenvolvimento baseado em componentes

Aspectos técnicos do desenvolvimento baseado em componentes Aspectos técnicos do desenvolvimento baseado em componentes Um novo processo de desenvolvimento O uso de componentes traz mudanças no processo de desenvolvimento Além de desenvolver um produto, queremos

Leia mais

Implantação de ERP com sucesso

Implantação de ERP com sucesso Implantação de ERP com sucesso Implantação de ERP com sucesso, atualmente ainda é como um jogo de xadrez, você pode estar pensando que está ganhando na implantação, mas de repente: Check Mate. Algumas

Leia mais

Empreendedorismo De uma Boa Ideia a um Bom Negócio

Empreendedorismo De uma Boa Ideia a um Bom Negócio Empreendedorismo De uma Boa Ideia a um Bom Negócio 1. V Semana Internacional A Semana Internacional é o evento mais carismático e que tem maior visibilidade externa organizado pela AIESEC Porto FEP, sendo

Leia mais

UNIVERSIDADE CATÓLICA PORTUGUESA

UNIVERSIDADE CATÓLICA PORTUGUESA UNIVERSIDADE CATÓLICA PORTUGUESA FACULDADE DE PSICOLOGIA E DE EDUCAÇÃO MESTRADO EM CIÊNCIAS DA EDUCAÇÃO ESPECIALIZAÇÃO EM INFORMÁTICA EDUCACIONAL Internet e Educação Ensaio: A Web 2.0 como ferramenta pedagógica

Leia mais