Vous êtes sur la page 1sur 51

Instituto Politécnico de Beja

Escola Superior de Tecnologia e Gestão


Engenharia Informática – 3º Ano

Engenharia de Software

Gestão de Avaliações e Lançamento de


Notas – Fase de Desenho

(fonte: In: www.marcocioffi.com/images/requirements_toon)

Docente: Eng.ª Isabel Sofia Brito


Discentes: José Janeiro, n.º 2467
Joaquim Gomes, n.º 4349

Janeiro de 2008
Índice

Introdução......................................................................................................................... 3
1. Importância da Fase de Desenho .................................................................................. 5
2. Alterações Importantes à Fase de Análise.................................................................... 5

2.1. Diagramas de Casos de Uso .................................................................................. 6

2.1.1. Serviços Académicos...................................................................................... 6


2.1.2. Coordenadores ................................................................................................ 8
2.1.3. Docentes ......................................................................................................... 9
2.1.4. Alunos............................................................................................................. 9
2.2. Templates Alteradas ............................................................................................ 10

Receber/Validar pedido (Serviços Académicos)........................................................ 10

Por disciplina/Por semestre (Coordenadores, Docentes e Alunos) ............................ 12

2.3. Templates Criadas ............................................................................................... 13

Registar (Todos os utilizadores) ................................................................................. 14

3. Diagramas de Classes ................................................................................................. 14


4. Diagramas de Sequências ........................................................................................... 17

4.1. Serviços Académicos........................................................................................... 17

4.2. Coordenadores ..................................................................................................... 28

4.3. Docentes .............................................................................................................. 35

4.4. Alunos.................................................................................................................. 41

Conclusão ....................................................................................................................... 50
Bibliografia..................................................................................................................... 51

2
Introdução

“Os tempos mudam, mudam-se as vontades”, à semelhança do ditado popular, com a


implementação do Processo de Bolonha surgiu a vontade de se criar uma aplicação, com
o objectivo de disponibilizar, on-line, todo o processo de avaliações e lançamentos de
notas, para permitir aos utilizadores (“stakeholders”) visualizar, adicionar, configurar,
alterar e remover informação sobre os momentos de avaliação e respectivas notas, dos
alunos.

Esta aplicação, projectada para a realidade da ESTIG de Beja, cujo objectivo é


implementar uma forma de proporcionar aos utilizadores do sistema, comunicação
directa e eficiente entre si, não esquecendo a gestão de toda a informação inerente ao
sistema, no que se refere aos momentos de avaliação e lançamento de notas.

Surge no âmbito do projecto a realizar entre as disciplinas de Engenharia de Software,


Interacção Pessoa-Computador, Hipermédia e Acessibilidade e Programação Centrada
na Rede, seguindo várias fazes para se chegar a uma satisfação do projectado.

Assim, podemos ainda enquadrar esta segunda parte, fase de desenho, na matéria
leccionada na disciplina de Engenharia de Software, como sendo um complemento
integrado da fase de análise de requisitos.

Nesta segunda parte, do projecto, decidimos omitir parte integrante da informação


relatada na fase de análise, pertencente à primeira parte. No entanto, como alguns dos
dados que foram projectados, na respectiva fase de análise, sofreram umas pequenas
alterações, torna-se importante relatar essas alterações neste documento. Estas
alterações estão relatadas no segundo capítulo.

O principal objectivo, desta fase, é representar graficamente a informação obtida na fase


anterior, servindo de “cobertura”, à fase de análise, com uma importância vital, para
uma melhor compreensão, do sistema projectado, do stackolder (cliente) permitindo
uma percepção de quais são os pontos fortes e fracos, duma aplicação.

3
Com a finalidade de apresentar uma resolução, para o sistema em causa, procedemos à
utilização duma metodologia adequada, a qual passa, como se pode comprovar a
seguidamente, pela análise aprofundada de algumas fases.

Inicialmente, e como já foi referido, foi criado um primeiro relatório com a fase de
análise, posteriormente houve a necessidade de representar essa fase, com este relatório,
explicitando os cenários identificados nessa fase.

Neste sentido, este documento está incorporado os diagramas de casos de uso, com
algumas alterações introduzidas, nomeadamente a incrementação dum novo caso de uso
designado por “registo”. Estas alterações estão devidamente fundamentadas e
representadas, com o template do respectivo caso de uso, modelo com a principal
função de descrição pormenorizada de todo o processo e aspectos que envolvam os
requisitos funcionais, em questão.

Posteriormente, realizámos o diagrama de classes, bem como os diagramas de


sequências, individualmente, para cada caso de uso.

4
1. Importância da Fase de Desenho

A análise de requisitos é uma das fases mais importantes, para muitos autores, é de
facto, a mais importante, para a elaboração e concepção duma aplicação, que satisfaça
os requisitos dos stakeholders e que seja de fácil manutenção. No entanto, a arquitectura
de desenho dum sistema que, é o objectivo principal deste trabalho, é a primeira fase do
desenho da aplicação. O resultado deste processo de planeamento é uma descrição da
arquitectura do software.

A fase de desenho é dividida em várias sub-fases, sendo a primeira a arquitectura do


desenho. Esta sub-fase é de extrema importância, visto ser a "ligação" entre os
requisitos, definidos na fase de análise, e o desenho do sistema.

As vantagens da arquitectura explícita são:

A comunicação entre stakeholders:


o A arquitectura pode ser usada para a discussão entre os stakeholders do
sistema.
Análise do sistema:
o Permite saber se o sistema satisfaz os seus requisitos não funcionais.
Reutilização em larga escala:
o Permite saber se a arquitectura do sistema desenvolvido satisfaz a sua
reutilização em vários sistemas.
(SOMMERVILLE, Ian; 2004, pp. 242)

2. Alterações Importantes à Fase de Análise

Na elaboração da primeira fase, a análise de requisitos, e segunda fase, o desenho, deste


projecto, utilizámos uma das várias ferramentas possíveis, para a realização desta tarefa.
Intitulada de “Enterprise Architect”, versão 6.1, é uma aplicação para elaboração de
diagramas, de casos de uso, de classes e de sequências, elaborados pelos analistas,
nestas duas fases do qualquer projecto. Permite-nos gerar a documentação inerente ao

5
próprio projecto como foi demonstrado, na fase de análise, aquando dos diagramas de
casos de uso.

Assim, com o objectivo de tirar o máximo proveito da ferramenta, foi gerado, nesta
segunda parte do trabalho, o respectivo documento contendo os diagramas de classes,
bem como os diagramas de sequência. Ficando, por esta razão, este relatório
condicionado ao próprio documento, integrando-lhe apenas pequenas notas
introdutórias de cada capítulo.

2.1. Diagramas de Casos de Uso

2.1.1. Serviços Académicos

As alterações, implícitas neste utilizador, reportam ao caso de uso “receber e validar


pedido”, que decidimos optar por incorporar os dois casos de uso inicialmente previstos
e projectados.

