Mívian M. Ferreira, Diego Gonçalves, Mariza Bigonha, Kecia Ferreira
Mining software repositories has been the basis of many studies on software engineering. Many of these works rely on commits’ data extracted since commit is the basic unit of information about activities performed on the projects. However, not knowing the characteristics of commits may introduce biases and threats in studies that consider commits’ data. This work presents an empirical study to characterize commits in terms of four aspects: the size of commits in the total number of files; the size of commits in the number of source-code files, the size of commits by category; and the time interval of commits performed by contributors. We analyzed 1M commits from the 24 most popular and active Java-based projects hosted on GitHub. The main findings of this work show that: the size of commits follows a heavy-tailed distribution; most commits involve one to 10 files; most commits affect one to four source-code files; the commits involving hundreds of files not only refer to merge or management activities; the distribution of the time intervals is approximately a Normal distribution, i.e., the distribution tends to be symmetric, and the mean is representative; in the average, a developer proceed a commit every eight hours. The results of this study should be considered by researchers in empirical works to avoid biases when analyzing commits’ data. Besides, the results provide information that practitioners may apply to improve the management and the planning of software activities.
{"title":"Characterizing Commits in Open-Source Software","authors":"Mívian M. Ferreira, Diego Gonçalves, Mariza Bigonha, Kecia Ferreira","doi":"10.1145/3571473.3571508","DOIUrl":"https://doi.org/10.1145/3571473.3571508","url":null,"abstract":"Mining software repositories has been the basis of many studies on software engineering. Many of these works rely on commits’ data extracted since commit is the basic unit of information about activities performed on the projects. However, not knowing the characteristics of commits may introduce biases and threats in studies that consider commits’ data. This work presents an empirical study to characterize commits in terms of four aspects: the size of commits in the total number of files; the size of commits in the number of source-code files, the size of commits by category; and the time interval of commits performed by contributors. We analyzed 1M commits from the 24 most popular and active Java-based projects hosted on GitHub. The main findings of this work show that: the size of commits follows a heavy-tailed distribution; most commits involve one to 10 files; most commits affect one to four source-code files; the commits involving hundreds of files not only refer to merge or management activities; the distribution of the time intervals is approximately a Normal distribution, i.e., the distribution tends to be symmetric, and the mean is representative; in the average, a developer proceed a commit every eight hours. The results of this study should be considered by researchers in empirical works to avoid biases when analyzing commits’ data. Besides, the results provide information that practitioners may apply to improve the management and the planning of software activities.","PeriodicalId":440784,"journal":{"name":"Proceedings of the XXI Brazilian Symposium on Software Quality","volume":"14 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130233591","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
In a current application development scenario in different environments, technologies and contexts, such as IoT, Blockchain, Machine Learning and Cloud Computing, there is a need for particular solutions for domain-specific software development processes. The proper definition of software processes requires understanding the involved teams and organization’s particularities and specialized technical knowledge in Software Engineering. Although it is an essential part of Software Engineering, many university curricula do not dedicate as much effort to teach software processes, focusing more on the basic principles of Software Engineering, such as requirements, architecture and programming languages. Another important aspect of software processes is modeling. The modeling of a software process provides a basis for managing, automating and supporting the software process improvement. In this context, teaching software process modeling becomes challenging, mainly due to the great emphasis on theory and few practices. This work presents an experience report teaching the definition and modeling of software processes in different domains. We applied in the discipline of software processes a practice for defining and modeling processes in various application domains, such as: IoT, cloud, mobile, critical systems, self-adaptive systems and games. The processes were modeled in the Eclipse Process Framework (EPF) Composer tool based on references from the literature for each domain. In the end, we evaluated the process modeling practice with the students. We concluded that the modeling tool and the maturity in the domain are essential for the good performance of the process.
在不同环境、技术和背景(如物联网、区块链、机器学习和云计算)的当前应用程序开发场景中,需要针对特定领域的软件开发过程提供特定的解决方案。软件过程的正确定义需要理解所涉及的团队和组织的特性以及软件工程中的专业技术知识。虽然它是软件工程的重要组成部分,但许多大学课程并没有投入那么多的精力来教授软件过程,而是更多地关注于软件工程的基本原则,例如需求、体系结构和编程语言。软件过程的另一个重要方面是建模。软件过程的建模为管理、自动化和支持软件过程改进提供了基础。在这种背景下,教学软件过程建模变得具有挑战性,主要是由于理论的重视和实践的少。这项工作提出了一个经验报告,教授不同领域的软件过程的定义和建模。我们在软件过程学科中应用了在各种应用领域定义和建模过程的实践,例如:物联网,云,移动,关键系统,自适应系统和游戏。在Eclipse Process Framework (EPF) Composer工具中,根据每个领域的文献参考对流程进行建模。最后,我们对学生的过程建模实践进行了评价。我们得出结论,建模工具和领域中的成熟度对于过程的良好性能是必不可少的。
{"title":"Teaching software processes from different application domains","authors":"C. Bezerra, E. Coutinho","doi":"10.1145/3571473.3571488","DOIUrl":"https://doi.org/10.1145/3571473.3571488","url":null,"abstract":"In a current application development scenario in different environments, technologies and contexts, such as IoT, Blockchain, Machine Learning and Cloud Computing, there is a need for particular solutions for domain-specific software development processes. The proper definition of software processes requires understanding the involved teams and organization’s particularities and specialized technical knowledge in Software Engineering. Although it is an essential part of Software Engineering, many university curricula do not dedicate as much effort to teach software processes, focusing more on the basic principles of Software Engineering, such as requirements, architecture and programming languages. Another important aspect of software processes is modeling. The modeling of a software process provides a basis for managing, automating and supporting the software process improvement. In this context, teaching software process modeling becomes challenging, mainly due to the great emphasis on theory and few practices. This work presents an experience report teaching the definition and modeling of software processes in different domains. We applied in the discipline of software processes a practice for defining and modeling processes in various application domains, such as: IoT, cloud, mobile, critical systems, self-adaptive systems and games. The processes were modeled in the Eclipse Process Framework (EPF) Composer tool based on references from the literature for each domain. In the end, we evaluated the process modeling practice with the students. We concluded that the modeling tool and the maturity in the domain are essential for the good performance of the process.","PeriodicalId":440784,"journal":{"name":"Proceedings of the XXI Brazilian Symposium on Software Quality","volume":"15 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133965006","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
R. Lima, Marcelo Santana Costa, A. Oran, C. França
Background: Considering the required speed of organizational transitions to keep software development competitive, transitions based on a trial-and-error approach are less and less acceptable. Even so, due to the lack of a systematic process and knowledge capable of guiding the transition of traditional teams to self-managed teams (SMT) companies have faced difficulties in completing this mission, becoming dependent on individual efforts with unpredictable results. Objective: This work aims to analyze available scientific publications in order to characterize the critical factors related to the transition from traditional teams to SMT in a software development context. Method: We used the Scopus scientific database to conduct a Systematic Literature Review on its available publications in the last 5 years. Results: A total of 14 factors capable of boosting or hindering the team transition toward SMT were labeled into 6 interdependent perspectives through analysis of the evidence provided by 28 selected publications. Conclusion: Our findings show that this transition cannot be seen as an isolated process with immediate results and that there is still much to investigate about the transition of traditional teams to SMT in the software development industry.
{"title":"Factors that Boost and Hinder the Transition from Traditional to Self-managed Teams: A Systematic Literature Review","authors":"R. Lima, Marcelo Santana Costa, A. Oran, C. França","doi":"10.1145/3571473.3571489","DOIUrl":"https://doi.org/10.1145/3571473.3571489","url":null,"abstract":"Background: Considering the required speed of organizational transitions to keep software development competitive, transitions based on a trial-and-error approach are less and less acceptable. Even so, due to the lack of a systematic process and knowledge capable of guiding the transition of traditional teams to self-managed teams (SMT) companies have faced difficulties in completing this mission, becoming dependent on individual efforts with unpredictable results. Objective: This work aims to analyze available scientific publications in order to characterize the critical factors related to the transition from traditional teams to SMT in a software development context. Method: We used the Scopus scientific database to conduct a Systematic Literature Review on its available publications in the last 5 years. Results: A total of 14 factors capable of boosting or hindering the team transition toward SMT were labeled into 6 interdependent perspectives through analysis of the evidence provided by 28 selected publications. Conclusion: Our findings show that this transition cannot be seen as an isolated process with immediate results and that there is still much to investigate about the transition of traditional teams to SMT in the software development industry.","PeriodicalId":440784,"journal":{"name":"Proceedings of the XXI Brazilian Symposium on Software Quality","volume":"3 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122694666","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Sergio Ricardo De Oliveira Cavalcante, B. Gadelha, E. Oliveira, Igor Steinmacher, W. Nakamura, T. Conte
Background - The main assets of software organizations are their development teams. Several factors impact job satisfaction, such as salary, workload, and autonomy; still, the software team relationship could impact one's job satisfaction. Objective - We aim to understand how software team formation strategy impacts job satisfaction. Method - We analyzed two software team formation strategies: (i) team members selected by a leader, and (ii) team members self-selection. We administered a survey to 66 employees of an R&D organization, comparing the team formation strategies. Results - Our results indicated that, in this context, the self-selection team formation strategy positively impacted job satisfaction and influenced good team cohesion and performance. Qualitative results showed that this formation strategy assembled teams with a good relationship among their members in which conflicts arose but were harmonically solved. Conclusion - This suggests that autonomy in the team formation stage would be good practice and could be more tested in the industry. These results may bring new evidence to practitioners about the benefits and drawbacks that self-selected teams may offer to the organization.
{"title":"Joy to the Work: How Does Software Team Formation Strategy Influence Job Satisfaction?","authors":"Sergio Ricardo De Oliveira Cavalcante, B. Gadelha, E. Oliveira, Igor Steinmacher, W. Nakamura, T. Conte","doi":"10.1145/3571473.3571506","DOIUrl":"https://doi.org/10.1145/3571473.3571506","url":null,"abstract":"Background - The main assets of software organizations are their development teams. Several factors impact job satisfaction, such as salary, workload, and autonomy; still, the software team relationship could impact one's job satisfaction. Objective - We aim to understand how software team formation strategy impacts job satisfaction. Method - We analyzed two software team formation strategies: (i) team members selected by a leader, and (ii) team members self-selection. We administered a survey to 66 employees of an R&D organization, comparing the team formation strategies. Results - Our results indicated that, in this context, the self-selection team formation strategy positively impacted job satisfaction and influenced good team cohesion and performance. Qualitative results showed that this formation strategy assembled teams with a good relationship among their members in which conflicts arose but were harmonically solved. Conclusion - This suggests that autonomy in the team formation stage would be good practice and could be more tested in the industry. These results may bring new evidence to practitioners about the benefits and drawbacks that self-selected teams may offer to the organization.","PeriodicalId":440784,"journal":{"name":"Proceedings of the XXI Brazilian Symposium on Software Quality","volume":"18 12","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"120903232","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Gabriel Gonçalves Moreira, S. Reinehr, A. Malucelli, Frederick M. C. van Amstel
Despite being the most used approach in teaching software testing in Brazil, the traditional teaching method might not simulate, facilitate or motivate the learning of the testing process and its activities. As a result, undergraduate students may not understand a basic testing process and its components, nor be motivated to learn about the content. One approach that can facilitate the teaching of the software testing process and promote student motivation is educational games. Although there are several educational games for teaching software testing, no game was foun on literature that addresses the entire testing process, with its roles, artifacts and activities. This work presents the development of an educational game to support and motivate the learning of a basic software testing process. The research method was Design Science Research. For the development of the game, several playtestings were carried out to verify if the new proposal was able to motivate and teach the proposed content. To evaluate the fulfillment of the research objectives, an experiment was performed with 16 participants, and it was possible to verify a gain of specific knowledge of the participants after the experience with the game. In addition, positive effects were observed on motivational aspects perceived by the players with the game for the learning of the themes involved.
{"title":"ProTesters: a board game for teaching the testing process","authors":"Gabriel Gonçalves Moreira, S. Reinehr, A. Malucelli, Frederick M. C. van Amstel","doi":"10.1145/3571473.3571503","DOIUrl":"https://doi.org/10.1145/3571473.3571503","url":null,"abstract":"Despite being the most used approach in teaching software testing in Brazil, the traditional teaching method might not simulate, facilitate or motivate the learning of the testing process and its activities. As a result, undergraduate students may not understand a basic testing process and its components, nor be motivated to learn about the content. One approach that can facilitate the teaching of the software testing process and promote student motivation is educational games. Although there are several educational games for teaching software testing, no game was foun on literature that addresses the entire testing process, with its roles, artifacts and activities. This work presents the development of an educational game to support and motivate the learning of a basic software testing process. The research method was Design Science Research. For the development of the game, several playtestings were carried out to verify if the new proposal was able to motivate and teach the proposed content. To evaluate the fulfillment of the research objectives, an experiment was performed with 16 participants, and it was possible to verify a gain of specific knowledge of the participants after the experience with the game. In addition, positive effects were observed on motivational aspects perceived by the players with the game for the learning of the themes involved.","PeriodicalId":440784,"journal":{"name":"Proceedings of the XXI Brazilian Symposium on Software Quality","volume":"56 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122560861","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Maria A. C. Meireles, S. Souza, J. C. Duarte, T. Conte, J. Maldonado
Context: Requirements Engineering (RE) is essential to software quality. Studies have shown that software engineers often make mistakes, such as insufficient or misunderstood requirements. Therefore, it is necessary to support all the RE phases, especially eliciting requirements. In this context, Design Thinking (DT) is commonly used to deal with these problems. DT aims at bringing quality to software development to achieve users’ needs. It has a set of techniques and methods that can help software engineers properly elicit requirements to achieve this goal. However, in the literature, there are several techniques and selecting an appropriate one is not a trivial task. Some approaches support the selection of techniques, including DTA4RE and Selection Universe. Objective: This paper aims to analyze the performance of these two approaches to selecting DT techniques in terms of accuracy. Method: We conducted a controlled experiment to obtain the data. We have applied quantitative and qualitative analysis to the data. Results: Regarding the quantitative results, we found no significant difference in accuracy between the Universe Selection approaches and the DTA4RE. Regarding the qualitative results, we found that grouping the techniques into categories presented by the Selection Universe allowed us to reduce the search time for the techniques from DT since the approach allowed us to associate the system features with the techniques that can be used. Conclusion: We found that the two approaches satisfactorily supported the selection of DT techniques for various requirements elicitation activities. In the participants’ perception, the selection universe was helpful because the approach is intuitive. Also, the categorization of techniques made it easier to find the appropriate techniques for the proposed scenarios.
{"title":"Evaluating Approaches to Selecting Design Thinking Techniques : Quantitative and Qualitative Analysis","authors":"Maria A. C. Meireles, S. Souza, J. C. Duarte, T. Conte, J. Maldonado","doi":"10.1145/3571473.3571482","DOIUrl":"https://doi.org/10.1145/3571473.3571482","url":null,"abstract":"Context: Requirements Engineering (RE) is essential to software quality. Studies have shown that software engineers often make mistakes, such as insufficient or misunderstood requirements. Therefore, it is necessary to support all the RE phases, especially eliciting requirements. In this context, Design Thinking (DT) is commonly used to deal with these problems. DT aims at bringing quality to software development to achieve users’ needs. It has a set of techniques and methods that can help software engineers properly elicit requirements to achieve this goal. However, in the literature, there are several techniques and selecting an appropriate one is not a trivial task. Some approaches support the selection of techniques, including DTA4RE and Selection Universe. Objective: This paper aims to analyze the performance of these two approaches to selecting DT techniques in terms of accuracy. Method: We conducted a controlled experiment to obtain the data. We have applied quantitative and qualitative analysis to the data. Results: Regarding the quantitative results, we found no significant difference in accuracy between the Universe Selection approaches and the DTA4RE. Regarding the qualitative results, we found that grouping the techniques into categories presented by the Selection Universe allowed us to reduce the search time for the techniques from DT since the approach allowed us to associate the system features with the techniques that can be used. Conclusion: We found that the two approaches satisfactorily supported the selection of DT techniques for various requirements elicitation activities. In the participants’ perception, the selection universe was helpful because the approach is intuitive. Also, the categorization of techniques made it easier to find the appropriate techniques for the proposed scenarios.","PeriodicalId":440784,"journal":{"name":"Proceedings of the XXI Brazilian Symposium on Software Quality","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131693517","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Humberto Damasceno, Carla Bezerra, E. Coutinho, Ivan Machado
Test smells represent a set of poorly designed tests, which can harm a test code’s maintenance and quality criteria. Although fundamental steps to understand test smells have been investigated, there is still an evident lack of studies evaluating the impact of test smell refactoring from internal quality attributes, such as size, cohesion, coupling, and complexity. In addition, the literature still lacks research that addresses the difficulties developers encounter during test smell refactoring. The paper investigates the impact of test smell refactoring from developers’ perspectives and internal quality attributes. We investigated the perceptions and difficulties encountered by 20 developers while removing 5 types of test smells in 4 open-source projects over two months. Through this experiment, we analyzed: (i) the impact that test smell refactoring has on internal quality attributes; (ii) developers’ perception of test smells as actual problems within a software system; and (iii) main difficulties encountered by developers during test smell refactoring. Our findings can help developers design a prioritization scheme for test smell refactoring and make them aware of the real benefits of test smell refactoring.
{"title":"Analyzing Test Smells Refactoring from a Developers Perspective","authors":"Humberto Damasceno, Carla Bezerra, E. Coutinho, Ivan Machado","doi":"10.1145/3571473.3571487","DOIUrl":"https://doi.org/10.1145/3571473.3571487","url":null,"abstract":"Test smells represent a set of poorly designed tests, which can harm a test code’s maintenance and quality criteria. Although fundamental steps to understand test smells have been investigated, there is still an evident lack of studies evaluating the impact of test smell refactoring from internal quality attributes, such as size, cohesion, coupling, and complexity. In addition, the literature still lacks research that addresses the difficulties developers encounter during test smell refactoring. The paper investigates the impact of test smell refactoring from developers’ perspectives and internal quality attributes. We investigated the perceptions and difficulties encountered by 20 developers while removing 5 types of test smells in 4 open-source projects over two months. Through this experiment, we analyzed: (i) the impact that test smell refactoring has on internal quality attributes; (ii) developers’ perception of test smells as actual problems within a software system; and (iii) main difficulties encountered by developers during test smell refactoring. Our findings can help developers design a prioritization scheme for test smell refactoring and make them aware of the real benefits of test smell refactoring.","PeriodicalId":440784,"journal":{"name":"Proceedings of the XXI Brazilian Symposium on Software Quality","volume":"23 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130373026","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Joseane O. V. Paiva, Bosco Borges, Paulo Duarte, Ismayle S. Santos, Rossana M. C. Andrade, Valéria Lelli
System redesign is a software modernization strategy that consists of restructuring a solution to provide a new graphical interface, improving the user experience, and using modern technologies while preserving relevant system functionalities. When it comes to enterprise applications, the challenge for redesign becomes greater. It is necessary to ensure that the system can operate according to existing business rules and that its operation will not compromise the integrity of the enterprise. This paper presents a process for redesigning systems to improve the user experience. We also describe a case study where we applied this process to redesign an enterprise application and share some lessons learned during the application redesign.
{"title":"PRO-UX: System Redesign Process for Improving the UX","authors":"Joseane O. V. Paiva, Bosco Borges, Paulo Duarte, Ismayle S. Santos, Rossana M. C. Andrade, Valéria Lelli","doi":"10.1145/3571473.3571501","DOIUrl":"https://doi.org/10.1145/3571473.3571501","url":null,"abstract":"System redesign is a software modernization strategy that consists of restructuring a solution to provide a new graphical interface, improving the user experience, and using modern technologies while preserving relevant system functionalities. When it comes to enterprise applications, the challenge for redesign becomes greater. It is necessary to ensure that the system can operate according to existing business rules and that its operation will not compromise the integrity of the enterprise. This paper presents a process for redesigning systems to improve the user experience. We also describe a case study where we applied this process to redesign an enterprise application and share some lessons learned during the application redesign.","PeriodicalId":440784,"journal":{"name":"Proceedings of the XXI Brazilian Symposium on Software Quality","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123461584","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
“Talk is cheap. Show me the code”. Using real code examples is a way of engaging students while teaching Software Engineering. By applying this technique, this paper describes the experience of introducing good development practices in the course “Programming Techniques II”, offered for students of the Bachelor in Computer Science of the Institute of Mathematics and Statistics of the University of São Paulo (IME-USP). At the beginning of the course, students received two exercises: in the first, each student should present a code snippet that they consider well written; in the second, a code snippet that they consider problematic. The snippets were then analyzed in the classroom – with active participation of the students – to map good and bad practices. This process was repeated until reaching theoretical saturation. In the end, the discussions converged on many techniques used to write clean code, thus validating the use of a constructive approach to teach good development practices.
{"title":"Using Real Code to Teach Good Programming Practices","authors":"R. Durelli, Renato Cordeiro, A. Goldman","doi":"10.1145/3571473.3571504","DOIUrl":"https://doi.org/10.1145/3571473.3571504","url":null,"abstract":"“Talk is cheap. Show me the code”. Using real code examples is a way of engaging students while teaching Software Engineering. By applying this technique, this paper describes the experience of introducing good development practices in the course “Programming Techniques II”, offered for students of the Bachelor in Computer Science of the Institute of Mathematics and Statistics of the University of São Paulo (IME-USP). At the beginning of the course, students received two exercises: in the first, each student should present a code snippet that they consider well written; in the second, a code snippet that they consider problematic. The snippets were then analyzed in the classroom – with active participation of the students – to map good and bad practices. This process was repeated until reaching theoretical saturation. In the end, the discussions converged on many techniques used to write clean code, thus validating the use of a constructive approach to teach good development practices.","PeriodicalId":440784,"journal":{"name":"Proceedings of the XXI Brazilian Symposium on Software Quality","volume":"96 3 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125984510","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
A. B. Marques, Alex Felipe Ferreira Costa, I. Santos, Rossana Andrade
Considering usability aspects in the early phases of software development can avoid rework to solve usability problems identified late. We can adopt Requirements Engineering methods to identify usability requirements that explore the end users’ perspectives and usage preferences. However, usability evaluation methods are more commonly adopted in the industry than early usability methods to define usability requirements. Recently, the USARP method was proposed for usability requirements elicitation and specification. USARP suggests the combined use of personas, user stories, and usability guidelines. This paper aims to report a case study on the USARP adoption by a remote agile team in the industry. USARP supports the team in defining UI/UX requirements for a web management tool. A survey enables us to investigate the teams’ perception of the usefulness of the USARP. The results showed that USARP improved the team’s effectiveness in usability requirements elicitation. USARP enabled identifying 120 UI/UX aspects related to system functionalities. We expect this experience report can contribute to disseminating early usability methods in industry practice.
{"title":"Enriching user stories with usability features in a remote agile project: a case study","authors":"A. B. Marques, Alex Felipe Ferreira Costa, I. Santos, Rossana Andrade","doi":"10.1145/3571473.3571496","DOIUrl":"https://doi.org/10.1145/3571473.3571496","url":null,"abstract":"Considering usability aspects in the early phases of software development can avoid rework to solve usability problems identified late. We can adopt Requirements Engineering methods to identify usability requirements that explore the end users’ perspectives and usage preferences. However, usability evaluation methods are more commonly adopted in the industry than early usability methods to define usability requirements. Recently, the USARP method was proposed for usability requirements elicitation and specification. USARP suggests the combined use of personas, user stories, and usability guidelines. This paper aims to report a case study on the USARP adoption by a remote agile team in the industry. USARP supports the team in defining UI/UX requirements for a web management tool. A survey enables us to investigate the teams’ perception of the usefulness of the USARP. The results showed that USARP improved the team’s effectiveness in usability requirements elicitation. USARP enabled identifying 120 UI/UX aspects related to system functionalities. We expect this experience report can contribute to disseminating early usability methods in industry practice.","PeriodicalId":440784,"journal":{"name":"Proceedings of the XXI Brazilian Symposium on Software Quality","volume":"10 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121717910","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}