56
Apêndices

Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Embed Size (px)

Citation preview

Page 1: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndices

Page 2: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 1 - Principais Casos de Uso DiTeD

Page 3: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 1.a - Ciclo de vida de um documento digital no DiTeD

Page 4: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 1.1 - Depositar Documento (Casos de Uso)

Page 5: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 1.1d - Descrição completa dos Casos de Uso

Page 6: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 1.1s - Depositar Documento (Diagrama de Sequências)

Page 7: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 1.1.1s - Seleccionar Género, Seleccionar Língua (Diagrama de Sequências)

Page 8: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 1.1.2s - Seleccionar Organizações

(Diagrama de Sequências idêntico à selecção de termos)As organizações, quer ao nível da base de dados quer ao nível da lógica

de negócio são em todo idênticas aos termos de indexação.Possuem uma hierarquia semelhante, logo uma navegação e um

processo de escolha idênticos (Veja o apêndice 1.1.3s que mostra a selecção de termos de indexação).

Page 9: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 1.1.3s - Seleccionar Termos de Indexação (Diagrama de Sequências)

Page 10: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 1.1.4s - Seleccionar Autores (Diagrama de Sequências)

Page 11: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 1.1.5s - Seleccionar Colaboradores (Diagrama de Sequências)

Page 12: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 1.1.6s - Upload de Ficheiros (Diagrama de Sequências)

Page 13: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 1.2 - Editar Documento Depositado (Casos de Uso)

Page 14: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 1.2s - Editar Documento Depositado (Casos de Uso)

Page 15: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 1.3 - Pesquisar Entidades (Casos de Uso)

Page 16: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 1.3d - Descrição completa dos Casos de Uso

Page 17: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 1.3.1s - Navegar por Índices (Diagrama de Sequências)

Page 18: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 1.3.2s - Pesquisar Entidades (Diagrama de Sequências)

Page 19: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 1.4 - Administrar Sistema (Casos de Uso)

Page 20: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 1.4d - Descrição completa dos Casos de Uso

Page 21: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 1.4.1s - Login/Logout Administrador (Diagrama de Sequências)

Page 22: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 1.4.2s - Importação de Entidades a Partir de Ficheiros de Texto (Diagrama de Sequências)

Page 23: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 1.4.3s - Historial (Diagrama de Sequência)

Page 24: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 1.4.3.1s - Historial Pesquisa (Diagrama de Sequência)

Page 25: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 1.4.4s - Consultar Estatísticas de Administração (Diagrama de Sequências)

Page 26: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 1.4.5s - Inserção/Edição/Validação de Documentos

A ferramenta de edição de documentos para administração é a mesma que para o utilizador (apêndice 1.2) com a excepção de que não é feita qualquer autenticação

prévia, visto que o administrador já fez Login. Além de todos os passos normais que englobam a edição o administrador dispõe ainda do controlo do estado de validade

do documento

Page 27: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 1.4.6s - Criar Entidade (Diagrama de Sequências)

Page 28: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 1.4.7s - Seleccionar Entidade (Diagrama de Sequências)

Page 29: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 1.4.8s - Editar Entidade (Diagrama de Sequências)

Page 30: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 1.4.9s - Eliminar Entidade (Diagrama de Sequências)

Page 31: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 1.4.10s - Substituir Entidade (Diagrama de Sequências)

Page 32: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 2 - Diagramas de Classes e Tabelas DB

Page 33: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 2.1 - Estrutura da Base de Dados (Classes Principais)

Page 34: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Person

IDNameBirthYearMonthDayEmailAddressPhoneNumberWeb-SiteNotesStatusOtherIdentifier

LongStringStringIntIntStringStringStringStringStringBoolString

File

IDNameMD5SizePathNotesDescriptionLocalDescriptionDefaultStatus

LongStringByte[]LongStringStringStringStringBool

DocumentsCopy

IDAccessRestrictionsAccessRestrDurationNotesDescriptionLocalDescriptionDefaultStatus