6
ud Serv iços Académicos

Atribuir/Alterar Alterar contas Adicionar contas Remov er contas


priv ilégios

«extend» «extend» «extend» «extend»

Gerir contas de
utilizadores

Eliminar cursos

Alterar cursos
«extend»
Criar cursos
«extend» «include»
«extend»
Gerir cursos

Gerir disciplinas
«include»

«extend»
Serv iços Académicos «include»
Criar disciplinas «extend»
«extend» «extend» Autenticação de
utilizador
Alterar disciplinas
Atribuir Eliminar
disciplinas a curso disciplinas
«include»

Backups e «include»
manutenção

Env io de
notificação
Validar inscrições «include»
de recurso
«include»

Registar
«extend»

Validar pagamento «include»

Gerir pedidos de
rev alidação de
prov as

«extend»

Receber/Validar
pedido

7
2.1.2. Coordenadores

Neste caso, à semelhança dos utilizadores docentes e alunos, optámos por compactar os
dois casos de uso (“Por disciplina” e “Por época”) num só, formando assim, apenas, o
caso de uso “Por disciplina/Por semestre”, onde dá a opção aos utilizadores de
seleccionar ou a disciplina ou o semestre referentes à sua pesquisa.

ud Coordenador

Alterar av aliações Remov er


av aliações
Marcar av aliações Visualizar e analizar
mapas de
av aliações
«extend» «extend»
«extend»
«extend»

Gerir av aliações

Visualizar
inscrições dos
alunos

Visualizar e
analizar notas «include»

«extend» «include»
Por disciplina/Por
Coordenador semestre
«include»

Autenticação de
utilizador
Lançar notas «include»

«include»
Atribuir
disciplinas a Env io de
docentes «include» notificação

«include»
Idêntificar
responsáv el pelo «include»
lançamento de
Registo
notas
Atribuir
disciplinas a
«include»
semestres

«extend»

«extend»

«extend»

Gerir disciplinas
por
semestre/curso

8
2.1.3. Docentes

Como demonstrado anteriormente os utilizadores coordenadores, bem como os alunos,


decidimos juntar os dois casos de uso (“Por disciplina” e “Por época”) num só,
formando assim, apenas, o caso de uso “Por disciplina/Por semestre”, onde dá a opção
aos utilizadores de seleccionar ou a disciplina ou o semestre referentes à sua pesquisa.

ud Docente

Visualizar e analizar
mapas de
Marcar av aliações
av aliações

«extend» «extend»

Gerir av aliações Alterar av aliações


«extend»

«extend»
Visualizar
«include»
inscrições dos
alunos Remov er
av aliações
«include»
«include»

Visualizar e
analizar notas
«include» «include»

«include»
«extend» Env io de
Autenticação de notificação
utilizador
Por disciplina/Por
Docente
semestre

«include»
«include»

Lançar notas

Registo

2.1.4. Alunos

Neste caso, também foi previsto a compactação dos dois casos de uso (“Por disciplina”
e “Por época”) num só, formando assim, apenas, o caso de uso “Por disciplina/Por
semestre”, onde dá a opção aos utilizadores de seleccionar ou a disciplina ou o semestre
referentes à sua pesquisa.

9
ud Aluno

Alterar inscrição Remov er


em av aliações inscrição em
av aliações

«extend» «extend»
Visualizar mapas de
Inscrev er em av aliações
Gerir inscrição em «extend»
av aliações «extend» av aliações

Inscrev er em Remov er
disciplinas inscrição em
disciplinas

«include»

«extend» «extend»

Gerir inscrição em
disciplinas

Aluno «include»
Autenticação de
utilizador

«include»
Visualizar notas

«extend»

Por disciplina/Por «include»


semestre

Registar

Env io de
Solicita rev isão
notificação
de av aliação «include»

2.2. Templates Alteradas

Nesta parte do relatório é importante referir que houve a necessidade de adaptar os


templates, descritos mais abaixo, ao que foi apurado na elaboração do diagrama de
classes e dos diagramas de sequências. O qual passamos a relatar:

Receber/Validar pedido (Serviços Académicos)


Type: UseCase

10
Descrição: Permite aos utilizadores, designados por serviços académicos, receber os
pedidos de revalidação de prova, por parte do aluno, bem como validar o respectivo
pedido.

Actores: Serviços Académicos.

Situações em caso de falha: Poderá haver uma falha na comunicação entre o utilizador
e o servidor, falha do ISP ou da intranet da ESTIG, neste caso deverá tentar mais tarde,
mas se for um problema de servidor, deverá haver um servidor de reserva, para prevenir
eventuais quebras de comunicação.
Deverá haver backups de toda a informação, para que, em caso de falha, seja possível a
recuperação dos dados referentes ao pedido

Responsibilities (internal requirements)


RF - Receber/Validar pedido - Permite receber e validar os pedidos, por parte dos
alunos, de revalidação, de prova.

Constraints
(pre-cond.) - Ser Serviços Académico - Estar registado, no sistema, como sendo um
elemento dos serviços académicos e esse registo deverá estar válido.
(pre-cond.) - Segundo a Lei – A recepção dos pedidos de revalidação deverá seguir os
tramitos legais.
(pre-cond.) - Dados do aluno - O aluno deverá estar registado no sistema e efectuado a
respectiva prova.
(pos-cond.) - Permitir validação - Permitir seleccionar a opção validar pedido de
revalidação de prova.
(pos-cond.) - Aviso de operação concluído – O sistema deverá emitir um aviso, ao
utilizador, que a operação foi realizada com sucesso.
(pos-cond.) – Backups - Efectuar os backups necessários.

Scenarios
Seleccionar receber pedido - O utilizador selecciona a opção receber pedido.
Visualiza listagem de pedidos - O sistema mostra uma listagem dos pedidos de
revalidação de provas.
Selecciona um pedido - Selecciona um pedido aleatório.
Visualizar pedido - Visualiza o pedido efectuado pelo aluno.
Confirmar dados - Confirmar dados do aluno, se realizou a prova e os dados do pedido.
Confirma se não está registado - Confirma se o pedido já foi registado ou não, através
da análise dos dados do pedido.
Regista pedido - Regista a entrada de pedido, caso não esteja registado.
Constitui processo - Constitui o respectivo processo administrativo, para a revalidação
de prova.
Analisar pedido - Analisa os dados do pedido.
Verificar legislação - Verifica a legislação, disponível, que vigora à data de recepção e
análise do pedido.
Deferimento de pedido - Se o pedido estiver segundo a legislação, então o utilizador
valida e defere o pedido e remete resposta, de deferimento, ao aluno e convoca o júri para
a revalidação. Aguarda revalidação
Indeferimento de pedido - Se o pedido não estiver segundo a legislação, então o
utilizador indefere o pedido e remete resposta, de indeferimento, ao aluno e cessa

11
Scenarios
processo.
Pós revalidação - Após a revalidação da prova, obtém o relatório, que arquiva ao
processo, e regista parecer de relatório.
Envia parecer - Envia parecer de revalidação ao aluno.
Arquiva processo - Arquiva o processo de revalidação de prova.

