• Aucun résultat trouvé

Além da vontade de realizar uma componente teórica compreensiva, a componente prática deste documento foi alvo de especial atenção. Procurou-se documentar da forma mais abrangente possível todo o processo envolvido no planeamento e desenvolvimento da solução, desde a identificação dos problemas ao próprio código fonte de algumas funcionalidades. Começando pela identificação dos problemas, esta serviu de base para a definição dos objetivos a cumprir com a proposta de solução. Estes objetivos definem o que uma solução desta natureza propõe resolver, permitindo assim avaliar se a sua adoção se adequa a outros ambientes.

A identificação dos problemas levantados pela gestão documental tecnológica da UTAD e a definição dos objetivos da proposta de solução serviram de apoio a todo o documento, começando pela especificação do modo de funcionamento da aplicação. Esta especificação teve como objetivo expor a forma como a aplicação é integrada no GesDoc ou noutra plataforma genérica, compreendendo a assinatura de documentos singulares e em série.

Assim é possível concluir que a aplicação foi originalmente pensada para o GesDoc, mas a sua integração num qualquer sistema genérico não necessita de adaptações por parte da aplicação. Esta característica é especialmente vantajosa em casos onde o sistema a integrar seja desenvolvido in house, como o PADDOC na UTAD, pois pode ser pensado desde início para utilizar esta solução. Além da especificação da arquitetura, os componentes que a integram também foram descritos, clarificando as suas funções.

Um dos pontos de viragem no desenvolvimento da ADUTAD foi a mudança da natureza da aplicação, deixando de ser uma applet executada num browser para ser uma aplicação desktop lançada a partir de uma página web. Inerente à nova natureza da aplicação, foi necessário planear a distribuição da aplicação, sob forma de instaladores, e o modo como esta seria executada. Ambos os tópicos foram extensamente descritos, primeiro de um modo mais genérico e conceptual, seguido de uma especificação técnica com recurso a exemplos de código como apoio. Atendendo às particularidades inerentes à forma como a aplicação passou a ser executada, foi interessante e pertinente deixar documentadas as motivações e os detalhes técnicos que tornaram esta alternativa possível. Como contributo para a prática deste tema, fica documentada uma abordagem capaz de responder a desafios de integração de plataformas web com software que deve ser executado nas máquinas dos utilizadores, passando pela idealização e implementação da sua instalação em ambientes Windows, Linux e macOS e detalhando os processos necessários à sua execução.

Já no que diz respeito à própria assinatura digital, constatou-se alguma falta de documentação científica e técnica, especialmente no que toca ao Cartão de Cidadão. Esta falta de documentação levou a algumas dificuldades que poderiam ter sido mitigadas, tais como os problemas de timeout do CC em ambientes Windows documentados em 4.2.1 e 4.5. Apesar das dificuldades, a capacidade de efetuar assinaturas digitais com o CC e a sua validação a longo prazo foram desenvolvidas com sucesso, tendo sido feita neste documento uma descrição detalhada do processo com o apoio de exemplos de código de produção. Nesta descrição foram detalhados os nomes completos dos pacotes que incluem as classes utilizadas de modo a facilitar a consulta e eventual implementação de um sistema semelhante por outros programadores ou investigadores. Já num tom menos técnico, foi descrita a interface gráfica da aplicação, a capacidade de gerar documentos com assinaturas validáveis a longo prazo e a capacidade de configurar a sua aparência. Quanto à interface gráfica, é espectável que esta deva ser adaptada a cada caso de uso, pelo que não se espera que a sua

