TCC - Bacharelado em Ciência da Computação (Sede)

URI permanente para esta coleçãohttps://arandu.ufrpe.br/handle/123456789/415

Navegar

Resultados da Pesquisa

Agora exibindo 1 - 7 de 7
  • Imagem de Miniatura
    Item
    Geração automática de sistemas backend com o suporte de IA generativa seguindo a arquitetura limpa
    (2024-03-06) Costa, Henrique Sabino da; Burégio, Vanilson André de Arruda; http://lattes.cnpq.br/3518416272921878; http://lattes.cnpq.br/5381537544189009
    In this work, we investigated the potential contribution of automatic code synthesis technologies, particularly OpenAI’s GPT-4, to the maintenance and adherence to best practices in software architecture in startups. Given the characteristic of these companies to operate in environments of rapid change and innovation, but with limited resources, practices such as unit testing and documentation are often neglected. Conversely, we emphasize the importance of such practices for their contribution to the maintainability and scalability of applications. As a means to reconcile the fast pace of development with the need for good practices, we proposed the use of generative language models (GLM), specifically GPT-4, for code generation following the principles of clean architecture, a set of concepts defined by Robert C. Martin for developing scalable and maintainable projects. The methodological approach was a combination of qualitative and quantitative analysis, focused on the exploration and adaptation of prompts for code generation and the development of practical exemplifications in various programming languages. Notably, three projects in C#, JavaScript, and Python were produced, which were evaluated according to metrics of abstraction, instability, and adherence to the Main Sequence - key concepts in maintaining clean architecture. The results indicated that, despite the potential of the proposed technology to accelerate development and promote adherence to good practices through automation, there are significant gaps in GPT-4 ability to generate code fully aligned with clean architecture and executable without manual intervention. Problems related to inconsistency in the project structure and the integrity of the generated code were observed, suggesting that, while the tool offers a promising foundation for enhancing efficiency in less complex projects, its applicability in complex and diverse contexts still presents challenges. Therefore, it is concluded that the use of GLMs like GPT-4 in the automatic generation of code represents a valuable auxiliary tool for startups in software development. However, the need for manual adjustments in the code and the assurance of full adherence to recommended software architecture practices reinforce the idea that such technologies should be seen as complementary to human work and not as complete substitutes. For future work, it is recommended to deepen the investigation of GLMs specialized in code generation and to expand the experiments to encompass a wider range of programming languages and frameworks, aiming to maximize the applicability and effectiveness of this innovative approach.
  • Imagem de Miniatura
    Item
    Como a (in)felicidade impacta nos engenheiros de software em ambientes ágeis?
    (2019-12-04) Amorim, Luís Felipe Cavalcanti de; Marinho, Marcelo Luiz Monteiro; http://lattes.cnpq.br/3362360567612060; http://lattes.cnpq.br/6498416955849459
    Given a scenario where IT organizations are increasing the use of agile practices, which is based on a people-centered culture along software development process, it is important to understand the social and human factors linked to those individuals, such as happiness and unhappiness and how these factors impact on this kind of environment. Therefore, 5 case-studies were developed inside agile projects, in a company that values innovation, aiming to identify how (un)happiness impacts on software engineers in agile environments. According to the answers gathered from 67 participants through a survey and using a cross-analysis, (un)happiness characteristics were identified as anxiety and frustration on younger respondents and unhappy ones, and high satisfaction and collaboration on happier ones.
  • Imagem de Miniatura
    Item
    Relações entre as personalidades e o clima de trabalho de equipes ágeis de desenvolvimento de software
    (2021-12-09) Teixeira, Marcus Vinícius Ferreira; Sampaio, Suzana Cândido de Barros; http://lattes.cnpq.br/0066131495297081; http://lattes.cnpq.br/8422770381149615
    The modernization of software development processes on the last decades has been showing preference for the adoption of agile development metodologies. Those metodologies also consider important the quality of the interactions between the team members, and use concepts such as team climate and team success. There are already tools that can be used to analyse individual characteristics of developers and how they behave, but the literature still lacks papers that analyse different personality compositions and how those may affect the perception of team success on agile software development teams.With that in mind, it is possible to try to predict how team members relations will work and use this knowledge to build agile software development teams, aiming at maximizing the quality of the members’ interactions. This paper aims at analysing the relations between MBTI (Myers Briggs Type Indicator) personalities and its effects on the well being of the team members, using the concept of Team Success. To do so, an exploratory literature research was conducted to find out which would be the best metrics and analyses that should be used. After that, a real world dataset was created through surveys. This data was then used to analyse the relations between the members personalities, team compositions and Team Success. The results shows significant correlations between personality diversity and Team Success, and also between specific personality traits and the Team Success.
  • Imagem de Miniatura
    Item
    Aplicação de métodos ágeis em desenvolvimento global de software
    (2021-07-22) Alves, Annelyelthon Ferreira; Marinho, Marcelo Luiz Monteiro; http://lattes.cnpq.br/3362360567612060; http://lattes.cnpq.br/8410367808658970
    Global Software Development (GSD) continues to grow and is rapidly becoming a standard, fundamentally different from local Software Engineering development. Withal, agile software development (ASD) has become an appealing choice for companies attempting to improve their performance although its methods were originally designed for small and individual teams. The current literature does not provide a cohesive picture of how the agile practices are taken into account in the distributed nature of software development: how to do it, who, and what works in practice. This study aims to highlight how ASD practices are applied in the context of GSD in order to develop a set of techniques that can be relevant in both research and practice. To answer the research question, ”how are agile practices adopted in agile global software development teams?” We conducted a systematic literature review and a survey with practitioners of the ASD and GSD literature. A synthesis of solutions found in seventysix studies provided 48 distinct practices that organizations can implement, including ”collaboration among teams”, ”agile architecture”, ”coaching”, ”system demo” and ”test automation”. These implementable practices go some way towards providing solutions to manage GSD teams, and thus to embrace agility.
  • Imagem de Miniatura
    Item
    Engenharia de requisitos ágil: extensão de uma revisão sistemática da literatura
    (2021-02-24) Menezes, Renato Vieira de; Sampaio, Suzana Cândido de Barros; http://lattes.cnpq.br/0066131495297081; http://lattes.cnpq.br/5357825214092807
    The recent daytoday reality of software engineers is determined by the practice of agile methods, motivating frequent questions in the community about how to adopt a more flexible and dynamic Requirements Engineering (RE), distinct from the traditional model. Agile methods do not have rules established for a single definition of how Requirements Engineering activities should be carried out. Exploring the advances of agile RE in diverse and challenging environments makes it suitable. Therefore, the objective of this Course Conclusion Paper (CCP) is to identify and understand the current scenario of the variety of use of practices / techniques that compose such activities, the important challenges and lessons learned. An extension of a systematic literature review study was conducted to carry out this analysis and the evidence is synthesized from sources published between 2017 and 2020. In addition to verifying, describing and directing the research regarding Agile Requirements Engineering, the work delivers a compiled of practices, observing the different contexts of projects and organizations.
  • Imagem de Miniatura
    Item
    Scaling agile methods in global software projects: Is it possible with SAFe?
    (2020-09-03) Figueredo, Rafael da Camara; Marinho, Marcelo Luiz Monteiro; http://lattes.cnpq.br/3362360567612060; http://lattes.cnpq.br/1583800948677235
    Global Software Development (GSD) continues to grow substantially and it is fast becoming the norm and fundamentally different from local Software Engineering development. Withal, agile software development (ASD) have become an appealing choice for companies attempting to improve their performance although its methods were originally designed for small and individual teams. Despite it, agile practices in Global Software Development (AGSD) has become the main option to execute projects in distributed environments due to its benefits of better communication and coordination, improved productivity, and quality. However, while organizations continue to grow, the complexity and challenges arise fast, many companies are dealing with large-scale global projects and looking for how to adapt agile in those scenarios and scaling agile practices to coordinate them. The current literature does not provide a cohesive picture of how the agile practices are taken into account in the distributed nature, and also how to scale than in large-scale AGSD projects. It lacks data on how to use agile and also scale it in GSD settings, which agile and scaling agile practices work in Global Software Development (GSD) teams and who are supposed to apply them. Based on this literature gap, this study aims to highlight how ASD practices are applied in the context of GSD to develop a set of techniques that can be relevant in both research and practice. Furthermore, it also aims to highlight a set of agile practices that are used by GSD teams to scale agile and map those practices with Scaled Agile Framework (SAFe). To answer both of the research questions, first: “How agile practices are adopted in agile global software development teams?”, second: “Which practices reported in AGSD literature embrace practices from SAFe when adopting scale agile development?”. It was conducted a systematic literature review of the ASD, GSD, and AGSD literature. A synthesis of solutions found in seventy-six studies provided 48 distinct agile practices that organizations can implement in globally distributed settings. Furthermore, from those 48 agile practices, it was possible to identify 18 scaling agile practices embrace SAFe practices. These implementable practices go some way towards providing solutions to manage GSD with agility, while the linked SAFe practices provide guidelines for better scale agile in large-scale global projects.
  • Imagem de Miniatura
    Item
    Como comunidades de práticas apoiam o desenvolvimento ágil em larga escala?
    (2022-06-02) Monte, Iury Tavares do; Marinho, Marcelo Luiz Monteiro; Araujo, Carlos Julian Menezes; http://lattes.cnpq.br/3156174527107999; http://lattes.cnpq.br/3362360567612060; http://lattes.cnpq.br/1840503626525287
    Agile software development has become an attractive option for companies trying to improve their performance, although their methods were originally designed for small and individual teams. The current literature does not provide a cohesive image of how agile methods are staggered into the nature of large and often distributed software development. Some studies claim that Practice Communities (CoPs) may be an important part of a successful adoption of agile practices, especially in large organizations. CoPs are groups of experts who share a common interest or topic and want to collectively deepen their knowledge. This study aims to highlight how CoPs are applied and used to promote and scale agile methods in large projects. To answer the research question, have been used to support the large-scale agile development teams as practical communities? On a large scale and “Practice Communities”. Thus, a synthesis of solutions found in twenty -one has provided 13 distinct categories that organizations can implement, including “team coordination”, “Knowledge Sharing”, “Open Community”.