Você está na página 1de 28

E-Voting – R3

Engenharia Informática
Engenharia Software
António Gouveia e António Mesquita

Autores
Lara Santos – 68584
Rui Valente - 68636

Vila Real, 2019


Resumo
Após se efetuar uma análise ao sistema e-Voting, ser elaborada a descrição dos casos
de uso e a respetiva construção do diagrama de casos de uso, foi-nos proposta a criação de
dois diagramas: o diagrama de classes e o diagrama de objetos. Após essa fase, e já com
esses diagramas concluídos, estamos perante uma nova etapa, onde nos é alvitrada a
conceção de dois novos diagramas: o diagrama de atividades e o diagrama de estados.
Inicialmente foi necessário um levantamento de classes pois sem o cumprimento
desta tarefa o projeto poderia ter ficado comprometido.
No diagrama de casos de uso há uma representação dos requisitos e tem como
objetivo assegurar que tanto o utilizador final como os analistas possuam um entendimento
comum dos requisitos,
No diagrama de classes apresentamos as classes que intervêm no sistema e a forma
como estas se relacionam entre si.
O diagrama de objetos é uma forma mais detalhada do diagrama de classes,
representando um exemplo do diagrama de classes num determinado instante. Tem na sua
estrutura a descrição e os atributos. Comentado [a1]:

No diagrama de atividades especificamos casos de uso e operações de classes. Este


tipo de diagrama permito-nos modelar o fluxo das ações que fazem parte de u
No diagrama de estados pretendemos mostrar todos os estados possíveis que os
objetos de uma classe podem ter, assim como eventos que causam a transição entre os
estados.
Índice

1. Introdução ...............................................................................................................1

2. Enquadramento Teórico ............................................................................................1

3. Objetivos da Etapa do Trabalho Prático ......................................................................2

4. Desenvolvimento .....................................................................................................3

Requisitos ................................................................................................................4

Diagrama caso de uso .............................................................................................6

Descrição dos casos de uso .....................................................................................7

Diagrama de classes ..............................................................................................15

Diagrama de objetos ..............................................................................................16

Descrição das classes ............................................................................................16

Diagramas de atividades ........................................................................................23

Diagramas de estados ...........................................................................................25

5. Bibliografia ...........................................................................................................25
1. Introdução

No mundo tecnológico atual, a votação manual através de um boletim de voto em papel


torna-se algo obsoleto. Deste modo foi-nos pedido para desenvolver um sistema simples e
seguro para uma votação digital/eletrónica, mais vulgarmente chamado de E-Voting.
O sistema que criamos está dividido em três partes, uma mesa de autenticação, composta
por pessoas selecionadas pela Comissão Nacional de Eleições (CNE), às quais demos o nome
de moderadores; quiosques, onde é realizado o voto por parte do eleitor; e a urna eletrónica
onde se armazenam e contabilizam os votos.
Na terceira parte deste projeto foi-nos proposto a elaboração de diagramas de atividades.
Os diagramas de atividades são normalmente usados para especificar casos-de-uso e
operações de classes. Estes podem ser usados independentemente dos casos-de-uso, para
modelar uma função ao nível do negócio e podem ser associados a qualquer elemento de
modelação, com a finalidade de modelar o comportamento desse elemento.
Além dos diagramas de atividades foi-nos também proposto a elaboração de diagramas de
estados.
Os diagramas de estados descrevem o comportamento de um objeto, identificando os
diferentes estados em que um objeto pode estar e o que provoca as transições de estados. São
complementares à descrição de uma classe, sendo que se deve criar um diagrama de estados
somente para cada classe que tenha um comportamento dinâmico relevante.

2. Enquadramento Teórico

Os diagramas de atividades são técnicas utilizadas que permitem modelar o fluxo das
ações que fazem parte de um sistema. Estes normalmente são usados para abordar de uma
forma melhor o funcionamento de certos casos-de-uso especificando a interação que certos
atores têm na realização destes casos-de-uso.
Estes diagramas de atividades são normalmente focados em dar a informação
necessária e clara relativa às atividades pretendidas. A mensagem pretendida com estes
diagramas deve ser simples de se interpretar.
Estes diagramas são poderosas ferramentas de comunicação. Quanto às suas
componentes principais:

1
Mostram onde o fluxo da atividade começa e termina;

Comportamento a ser realizado;

O objeto da atividade;

Transição de uma atividade


para outra;

Mostra diferentes transições e condições;