Por disciplina/Por semestre (Coordenadores, Docentes e Alunos)


Type: UseCase

Descrição: Permite aos utilizadores, registados no sistema, visualizar as notas nas


respectivas disciplinas, escolhendo a opção, de listagem, por disciplina ou por semestre.

Actores: Coordenadores, Docentes e Alunos.

Situações em caso de falha: Poderá haver uma falha na comunicação entre o utilizador
e o servidor, falha do ISP ou da intranet da ESTIG, neste caso deverá tentar mais tarde,
mas se for um problema de servidor, deverá haver um servidor de reserva, para prevenir
eventuais quebras de comunicação.
Caso a nota, do aluno, não exista na pauta, deverá informar o docente

Responsibilities (internal requirements)


FR - Visualizar nota por disciplina ou por semestre - Permite a visualização das notas,
dos alunos, por disciplina ou por semestre, das avaliações das respectivas disciplinas.

Constraints
(pre-cond.) - Estar registado no sistema - Estar registado, no sistema, como sendo um
coordenador, docente ou aluno, e esse registo deverá estar válido.

Scenarios
Seleccionar visualizar notas por disciplina - O utilizador selecciona a opção visualizar
notas por disciplina.
Selecciona a disciplina ou o semestre - Selecciona a disciplina ou o semestre em causa.
Disponibilização de informação - É fornecida toda a informação relativa às notas das
avaliações, por disciplina, que os alunos realizaram.
Visualizar pedido - É fornecida toda a informação relativa às notas das avaliações, por
disciplina, que os alunos realizaram.
Volta ao menu anterior - Torna ao menu anterior

Validar Inscrições de Recurso (Serviços Académicos)


Type: UseCase

Descrição: Permite aos utilizadores, designados por serviços académicos, validar as


inscrições, dos alunos, nas provas de recurso e/ou provas de melhoria de nota sob a
condição do pagamento da própria prova e dentro do prazo legal.

Actores: Serviços Académicos.

12
Situações em caso de falha: Poderá haver uma falha na comunicação entre o utilizador
e o servidor, falha do ISP ou da intranet da ESTIG, neste caso deverá tentar mais tarde,
mas se for um problema de servidor, deverá haver um servidor de reserva, para prevenir
eventuais quebras de comunicação.

Responsibilities (internal requirements)


FR - Validar inscrição - Permite validar o pedido de inscrição para a realização da
prova de recurso.
NFR – Previsibilidade - Capacidade de se prever a quantidade de alunos inscritos na
prova de recurso.

Constraints
(pre-cond.) - Ser Serviços Académicos Visto só os serviços académicos terem acesso à
gestão de contas de utilizadores, então o utilizador deverá estar registado, bem como
válido, com estas funções, será como um administrador de sistema.
(pre-cond.) - Aluno registado - O aluno deverá estar registados no sistema.
(pre-cond.) - Pagamento da prova - O aluno deverá ter pago a prova antes da
deliberação da execução da mesma.
(pre-cond.) Prazo de execução - O Aluno deverá solicitar a execução da prova, nos
prazos previstos no regulamento.

Scenarios
Abrir aplicação - Acede à aplicação.
Valida dados de acesso - Introduz login e password.
Selecciona o aluno - O sistema uma listagem com os alunos que pretendem inscrever em
provas de recurso
Verifica pagamentos - Permite visualizar o pagamento feito pelo aluno (se pagou ou
não), pois não poderá deferir o pedido se os valores não forem pagos.
Verifica os prazos - Deverá verificar os prazos de entrega do pedido e comparar com os
prazos de realização de prova, previstos no regulamento da ESTIG.
Valida pagamento - Selecciona a opção validar pagamento, a fim de verificar se o aluno
efectuou o pagamento da prova.
Confirma dados - Deverá permitir ao utilizador confirmar dos dados anteriormente
analisados.
Confirmação de operação - Após a conclusão da gestão de disciplinas, a aplicação
deverá emitir um aviso de operação completa com sucesso.
Sair ou continuar - Saí da aplicação, caso não tenha mais assunto a efectuar, ou
selecciona outra opção disponível.

2.3. Templates Criadas

Torna-se indispensável identificar o caso de uso incrementado, nesta fase do projecto,


nomeadamente pela representação de templates. Assim, este template, que também foi
gerado pela aplicação, está descrito como:

13
Registar (Todos os utilizadores)
Type: UseCase

Descrição: Permitir aos utilizadores se registar no sistema.

Actores: Alunos, Docentes; Coordenadores e Serviços Académicos.

Situações em caso de falha: Poderá haver uma falha na comunicação entre o utilizador
e o servidor, falha do ISP ou da intranet da ESTIG, neste caso deverá tentar mais tarde,
mas se for um problema de servidor, deverá haver um servidor de reserva, para prevenir
eventuais quebras de comunicação.
Os utilizadores deverão aguardar pela confirmação de registo, enviada por e-mail, por
parte dos Serviços Académicos.

Responsibilities (internal requirements)


FR - Registar no sistema - Permite aos utilizadores registarem-se no sistema.

Constraints
(pre-cond.) Estar Inscrito na Instituição - Os utilizadores deverão pertencer à
Instituição, estando inscritos, quer através de contratos, no caso dos funcionários, quer
através da matrícula, no caso dos alunos.
(pos-cond.) - Validação de registo – Permite ao utilizador confirmar o seu registo,
consolidando esse registo com a confirmação por e-mail.

Scenarios
Seleccão de opção de registar - O utilizador selecciona a opção de registar, para ter
acesso ao sistema.
Preenchimento de formulário - O aluno deverá preencher o formulário que deverá estar
disponível no sistema, nomeadamente o login e a password.
Confirma dados - Deverá permitir, ao utilizador, confirmar dos dados do formulário, a
enviar aos serviços académicos.
Notificar os Serviços Académicos - O sistema notifica os serviços académicos, após o
registo.
Recebe e-mail - Deverá receber um e-mail de confirmação de registo, confirmando
assim a permissão de acesso ao sistema.

3. Diagramas de Classes

Neste capítulo, importa referir que, dada à dificuldade encontrada no manuseamento da


aplicação, que nos serviu de ferramenta para a concretização deste projecto, originada
pelo facto de estarmos a desenvolver os diagramas de classes e de sequências em
máquinas diferentes, sendo por isso difícil a compilação de ambos os trabalhos, para um
só.

14
O diagrama de classes está dividido em duas partes, sendo a primeira parte referente às
acções dos utilizadores dos Serviços Académicos e às condições dos Coordenadores, o
segundo está contemplada com as acções dos Docentes, incluindo as do Coordenador no
papel de Docente, e as acções dos Alunos. Facto que justifica a existência de dois
diagramas de classes, neste documento e nos seus anexos. Não sendo possível, por isso,
evitar a duplicação de algumas das classes, no entanto, tentámos juntar todos métodos e
atributos num só representado no primeiro diagrama.

