Arquitetura de Software

A Arquitetura de Software é um campo fundamental na engenharia de sistemas que envolve a organização estrutural de componentes de software, suas interações e os princípios orientadores que definem o design e a evolução dos sistemas. Essa área é vital para garantir a eficiência, a escalabilidade e a manutenção dos sistemas de software, impactando diretamente na qualidade e no desempenho das aplicações.

Sobre o coordenador da área

Prof. André Lanna

Professor e pesquisador na área de Arquitetura de Software. Atualmente, desempenha o papel de professor adjunto na Universidade de Brasília, contribuindo significativamente para o curso de graduação em Engenharia de Software no campus Gama e para o Programa de Pós-Graduação em Computação Aplicada.
Mais sobre o coordenador

Equipe de pesquisa

Pesquisadores

Mestrado

Trabalho de conclusão de curso

  • Luiza Esteves dos Santos. Aplicativo para apoio à organização de conteúdo de disciplinas (provisório) . Bacharelado em Engenharia de Software - UnB, (2024). Orientador(es): Ricardo Ajax . Tags: Educação, Arquitetura de Software .
  • Artur de Souza Vieira. Aplicativo para apoio à organização de conteúdo de disciplinas (provisório) . Bacharelado em Engenharia de Software - UnB, (2024). Orientador(es): Ricardo Ajax . Tags: Educação, Arquitetura de Software .

Pesquisadores anteriores

Mestrado

  1. Taylor Rodrigues Lopes, Método de migração de sistemas monolíticos legados para a arquitetura de microsserviços . Dissertação (Mestrado Profissional em Computação Aplicada) - UnB, 2021 Orientador(es): André Lanna . Tags: Arquitetura de Software .
    Atualmente, grande parte das organizações dependem de Sistemas de Informação (SI). Em geral, estes sistemas são construídos com base na “arquitetura monolítica”, tendo a execução centralizada em um único servidor. Ao longo dos anos, porém, as constantes mudanças para atender necessidades de negócio e o acúmulo da dívida técnica, têm tornado estes sistemas cada vez maiores e complexos, dificultando aspectos como manutenibilidade e escalabilidade. Essa difícil realidade vivida por muitas organizações motivou o presente trabalho a investigar uma nova tendência arquitetural denominada “microsserviços”. Popularizado por empresas como Netflix e Amazon, os microsserviços podem ser uma alternativa para a modernização de sistemas legados, propiciando mínimo downtime e impacto ao usuário final. Nessa nova arquitetura, o software é decomposto em pequenas partes que funcionam de modo independente e autônomo, trazendo algumas melhorias em termos de atributos de qualidade de software. Contudo, há também desafios e tradeoffs - adotar microsserviços tende a ser um processo difícil e não raramente malsucedido, sobretudo, em razão da carência de métodos para conduzir o processo de migração. Nesse sentido, fundamentado em estudos científicos, este trabalho apresenta um método de migração intitulado Microservice Full Cycle - MFC, inspirado no ciclo de vida de desenvolvimento de software e em estratégias DevOps. O objetivo é auxiliar sistemas de software legados a gradualmente evoluírem orientados por um conjunto de etapas e atividades comuns à arquitetura de microsserviços. A validação do método MFC é feita por meio de uma simulação em uma aplicação real, tendo evidenciado vantagens tais como códigos mais coesos e desacoplados, independência tecnológica, agilidade em build, teste e deploy (automação), escalabilidade sob alta demanda, maior interoperabilidade e integração, capacidades geodistribuídas, além de monitoramento e feedback em tempo real.
  2. Felipe Evangelista dos Santos, Implementação da integração do barramento de serviços da UnB com ferramentas de monitoramento . Dissertação (Mestrado Profissional em Computação Aplicada) - UnB, 2020 Orientador(es): Sergio Freitas . Tags: Arquitetura de Software .
    A adoção de uma Arquitetura Orientada a Serviços (SOA) na implementação de serviços e microsserviços em aplicações de sistemas distribuídos facilita a utilização de padrões de desenvolvimento, a manutenção, a flexibilidade na criação de serviços e a interoperabilidade entre serviços e sistemas. O Centro de Informática (CPD) da Universidade de Brasília (UnB) engaja-se em diversos processos de automação de software, abrangendo desde a manutenção de sistemas existentes até o desenvolvimento e implantação de novas soluções tecnológicas. A monitorização contínua do desempenho de serviços, microsserviços e sistemas torna-se vital. Este estudo, de natureza exploratória, visa investigar soluções e ferramentas para a implementação e gestão de monitoramento de serviços e sistemas distribuídos na UnB, através de um mapeamento sistemático. A pesquisa fundamentou-se teoricamente para desenvolver um modelo que foi aplicado no módulo de monitoramento do barramento de serviços da UnB. Foram realizadas simulações com a solução desenvolvida, permitindo a análise da integração entre o barramento de serviços e a ferramenta de monitoramento proposta.
  3. James Taylor Faria Chaves, Service-Oriented Architecture (SOA), Agile Development Methods and Quality Assurance (QA) - a case study . Dissertação (Mestrado Profissional em Computação Aplicada) - UnB, 2019 Orientador(es): Sergio Freitas . Tags: Arquitetura de Software .
    Este trabalho introduz o framework NatVI, focando na integração entre Arquitetura Orientada a Serviços (SOA), Desenvolvimento Ágil e Garantia de Qualidade (QA). Desenvolvido a partir de uma revisão da literatura que identificou e avaliou os compromissos entre SOA e métodos ágeis, o NatVI visa oferecer uma solução abrangente para o ciclo de desenvolvimento de software, especialmente para aplicações baseadas em serviços. Inclui melhores práticas de SOA e princípios ágeis, enfatizando a importância da QA, essencial para projetos de software em ambientes de negócios dinâmicos. Um estudo de caso em uma unidade do governo federal brasileiro avaliou a aplicação do NatVI, observando melhorias na qualidade do software, compreensão dos métodos ágeis e satisfação do cliente com o processo de desenvolvimento. O estudo também destacou limitações, como o tamanho da equipe de TI e o número de clientes envolvidos, conduzindo a uma avaliação subjetiva através de entrevistas semiestruturadas. Os resultados preliminares sugerem que o NatVI tem potencial, mas destacam a necessidade de mais pesquisas, abrindo caminho para futuros estudos sobre tecnologias emergentes, como containers e DevOps.