3. Objetivos da Etapa do Trabalho Prático

Objetivo geral:
-Criação de um sistema para E-Voting;

2
Objetivos secundários:
-Compreensão das interações de alguns atores no desenvolvimento de certas atividades do
sistema;
-Criação de relações de interação entre atores no desenvolvimento de certos casos-de-uso;
-Elaboração dos diagramas de atividades;
-Elaboração dos diagramas de estados.

4. Desenvolvimento

O nosso sistema está dividido em três partes:


• A mesa de autenticação é o local onde estão no mínimo dois moderadores de partidos
diferentes com o objetivo de verificar a identificação do eleitor e permitir a criação do
boletim de voto caso o eleitor seja válido
• Um quiosque onde são efetuados os votos
• Uma urna-eletrónica fornecida por terceiros para armazenar os votos, após submetidos, e
enviar os votos à CNE no final da votação.
Este sistema permite-nos manter o voto anónimo e organizado, porque não há interação direta
da mesa com o quiosque uma vez que não existe relação dos dados do eleitor com o voto
efetuado.
Prevenimos possíveis falhas de sistema recorrendo ao voto manual. Nesses casos, o eleitor
deverá votar da maneira tradicional (boletim de voto em papel). Esses votos serão guardados
numa urna real, sendo mais tarde recolhidos e submetidos pelos moderadores, realçando que são
necessários, no mínimo, 2 moderadores de partidos diferentes para essa tarefa.
Função principal do moderador:
• O moderador tem a função de verificar a identificação do eleitor, através de documentos
de identificação, como por exemplo o cartão de cidadão, e autorizar o seu voto, instruindo
o eleitor até ao quiosque caso se trate de um eleitor válido.
Função de administrador:
• O administrador tem a função de controlar todas as operações CRUD, como por exemplo
atualizar o tipo de votação, adicionar ou remover atualizadores, atualizar a lista dos
candidatos, entre outros e ainda tem a função de abrir e fechar as eleições.

3
Os diferentes tipos de eleições inseridas no sistema são:
• Europeias
• Autárquicas
• Legislativas
• Presidências
• Referendos

4.1 Requisitos
Requisitos funcionais:
RF1 O sistema E-Voting deverá ter operações de CRUD dos ciclos eleitorais
RF2 O sistema E-Voting deverá ter operações de CRUD dos tipos de votação
RF3 O sistema E-Voting deverá ter operações de CRUD dos tipos de eleição
RF4 O sistema E-Voting deverá ter operações de CRUD dos tipos de referendo
RF5 O sistema E-Voting deverá ter operações de CRUD dos tipos de candidatos
RF6 O sistema E-Voting deverá ter operações de CRUD dos tipos de perfis
RF7 O sistema E-Voting deverá ler dados da base de dados do governo/CNE
RF8 O sistema E-Voting deverá armazenar os dados na urna eletrónica
RF9 O sistema E-Voting deverá autenticar os eleitores
RF10 O sistema E-Voting deverá gerar boletins de voto
RF11 O sistema E-Voting deverá submeter o voto
RF12 O sistema E-Voting deverá permitir inserção de votos manualmente
RF13 O sistema E-Voting deverá autenticar moderadores e admin
RF14 O sistema E-Voting deverá contabilizar os votos
RF15 O sistema E-Voting deverá imprimir os resultados após eleição
RF16 O sistema E-Voting deverá efetuar relatórios estatísticos
RF17 O sistema E-Voting deverá aceder e armazenar os dados da votação na base de dados
governamental
RF18 O sistema E-Voting deverá efetuar uma prova de consistência
RF19 O sistema E-Voting deverá abrir a eleição
RF20 O sistema E-Voting deverá fechar a eleição

4
Requisitos não funcionais:

RNF1 O sistema E-Voting deverá apresentar um leque de cores adaptado para pessoas
daltónicas.
RNF2 O sistema E-Voting deverá apresentar texto com a Font Impact.
RNF3 O sistema E-Voting deverá agradecer pelo voto.
RNF4 O sistema E-Voting deverá ser programado em Phynton.
RNF5 O sistema E-Voting deverá funcionar no sistema operativo Linux.
RNF6 O sistema E-Voting deverá aceitar a submissão se tiver sido escolhida apenas uma
opção de voto.
RNF7 O sistema E-Voting deverá submeter automaticamente após 1 minuto de inatividade.
RNF8 O sistema E-Voting deverá apresentar uma fotografia ou um logotipo dos
candidatos.
RNF9 O sistema E-Voting deverá imprimir todos os votos no fecho da eleição para
contagem.
RNF10 O sistema E-Voting deverá ter diferentes menus para cada utilizador
RNF11 O sistema E-Voting deverá ter diferentes menus para cada tipo de eleição
RNF12 O sistema E-Voting deverá dar a opção de voto em branco
RNF13 O sistema E-Voting deverá ter um sistema de segurança no hardware e no software

