Use este identificador para citar ou linkar para este item: http://repositorio.utfpr.edu.br/jspui/handle/1/26270
Título: Framework PON C++ 4.0: contribuição para a concepção de aplicações no paradigma orientado a notificações por meio de programação genérica
Título(s) alternativo(s): Framework NOP 4.0: contribution to the development of applications in the notification oriented paradigm through generic programming
Autor(es): Neves, Felipe dos Santos
Orientador(es): Linhares, Robson Ribeiro
Palavras-chave: Programação genérica (ciência da computação)
Sistemas de computação
Software - Desenvolvimento
C++ (Linguagem de programação de computador)
Generic programming (Computer science)
Computer systems
Computer software - Development
C++ (Computer program language)
Data do documento: 3-Set-2021
Editor: Universidade Tecnológica Federal do Paraná
Câmpus: Curitiba
Citação: NEVES, Felipe dos Santos. Framework PON C++ 4.0: contribuição para a concepção de aplicações no paradigma orientado a notificações por meio de programação genérica. 2021. Dissertação (Mestrado em Computação Aplicada) - Universidade Tecnológica Federal do Paraná, Curitiba, 2021.
Resumo: O Paradigma Orientado a Notificações (PON) é uma nova abordagem para a construção de sistemas computacionais. O PON propõe a computação por meio de um modelo de entidades reativas desacopladas que interagem por meio de notificações pontuais, dentre as quais se divide e separa a computação facto-execucional da computação lógico-causal. Com isso é possível reduzir ou eliminar redundâncias temporais e estruturais, comuns em outros paradigmas de programação, que podem afetar o desempenho dos programas. Ainda, o desacoplamento intrínseco entre as entidades do PON facilita a construção de sistemas concorrentes e/ou distribuídos. Além disso, a estrutura orientada a regras do PON tende a facilitar o desenvolvimento por permitir programar em alto nível de abstração. O PON apresenta várias materializações em software, sendo as mais maduras tecnologicamente aquelas que se dão por meio de frameworks, desenvolvidos em diferentes linguagens de programação. Dentre estes frameworks o que apresenta o maior grau de maturidade e estabilidade é o Framework PON C++ 2.0. Entretanto, o Framework PON C++ 2.0 ainda apresenta certas limitações, como excessiva verbosidade, baixa flexibilidade de tipos e baixa flexibilidade algorítmica. Nesse contexto este trabalho propõe o desenvolvimento de um novo framework, denominado Framework PON C++ 4.0, com o objetivo de remover as limitações presentes no Framework PON C++ 2.0, bem como as imperfeições do Framework PON C++ 3.0 que envolve multithread/multicore, de forma a melhorar a usabilidade do PON e seu desempenho neste âmbito. O Framework PON C++ 4.0 é desenvolvido utilizando técnicas de programação genérica, por meio de recursos adicionados nas versões do padrão ISO C++11, C++14, C++17 e C++20, bem como aplicando o método de desenvolvimento orientado a testes. Esta dissertação de mestrado apresenta os resultados obtidos com a implementação do Framework PON C++ 4.0 por meio de um conjunto de aplicações pertinentes, tanto em ambiente single thread quanto multithread/multicore. Tais aplicações são um sistema de sensores e uma aplicação de controle automatizado de tráfego, oriundos do grupo de pesquisa, e dos algoritmos Bitonic Sort e Random Forest oriundos da literatura. Tais aplicações foram executadas e comparadas em termos de desempenho com as mesmas aplicações implementadas no Framework PON C++ 2.0, Framework PON Elixir/Erlang e também implementações no Paradigma Orientado a Objetos (POO) em linguagem de programação C++ e Paradigma Procedimental (PP) em linguagem de programação C. Como resultado destas comparações, o novo Framework PON C++ 4.0 se mostra superior ao Framework PON C++ 2.0 tanto em tempo de execução como consumo de memória nos cenários avaliados, além de apresentar balanceamento de carga comparável aos do Framework PON Elixir/Erlang em ambiente multicore. As melhorias na usabilidade são adicionalmente avaliadas e atestadas pelo feedback de desenvolvedores do PON.
Abstract: The Notification-Oriented Paradigm (NOP) is a new approach to the construction of computer systems. The NOP proposes computability by means of reactive and decoupled entities model that interact by means of punctual notifications, separating fact-executional from logic-causal computing. With this it is possible to reduce or eliminate temporal and structural redundancies, common in other programming paradigms, which can affect program performance. Still, the intrinsic decoupling between NOP entities facilitates the construction of concurrent and/or distributed systems. Moreover, the rule-oriented structure of the NOP tends to ease development by allowing programming at a high level of abstraction. NOP presents several materializations in software, being the most mature technologically those that occur through frameworks, developed in different programming languages. Among these frameworks, the one that presents the highest degree of maturity and stability is the C++ Framework NOP 2.0. However, the C++ Framework NOP 2.0 still has certain limitations, such as excessive verbosity, low type flexibility and low algorithmic flexibility. In this context, this work proposes the development of a new framework, named C++ Framework NOP 4.0, with the objective of removing the limitations present in the C++ Framework NOP 2.0, as well as the imperfections of the C++ Framework NOP 3.0 that involves multithread/multicore, in order to improve the usability of the NOP and its performance in this regard. The C++ Framework NOP 4.0 is developed using generic techniques, by means of features added in the ISO C++11 C++14, C++17 and C++20 and applying the test-driven development methodology. This master’s thesis presents the results obtained with the implementation of the C++ Framework NOP 4.0 through a set of relevant applications, such as the sensor application, traffic light control application, and the algorithms Bitonic Sort and Random Forest, both in a single thread and multithread/multicore environment. These applications were executed and compared in terms of performance against the same applications implemented with the C++ Framework NOP 2.0, Elixir/Erlang Framework NOP and also implementations in the Object-Oriented Paradigm (OOP) in the C++ programming language and Procedural Paradigm (PP) in the C programming language. As a result of these comparisons, the new C++ Framework NOP 4.0 proves to be superior to C++ Framework NOP 2.0 in both runtime and memory consumption in the evaluated scenarios, besides presenting CPU utilization levels comparable to the Framework Elixir/Erlang Framework NOP multicore environment. Usability improvements are additionally evaluated and attested by feedback from NOP developers.
URI: http://repositorio.utfpr.edu.br/jspui/handle/1/26270
Aparece nas coleções:CT - Programa de Pós-Graduação em Computação Aplicada

Arquivos associados a este item:
Arquivo Descrição TamanhoFormato 
frameworkponprogramacaogenerica.pdf12,76 MBAdobe PDFThumbnail
Visualizar/Abrir


Este item está licenciada sob uma Licença Creative Commons Creative Commons