Trabalho de conclusão de curso

  1. Filipe Silva, Estado da prática da manutenção de software no contexto de startups de software em early stage . Trabalho de Conclusão de Curso (Bacharelado em Engenharia de Software) - UnB, 2022 Orientador(es): Cristiane Ramos . Tags: Arquitetura de Software, Transformação Digital .
  2. Laércio Sousa Júnior, Determinando a taxa de autoria dentro de um projeto usando Git . Trabalho de Conclusão de Curso (Bacharelado em Engenharia de Software) - UnB, 2020 Orientador(es): André Lanna . Tags: Arquitetura de Software, Transformação Digital .
  3. Luis Guimarães Jonathan Paiva, NotifiCar - aplicativo para monitoramento da situação dos automóveis de uma cidade . Trabalho de Conclusão de Curso (Bacharelado em Engenharia de Software) - UnB, 2019 Orientador(es): André Lanna . Tags: Arquitetura de Software, Transformação Digital .
  4. Luciano Endo, Métricas de apoio a estimativa de esforço para o desenvolvimento de sistemas de Business Intelligence . Trabalho de Conclusão de Curso (Bacharelado em Engenharia de Software) - UnB, 2015 Orientador(es): Fabiana Mendes . Tags: Arquitetura de Software .
  5. Breno Cruz, Um mapeamento sistemático de métricas para metodologias ágeis Scrum, Kanban e XP . Trabalho de Conclusão de Curso (Bacharelado em Engenharia de Software) - UnB, 2014 Orientador(es): Fabiana Mendes . Tags: Arquitetura de Software .
  6. Guilherme Fay Vergara, Implantação de softwares como serviço em uma nuvem privada para a fábrica de software da FGA . Trabalho de Conclusão de Curso (Bacharelado em Engenharia de Software) - UnB, 2014 Orientador(es): Sergio Freitas, Edna Canedo . Tags: Arquitetura de Software .
    O objetivo deste trabalho é trazer ao leitor primeiramente o estado da arte sobre computação em nuvem, posteriormente, uma breve indicação de ferramentas para computação em nuvem, passando por todos os níveis de arquitetura, e posteriormente a proposição de um modelo de implantação de computação em nuvem para a fábrica de software da faculdade do Gama e por último, a implantação de parte deste modelo. A implantação destes serviços é dentro de uma nuvem privada, alocada dentro dos servidores do CEBRASPE. Os principal serviços disponíveis são - O expresso que é um sistema que é mantido principalmente pelo SERPRO, e o Owncloud um software que implanta o compartilhamento de aquivos na nuvem. Estes serviços servem principalmente para aumentar a produtividade dos membros da fábrica, e aumentar a sua colaboratividade nos projetos desenvolvidos.