Primeiro diagrama de classes:

15
cd Diagrama de classes

Dados do utilizador

- email: String
- login: char
- morada: String
- nome_util: String
- password: char

+ criarUtilizador(char, char, String, char, char, String) : void


+ delUtilizador(char) : void
+ getId_Utilizador() : int
+ getLogin() : char
+ getMail() : String
+ getMorada() : String IDResponsNotas
+ getNome() : String
+ getPassword() : char 1
+ setUtilizador() : void
Coordenador Docente

- id_coordenador: int - id_area: int


- id_Docente: int
+ delCoordenador(int) : void - idDisciplina: int
+ getId_coordenador() : void AtribuirDiscDocente
+ getIDocente() : int + acossiatDocentDisciplina(int) : String
+ registar(int) : void + confirmaDados(char, char) : void 1..*
+ setCoordenador() : void + delDocente(int) : void
+ getIdArea() : int 1
1
+ getIDocente() : int
+ getNome() : String
+ registar(char, int) : void
+ responsavelLancamentoNotas() : boolean
+ setDocente() : void 1

0..* 0..*

1..* 1..* Notificacoes

- idNotificacoes: int 0..*


Previlégios

- id_previlágio: int + preencheFurmulario() : void


- tipoPrevilégio: char 0..*

+ setPervilégios(char) : void

1..* 1..*

Autenticação

registo AtribuiPrevilégio

EliminarUtilizador enviarNotificação
Aluno

- id_curso: int
- numero_aluno: int
adicionarUtilizador
+ confirmaDados(boolean, boolean) : boolean
+ eliminarAluno(boolean) : void
+ getId_Utilizador() : int 1
+ registar(char, String) : void
+ setAluno() : void
Backup
1 1..* 1

Serv iços_Académicos
1
- id_serviçosAcad: int
1
+ confirmaDados(char, char) : boolean «interface»
+ efectuaBackup() : void Legislacao

+ checkLegislacao() : char

alterarUtilizador

PedidoRevalidação

PedidosRev alidação

+ arquivaPedido() : boolean
1..* + deferirPedido() : boolean
+ listarPedidos() : char
+ registarPedido(int, int) : void

0..*

AdicionarCurso
eliminarCurso RelacionarDisciplinaSemestre
editCurso

CriarDisciplinas AlterarDisciplina eliminarDiciplina

Av aliações

+ getIdAvaliacao() : int 1

1..*
1

Curso Semestre
Disciplina
- anoCurso: char AtribuirDisciplinaCurso - anoal: int
- areaCurso: char - idCurso: int - idSemestre: int
1..* 1..*
- idCurso: int - idDisciplina: int - primeiro: int
- nomeCurso: String - nomeDisciplina: String - segundo: int

+ addCurso(String, char, char, int) : boolean 1..* 1..* + addDisciplina(char) : void + relacionarDisciplinasSemestre(int) : void
+ delCurso(int) : void + associarDiscipCurso(int, int) : void 1
+ getIdCurso() : int + delDisciplina(int) : boolean
+ setCurso(int) : void + getAtributos() : char
+ getIdDiscplina() : int 0..*
+ getNomeDisciplina() : String
ValidarInscricaoRecurso + setDisciplina(int) : void

Pagamento Prazo

- idPagamentos: int + getIdPrazo() : void


- tipoPagamento: char

+ verificaPagamento(int) : void

Segundo diagrama de classes:

16
cd Diagrama de classes

Coordenador de Curso
Docente
Este Diagrama de - ID_CoordenaçãoCurso: int
Classes serve de - ID_Curso: int - ID_Curso: int
complemento ao - ID_Disciplina: int - ID_Disciplinas: int
outro diagrama. Inscrever em Avaliação - NomeDocente: String - NomeCoordenadorCurso: String
Av aliação
- NomeCurso: String
- Data: String + ConfirmaDados(void, void) : boolean
- ID_Avaliação: int
- Sala: int
Aluno
+ AlterarAvaliacao(int) : void
- id_curso: int
+ getData() : Strng
- numero_aluno: int
+ getID_Avaliacao() : int
+ getSala() : int
Alterar Inscrição em Avaliação + InscreverAvaliacao() : void
+ MarcarAvaliacao() : void
+ RemoverAvaliacao() : void
+ RevisãoAvaliacao(int) : void
1
+ VerMapaAvaliacao() : void
Envio de Notificações
1..* RemoverAvaliações
Alterar Avaliações

Remover Inscricao em Avaliação

Marcar Avaliações
1

Disciplina

- ID_Disciplina: int
- Nome da disciplina: int
1
+ getID_Disciplina() : int Notificacoes
+ getNomeDisciplina() : String
Visualizar Mapa de Avaliações Nota
+ InscreverEmDisciplina(int) : void + PreencheFormulario() : void
+ RemoveInscricaoDisciplina(int) - ID_Nota: int
- ValorNota: int

+ getID_Nota() : int
+ getValorNota() : int
+ LancarNota(int, int) : void Lançar Notas

Inscrever em Disciplina

Visualizar Inscrições dos Alunos

Remover Inscrição em Disciplina

Autenticação

VisualizarNotas Semestre

- DescricaoSemestre: String
- ID_Semestre: int

+ getID_Semestre() : int
+ NumeroSemestre() : int

Solicitar Revisão de Avaliação

4. Diagramas de Sequências

À semelhança do capítulo anterior, os diagramas de sequências estão


discriminados/criados em dois ficheiros diferentes, no entanto estão todos representados
neste documento.

4.1. Serviços Académicos

Diagrama: Adicionar Contas

17
sd Adicionar contas

Diagrama de Diagrama de Diagrama de Diagrama de


classes::Dados do classes::Aluno classes::Coordenador classes::Docente
utilizador
Serviços Académicos
adicionarUtilizador

ref Autenticação de utilizador

setRegisto(contacto,email,Morada,nome_utilizador)

criarUtilizador(login,password,morada,idUtilizador,email,nome)

alt registar(numeroAluno,curso)
[ifAluno]
boolean= confirmaDados()

[ifCoordenador] registar(idCoordenador)
boolean= confirmaDados()

[ifDocente] registar(area,idDocente)
boolean= confirmaDados()

boolean= confirmaDados()

ref Atribuir/Alterar priv ilégios

Diagrama: Alterar Contas

sd Alterar contas

Diagrama de Diagrama de Diagrama de Diagrama de


classes::Dados do classes::Aluno classes::Coordenador classes::Docente
utilizador
Serviços Académicos
alterarUtilizador

ref Autenticação de utilizador

setUtilizador()
int= getId_Utilizador()

alt setAluno()

[ifAluno] boolean= confirmaDados()

[ifCoordenador] setCoordenador()

boolean= confirmaDados()

[ifDocente] setDocente()
boolean= confirmaDados()

setUtilizador()

boolean= confirmaDados()

ref Atribuir/Alterar priv ilégios