documentação tenha impacto para a prática. No entanto, a validação a longo prazo e a configuração da aparência das assinaturas já revelam um carácter mais pertinente. Na validação a longo prazo são documentados não só o formato dos documentos como também os passos adicionais que devem ser seguidos na assinatura, sendo ainda detalhada uma limitação do processo e uma forma de a contornar. Já no que diz respeito à configuração da aparência das assinaturas, são documentadas as funcionalidades de efetuar assinaturas visíveis e invisíveis, de incluir texto nas assinaturas e de determinar a sua localização. Esta documentação é sempre acompanhada das motivações que levaram à implementação destas funcionalidades, assim como das motivações que podem levar a escolher assinaturas invisíveis em vez de visíveis, por exemplo. Com esta especificação das funcionalidades da aplicação pretende-se fornecer respostas a problemas que, tal como ocorreram neste caso de estudo, podem ocorrer em casos semelhantes. Esta documentação sugere soluções para vários tipos de desafios, tais como: necessidade de acrescentar notas relativas a assinaturas digitais; não seja desejável alterar o aspeto do documento ou, se a assinatura tiver de ser visível, onde a colocar; e necessidade de validar assinaturas a longo prazo.

A aplicação é ainda capaz de assinar vários documentos em série, sendo inserido o PIN de assinatura apenas uma vez. A motivação que levou à investigação e implementação desta funcionalidade e a sua descrição foram exploradas no ponto 3.2.3.3, enquanto que a sua implementação foi descrita no ponto 4.3.3. A implementação desta funcionalidade foi efetuada maioritariamente através da investigação do código fonte da biblioteca de acesso ao CC utilizada, pois a documentação encontrada era, infelizmente, insuficiente. No entanto, o facto de a biblioteca seguir uma política de código aberto foi um fator que permitiu uma implementação menos morosa. Tal como documentado na implementação da assinatura em série, exprimem-se algumas preocupações no que diz respeito não só à implementação como à utilização desta funcionalidade. No entanto, é identificada uma possível resposta a estas preocupações, mesmo que ainda não esteja implementada na proposta de solução deste trabalho. Com esta documentação espera-se não só fornecer uma referência para um problema com uma documentação francamente deficiente, como ainda expor algumas contrapartidas que devem ser ponderadas.

A última funcionalidade relevante documentada diz respeito à capacidade da ADUTAD efetuar atualizações automáticas. De modo a desenvolver este sistema de atualizações, foi seguido um caminho que pode ser encontrado em várias aplicações não relacionadas, em

que um ficheiro separado se encarrega de atualizar a aplicação principal. Durante este trabalho foi especificado o modo de funcionamento desta funcionalidade, assim como a forma como esta foi implementada com o auxílio de um excerto de código. Aliada à descrição da motivação presente em 3.2.3.4, esta documentação permite identificar uma solução para um problema que se espera comum a diversas aplicações. No entanto, visto esta funcionalidade ter sido implementada com base na experiência com outros tipos de software, não foi efetuada uma pesquisa na literatura, pelo que o impacto da abordagem escolhida não foi considerado.

Além da documentação dos resultados positivos alcançados, também se achou essencial documentar as dificuldades e limitações encontradas. A documentação das dificuldades e respetivas soluções foi efetuada no ponto 4.5, sendo feitas referências às mesmas durante o ponto 4.4 sempre que necessário. Já as limitações foram descritas ao longo ponto 5.1. Com a exposição das dificuldades espera-se construir uma secção que pode servir de referência para pessoas com dificuldades semelhantes, permitindo consultar as soluções encontradas. No que diz respeito às limitações, estas estão documentadas juntamente com o trabalho futuro, permitindo desenhar um paralelismo entre o que se espera realizar para superar estas limitações e o caminho que eventuais investigadores planeiem seguir.

De um modo geral, compreendendo as dificuldades que outros investigadores podem potencialmente enfrentar, certamente relacionadas com as sentidas na elaboração desta solução, procurou-se não só explicar devidamente os passos que fizeram avançar a solução como também ilustrar as funcionalidades consideradas centrais com código fonte utilizado em produção. Adicionalmente, e como a documentação prática de uma solução não se efetua apenas com resultados positivos, procurou-se também expor as dificuldades encontradas, documentando as soluções encontradas e as limitações ainda existentes. Assim, este trabalho pode servir como um razoável ponto de partida para a implementação de soluções semelhantes, em ambientes académicos ou empresariais, representando um manual tanto de práticas que resultaram em resultados positivos como de práticas a não adotar.