FE - DI | Dissertações de Mestrado e Teses de Doutoramento
Permanent URI for this collection
Browse
Recent Submissions
- Contributions to Permissionless Decentralized Networks for Digital Currencies Based on Delegated Proof of StakePublication . Morais, Rui Pedro Bernardo de; Crocker, Paul Andrew; Sousa, Simão Melo deWith the growing and flourishing of human societies came the desire to exchange what was deemed as valuable, be it a good or a service. Initially this exchange was made directly through barter, either synchronously or asynchronously with debt. The first had the downside of requiring coincidence of wants and the second the need for trust. Both were very inefficient and did not scale well. So, what we call money was invented, which is nothing more than a good that is used as medium of exchange between other goods and services. Since then, money has changed form and has acquired new functions, namely unit of account and store of value. The most recent form of money is digital currency. This money cannot be transferred physically like other forms, so it needs a digital network to be transferred, which can have different characteristics. This thesis concerns a specific type of networks for digital currencies: permissionless, meaning that any participant can have read and write access to the network; decentralized, meaning that no single entity controls the network; and that use Delegated Proof of Stake (DPoS) as a Sybil defence mechanism, to prevent the network from being controlled by malicious actors that create numerous false identities. Its research tries to fulfil the vision that a network for digital currencies, besides being permissionless and decentralized, should be scalable, monetary policy agnostic, anonymous and have high performance. Three different layers of the network are studied: the communication layer, responsible for sending and receiving messages, the transaction layer, responsible for validating those messages, and the consensus layer, responsible for reaching agreement on the state of the network. The first two goals can be achieved in the communication layer. On one hand, a vertical way to scale the system is proposed composed of a peer management and traffic prioritization design based on DPoS, offering an alternative to highly disseminated fee-based models. On the other hand, a horizontal way to scale is presented through database sharding. In the transaction layer, a general framework to make DPoS compatible with anonymity is described. More specifically, two different approaches to achieve amount anonymity are proposed: one based on multi-party computation and the other on the Diffie-Hellman key exchange. Finally, a new decoy selection algorithm, called SimpleDSA, is developed to improve sender anonymity. The consensus layer features two innovative consensus algorithms, Nero and Echidna, and two methods for state machine replication: Sphinx (leader-based) and Cerberus (leaderless). These developments aim to enhance the performance of the network, specifically by decreasing the latency of its state changes and increasing the throughput, i.e., increasing the number of state changes per unit of time. A protocol that instantiates the transaction and consensus layer, called Adamastor, is formalized with security proofs and implemented with a prototype in the Rust language. Benchmarks demonstrate the practicality of the scheme and potential application to decentralized payment systems. While further research is needed, particularly in implementing a fully operational network, it sets a foundation for future advancements. In conclusion, this thesis contributes to the area of knowledge that results from the fusion of economics and computer science, by offering technical solutions for implementing a vision of a more inclusive, fairer, efficient, and secure financial system. The implications of this work are far-reaching, suggesting a future where digital currencies play a significant role in shaping global finance and technology.
- Development of a Salesforce Solution: From Discovery to ImplementationPublication . Martins, Rita Ribeiro; Silva, Frutuoso Gomes Mendes da; Dinkhuysen, Gabriela LevyThis report details the internship experience focused on learning and implementing Salesforce, a prominent platform in the realm of CRM. The initial phase emphasizes an in- -depth immersion into Salesforce, covering essential knowledge assimilation, architectural understanding, and tool familiarization. Concurrently, practical skills in conducting project discoveries are honed, emphasizing the significance of the Discovery phase in a project’s lifecycle. As the internship progresses, the objectives shift towards the hands-on application of Salesforce knowledge and discovery methodologies. The intern is challenged to develop diverse functionalities to fulfill the goals identified during the Discovery phase. This later stage not only requires the application of theoretical knowledge but also demands effective translation of identified requirements into functional and efficient solutions. The overarching objectives of the internship seamlessly intertwine Salesforce proficiency, a deep comprehension of the discovery process, and the skillful application of this knowledge to create functionalities. The report provides a comprehensive overview of the internship journey, capturing the learning curve and practical applications in the dynamic environment of Salesforce and project discovery
- Autonomous emergency braking for highway trajectory planningPublication . Ribeiro, Ricardo André Pereira; Pombo, Nuno Gonçalo Coelho CostaAutonomous vehicles (AV) require critical skills in several scenarios: awareness, intelligent decision-making, and executive control. The improvement of these characteristics is a natural reaction to the emergence of recognition systems such as sensors, which present increasingly precise measurements and a more significant collection of types of data, combined with the emergence of new technologies and mathematical approaches to existing problems in this sector, as well as the evolution in the artificial intelligence sector as raping the transport industry to a new level of automatization. In several areas, all this growth has led to this sector’s rapid development in recent years. The main idea of AVs is to create an intelligent decision-making module capable of controlling all essential processes associated with a vehicle, ranging from creating trajectories or steering control to even risk analysis, as is the case of the Autonomous Emergency Braking (AEB) system. The latter, as ADAS, is carried out mainly to mitigate human errors such as driver distractions, risk analysis with mathematical precision, combat deficiencies in human perception in scenarios with adverse environmental or physical conditions (fatigue, stress, anxiety), and prevent car accidents. This will reduce road traffic, minimize human casualties and injuries, and save millions in monetary loss for all road users. AVs are the future of strengthening and improving security policies in various scenarios. However, their high price in the development and testing process has proven to be a significant deterrent to developing these technologies. Consequently, available solutions in the area of autonomous emergency braking will be addressed, and all new solutions and studies, their strengths and weaknesses, the state of the development process, test systems, quality, and reliability, will be presented. This work aims to create AVs with well-designed trajectory planning using an adaptive Model Predictive Control (MPC) capable of achieving outstanding performance in critical highway scenarios. Furthermore, it also aims to aggregate an emergency braking system that reacts to multidimensional analyses, including collision detection, time to collision (TTC), and braking distance. This study also shows the necessity of placing particular emphasis on verification, validation, and testing (VVT) in the automobile industry, which has contributed significantly to the development of automation systems. They allow developers to test software at a low cost and risk cycle, finding hidden faults in the preliminary phase and increasing confidence in security, functional, and transaction analysis for autonomous prototypes on existing road networks. This is increasingly becoming a norm in the automobile industry thanks to the cost-benefit ratio, allowing the removal of errors before reaching the absolute testing phase, where the cost of mistakes, both monetary and humanitarian, can be catastrophic. For the models to be carried out through simulation environments, this work used Matlab Simulink.
- ML Orchestrator: Development and Optimization of Machine Learning Pipelines and PlatformsPublication . Marques, Pedro Joel da Silva Miroto; Neves, João Carlos Raposo; Lopes, Vasco Ferrinho; Degardin, Bruno ManuelMachine Learning Pipelines play a crucial role in the efficient development of large-scale models, which is a complex process that involves several stages and faces intrinsic challenges. This document seeks to explore the depth of these structures, from the initial preparation of datasets to the final stage of model implementation, as well as the importance of optimizing these structures. Emphasis is also placed on the critical relevance of this process in Cloud Computing environments, where flexibility, scalability and efficiency are imperative. By understanding and properly applying optimized strategies, we not only improve model performance, but also maximize the benefits offered by cloud computing, thus shaping the future of Machine Learning development at scale. The Google Cloud Platform, more specifically the Vertex AI tool, offers a comprehensive solution for building and implementing Machine Learning Pipelines, as it allows development teams to take advantage of pre-trained models, automation of tasks and management of tasks and resources in a simplified way, leading to improved scalability, enabling efficient processing of large volumes of data. In addition, an analysis is made of how the Google Kubernetes Engine tool plays a key role in the management and scaling of these structures, since the ability to manage containers on a large scale guarantees an efficient execution of Machine Learning processes, providing a dynamic response to requests from clients. To efficiently build and optimize a ML pipeline, essential objectives were set to ensure robustness and efficiency. This includes creating a Google Kubernetes Cluster with its complementary services in GKE for the Playground Tool service, employing scalability strategies like KEDA and deploying the DeepNeuronicML model for objects and actions predictions from real-time video streams. Additionally, a Copilot is used to monitor computational resources, ensuring the ML pipeline can manage multiple clients and their AI models in an optimized and scalable manner. To conclude, it’s important to note that optimizing Machine Learning Pipelines in cloud environments is not just a necessity, but a strategic advantage. By adopting innovative approaches and integrating the tools mentioned above (Vertex AI and Google Kubernetes Engine), business organizations can overcome the complex challenges of these structures and boost efficiency and innovation in their Machine Learning services.
- Angular Atomic Components ArchitecturePublication . Pena, Nuno Rodrigo Lopes; Pombo, Nuno Gonçalo Coelho Costa; Aniceto, Alexandre Miguel CoelhoO principal objetivo deste relatório passa por expor todo o trabalho realizado durante o estágio na empresa Emvenci. Este incide na realização de uma reformulação/criação de diversas páginas da aplicação web da empresa utilizando a metodologia de Atomic Design. Através desta reestruturação, um dos principais objetivos é permitir uma melhoria de performance do website, realizando otimizações ao nível do tempo de carregamento de conteúdo, número de linhas de código e tamanho que cada ficheiro ocupa. Desta forma, o documento começa por expor o universo de trabalho da empresa e os seus respetivos objetivos. De seguida, é feita uma descrição da plataforma utilizada pela empresa e uma explicação da metodologia a ser aplicada. No terceiro capítulo, são apresentadas as ferramentas utilizadas, bem como uma explicação das mesmas. Por fim, é retratado o desenvolvimento do estágio, referindo os aspetos mais importantes que foram realizados.
- Processing and Analysis of Positional Time-SeriesPublication . Pedro, Nuno Alexandre Branco Rosa; Fernandes, Rui Manuel da Silva; Crocker, PaulIn the last three decades, GNSS networks have acquired data that allows positional time series of their stations to be calculated. The secular velocity due to the movement of tectonic plates is one of the main parameters to be estimated by processing the collected data, which is normally daily positions of the GNSS stations Hector is a software package that calculates the secular velocity and other associated parameters using such data. Solutions for the parameters of interest are obtained by analyzing the three components separately. Additional parameters can be seasonal variations, noise, and offsets; these parameters can complicate the process of estimating the secular velocity. Therefore, there is a need to use specific software for this calculation. Hector is used on a large scale, meaning the number of time series processed can be large. Therefore, time savings become essential. To optimize this time, changing and combining several parameters is possible. This study suggests some changes that allow, in addition to great time savings, to optimize this software. Running Hector requires the creation of specific configuration files that are sometimes difficult to do by an inexperienced user using commands on a Linux terminal. Therefore, an application was developed to facilitate interaction with Hector. This application has two interaction components with Hector. The first is an API component that allows a user to make requests and receive responses through a command line interface making it easier to create requests in existing environments with a large numbers of stations. The second component is a GUI, where it is also possible to make requests to Hector and obtain the results. All these tools were implemented in the TSA application, developed in PHP, JavaScript and HTML, interacting with Python and TC-Shell scripts that then allow the use of a SQL database together with the application that completes all the functionalities of the application.
- Utilização de técnicas de aprendizagem automática em contexto académico para tipificação do risco de abandono escolarPublication . Pedro, Nkanga; Fazendeiro, Paulo André PaisA evasão de estudantes no ensino superior, é um problema sério e preocupante para as autoridades competentes. Esta questão, não afeta apenas o indivíduo que abandona, mas também a instituição, família e a sociedade em geral. Com o desenvolvimento atual da ciência e da tecnologia, a partir dos dados educacionais registados, a previsão eficiente do abandono dos alunos é atualmente um tema importante de investigação. Este trabalho centra-se na identificação e prevenção do risco de abandono na UNIKIVI com base no desempenho escolar dos alunos. Propomos um conjunto de dados académicos como atributos preditivos e apresentamos modelos de aprendizagem automática que procedem ao agrupamento de alunos utilizando algumas destas características. Espera-se que o modelo sintetizado seja capaz de tipificar o risco de desistência. O objetivo geral é criar um modelo de aprendizagem automática capaz de prever problemas como a evasão dos alunos inscritos e o aumento da taxa de reprovações na instituição. A aplicação desse modelo pode ajudar a identificar os alunos que estão em risco de abandonar a escola, permitindo que a instituição tome medidas preventivas para evitar a evasão escolar. Além disso, a análise dos dados académicos pode ajudar a identificar situações iminentes de abandono e propor ações para minimizar a evasão escolar. Nesse sentido, foram recolhidos dados académicos de cinco cursos diferentes correspondentes a 7 anos letivos(de 2016/2017 a 2022/2023 dos cursos de Contabilidade e gestão, Hidráulica e saneamento de água, Agronomia, Engenharia Informática e Enfermagem). Após a recolha do percurso académico dos alunos, a anonimização da informação e o pré-processamento dos dados, foi conduzido um processo de engenharia e seleção de atributos, construindo assim os conjuntos de dados. Para encontrar padrões de comportamento entre os alunos, foi usado um algoritmo de aprendizagem automática de agrupamento, conhecido como modelo Kprototypes. Isso pode ajudar a dividir os alunos em grupos com características semelhantes. Também utilizamos alguns modelos de classificação, como Random Forest (RF), Support Vector Machines (SVM) e Decision Tree (DT), para prever a probabilidade de desistência de cada aluno com base nesses grupos e, por fim, usamos métricas apropriadas, como precisão, recall e medida F1, para avaliar a precisão dos modelos. A utilização desta metodologia pode ajudar as instituições do ensino superior a melhorar o desempenho dos alunos e reduzir as taxas de evasão escolar.
- Um caso de estudo sobre o desenvolvimento de aplicações Web com Angular e .NET em ambiente empresarialPublication . Matos, Miguel dos Santos Serôdio Serrano de; Pombo, Nuno Gonçalo Coelho Costa; Gouveia, João José TelesEste relatório de estágio foi elaborado no âmbito da cadeira de 2º semestre, Dissertação ou Estágio em Engenharia Informática. O documento dá uma visão geral da jornada do estagiário como um Full Stack Developer na empresa Latitudde - Digital Enablers, LDA, descrevendo os obstáculos enfrentados e as lições aprendidas durante o desenvolvimento de aplicações web. Durante este estágio Angular foi usado para frontend, .NET para backend, SQL Server para a base de dados e GitLab para a organização e gestão do código. Além de uma visão geral dos projetos, o relatório aprofunda-se em aspetos técnicos específicos, como a utilização do ASP.NET Identity para a gestão de utilizadores e o uso de componentes do PrimeNG para a construção de plataformas responsivas e eficientes. Durante este estágio, procurou-se aplicar os conhecimentos adquiridos ao longo do curso de Engenharia Informática, enfrentando desafios práticos e desenvolvendo competências essenciais na área da engenharia informática.
- Estágio na Empresa ATOS Portugal/Eviden: Plataforma de Comercialização de Energia, Operações no Mercado Energético da Península IbéricaPublication . Matos, Marco dos Santos Serôdio Serrano de; Crocker, Paul AndrewO presente relatório de Estágio, desenvolvido no âmbito da unidade curricular de Projeto de Dissertação ou de Estágio Curricular, integrado no Mestrado em Engenharia Informática, descreve os objetivos desenvolvidos para o estágio que ocorreu durante o período de 9 meses. Este projeto foi desenvolvido na empresa Atos[1], que após uma reestruturação interna tornou-se Eviden[2]. Esta, conta com o escritório em Lisboa. Durante o estágio realizado, o objetivo foi a implementação de funcionalidades relevantes ao funcionamento do mercado energético, este desenvolvimento teve em foco uma metodologia de trabalho ágil. O trabalho focava-se numa implementação Fullstack em que o desenvolvimento era tanto no Backend como no Frontend. As funcionalidades foram numa grande parte a adição, edição ou remoção de parâmetros necessários à comercialização de energia, em conjunto com os suas validações necessárias. A Atos é uma multinacional que fornece serviços de tecnologia da informação com foco em soluções de negócios e transformação digital. A empresa oferece uma ampla gama de serviços, incluindo integração de sistemas, gestão de serviços e integração de sistemas e consultoria. A Atos auxilia clientes de diversos setores na utilização de tecnologia para aumentar a produtividade, otimizar processos de negócios e atingir metas digitais. A empresa trabalha em áreas como análise de big data, computação em nuvem, segurança cibernética e criação de soluções criativas para atender às necessidades de seus clientes.
- Desenvolvimento Web Full-Stack na Empresa LatituddePublication . Maio, João Pedro Teixeira; Campos, Ricardo Nuno Taborda; Gouveia, João José TelesAo longo dos últimos anos o mercado de desenvolvimento web evoluiu significativamente. Impulsionado pelo crescimento da Internet, assente numa cada vez maior utilização por grande parte da população, assistimos nos últimos anos ao aparecimento de um elevado número de empresas com presença digital, tornando o desenvolvimento web uma excelente oportunidade de trabalho no domínio da informática. Em Portugal, várias empresas surgiram ao longo dos tempos com foco nesta área. A Latitudde, uma empresa da área da Tecnologia, insere-se neste domínio, tendo desenvolvido vários projetos no âmbito da web. O presente documento reflete o estágio realizado pelo aluno João Maio durante cinco meses na função de programador web full-stack em diversos projetos da empresa. O estágio teve como finalidade enriquecer o estagiário com conhecimentos deste domínio e ao mesmo tempo facultar experiência de trabalho em projetos concretos. Neste contexto, o aluno participou no desenvolvimento de dois projetos, nomeadamente o Projeto Compass e o Projeto da empresa Infraestruturas de Portugal (IP). O primeiro visou a criação de uma plataforma web que virá a ser usada por todos os membros da empresa, para a realização de tarefas que atualmente estão a ser realizadas em plataformas externas. O segundo teve como fundação a realização da migração da framework que sustenta todos os websites da empresa IP. Ao longo deste documento procede-se a uma caracterização da empresa, elencam-se os objetivos do estágio, as formações realizadas e descrevem-se as tarefas conduzidas no âmbito dos dois projetos desenvolvidos. Paralelamente é feito um levantamento do estado da arte no que ao desenvolvimento web diz respeito. Após a conclusão deste estágio o aluno foi convidado a trabalhar na empresa, num estágio profissional, continuando desta forma a ganhar experiência no mercado de trabalho.