Diagrama: Alterar Cursos

18
sd Alterar cursos

«interface» Diagrama de
Diagrama de classes::Curso
Serviços Académicos classes::Legislacao
editCurso

ref Autenticação de utilizador

setCurso(idCurso)

char=
checkLegislacao()

setCurso(idCurso)

boolean= confirmaDados()

ref Backups e manutenção

Diagrama: Alterar Disciplinas

sd Alterar disciplinas

Diagrama de
classes::Disciplina
Serviços Académicos
AlterarDisciplina

ref Autenticação de utilizador


setDisciplina(idDisciplina)

setDisciplina(idDisciplina)

boolean= confirmaDados()

ref Backups e manutenção

Diagrama: Atribuir Disciplinas a Cursos

19
sd Atribuir disciplinas a curso

Diagrama de Diagrama de
classes::Curso classes::Disciplina
Serviços Académicos
AtribuirDisciplinaCurso

ref Autenticação de utilizador

atribuirDisciplinaCurso(atributos)

getIdCurso()

alt int= getIdDiscplina()

[ifCursoExiste]
alt
associarDiscipCurso(idDisciplina,idCurso)
[ifDiscExiste]

confirmaDados()

[ifDiscNotExiste]
ref Criar disciplinas

[ifCursoNotExiste]
ref Criar cursos

ref Backups e manutenção

Diagrama: Atribuir/Alterar Privilégios

20
sd Atribuir/Alterar priv ilégios

Diagrama de Diagrama de
classes::Dados do classes::Previlégios
utilizador
Serviços Académicos
AtribuiPrev ilégio

ref Autenticação de utilizador

atribuirPrivilégios()

int= getId_Utilizador()

alt Existe setPervilégios(tipoPervilégio)


[Se sim]
true= confirmaçãoOperação()

[Se não]

ref
Adicionar contas

ref Backups e manutenção

21
Diagrama: Autenticação de Utilizador

sd Autenticação de utilizador

Diagrama de
classes::Serviços_Académicos
Serviços Académicos
Autenticação

realiza autenticação(login, password)

confirmaDados(password,login)

alt Registado
[Ok] alt Permite Acesso()
[ifDataCorrect]
Tem Acesso

[ifDataNotCorrect]

SolicitaConfirmacaoDados

realiza autenticação(login, password)


confirmaDados(password,login)

Permite Acesso()
Tem Acesso

[ifDataStillIncorrect]
recuperarPassword()

[NotOk]
Solicita Registo
ref Registar

22
Diagrama: Backups e Manutenção

sd Backups e manutenção

Diagrama de
classes::Serviços_Académicos
Serviços Académicos
Backup

ref
Autenticação de utilizador

genBackup()

efectuaBackup()

boolean= confirmaDados()

Diagrama: Criar Cursos

sd Criar cursos

«interface» Diagrama de
Diagrama de classes::Curso
Serviços Académicos classes::Legislacao
AdicionarCurso

ref Autenticação de utilizador

addCurso(areacurso,anoCurso,nomeCurso,idCurso)

char= checkLegislacao()

addCurso(nomeCurso,anoCurso,areaCurso,idCurso)

true= confirmacaoDados()

ref Atribuir disciplinas a curso

23
Diagrama: Criar Disciplinas

sd Criar disciplinas

Diagrama de Diagrama de
classes::Curso classes::Disciplina
Serviços Académicos
CriarDisciplinas

ref Autenticação de utilizador

criarDisciplina(parametros)

getIdCurso()

alt addDisciplina(atributos)
[ifCursoExiste]
ref Atribuir disciplinas a curso
boolean= confirmarDados()

[ifCursoNotExiste]
ref Criar cursos

ref Backups e manutenção

Diagrama: Eliminar Cursos

sd Eliminar cursos

«interface» Diagrama de
Diagrama de classes::Curso
Serviços Académicos classes::Legislacao
eliminarCurso

ref Autenticação de utilizador

delCurso(idCurso)

checkLegislacao()

delCurso(idCurso)

boolean= confirmaDados()

ref Alterar disciplinas

24
Diagrama: Eliminar Disciplinas

sd Eliminar disciplinas

Diagrama de
classes::Disciplina
Serviços Académicos
eliminarDiciplina

ref Autenticação de utilizador

delDisciplina(idDisciplina)

delDisciplina(idDisciplina)

true= confirmarDados()

Diagrama: Envio de Notificação

sd Env io de notificação

Diagrama de
classes::Notificacoes
Serviços Académicos
env iarNotificação

ref Autenticação de utilizador

envioNotificacao()

preencheFurmulario()

boolean= confirmaDados()

25
Diagrama: Receber/Validar Pedido

sd Receber/Validar pedido

Diagrama de Diagrama de «interface»


classes::Avaliações classes::PedidosRevalidação Diagrama de
Serviços Académicos classes::Legislacao
PedidoRev alidação

ref Autenticação de utilizador

char= getPedidos()

char= listarPedidos()
int= getIdAvaliacao()

alt
registarPedido(idAluno,idAvaliacao)
[if not regist]
boolean= confirmaDados()

[if regist] char=


checkLegislacao()
alt true= deferirPedido()
[ifDeferido]
true= notifica(email,idUtilizador)

[ifNotDeferido]
false= deferirPedido()
true= notifica(email,idUtilizador)
true= arquivaPedido()

Diagrama: Remover Utilizadores

sd remov erUtilizadores

Diagrama de Diagrama de Diagrama de Diagrama de


classes::Dados do classes::Aluno classes::Coordenador classes::Docente
utilizador
Serviços Académicos
EliminarUtilizador

ref Autenticação de utilizador

delRegisto(idUtilizador)

int= getId_Utilizador()

alt delUtilizador(BI)
[ifAluno]
boolean= confirmaDados()

delUtilizador(BI)
[ifCoordenador]
boolean= confirmaDados()

[ifDocente] delUtilizador(BI)

boolean= confirmaDados()

delRegisto(idUtilizador)

ref Atribuir/Alterar priv ilégios

26
Diagrama: Validar Inscrições de Recurso

sd Validar inscrições de recurso

Diagrama de Diagrama de Diagrama de


classes::Aluno classes::Pagamento classes::Prazo
Serviços Académicos
ValidarInscricaoRecurso

ref Autenticação de utilizador

ValidaInscricaoRecurso()

int= getId_Utilizador()

boolean= verificaPagamento(idPagamento)

getIdPrazo()

alt Pagamento confirmaDados()


[Ok]

alt Prazo
confirmaDados()
[Ok]

ValidaInscricaoRecurso()

[NotOk]

Fora de Prazo

[NotOk]
EfectuarPagamento

27
4.2. Coordenadores

Diagrama: Alterar Avaliações

sd Alterar av aliações

:Disciplina :Avaliação

Coordenador
:Alterar
Avaliações

ref
Autenticação de utilizador

AlterarAvaliacao(ID_Avaliacao,ID_Disciplina)

