Sidagro Development: An Experience Report on the Partnership between the Federal University of Lavras and the Agricultural Institute of Minas Gerais

  • Lucas Alvarenga Lopes UFLA
  • Rafael Serapilha Durelli UFLA
  • Ricardo Terra UFLA

Resumo


This article presents an experience report on the development of Sidagro Web, a governmental system developed through a partnership between the Federal University of Lavras (UFLA) and the Agricultural Institute of Minas Gerais (IMA), with a primary focus on software quality assurance. The report details key architectural and technical decisions that guided the project throughout its lifecycle, providing the rationale for each choice and emphasizing their contributions to enhancing system quality. The discussion is organized into five main categories: (i) high-level architectural choices, including layered separation and foundational technologies; (ii) backend-specific decisions, such as exception handling, object mapping, auditing mechanisms, and code conventions; (iii) frontend considerations, including form validation and dynamic data handling; (iv) infrastructure-related strategies, covering environment setup, CI/CD pipelines, and DevOps tooling; and (v) documentation and version control practices, which are applied transversally across all project dimensions. We demonstrate that the systematic adoption of these practices significantly improved the system’s robustness, maintainability, and long-term sustainability, offering valuable insights for similar large-scale software projects with stringent quality requirements.
Palavras-chave: Experience Report, Software Quality Assurance, Best Practices

Referências

Amaia Aizpurua, Simon Harper, and Markel Vigo. 2016. Exploring the relationship between web accessibility and user experience. International Journal of Human-Computer Studies 91 (2016), 13–23.

Angular Team. 2025. Angular — Overview. [link] Acesso em: 5 jul. 2025.

Baeldung. 2025. Semantic Versioning. Disponível em: [link]. Acesso em: 2 jul. 2025.

Len Bass, Paul Clements, and Rick Kazman. 2012. Software Architecture in Practice (3 ed.). Addison-Wesley.

Joshua Bloch. 2008. Effective Java (2 ed.). Addison-Wesley.

Neil Brown, Robert Nord, Philippe Kruchten, and Ipek Ozkaya. 2010. Managing Technical Debt in Software-Reliant Systems. In 2ndWorkshop on Future of Software Engineering Research (FoSER). 47–52.

Daniel C. Carvalho and Guilherme H. Travassos. 2007. Análise da qualidade de artefatos de documentação de software: um estudo de caso em sistemas governamentais. In XXI Simpósio Brasileiro de Engenharia de Software (SBES). 180–194.

Checkstyle Community. 2025. Checkstyle — Java Code Style Checker. [link] Acesso em: 5 jul. 2025.

Wendy Chisholm, Gregg Vanderheiden, and Ian Jacobs. 2001. Web content accessibility guidelines 1.0. Interactions 8, 4 (2001), 35–54.

Jelica Cincovic, Sanja Delcev, and Drazen Draskovic. 2019. Architecture of Web Applications Based on Angular Framework: A Case Study. Methodology 7, 7 (2019), 254–259.

Paul Clements, David Garlan, Reed Little, Robert Nord, and Judith Stafford. 2003. Documenting software architectures: views and beyond. In 25th International Conference on Software Engineering (ICSE). 740–741.

Luan Carvalho de Araújo Coelho. 2023. Uma arquitetura de código aberto para a aplicação do Strangler Pattern com Change Data Capture para setores com alto volume de dados. Trabalho de Conclusão de Curso (Graduação em Engenharia de Software), Universidade Federal do Ceará.

Eclipse Foundation. 2025. Eclipse IDE. [link] Acesso em: 5 jul. 2025.

Martin Fowler. 2018. Refactoring: Improving the Design of Existing Code. Addison-Wesley Professional.

GeeksforGeeks. 2024. 10 Best Java IDE For Developers in 2025. Disponível em: [link]. Acesso em: 6 jun. 2025.

G Geetha, Monisha Mittal, K Mohana Prasad, and J Godwin Ponsam. 2022. Interpretation and Analysis of Angular Framework. In 3rd International Conference on Power, Energy, Control and Transmission Systems (ICPECTS). 1–6.