5
Diagrama caso de uso
TEMPO
IMPRIMIR
CONTAGEM DOS FECHAR ABRIR
VOTOS VOTAÇÕES VOTAÇÕES
INSPETOR

INSERÇÃO DE IMPRIMIR
CONTABILIZAR
VOTOS RELATÓRIO
MANUALMENTE OS VOTOS
ESTATÍSTICOS

PROVAR A
CONSISTÊNCIA ADMIN
AUTENTICAR OS CRUD CIRCULOS
ELEITORES ELEITORAIS
ELEITOR
INCLUDE MODERADOR

GERAR BOLETIM CRUD TIPO DE


DE VOTO VOTAÇÃO

SUBMETER CRUD TIPO DE CRUD LISTA DE


VOTO REFERENDO CANDIDATOS

INCLUDE

ARMAZENAR CRUD TIPO DE CRUD


VOTOS NA URNA ELEIÇÃO UTILIZADORES

Extend
AUTENTICAR
FORNECER BASE
MODERADORES
ENVIAR VOTOS PARA A DE DADOS
E ADMIN
BASE DE DADOS CNE
GOVERNAMENTAL

Figura 1 - Diagrama de caso de uso

6
Descrição dos casos de uso

Caso de uso: Atualizar círculos eleitorais


ID: RF1
Atores: Admin
Pré-condições: Receber listas do CNE sobre todos os ciclos eleitorais possíveis
Fluxo de eventos principais:
1 - O admin toma conhecimento do tipo de votação
2- O admin atualiza os círculos eleitorais
Fluxo alternativo:
Pós condições: Tipo de círculo eleitoral atualizado

Caso de uso: Atualizar o tipo de votação


ID: RF2
Atores: Admin
Pré-condições: Receber listas do CNE
Fluxo de eventos principais:
1 - O admin atualiza os tipos de votação, consoante o tipo de eleição
Fluxo alternativo:
Exceções:
Pós condições: Tipo de votação atualizado

Caso de uso: Atualizar o tipo de eleição


ID: RF3
Atores: Admin
Pré-condições: Receber listas do CNE
Fluxo de eventos principais:
1 - O admin atualiza os tipos de eleição, consoante o calendário eleitoral
Fluxo alternativo:
Exceções:
Pós condições: Tipo de eleição atualizado

7
Caso de uso: Atualizar o tipo de referendo
ID: RF4
Atores: Admin
Pré-condições:
Fluxo de eventos principais:
1 - O admin atualiza os tipos de referendo
Fluxo alternativo:
Exceções:
Pós condições: Tipo de referendo atualizado

Caso de uso: Atualizar lista de candidatos


ID: RF5
Atores: Admin
Pré-condições:

Fluxo de eventos principais:


1 - O admin atualiza a lista de candidatos

Fluxo alternativo:
Exceções:

Caso de uso: Adicionar utilizadores


ID: RF6
Atores: Admin
Pré-condições: Contratação de funcionários (moderadores e admins)

Fluxo de eventos principais:


1 - O admin adiciona utilizadores ao sistema

Fluxo alternativo:
Exceções:

Pós condições: Utilizadores adicionados

8
Caso de uso: Remover utilizadores
ID: RF6
Atores: Admin
Pré-condições: Despedimento de funcionários (moderadores e admins)
Fluxo de eventos principais:
1 - O admin remove utilizadores ao sistema
Fluxo alternativo:
Exceções:
Pós condições: Utilizadores removidos

Caso de uso: Fornecer base de dados


ID: RF7
Atores: CNE
Pré-condições: O CNE deve ter uma base de dados

Fluxo de eventos principais:


1 - O CNE dá acesso à base de dados através da Internet
Fluxo alternativo:
Exceções:

Pós condições: O sistema tem acesso à base de dado

Caso de uso: Armazenar votos na urna