int= getID_Disciplina()

AlterarAvaliacao(ID_Avaliacao)

boolean= ConfirmarDados()

ref
Env io de notificação

Diagrama: Atribuir Disciplinas a Docentes

sd Atribuir disciplinas a docentes

Diagrama de Diagrama de
classes::Disciplina classes::Docente
Coordenador
AtribuirDiscDocente

ref
Autenticação de utilizador

atribuirDisciplinaDocente(idDisciplina,idDocente)

int= getIdDiscplina()

String= listaDisciplina()

int= getIDocente()

String= listaDocentes()

alt
String= acossiatDocentDisciplina(idDisciplina)
[ifDocentAndDisciplinaCreat]

[ifNotDocentAndDisciplinaCreat]

ref Env io de notificação

28
Diagrama: Atribuir Disciplinas a Semestres

sd Atribuir disciplinas a semestres

Diagrama de Diagrama de
classes::Disciplina classes::Semestre
Coordenador
RelacionarDisciplinaSemestre

ref Autenticação de utilizador

RelacionarDisciplinaSemestre(idSemestre,idDisciplina)

int= getIdDiscplina()

relacionarDisciplinasSemestre(idDisciplina)

boolean= confirmarDados()

Diagrama: Autenticação de Utilizador

29
sd Autenticação de utilizador

Diagrama de
classes::Coordenador
Coordenador
Autenticação
realiza autenticação(login, password)

confirmaDados(password,login)

alt Registado
[Ok]
alt Permite Acesso()

[ifDataCorrect]

TemAcesso

[ifDataNotCorrect]
SolicitaDados

realiza autenticação(login, password)


confirmaDados(password,login)

Permite Acesso()
TemAcesso

[ifStillIncorrect] recuperarPassword()

[NotOk]
ref Registo
SolicitaRegisto

Diagrama: Envio de Notificação

sd Env io de notificação

Diagrama de
classes::Notificacoes
Coordenador
env iarNotificação

ref Autenticação de utilizador

envioNotificacao()

preencheFurmulario()

boolean= confirmaDados()

30
Diagrama: Identificar Responsável pelo Lançamento de notas

sd Idêntificar responsáv el pelo lançamento de notas

Diagrama de Diagrama de
classes::Disciplina classes::Docente
Coordenador
IDResponsNotas

ref Autenticação de utilizador

identificarResponsavelNotas(idDocente)

int= getIdDiscplina()

int= getIDocente()

boolean= responsavelLancamentoNotas()

boolean= confirmarDados()

ref Env io de notificação

Diagrama: Lançar Notas

sd Lançar notas

:Disciplina :Avaliação :Nota

Coordenador
:Lançar Notas
ref Autenticação de utilizador

int= LancarNotas(ValorNota,ID_Avaliacao,ID_Disciplina)

int= getID_Disciplina()

int= getID_Avaliacao()

alt Av aliacaoRealizada
[Ok] LancarNota(ValorNota,ID_Nota)

boolean= ConfirmarDados()

ref Env io de notificação

[NotOk]
NaoPermiteLacarNota

31
Diagrama: Marcar Avaliações

sd Marcar av aliações

:Disciplina :Avaliação

Coordenador
:Marcar
Av aliações

ref Env io de notificação

MarcarAvaliacao(ID_Disciplina,ID_Avalliacao)

int= getID_Disciplina()

MarcarAvaliacao()

boolean= ConfirmarDados()

ref
Envio de notificação

Diagramas: Por Disciplina/Por Semestre (para visualizar notas)

sd VisualizarNotas

Coordenador
VisualizarNotas

ref Autenticação de utilizador

ListarNotasDisciplina(ID_Disciplina)

alt seleccao
[Por Disciplina] ref Por disciplina

[Por semestre]

ref Por semestre

32
sd Por semestre

Diagrama de Diagrama de Diagrama de


classes::Semestre classes::Avaliação classes::Nota
Coordenador
VisualizarNotas

ListarNotasSemestre(idSemestre)

int= getID_Semestre()

int= getID_Avaliacao()

alt inscritoAv aliacao


[Ok] int= getID_Nota()

ListarNotasSemestre(idSemestre)

[NotOk]

NotInscrito

sd Por disciplina

Diagrama de Diagrama de Diagrama de


classes::Disciplina classes::Avaliação classes::Nota
Coordenador
VisualizarNotas

ListarNotasDisciplina(ID_Disciplina)

int= getID_Disciplina()

alt inscritoDisciplina
int= getID_Avaliacao()
[Ok]

alt inscritoAv aliaca


int= getID_Nota()
[Ok]

ListarNotasDisciplina(ID_Disciplina)

[NotOk]

NotInscrito

[NotOk]
NotInscrito

33
Diagrama: Registo

sd Registo

Diagrama de Diagrama de
classes::Coordenador classes::Serviços_Académicos
Coordenador
registo
Permitir registo(idMatricula,contacto,email,Morada,Bi,id_aluno,nome)

registar(area,idDocente)

alt Matrículado boolean= confirmaDados(password,login)


[Ok]
true= permitirAcesso(password,login)

[NotOk]
false= permitirAcesso(password,login)

ref Autenticação de utilizador

Diagrama: Remover Avaliações

sd Remov er av aliações

:Disciplina :Avaliação

Coordenador
:Remov erAv aliações

ref Autenticação de utilizador

RemoverAvaliacao(ID_Avaliacao,ID_Disciplina)

int= getID_Disciplina()

RemoverAvaliacao()

boolean= ConfirmarDados(ID_Avaliacao)

34
Diagrama: Visualizar e Analisar Mapas de Avaliações

sd Visualizar e analizar mapas de av aliações

:Disciplina :Avaliação

Coordenador
:Visualizar Mapa
de Av aliações

ref Autenticação de utilizador

VisualizarMapaAvaliacoes(ID_Disciplina,ID_Avaliacao)

int= getID_Disciplina()

int= getID_Avaliacao()

String= ListarMapaAvaliacoes(ID_Avaliacao,Sala,Data)

Diagrama: Visualizar Inscrições dos Alunos

sd Visualizar inscrições dos alunos

:Disciplina :Avaliação

Coordenador
:Visualizar
Inscrições dos
ref Alunos
Autenticação de utilizador

VisualizarInscricoesAlunos(ID_Avaliacao,ID_Disciplina)

int= getID_Disciplina()

int= getID_Avaliacao()

String= ListarMapaInscricoesAlunos(ID_Avaliacao,ID_Disciplina,NumeroAluno,NomeAluno)

4.3. Docentes

Diagrama: Alterar Avaliações

35
sd Alterar av aliações

:Disciplina :Avaliação

Docente
:Alterar
Av aliações
ref
Autenticação de utilizador

AlterarAvaliacao(ID_Avaliacao,ID_Disciplina)

int= getID_Disciplina()

AlterarAvaliacao(ID_Avaliacao)

boolean= ConfirmarDados()

ref Env io de notificação

Diagrama: Autenticação do Docente