GitLab Inc. 2025. About GitLab. [link] Acesso em: 5 jul. 2025.

Google. 2025. Material Design 3. [link] Acesso em: 5 jul. 2025.

Grafana Labs. 2025. Grafana Loki — Log Aggregation System. [link] Acesso em: 5 jul. 2025.

Grafana Labs. 2025. Grafana Tempo — Distributed Tracing Backend. [link] Acesso em: 5 jul. 2025.

Grafana Labs. 2025. Grafana — Observability Platform. [link] Acesso em: 5 jul. 2025.

Danny M Groenewegen and Eelco Visser. 2013. Integration of data validation and user interface concerns in a DSL for web applications. Software & Systems Modeling 12, 1 (2013), 35–52.

Hibernate Team. 2025. Hibernate Envers. [link] Acesso em: 5 jul. 2025.

Hibernate Team. 2025. Hibernate ORM. [link] Acesso em: 5 jul. 2025.

Nishtha Jatana, Sahil Puri, Mehak Ahuja, Ishita Kathuria, and Dishant Gosain. 2012. A Survey and Comparison of Relational and Non-Relational Database. International Journal of Engineering Research & Technology 1, 6 (2012), 1–5.

JetBrains Plugin Repository. 2025. Adapter for Eclipse Code Formatter — IntelliJ Plugin. [link] Acesso em: 5 jul. 2025.

JUnit Team. 2025. JUnit. [link]. Acesso em: 10 out. 2025.

Hareton KN Leung and Lee White. 1990. A study of integration testing and software regression at the integration level. In 6th International Conference on Software Maintenance. 290–301.

MapStruct Contributors. 2025. MapStruct — Java Bean Mapping. [link] Acesso em: 5 jul. 2025.

Robert C. Martin. 2011. Clean Code: A Handbook of Agile Software Craftsmanship. Prentice Hall.

Robert C. Martin. 2017. Clean Architecture: A Craftsman’s Guide to Software Structure and Design. Prentice Hall.

Mockito Team. 2025. Mockito Framework. [link]. Acesso em: 10 out. 2025.

Notion Labs Inc. 2025. Notion — Connected Workspace. [link] Acesso em: 5 jul. 2025.

Regina Obe and Leo Hsu. 2021. PostGIS in Action. Simon and Schuster.

Matthew O’Connell, Cameron Druyor, Kyle B Thompson, Kevin Jacobson, William K Anderson, Eric J Nielsen, Jan-Reneé Carlson, Michael A Park, William T Jones, Robert Biedron, et al. 2018. Application of the dependency inversion principle to multidisciplinary software development. In 48th Fluid Dynamics Conference (FDC). 3856.

Oracle. 2021. JEP 395: Records. Disponível em: [link]. Acesso em: 5 jun. 2025.

Oracle. 2021. Record Classes. Disponível em: [link]. Acesso em: 12 jun. 2025.

Pivotal Software. 2025. RabbitMQ — Messaging Broker. [link] Acesso em: 5 jul. 2025.

Peter C Poole and William M Waite. 1975. Portability and Adaptability. Springer Berlin Heidelberg, 183–277.

PostgreSQL Global Development Group. 2025. PostgreSQL — The World’s Most Advanced Open Source Database. [link] Acesso em: 5 jul. 2025.

Roger S. Pressman and Bruce R. Maxim. 2014. Software Engineering: A Practitioner’s Approach (8 ed.). McGraw-Hill Education.

Project Lombok. 2025. Project Lombok. [link] Acesso em: 5 jul. 2025.

Prometheus Authors. 2025. Prometheus — Monitoring System. [link] Acesso em: 5 jul. 2025.

Redgate Software. 2025. Flyway — Database Migrations Made Easy. [link] Acesso em: 5 jul. 2025.

Redis Inc. 2025. Redis — In-Memory Data Store. [link] Acesso em: 5 jul. 2025.