LongString DateStringStringStringBool

Administrator

IDNameEmailPassword

LongStringStringBinary

Document

IDPublishingDateYearPublishingDateMonthPublishingDateDayPublishementLocalRecordDateLanguage (ISO 639-2)Link (página de apresentação)Notes PublicNotes AdminPasswordIsInLocalFileSistemStatus

LongIntegerIntegerIntegerStringDateStringStringStringStringBimaryBooleanBoolean

Organization

IDNameInitialsEmailPhoneNumberAddressURLNotesStatusOtherIdentifier

LongStringStringStringStringStringStringStringBoolString

1

*

1

*

*

1

Diagrama de ClassesDocumentLangParameterss

IDTitleSubTitleAbstractNotes

LongStringStringTextString

*

1 1 1

1 1 1DPLangDocDPLangLocal DPLangDefault

Primary Authority

Primary Authority

OtherContributorID Long

1

1

*

*

*

* *

Subject

IDCodeNameLocalNameDefaultNotesStatusOtherIdentifier

LongStringStringStringStringBoolString

*

*

*

Primary Authority

*

*

*

1

1

1

Author

OtherContributor

1

Editor

Copies

0..*

1

Genre

IDGenreNameLocal GenreNameDefultNotesStatusOtherIdentifier

LongString StringStringBoolString OtherContributorRole

IDRoleNameLocalRoleNameDefaultNotesStatusOtherIdentifier

LongString StringStringBoolString

Page 35: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

• Autoridades:–“Autoridades” significa toda a lista de nomes que é controlada, isto é, cujos valores são verificados e registados segundo

determinados princípios. Deverá haver três classes de autoridades no sistema: Assuntos, Organizações e Pessoas.–Estruturas das autoridades: As três classes de autoridades devem ter a mesma estrutura em árvore, isto é, deverá haver um

nível de topo, com vários nomes, podendo a partir de cada elemento desse nível descender outros elementos, e assim sucessivamente. Não existem restrições a estas estruturas.

–Criação e gestão de autoridades: Para cada classe de autoridades os processos de criação e gestão são os mesmos:

1.O administrador local de um sistema poderá criar listas de autoridades iniciais.

2.Cada utilizador, ao registar um novo documento, pode estabelecer ligações a autoridades existentes ou criar novas.

3.O administrador deverá SEMPRE verificar as NOVAS autoridades, podendo em cada caso (para isso, as autoridades novas, isto é, ainda não validadas, deverão ser TODAS visíveis claramente – status):

1.Aceitar a autoridade tal como está

2.Corrigir um destes aspecto na autoridade (nome ou ligação “para cima”), e aceitar

3.Recusar a autoridade. Neste caso deverá ser possível apagá-la e substituir a ligação a outro caso.–As três classes de autoridades são:

• Subject: Assuntos!!! Aos níveis de topo serão criadas, por exemplo, áreas de assuntos (Eng. Informática, Eng. Física, Medicina, Sociologia, etc., podendo depois ser criados vários sub-níveis). Mas isto não implica nada para a construção do sistema!!! Os nomes de cada elemento serão dados pelo utilizador/administrador, e podem ser mudados em qualquer altura. Para assuntos que não existam na base de dados será derivado um assunto novo do assunto de topo “Outros”.

• Organization: Nomes de organizações editoras (editores comerciais ou universidades), podendo servir ainda para registar a ligação conhecida mais recente de uma pessoa. No caso de teses, por exemplo, a universidade onde ela for defendida é registada como a organização editora!!!

• Person: Qualquer pessoa, seja autor ou com outra relação!• Tabelas/classes Genre e OtherContributorRole

–Estas tabelas serão definidas dinamicamente pela utilização do sistema, isto é, o administrador local pode configurar alguns casos, que os utilizadores podem seleccionar, mas estes podem também criar novos valores, que o administrador pode depois manter, corrigir ou anular –neste caso implica associar os documentos a outros casos já existentes. Exemplos de valores são:

• Genre: Relatório, Artigo, Tese ou dissertação de mestrado, Tese ou dissertação de doutoramento, ...• OtherContributorRole: Orientador, Co-Orientador, Presidente de júri, Membro de júri, ...

Page 36: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

• Tabelas/classes DocumentCopy, DocumentFile– No sistema cada documento tem uma serie de Copias, ou seja, a cada documento serão submetidos e

associados ficheiros cada um associado a uma dada cópia. Cada cópia poderá ter quaisquer ficheiros que o utilizador deseje submeter, por exemplo uma cópia com o o resumo e imagens, uma copia com todos os documentos, outra com aqueles que o autor não permite que sejam visualizados pelo publico. Assim a cada copia será atribuída uma duração de restrições de acesso ao público e um tipo de acesso, público restrito ou interno.

– Todos os utilizadores poderão ver os Metadados do documento mas só terão acesso a determinadas copias para download.

• Telefones, moradas, etc. : cuidado que poderemos ter de registar contactos não normais, como por exemplo telefones estrangeiros. Por isso estes campos são strings!!!

• Notas: devem-se artilhar as tabelas com campos de notas, para uso interno do administrador (e do próprio autor, claro, que as pode preencher da primeira vez!).

• Línguas: O sistema será configurado para o uso de três ou duas línguas. A local: Português, a default: o Inglês e para cada documento existirá também a língua do documento. No caso da Língua do documento ser uma das duas primeiras então não será apresentada para preenchimento de campos visto ser uma repetição. Isto aplica-se à tabela DocumentLangParameters onde constam todos os parâmetros que um documento pode dispor em várias línguas

Page 37: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 2.2 - Classes para Tabelas com línguas ISO 639-2

Lang

IDLang (ISO 639) unique

LongString

Langs

IDCode (ISO 639)Word (Palavra na lingua respectiva)

LongStringString

*1

Page 38: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 2.3 - Classes Core (Classes para controlo de historial)

History

IDAction

LongString

Eperson

IDEntityIDEmailGroup

StringLongStringString

Context

IDSessionIDSessionStartDateOriginIPRequestPathIgnoreAuth

StringStringDateStringStringBoolean

11 1 1

Page 39: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 2.4 - Classes para controlo de Resultados de Pesquisas (Classes de Estado BEANS)

FormSimplePreviousNext (abstract)

AreMoreNextAreMorePreviousObjectsTotalResults1TotalResults2TotalResults3classType

callPreviousResults()callNextResults()Initialize()GetParameterToRequest()

BoolBoolListIntegerIntegerIntegerString

AbstractAbstract MethodMethod

FormStringsIterate (abstract)

callPreviousResults()callNextResults()Initialize()

Find()NextResults()PreviousResults()GetParametersToRequest()

AbstractAbstractMethod

MethodMethodMethodMethod

FormAuthorsIterate

callPreviousResults()callNextResults()Initialize()

Find()NextResults()PreviousResults()

MethodMethodMethod

MethodMethodMethod

Na sessão anda sempre uma form destas, com uma form especifica dentro de si e

com o nome “FormSimplePreviousNext”

Tudo o que se necessita para apresentar resultados está nesta form

Basta colocar os links previous e next se as respectivas variaveis estiverem a true

FormStringsSearch (abstract)

SearchKeys

callPreviousResults()callNextResults()

InitializeNext()InitializePrevious()

Find()NextResults()PreviousResults()

String

AbstractAbstract

MethodMethod

MethodMethodMethod

FormAuthorsSearch

callPreviousResults()callNextResults()

Find()NextResults()PreviousResults()

MethodMethod

MethodMethodMethod

FormPreviousNextSearch (abstract)

NextResults

callPreviousResults()callNextResults()

calcFirstResultPrevious()InitializeNext()InitializePrevious()GetParametersToRequest

int

AbstractAbstract

MethodMethodMethodMethod

FormGeneralSearch

SearchKeys

callPreviousResults()callNextResults()

InitializeNext()InitializePrevious()