sd Autenticação de utilizador

Diagrama de
classes::Docente
Docente
Autenticação
realiza autenticação(login, password)

confirmaDados(password,login)

alt Registado
[Ok]
alt
Permite Acesso()
[ifDataCorrect]
TemAcesso

[ifDataNotCorrect]
SolicitaDados

realiza autenticação(login, password)


confirmaDados(password,login)
Permite Acesso()
TemAcesso

[ifDataStillIncorrect] recuperarPassword()

[NotOk]
SolictaRegisto
ref Registo

36
Diagrama: Envio de Notificação

sd Env io de notificação

:Notificacoes

Docente
:Env io de
Notificações
EnvioNotificacao()

PreencheFormulario()

boolean= ConfirmarDados()

Diagrama: Lançar Notas

sd Lançar notas

:Disciplina :Avaliação :Nota

Docente
:Lançar Notas

ref
Autenticação de utilizador

int= LancarNotas(ValorNota,ID_Avaliacao,ID_Disciplina)

int= getID_Disciplina()

int= getID_Avaliacao()

alt Av aliação Realizada


[Ok]
LancarNota(ValorNota,ID_Nota)

boolean= ConfirmarDados()

ref Env io de notificação

[NotOk]
Não Permite Lançar Nota

37
Diagrama: Marcar Avaliações

sd Marcar av aliações

:Disciplina :Avaliação

Docente
:Marcar
Av aliações
ref Autenticação de utilizador

MarcarAvaliacao(ID_Disciplina,ID_Avalliacao)

int= getID_Disciplina()

MarcarAvaliacao()

boolean= ConfirmarDados()

ref Env io de notificação

Diagramas: Por Disciplina/Por Semestre (para visualizar notas)

sd Visualizar notas

Docente
VisualizarNotas
ref Autenticação de utilizador

ListarNotasDisciplina(ID_Disciplina)

alt seleccao
[PorDisciplina] ref Por Disciplina

[PorSemestre]
ref Por Semestres

38
sd Por Semestres

Diagrama de Diagrama de Diagrama de


classes::Semestre classes::Avaliação classes::Nota
Docente
VisualizarNotas

ListarNotasSemestre(idSemestre)

int= getID_Semestre()

int= getID_Avaliacao()

alt inscritoAv aliacao


int= getID_Nota()
[Ok]

ListarNotasSemestre(idSemestre)

[NotOk]

NotInscrito

sd Por Disciplina

Diagrama de Diagrama de Diagrama de


classes::Disciplina classes::Avaliação classes::Nota
Docente
VisualizarNotas

ListarNotasDisciplina(ID_Disciplina)

int= getID_Disciplina()

alt inscritoDisciplina
int= getID_Avaliacao()
[Ok]

int= getID_Nota()

ListarNotasDisciplina(ID_Disciplina)

NotInscrito

[NotOk]
NotInscrito

39
Diagrama: Registo

sd Registo

Diagrama de Diagrama de
classes::Docente classes::Serviços_Académicos
Docente
registo

Permitir registo(idMatricula,contacto,email,Morada,Bi,id_aluno,nome)

registar(area,idDocente)

alt Inscrito
[Ok] boolean= confirmaDados(password,login)

true= permitirAcesso(password,login)

[NotOk]
false= permitirAcesso(password,login)

ref Autenticação de utilizador

Diagrama: Remover Avaliações

sd Remov er av aliações

:Disciplina :Avaliação

Docente
:Remov erAv aliações

ref Autenticação de utilizador

RemoverAvaliacao(ID_Avaliacao,ID_Disciplina)

int= getID_Disciplina()

RemoverAvaliacao()

boolean= ConfirmarDados(ID_Avaliacao)

ref Env io de notificação

40
Diagrama: Visualizar e Analisar Mapas de Avaliações

sd Visualizar e analizar mapas de av aliações

:Disciplina :Avaliação

Docente
:Visualizar Mapa
de Av aliações

ref Autenticação de utilizador

VisualizarMapaAvaliacoes(ID_Disciplina,ID_Avaliacao)

int= getID_Disciplina()

int= getID_Avaliacao()

String= ListarMapaAvaliacoes(ID_Avaliacao,Sala,Data)

Diagrama: Visualizar Inscrições dos Alunos

sd Visualizar inscrições dos alunos

:Disciplina :Avaliação

Docente
:Visualizar
Inscrições dos
ref Alunos
Autenticação de utilizador

VisualizarInscricoesAlunos(ID_Avaliacao,ID_Disciplina)

int= getID_Disciplina()

int= getID_Avaliacao()

String= ListarMapaInscricoesAlunos(ID_Avaliacao,ID_Disciplina,NumeroAluno,NomeAluno)

4.4. Alunos

Diagrama: Alterar Inscrição em Avaliações

41
sd Alterar inscrição em av aliações

:Disciplina :Avaliação

Aluno
:Alterar Inscrição
em Av aliação

ref
Autenticação de utilizador

AlterarInscricaoAvaliacao(ID_Disciplina,ID_Avaliacao)

int= getID_Disciplina()

alt
[InscritoDisciplina] alt
AlterarAvaliacao(ID_Avaliacao)
[inscritAvaliacao]

boolean= ConfirmaDados(ID_Avaliacao)

[notInscrito]
ref Inscrev er em av aliações

[NotInscritoDisciplina]
ref Inscrev er em disciplinas

Diagrama: Autenticação de Utilizador

42
sd Autenticação de utilizador

:Aluno

Aluno
Autenticação

realiza autenticação(login, password)


boolean= confirmaDados(password,login)

alt registo
[Se registado] alt login Permite Acesso()
[Se dados correctos]
Tem Acesso

[Se dados incorrectos]

solicita confirmação de dados

realiza autenticação(login, password)


boolean= confirmaDados(password,login)

Permite Acesso()
Tem acesso

[Se ainda incorrectos]


recuperarPassword()

[Se não registado]


Solicita registo

ref
Registar

Diagrama: Envio de Notificação

sd Env io de notificação

:Notificacoes

Aluno
:Env io de
Notificações
EnvioNotificacao()

PreencheFormulario()

boolean= ConfirmarDados()

43
Diagrama: Inscrever em Avaliações

sd Inscrev er em av aliações

Diagrama de Diagrama de
classes::Disciplina classes::Avaliação
Aluno
Inscrever em
Av aliação

ref
Autenticação de utilizador

InscreverAvaliacao(ID_Avaliacao,ID_Disciplina)

int= getID_Disciplina()

alt MatricDisciplina
[OK]
InscreverAvaliacao()

boolean= ConfirmaDados()

[NOT OK]
ref
Inscrev er em disciplinas

44
Diagrama: Inscrever em Disciplinas

sd Inscrev er em disciplinas

:Disciplina

Aluno
:Inscrever em
Disciplina

ref
Autenticação de utilizador

InscreverDisciplina(ID_Disciplina)
String= ListarDisciplinas(NomeDisciplina)