Projetos em andamento

Publicações e produções

Publicações (17)

  1. MACIEL, C.,MENDES, F. F.,PEREIRA, V. C.,YAMAUCHI, E. A., Defining Digital Legacy Management Systems' Requirements , LECTURE NOTES IN BUSINESS INFORMATION PROCESSING , LNBIP 455(256-279), 2022 . DOI: 10.1007/978-3-031-08965-7_13 . Tags: Arquitetura de Software .
  2. Filipe Silva, Estado da prática da manutenção de software no contexto de startups de software em early stage . Trabalho de Conclusão de Curso (Bacharelado em Engenharia de Software) - UnB, 2022 Orientador(es): Cristiane Ramos . Tags: Arquitetura de Software, Transformação Digital .
  3. Taylor Rodrigues Lopes, Método de migração de sistemas monolíticos legados para a arquitetura de microsserviços . Dissertação (Mestrado Profissional em Computação Aplicada) - UnB, 2021 Orientador(es): André Lanna . Tags: Arquitetura de Software .
    Atualmente, grande parte das organizações dependem de Sistemas de Informação (SI). Em geral, estes sistemas são construídos com base na “arquitetura monolítica”, tendo a execução centralizada em um único servidor. Ao longo dos anos, porém, as constantes mudanças para atender necessidades de negócio e o acúmulo da dívida técnica, têm tornado estes sistemas cada vez maiores e complexos, dificultando aspectos como manutenibilidade e escalabilidade. Essa difícil realidade vivida por muitas organizações motivou o presente trabalho a investigar uma nova tendência arquitetural denominada “microsserviços”. Popularizado por empresas como Netflix e Amazon, os microsserviços podem ser uma alternativa para a modernização de sistemas legados, propiciando mínimo downtime e impacto ao usuário final. Nessa nova arquitetura, o software é decomposto em pequenas partes que funcionam de modo independente e autônomo, trazendo algumas melhorias em termos de atributos de qualidade de software. Contudo, há também desafios e tradeoffs - adotar microsserviços tende a ser um processo difícil e não raramente malsucedido, sobretudo, em razão da carência de métodos para conduzir o processo de migração. Nesse sentido, fundamentado em estudos científicos, este trabalho apresenta um método de migração intitulado Microservice Full Cycle - MFC, inspirado no ciclo de vida de desenvolvimento de software e em estratégias DevOps. O objetivo é auxiliar sistemas de software legados a gradualmente evoluírem orientados por um conjunto de etapas e atividades comuns à arquitetura de microsserviços. A validação do método MFC é feita por meio de uma simulação em uma aplicação real, tendo evidenciado vantagens tais como códigos mais coesos e desacoplados, independência tecnológica, agilidade em build, teste e deploy (automação), escalabilidade sob alta demanda, maior interoperabilidade e integração, capacidades geodistribuídas, além de monitoramento e feedback em tempo real.
  4. CHAVES, J. T. F.,FREITAS, S. A. A., NatVi - A Framework for Agile Software Development, Service-oriented Architecture and Quality Assurance , in 20th International Conference on Computational Science and its Applications , 2020 . DOI: 10.1007/978-3-030-58817-5_33 . Tags: Arquitetura de Software .
  5. Felipe Evangelista dos Santos, Implementação da integração do barramento de serviços da UnB com ferramentas de monitoramento . Dissertação (Mestrado Profissional em Computação Aplicada) - UnB, 2020 Orientador(es): Sergio Freitas . Tags: Arquitetura de Software .
    A adoção de uma Arquitetura Orientada a Serviços (SOA) na implementação de serviços e microsserviços em aplicações de sistemas distribuídos facilita a utilização de padrões de desenvolvimento, a manutenção, a flexibilidade na criação de serviços e a interoperabilidade entre serviços e sistemas. O Centro de Informática (CPD) da Universidade de Brasília (UnB) engaja-se em diversos processos de automação de software, abrangendo desde a manutenção de sistemas existentes até o desenvolvimento e implantação de novas soluções tecnológicas. A monitorização contínua do desempenho de serviços, microsserviços e sistemas torna-se vital. Este estudo, de natureza exploratória, visa investigar soluções e ferramentas para a implementação e gestão de monitoramento de serviços e sistemas distribuídos na UnB, através de um mapeamento sistemático. A pesquisa fundamentou-se teoricamente para desenvolver um modelo que foi aplicado no módulo de monitoramento do barramento de serviços da UnB. Foram realizadas simulações com a solução desenvolvida, permitindo a análise da integração entre o barramento de serviços e a ferramenta de monitoramento proposta.
  6. Laércio Sousa Júnior, Determinando a taxa de autoria dentro de um projeto usando Git . Trabalho de Conclusão de Curso (Bacharelado em Engenharia de Software) - UnB, 2020 Orientador(es): André Lanna . Tags: Arquitetura de Software, Transformação Digital .
  7. CHAVES, J. T. F.,FREITAS, S. A. A., A Systematic Literature Review for Service-oriented Architecture and Agile Development , in The 19th International Conference on Computational Science and its Applications , 2019 . DOI: 10.1007/978-3-030-24308-1_11 . Tags: Arquitetura de Software .
  8. James Taylor Faria Chaves, Service-Oriented Architecture (SOA), Agile Development Methods and Quality Assurance (QA) - a case study . Dissertação (Mestrado Profissional em Computação Aplicada) - UnB, 2019 Orientador(es): Sergio Freitas . Tags: Arquitetura de Software .
    Este trabalho introduz o framework NatVI, focando na integração entre Arquitetura Orientada a Serviços (SOA), Desenvolvimento Ágil e Garantia de Qualidade (QA). Desenvolvido a partir de uma revisão da literatura que identificou e avaliou os compromissos entre SOA e métodos ágeis, o NatVI visa oferecer uma solução abrangente para o ciclo de desenvolvimento de software, especialmente para aplicações baseadas em serviços. Inclui melhores práticas de SOA e princípios ágeis, enfatizando a importância da QA, essencial para projetos de software em ambientes de negócios dinâmicos. Um estudo de caso em uma unidade do governo federal brasileiro avaliou a aplicação do NatVI, observando melhorias na qualidade do software, compreensão dos métodos ágeis e satisfação do cliente com o processo de desenvolvimento. O estudo também destacou limitações, como o tamanho da equipe de TI e o número de clientes envolvidos, conduzindo a uma avaliação subjetiva através de entrevistas semiestruturadas. Os resultados preliminares sugerem que o NatVI tem potencial, mas destacam a necessidade de mais pesquisas, abrindo caminho para futuros estudos sobre tecnologias emergentes, como containers e DevOps.
  9. Luis Guimarães Jonathan Paiva, NotifiCar - aplicativo para monitoramento da situação dos automóveis de uma cidade . Trabalho de Conclusão de Curso (Bacharelado em Engenharia de Software) - UnB, 2019 Orientador(es): André Lanna . Tags: Arquitetura de Software, Transformação Digital .
  10. LEAO, H. A. T.,SOUZA, R. V. F.,MACIEL, A. A. F.,FREITAS, S. A. A.,CANEDO, E. D., Gamificação aplicada ao desenvolvimento de software: Análise e Projeto , in XX ENCOINFO , 2018 . Tags: Gamificação, Arquitetura de Software .
  11. RIBEIRO, A. S.,CANEDO, E. D.,FREITAS, S. A. A., An Implementation of the OAuth 2.0 for an Enterprise Service Bus , in 18th International Conference on Computational Science and Its Applications , 2018 . DOI: 10.1007/978-3-319-95162-1_32 . Tags: Arquitetura de Software .
  12. ARAUJO, A. N. L.,BORGES, K. C. S.,FREITAS, S. A. A.,CANEDO, E. D.,SILVA, W. C. M. P., Experience and Innovation Factory: Adaptation of an Experience Factory Model for a Research and Development Laboratory , in Americas Conference on Information Systems 2017 , 2017 . Tags: Arquitetura de Software, Trabalho em Equipe .
  13. RAMOS, C. S.,OLIVEIRA, K. M.,ROCHA, A. R. C., Planejamento de Programa de Melhoria Abordagem Multimodelo , in Simpósio Brasileiro de Qualidade de Software , p79-93, 2015 . DOI: 10.5753/sbqs.2015.15215 . Tags: Arquitetura de Software .
  14. VERGARA, G. F.,CANEDO, E. D.,FREITAS, S. A. A., Deployment of Collaborative Softwares as a Service in a Private Cloud to a Software Factory , in 15th Computational Science and Its Applications (ICCSA) , 2015 . DOI: 10.1007/978-3-319-21404-7_24 . Tags: Arquitetura de Software .
  15. Luciano Endo, Métricas de apoio a estimativa de esforço para o desenvolvimento de sistemas de Business Intelligence . Trabalho de Conclusão de Curso (Bacharelado em Engenharia de Software) - UnB, 2015 Orientador(es): Fabiana Mendes . Tags: Arquitetura de Software .
  16. Breno Cruz, Um mapeamento sistemático de métricas para metodologias ágeis Scrum, Kanban e XP . Trabalho de Conclusão de Curso (Bacharelado em Engenharia de Software) - UnB, 2014 Orientador(es): Fabiana Mendes . Tags: Arquitetura de Software .
  17. Guilherme Fay Vergara, Implantação de softwares como serviço em uma nuvem privada para a fábrica de software da FGA . Trabalho de Conclusão de Curso (Bacharelado em Engenharia de Software) - UnB, 2014 Orientador(es): Sergio Freitas, Edna Canedo . Tags: Arquitetura de Software .
    O objetivo deste trabalho é trazer ao leitor primeiramente o estado da arte sobre computação em nuvem, posteriormente, uma breve indicação de ferramentas para computação em nuvem, passando por todos os níveis de arquitetura, e posteriormente a proposição de um modelo de implantação de computação em nuvem para a fábrica de software da faculdade do Gama e por último, a implantação de parte deste modelo. A implantação destes serviços é dentro de uma nuvem privada, alocada dentro dos servidores do CEBRASPE. Os principal serviços disponíveis são - O expresso que é um sistema que é mantido principalmente pelo SERPRO, e o Owncloud um software que implanta o compartilhamento de aquivos na nuvem. Estes serviços servem principalmente para aumentar a produtividade dos membros da fábrica, e aumentar a sua colaboratividade nos projetos desenvolvidos.

Contato e colaboração

Veja mais sobre Arquitetura de Software
← Computação de alto desempenho Learning Analytics e Gestão →