ID: RF8
Atores: Sistema
Pré-condições: O quiosque deverá ter recebido e enviado o voto
Fluxo de eventos principais:
1- Após o voto ter sido enviado pelo quiosque, a urna recebe o mesmo
2- A urna armazena o voto
Fluxo alternativo:
Exceções:
Pós condições: Enviar voto para a base de dados do CNE

9
Caso de uso: Autenticar dos eleitores
ID: RF9
Atores: Moderador
Pré-condições: Os cidadãos têm que apresentar um documento comprovativo de
identidade
Fluxo de eventos principais:
1 - O cidadão chega à mesa de autenticação

2 - O cidadão apresenta a sua identificação


3 Após o cidadão ser reconhecido eleitor, a mesa de autenticação envia permissão de
voto ao quiosque
4- O boletim é gerado

Fluxo alternativo:

Exceções:
Pós condições: O cidadão está autenticado e pronto a exercer o seu voto

Caso de uso: Gerar boletim de voto


ID: RF10
Atores: Sistema
Pré-condições: Permissão de voto
Fluxo de eventos principais:
1 - O quiosque apresenta uma lista de candidatos

Fluxo alternativo:

Exceções:
Pós condições: A lista é apresentada ao eleitor

10
Caso de uso: Submeter voto
ID: RF11
Atores: Eleitor, Sistema
Pré-condições: O eleitor deverá votar
Fluxo de eventos principais:
1- Após o eleitor votar, deverá escolher a opção de submeter

Fluxo alternativo: O próprio sistema do quiosque submete o voto após curto período,
caso o eleitor não o faça
Exceções:
Pós condições: O voto é guardado e é impresso o comprovativo de voto.

Caso de uso: Inserção de votos manualmente


ID: RF12
Atores: Moderadores
Pré-condições: Retoma de energia
Fluxo de eventos principais:
1 - O moderador repõe de forma legitima os votos manuais na urna eletrónica
Fluxo alternativo:
Exceções:
Pós condições: Votos submetidos

11
Caso de uso: Autenticar Moderadores e Admin
ID: RF13
Atores: CNE
Pré-condições: Criação de moderadores de diferentes partidos e admin
Fluxo de eventos principais:
1 - Os moderadores e admin são autenticados na base da CNE
Fluxo alternativo:
Exceções:

Pós condições: Utilizadores autenticados

Caso de uso: Contabilizar os votos


ID: RF14
Atores: Sistema
Pré-condições: Votos submetidos e votações terminadas

Fluxo de eventos principais:


1 - Os votos são contados pela urna
Fluxo alternativo: Contabilização manual
Exceções:

Pós condições: Votos contados

Caso de uso: Imprimir contagem dos votos


ID: RF15
Atores: Sistema
Pré-condições: Decisão de contagem manual
Fluxo de eventos principais:
1 - A urna imprime, de forma randomizada, os votos e os resultados das contagens
Fluxo alternativo:
Exceções:
Pós condições: Votos impressos, disponíveis para contagem manual

12
Caso de uso: Imprimir relatórios estatísticos
ID: RF16
Atores: Sistema
Pré-condições: As votações têm de estar encerradas e os votos contados
Fluxo de eventos principais:
1 - A urna imprime relatório estatístico sobre os resultados da votação
Fluxo alternativo:
Exceções:
Pós condições: Relatórios impressos

Caso de uso: Enviar votos para a base de dados governamental


ID: RF17
Atores: Sistema
Pré-condições: As votações têm de estar encerradas

Fluxo de eventos principais:


1- Após o encerramento dos votos, estes deverão ser enviados para a base de dados
governamental (CNE)
Fluxo alternativo:
Exceções:

Pós condições: Enviar voto para a base de dados do CNE

13
Caso de uso: Provar a consistência
ID: RF18
Atores: Inspetor
Pré-condições:
Fluxo de eventos principais:
1 - O inspetor verifica a consistência dos votos, isto é, verifica se o número de votantes
é igual ao número de votos.
Fluxo alternativo:
Exceções:

Pós condições: Sistema verificado

Caso de uso: Abrir votações


ID: RF19
Atores: Admin
Pré-condições: Início e fim de uma eleição no calendário eleitoral
Fluxo de eventos principais:
1 - O admin ou o tempo abre as votações
Fluxo alternativo:
Exceções:
Pós condições: Votações abertas

Caso de uso: Fechar votações


ID: RF2
Atores: Admin, Tempo
Pré-condições: Inicio e fim de uma eleição no calendário eleitoral
Fluxo de eventos principais:
1 - O admin ou o tempo fecha as votações
Fluxo alternativo:
Exceções:
Pós condições: Votações fechadas