Find()NextResults()PreviousResults()

String

AbstractAbstract

MethodMethod

MethodMethodMethod

FormIndexTermIterate

callPreviousResults()callNextResults()Initialize()

Find()NextResults()PreviousResults()

MethodMethodMethod

MethodMethodMethod

Page 40: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 2.5 - Classes para controlo de Resultados de Pesquisas (Controladores Servlets)

ControllerGlobalPreviousNext

PreviousResults()NextResults()

MethodMethod

ControllerSearchPersons

find()Index()

MethodMethod

ControllerStartContributor ControllerStartAuthor

Tira da Sessão um FormSimplePreviousNextInstância a classe em causa através do parâmetro

classType

de seguida invoca sobre o objectoFormSimplePreviousNext.callPreviousResults()

ouFormSimplePreviousNext.callNextResults()

Instâncía a FormSimplePreviousNext

Neste caso instancía uma FormAuthorsIterateou AuthorsSearch

De seguida é invocado o método find sobre a instância respectiva. Ela saberá como se inicializar e executar a busca

na form acima de si na hierarquia

FormAuthorsIterate.find(familyName)FormAuthorsSearch.find(familyName)

ControllerGeneralSearch

find()Index()

MethodMethod

Controladores para a submissão de documentos

Page 41: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 2.6s - Mecanismo para garantir segurança nas palavras-chave na BD (Diagrama de Sequências)

Page 42: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 3 - Arquitectura

Page 43: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Action Forms(BEANS)

Controllers(servlets)

ModelClassesDLProperties

User Server(Interfaces Server)Services Factory

Service ResultsUtil Log4j

HibernateO/R Model

XML Mapping DB

Session Monitor(Sessions Factory)

DBManager

FS

FileManager

DLExceptions

FiltersSecurity line

Authentication (IP, MAIL, Password)

AuthorizationPermission List

Internet

Core(LogManager,

HistoryManager, Email Alert)

Admin Server(Interfaces Server)Services Factory

Apêndice 3.1 (MVC)

Page 44: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 3.2 - Diagrama de Componentes (Utilizador)

Page 45: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 3.3 - Diagrama de Componentes (Administrador)

Page 46: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 3.4 - Arquitectura de Controladores (Servlets)

Disposição maneira como está agrupado o código no que respeita a controladores e form beans

Admin InterfacesJSP’s

ControladoresAdministrativos

User InterfacesJSP’s

ControladoresPara Utilizadores

ControladoresComuns

Form Beans Administrativos

Form Beans Para

Utilizadores

Form Beans Comuns

Administração Utilizadores

Recursos Filtrados Recursos Não Filtrados

Page 47: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 3.5 - Diagrama de Instalação

Page 48: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 3.5.1s - Download de um ficheiro - Funcionamento dos Filtros - (Diagrama de Sequência)

Page 49: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 3.5.2 - Login Geral segurança nas palavras chave

As palavras chave e a forma como estas são guardadas faz parte da arquitectura de segurança do sistema. Este diagrama foi apresentado na secção das tabelas da

base de dados, de qualquer forma está bastante preso a este capitulo

Page 50: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 3.5.3s - Login Administrador (Diagrama de Sequência)Este diagrama já foi apresentado em 1.4.1s nos casos de uso, mas tal como a

segurança das palavras chave este é um caso bastante virado para a forma como a arquitectura foi montada

Page 51: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 4 - Hibernate (O/R Model)

http://hibernate.sourceforge.net

Page 52: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 4.1 - Arquitectura do Modelo Geral de funcionamento

Page 53: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 4.2 - Arquitectura do Modelo mais detalhada

Page 54: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 5 - Struts

http://jakarta.apache.org/struts

Page 55: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 5.1 - Arquitectura do Modelo Geral de funcionamento

Page 56: Apêndices. Apêndice 1 - Principais Casos de Uso DiTeD

Apêndice 5.2 - Arquitectura do Modelo com o DiTeD(Detalhado)