Elisabetta Ronchieri and Marco Canaparo. 2023. Assessing the impact of software quality models in healthcare software systems. Health Systems 12, 1 (2023), 85–97.

Douglas Morgan Fullin Saldanha, Cleidson Nogueira Dias, and Siegrid Guillaumon. 2022. Transparency and accountability in digital public services: Learning from the Brazilian cases. Government Information Quarterly 39, 2 (2022), 101680.

Sass Team. 2025. Sass—Syntactically Awesome Style Sheets. [link] Acesso em: 5 jul. 2025.

Dhamotharan Seenivasan and Muthukumaran Vaithianathan. 2023. Real-Time Adaptation: Change Data Capture in Modern Computer Architecture. ESP International Journal of Advancements in Computational Technology (ESP-IJACT) 1, 2 (2023), 49–61.

Semantic Versioning Initiative. 2025. Semantic Versioning Specification (SemVer). [link] Acesso em: 5 jul. 2025.

Mojtaba Shahin, Muhammad Ali Babar, and Liming Zhu. 2017. Continuous integration, delivery and deployment: a systematic review on approaches, tools, challenges and practices. IEEE Access 5 (2017), 3909–3943.

SonarSource. 2025. SonarQube — Continuous Code Quality. [link] Acesso em: 5 jul. 2025.

Spring. 2025. Auditing. Disponível em: [link]. Acesso em: 16 jun. 2025.

Spring Team. 2025. Spring Boot Project. [link] Acesso em: 5 jul. 2025.

Spring Team. 2025. Spring Cloud Gateway. [link] Acesso em: 5 jul. 2025.

Spring Team. 2025. Spring Data JPA — Auditing. [link] Acesso em: 5 jul. 2025.

Telegram Messenger LLP. 2025. Telegram — Messaging App. [link] Acesso em: 5 jul. 2025.

Testcontainers Team. 2025. Testcontainers. [link]. Acesso em: 10 out. 2025.

Nikolai Tillmann and Wolfram Schulte. 2005. Parameterized unit tests. ACM SIGSOFT Software Engineering Notes 30, 5 (2005), 253–262.

Catalin Tudose, Christian Bauer, and Gavin King. 2023. Java Persistence with Spring Data and Hibernate. Simon and Schuster, Chapter 11. Section 11.2: Controlling concurrent access.

Gustavo Vale, Claus Hunsen, Eduardo Figueiredo, and Sven Apel. 2021. Challenges of resolving merge conflicts: A mining and survey study. IEEE Transactions on Software Engineering 48, 12 (2021), 4964–4985.

Ruben Verborgh and Michel Dumontier. 2018. A Web API ecosystem through feature-based reuse. IEEE Internet Computing 22, 3 (2018), 29–37.

Craig Walls. 2015. Spring Boot in Action. Simon and Schuster.

Chenhao Wei, Lu Xiao, Tingting Yu, Sunny Wong, and Abigail Clune. 2025. How Do Developers Structure Unit Test Cases? An Empirical Analysis of the AAA Pattern in Open Source Projects. IEEE Transactions on Software Engineering 51, 4 (2025), 1007–1038.

Jonathan Wetherbee, Massimo Nardone, Chirag Rathod, and Raghu Kodali. 2018. Entities and the Java Persistence API (JPA). Apress, Berkeley, CA, 93–155.

Maria A. Wimmer, Efthimios Tambouris, and Panos Panagiotopoulos. 2020. Digital Government: Research and Practice. ACM Digital Government: Research and Practice 1, 1 (2020).
Publicado
04/11/2025
LOPES, Lucas Alvarenga; DURELLI, Rafael Serapilha; TERRA, Ricardo. Sidagro Development: An Experience Report on the Partnership between the Federal University of Lavras and the Agricultural Institute of Minas Gerais. In: SIMPÓSIO BRASILEIRO DE QUALIDADE DE SOFTWARE (SBQS), 24. , 2025, São José dos Campos/SP. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2025 . p. 315-325. DOI: https://doi.org/10.5753/sbqs.2025.13880.