14
Diagrama de classes
Cartão de
Pessoa 1 1
TipoPessoa CRUDS
Cidadão

1 1
Eleitor Tempo CNE TipoCNE

1 1
Votação TipoVotacao

or or
1

1
Voto Referendo Eleicao

PartidoCandidatos TipoEleicao
Urna

Figura 2 - Diagrama de Classes

15
Diagrama de objetos
Cartão de Cidadão

Nif: 12345
Nid:12345
Nsc:12345 Pessoa TipoPessoa
Nus:12345
Nome: Jacinto Leite Id: 420 Eleitor:1
Sexo:M Cne:1
Mês:4 CRUDS
Dia:25
Ano:1974 Id:69

CNE
Id:1
Votomanual:0
Eleitor Tempo Permissaovoto:1 TipoCNE
Id:180 Horadeincio:8
Comprovativodevotacao:1 Horadefecho:19 Moderador:1
Admin:0
Inspetor:0

Votacao
Cicloeleitoral:país TipoVotacao
Localização:Vizela
Questões:0
PartidoCandidato:1

or or
Voto
Referendo Eleicao
Id:74
Escolha:António de Pergunta: Id:2020
Oliveira Salazar Opcoes:

Urna
PartidoCandidatos TipoEle icao
Id:12
Resultado:António Nomecandidato:António Legislativas:0
de Oliveira de de Oliveira Salazar Europeia:0
Salazar Fotocandidato:https:// Autarquica:0
Nvotos:8000000000 bit.ly/35jH6KY Presidencial:1
Partido:AngolaNossa

Figura 2 - Diagrama de Objetos

Descrição das classes

Pessoa
-id: int
+Pessoa()
+Pessoa(id: int)
+SETid(id: int)
+GETid(): int
+MaiorDeIdade():bool

16
CartãoCidadão
-nif:int
-nid:string
-nsc:int
-nus:int
-nome:string
-sexo:char
-mês:int
-dia:int
-ano:int
+CartaodeCidadao()
+CartaodeCidadao(nif: int, nid: string, nsc: int, nus: int,
nome: string, sexo: char, mês: int, dia: int, ano: int)
+SETdatadenascimento(dia: int,mês: int,ano: int)
+CalcularIdade():int
+GETnif():int
+GETnid():int
+GETnsc():int
+GETnus():int
+GETnome():string
+GETsexo():char

TipoPessoa
-eleitor: boolean
-cne: boolean
+TipoPessoa()
+TipoPessoa(eleitor: boolean, cne: boolean)
+Geteleitor(): boolean
+Getcne(): boolean
+Seteleitor(eleitor: boolean)
+Setcne(eleitor: boolean)

17
Eleitor
-id:int
-comprovativodavotacao: boolean
+Eleitor()
+Eleitor(id: int, comprovativodavotacao: boolean)
+Getid(): int
+Getcomprovativodevotacao(): boolean
+Setid(id:int)
+Setcomprovativodavotacao(comprovativodavotacao:
boolean)

