Upload
internet
View
111
Download
0
Embed Size (px)
Citation preview
Apêndices
Apêndice 1 - Principais Casos de Uso DiTeD
Apêndice 1.a - Ciclo de vida de um documento digital no DiTeD
Apêndice 1.1 - Depositar Documento (Casos de Uso)
Apêndice 1.1d - Descrição completa dos Casos de Uso
Apêndice 1.1s - Depositar Documento (Diagrama de Sequências)
Apêndice 1.1.1s - Seleccionar Género, Seleccionar Língua (Diagrama de Sequências)
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).
Apêndice 1.1.3s - Seleccionar Termos de Indexação (Diagrama de Sequências)
Apêndice 1.1.4s - Seleccionar Autores (Diagrama de Sequências)
Apêndice 1.1.5s - Seleccionar Colaboradores (Diagrama de Sequências)
Apêndice 1.1.6s - Upload de Ficheiros (Diagrama de Sequências)
Apêndice 1.2 - Editar Documento Depositado (Casos de Uso)
Apêndice 1.2s - Editar Documento Depositado (Casos de Uso)
Apêndice 1.3 - Pesquisar Entidades (Casos de Uso)
Apêndice 1.3d - Descrição completa dos Casos de Uso
Apêndice 1.3.1s - Navegar por Índices (Diagrama de Sequências)
Apêndice 1.3.2s - Pesquisar Entidades (Diagrama de Sequências)
Apêndice 1.4 - Administrar Sistema (Casos de Uso)
Apêndice 1.4d - Descrição completa dos Casos de Uso
Apêndice 1.4.1s - Login/Logout Administrador (Diagrama de Sequências)
Apêndice 1.4.2s - Importação de Entidades a Partir de Ficheiros de Texto (Diagrama de Sequências)
Apêndice 1.4.3s - Historial (Diagrama de Sequência)
Apêndice 1.4.3.1s - Historial Pesquisa (Diagrama de Sequência)
Apêndice 1.4.4s - Consultar Estatísticas de Administração (Diagrama de Sequências)
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
Apêndice 1.4.6s - Criar Entidade (Diagrama de Sequências)
Apêndice 1.4.7s - Seleccionar Entidade (Diagrama de Sequências)
Apêndice 1.4.8s - Editar Entidade (Diagrama de Sequências)
Apêndice 1.4.9s - Eliminar Entidade (Diagrama de Sequências)
Apêndice 1.4.10s - Substituir Entidade (Diagrama de Sequências)
Apêndice 2 - Diagramas de Classes e Tabelas DB
Apêndice 2.1 - Estrutura da Base de Dados (Classes Principais)
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
• 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, ...
• 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
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
Apêndice 2.3 - Classes Core (Classes para controlo de historial)
History
IDAction
LongString
Eperson
IDEntityIDEmailGroup
StringLongStringString
Context
IDSessionIDSessionStartDateOriginIPRequestPathIgnoreAuth
StringStringDateStringStringBoolean
11 1 1
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
…
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
Apêndice 2.6s - Mecanismo para garantir segurança nas palavras-chave na BD (Diagrama de Sequências)
Apêndice 3 - Arquitectura
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)
Apêndice 3.2 - Diagrama de Componentes (Utilizador)
Apêndice 3.3 - Diagrama de Componentes (Administrador)
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
Apêndice 3.5 - Diagrama de Instalação
Apêndice 3.5.1s - Download de um ficheiro - Funcionamento dos Filtros - (Diagrama de Sequência)
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
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
Apêndice 4 - Hibernate (O/R Model)
http://hibernate.sourceforge.net
Apêndice 4.1 - Arquitectura do Modelo Geral de funcionamento
Apêndice 4.2 - Arquitectura do Modelo mais detalhada
Apêndice 5 - Struts
http://jakarta.apache.org/struts
Apêndice 5.1 - Arquitectura do Modelo Geral de funcionamento
Apêndice 5.2 - Arquitectura do Modelo com o DiTeD(Detalhado)