int= getID_Disciplina()

InscreverEmDisciplina(ID_Disciplina)

boolean= ConfirmarDados()

Diagrama: Por Disciplina/Por Semestre (para visualizar notas)

45
sd Visualizar notas

Aluno
VisualizarNotas

ref
Autenticação de utilizador

ListarNotasDisciplina(ID_Disciplina)

alt seleccao
[Por disciplina]

ref Por disciplina

[Por semestre]

ref
Por semestre

sd Por semestre

Diagrama de Diagrama de Diagrama de


classes::Semestre classes::Avaliação classes::Nota
Aluno
VisualizarNotas

ListarNotasSemestre(idSemestre)

int= getID_Semestre()

int= getID_Avaliacao()

alt inscritoDisciplina
[Ok] int= getID_Nota()

ListarNotasSemestre(idSemestre)

[NotOk]

NotInscrito

46
sd Por disciplina

Diagrama de Diagrama de Diagrama de


classes::Disciplina classes::Avaliação classes::Nota
Aluno
VisualizarNotas

ListarNotasDisciplina(ID_Disciplina)

int= getID_Disciplina()

alt inscritoDisciplina
[Ok] int= getID_Avaliacao()

alt InscritoAv aliacao


int= getID_Nota()
[Ok]

ListaDisciplinas()

[NotOk]
NaoInscrito

[NotOk]

NaoInscrito

Diagrama: Registar

sd Registar

Diagrama de Diagrama de
classes::Aluno classes::Serviços_Académicos
Aluno
registo

Permitir registo(idMatricula,contacto,email,Morada,Bi,id_aluno,nome)

registar(numeroAluno,curso)

alt Matrícualdo
boolean= confirmaDados(password,login)
[se matríc.]

true= permitirAcesso(password,login)

[se não matríc.]


false= permitirAcesso(password,login)

ref Autenticação de utilizador

47
Diagrama: Remover Inscrição em Avaliações

sd Remov er inscrição em av aliações

:Disciplina :Avaliação

Aluno
:Remov er
Inscricao em
Av aliação

ref Autenticação de utilizador

RemoverInscricaoAvaliacao(ID_Disciplina,ID_Avaliacao)

int= getID_Disciplina()

alt inscritoDisciplina int= getID_Avaliacao()


[Ok]
alt inscritoAv aliacao
RemoverAvaliacao(ID_Avaliacao)
[Ok]

boolean= ConfirmarDados(ID_Avaliacao)

[NotOk]
NaoInscritoAvaliacao

[NtoOk]
NaoInscritoDisciplina

Diagrama: Remover Inscrição em Disciplinas

sd Remov er inscrição em disciplinas

:Disciplina

Aluno
:Remov er
Inscrição em
Disciplina
ref
Autenticação de utilizador

RemoverInscricaoDisciplina(ID_Disciplina)

int= getID_Disciplina()

alt inscritoDisciplina RemoveInscricaoDisciplina(ID_Disciplina)


[Ok]
Boolean= ConfirmarDados(ID_Disciplina)

[NotOk]

NaoInscrito

48
Diagrama: Solicita Revisão de Avaliação

sd Solicita rev isão de av aliação

:Disciplina :Avaliação

Aluno
:Solicitar Rev isão
de Av aliação

ref Autenticação de utilizador

SolicitarRevisaoProva(ConfirmarDados,SolicitacaoRevisaoProva,PreencherFormulario)

int= getID_Disciplina()

alt InscritoDisciplina int= getID_Avaliacao()


[Ok]

alt InscritoAv aliacao


RevisãoAvaliacao(ID_Avaliacao)
[Ok]
boolean= ConfirmarDados(ID_Avaliacao)

ref Env io de notificação

[NotOk]
NaoInscritoAvaliacao

[NotOk]

NaoInscritoDisciplina

Diagrama: Visualizar Mapas de Avaliações

sd Visualizar mapas de av aliações

:Disciplina :Avaliação

Aluno
:Visualizar Mapa
de Av aliações

ref Autenticação de utilizador

VisualizarMapaAvaliacoes(ID_Disciplina,ID_Avaliacao)

int= getID_Disciplina()

alt InscritoDisciplina
int= getID_Avaliacao()
[Ok]

String= ListarMapaAvaliacoes(ID_Avaliacao,Sala,Data)

[NotOk]
ref Inscrev er em disciplinas

49
Conclusão

A utilização de ferramentas de análise, em projectos como este, permite-nos construir


aplicações cada vez melhores e eficazes, que satisfaçam os stakeholders, que tenham
manutenção fácil e, sobretudo, que sejam implementáveis e utilizáveis, como foi
demonstrado no trabalho anterior.

Importa referir que tivemos dificuldade no manuseamento dos diagramas de classes e de


sequências, no que respeita à conciliação de um só ficheiro, visto termos desenvolvido
alguns diagramas separadamente, provocando assim uma duplicação de dados,
nomeadamente no diagrama de classes. Cientes das dificuldades, pensamos ter atingido
os objectivos que nos foram propostos.

Sugerimos então que, em trabalhos futuros, seja proporcionado uma interacção, mais
directa, entre os stakeholders, com o objectivo de minimizar a dificuldade, do estudo, de
obtenção de requisitos, para se obter um sistema com melhor sucesso. Esta dificuldade
já fora sentida na primeira fase, respeitante à fase de análise.

Deixa-mos ainda, como sugestão, para um projecto futuro, uma simplificação da actual
situação, do elevado números de plataformas existentes na ESTIG, em Beja, para uma
só que implemente todas as funcionalidades existentes, evitando assim que, por
exemplo, um aluno, para obter informações sobre os seus dados de matrícula, tenha que
efectuar vários logins. Bastando realizar apenas um, para ter acesso ao leque de dados
que existem actualmente disponíveis, evitando assim a memorização, por parte do
utilizador, de vários códigos de acesso e várias palavras-chave.

50
Bibliografia

KOTONYA, Gerald e SOMMERVILLE, Ian. “Requirements engineering –


processes and techniques”; Chichester : J. Wiley, 1998;

Material disponibilizado pela Docente, ano lectivo 2007/2008, disponível


em:http://kirk.estig.ipbeja.pt/ei/course/view.php?id=187;

SOMMERVILLE, Ian; “Software Engineering”, 7ª Edição, England Wesley,


2004;

Agile Modeling, “UML 2 Class Diagrams”, visitado em 2008, disponível em:


http://www.agilemodeling.com/style/classDiagram.htm;

Agile Modeling, “UML 2 Sequence Diagrams”, visitado em 2008, disponível em:


http://www.agilemodeling.com/artifacts/sequenceDiagram.htm;

Wikipédia, “Diagramas de Classes”, visitado em 2008, disponível em:


http://en.wikipedia.org/wiki/Class_diagram;

Wikipédia, “Diagramas de sequência”, visitado em 2008, disponível em:


http://en.wikipedia.org/wiki/Sequence_diagram.

51

Vous aimerez peut-être aussi