CNE
-id: int
-votomanual: boolean
-permissaovoto: boolean
+CNE()
+CNE(id: int, votomanual: boolean, permissaovoto:
boolena

tipoCNE
-moderador: boolean
-administrador: boolean
-inspetor: boolean
+TipoCNE()
+TipoCNE(moderador: boolean, administrador:
boolean, inspetor: boolean)
+Getmoderador(): boolean
+Getadministrador(): boolean
+Getinspetor(): boolean

18
+Setmoderador(moderador: boolean)
+Setadministrador(administrador: boolean)
+Setinspetor(inspetor: boolean)

CRUDS
-id: int
+CRUDS()
+CRUDS(id:int)
+AdicionarCandidato(): string
+AtualizarCandidato(candidato: string)
+AdicionarReferendo(): string
+AtualizarReferendo(referendo: string)
+RemoverReferendo(referendo: string)
+AdicionarEleitor(): string
+AtualizarEleitor(eleitor)
+AdicionarModerador(): string
+AtualizarModerador(moderador: string)
+AdicionarAdministador(): string
+AtualizarAdministrador(administrador: string)
+AdicionarTipoVotacao(): string
+AtualizarTipoVotacao(tipovotacao: string)
+AdicionarTipoEleicao(): string
+AtualizarTipoEleicao(tipoeleicao: string)
+AdicionarCicloEleitoral(): string
+AtualizarCicloEleitoral(cicloeleitoral: string)
+AtualizarTipoDePerfil(perfil:string)
+AdicionarTipoDePerfil(): string

Tempo
-horadeinicio: float
-horadefecho: float

19
+Tempo()
+Tempo(horadeinicio: float, horadefecho: float)
+Iniciarvotacao(horadeinicio: float)
+Fecharvotacao(horadefecho: float)
+Gethoradeinicio(): float
+Gethoradefecho(): float
+ Sethoradeinicio(horadeinicio: float)
+ Sethoradefecho(horadefecho: float)

Votação
-cicloeleitoral: string
-localizacao: string

+Votacao()
+Votacao(cicloeleitoral: string, localizacao: string)
+Getcicloeleitoral(): string
+Getlocalizacao(): string
+Setcicloeleitoral(cicloeleitoral: string)
+Setlocalizacao(localização: string)

Eleicao
-id: int

+Eleicao()
+Eleicao(id: int)
+Getid(): int
+SETid(id: int)

20
TipoEleicao
-legislativas: boolean
-europeias: boolean
-autarquicas: boolean
-presidenciais: boolean
+TipoEleicao()
+TipoEleicao(legislativas: boolean, europeias:
boolean, autarquicas: boolean, presidenciais: boolean)
+Getlegislativas(): boolean
+Geteuropeias(): boolean
+ Getautarquicas(): boolean
+ Getpresidencias(): boolean
+Setlegislativas(legislativas: boolean)
+Seteuropeias(europeias: boolean
+Setautarquicas(autarquicas: boolean)
+Setpresidenciais(presidenciais: boolean)

Voto
-id: int
-escolha: string
+Voto()
+Voto(int: id, escolha: string)
+Escolha(opções: string)
+GetEscolha(): string

TipoVotacao
-questoes: boolean
-partidocandidatos: boolean
+TipoVotacao()
+TipoVotacao(questões: boolean, partidocandidatos:
boolean)
+Getquestoes(): boolean
+Getpartidocandidatos(): boolean

21
+Setquestoes(partidocandidatos: boolean)
+Setpartidocandidato(partidocandidatos: boolean)

Referendo
-pergunta: string
-opcoes: string
+Referendo()
+Referendo(pergunta: string, opcoes: string)
+GetPergunta(): string
+SetPergunta(pergunta: string)
+GetOpcoes(): string
+SetOpcoes(opcoes: string)

PartidoCandidatos
-nomecandidato: string
-fotocandidato: string
-partido: string
+PartidoCandidato()
+PartidoCandidato(nomecandidato: string,
fotocandidato: string, partido: string)
+GetNomecandidato(): string
+GetFotoCandidato(): string
+GetPartido(): string
+SetNomeCandidato(nomecandidato: string)
+SetFotoCandidato(fotocandidato: string)
+SetPartido(partido: string)

Urna
-id: int
-resultado: string
-nvotos: int
+Urna()
+Urna(id: int, resultado: string, nvotos: int)

22
+ContarVotos(voto: voto)
+Estatitiscas(candidatos[]: PartidoCandidatos, voto:
voto)
+GetId():int
+SetId(id: int)
+GetResultado():string
+SetResultado(resultado: string)
+GetNvotos():int
+SetNvotos(nvotos: int)

Diagramas de atividades

Autenticação

Eleitor Moderador Adminstrador

Entrada no Escolher hora de


abertura das
sistema votações

Entregar
Autenticar
documento de
eleitor
indetificação

Dar acesso ao
boletim de voto

23
Votação manual Votação
Eleitor Moderador Eleitor Adminstrador

Dirigir-se ao Mutli- Dirigir-se ao


moderador autenticação quiosque

Escolher a Contabilizar
Autenticação Recolher voto
opção de voto voto

Inserir voto
Voto(num
manualmente Submeter voto
boletim físico)
nos sistemas

Contagem
Adminstrador

Contagem dos Fecho das


votos eleições

Gerar relatório
estatistico

Imprimir
resultados

24
Diagramas de estados

Pessoa Votação

Há Internet?
Autenticar();

true false
true false

Voto Voto Manual


Pessoa SetVoto() Preencher Boletim
SetDados()
SetTipo()
tipo()

Moderador Eleitor

Adminstrador

5. Bibliografia
www.cne.pt
Apontamentos teóricos e acetatos fornecidos pelo professor;
Protocolo de projeto;

25

Você também pode gostar