SEAug 28, 2024
An Empirical Study on Self-correcting Large Language Models for Data Science Code GenerationThai Tang Quoc, Duc Ha Minh, Tho Quan Thanh et al.
Large Language Models (LLMs) have recently advanced many applications on software engineering tasks, particularly the potential for code generation. Among contemporary challenges, code generated by LLMs often suffers from inaccuracies and hallucinations, requiring external inputs to correct. One recent strategy to fix these issues is to refine the code generated from LLMs using the input from the model itself (self-augmented). In this work, we proposed a novel method, namely CoT-SelfEvolve. CoT-SelfEvolve iteratively and automatically refines code through a self-correcting process, guided by a chain of thought constructed from real-world programming problem feedback. Focusing on data science code, including Python libraries such as NumPy and Pandas, our evaluations on the DS-1000 dataset demonstrate that CoT-SelfEvolve significantly outperforms existing models in solving complex problems. The framework shows substantial improvements in both initial code generation and subsequent iterations, with the model's accuracy increasing significantly with each additional iteration. This highlights the effectiveness of using chain-of-thought prompting to address complexities revealed by program executor traceback error messages. We also discuss how CoT-SelfEvolve can be integrated into continuous software engineering environments, providing a practical solution for improving LLM-based code generation.
42.0CYMar 12
The Landscape of Generative AI in Information Systems: A Synthesis of Secondary Reviews and Research AgendasAleksander Jarzębowicz, Adam Przybyłek, Jacinto Estima et al.
As organizations grapple with the rapid adoption of Generative AI (GenAI), this study synthesizes the state of knowledge through a systematic literature review of secondary studies and research agendas. Analyzing 28 papers published since 2023, we find that while GenAI offers transformative potential for productivity and innovation, its adoption is constrained by multiple interrelated challenges, including technical unreliability (hallucinations, performance drift), societal-ethical risks (bias, misuse, skill erosion), and a systemic governance vacuum (privacy, accountability, intellectual property). Interpreted through a socio-technical lens, these findings reveal a persistent misalignment between GenAI's fast-evolving technical subsystem and the slower-adapting social subsystem, positioning IS research as critical for achieving joint optimization. To bridge this gap, we discuss a research agenda that reorients IS scholarship from analyzing impacts toward actively shaping the co-evolution of technical capabilities with organizational procedures, societal values, and regulatory institutions--emphasizing hybrid human--AI ensembles, situated validation, design principles for probabilistic systems, and adaptive governance.
SEMar 14, 2021Code
On the combination of static analysis for software security assessment -- a case study of an open-source e-government projectAnh Nguyen-Duc, Manh Viet Do, Quan Luong Hong et al.
Static Application Security Testing (SAST) is a popular quality assurance technique in software engineering. However, integrating SAST tools into industry-level product development and security assessment poses various technical and managerial challenges. In this work, we reported a longitudinal case study of adopting SAST as a part of a human-driven security assessment for an open-source e-government project. We described how SASTs are selected, evaluated, and combined into a novel approach for software security assessment. The approach was preliminarily evaluated using semi-structured interviews. Our result shows that (1) while some SAST tools out-perform others, it is possible to achieve better performance by combining more than one SAST tools and (2) SAST tools should be used towards a practical performance and in the combination with triangulated approaches for human-driven vulnerability assessment in real-world projects.
CYAug 16, 2018Code
Do software firms collaborate or compete? A model of coopetition in community-initiated OSS projectsAnh Nguyen-Duc, Daniela S. Cruzes, Snarby Terje et al.
[Background] An increasing number of commercial firms are participating in Open Source Software (OSS) projects to reduce their development cost and increase technical innovativeness. When collaborating with other firms whose sought values are conflicts of interests, firms may behave uncooperatively leading to harmful impacts on the common goal. [Aim] This study explores how software firms both collaborate and compete in OSS projects. [Method] We adopted a mixed research method on three OSS projects. [Result] We found that commercial firms participating in community-initiated OSS projects collaborate in various ways across the organizational boundaries. While most of firms contribute little, a small number of firms that are very active and account for large proportions of contributions. We proposed a conceptual model to explain for coopetition among software firms in OSS projects. The model shows two aspects of coopetition can be managed at the same time based on firm gatekeepers. [Conclusion] Firms need to operationalize their coopetition strategies to maximize value gained from participating in OSS projects.
SEDec 2, 2017Code
The impact of software complexity on cost and quality - A comparative analysis between Open source and proprietary softwareAnh Nguyen-Duc
Early prediction of software quality is important for better software planning and controlling. In early development phases, design complexity metrics are considered as useful indicators of software testing effort and some quality attributes. Although many studies investigate the relationship between design complexity and cost and quality, it is unclear what we have learned beyond the scope of individual studies. This paper presented a systematic review on the influence of software complexity metrics on quality attributes. We aggregated Spearman correlation coefficients from 59 different data sets from 57 primary studies by a tailored meta-analysis approach. We found that fault proneness and maintainability are most frequently investigated attributes. Chidamber and Kemerer metric suite is most frequently used but not all of them are good quality attribute indicators. Moreover, the impact of these metrics is not different in proprietary and open source projects. The result provides some implications for building quality model across project type
SEFeb 10, 2022
Work-from-home and its implication for project management, resilience and innovation -- a global survey on software companiesAnh Nguyen-Duc, Dron Khanna, Des Greer et al.
[Context] The COVID-19 pandemic has had a disruptive impact on how people work and collaborate across all global economic sectors, including the software business. While remote working is not new for software engineers, forced Work-from-home situations to come with both constraints, limitations, and opportunities for individuals, software teams and software companies. As the "new normal" for working might be based on the current state of Work From Home (WFH), it is useful to understand what has happened and learn from that. [Objective] The goal of this study is to gain insights on how their WFH environment impacts software projects and software companies. We are also interested in understanding if the impact differs between software startups and established companies. [Method] We conducted a global-scale, cross-sectional survey during spring and summer 2021. Our results are based on quantitative and qualitative analysis of 297 valid responses. [Results] We observed a mixed perception of the impact of WFH on software project management, resilience, and innovation. Certain patterns on WFH, control and coordination mechanisms and collaborative tools are observed globally. We find that team, agility and leadership are the three most important factors for achieving resilience during the pandemic. Although startups do not perceive the impact of WFH differently, there is a difference between engineers who work in a small team context and those who work in a large team context. [Conclusion] The result suggests a contingency approach in studying and improving WFH practices and environment in the future software industry.
SEMar 14, 2021
The entrepreneurial logic of startup software development: A study of 40 software startupsAnh Nguyen-Duc, Kai-Kristian Kemell, Pekka Abrahamsson
Context: Software startups are an essential source of innovation and software-intensive products. The need to understand product development in startups and to provide relevant support are highlighted in software research. While state-of-the-art literature reveals how startups develop their software, the reasons why they adopt these activities are underexplored. Objective: This study investigates the tactics behind software engineering (SE) activities by analyzing key engineering events during startup journeys. We explore how entrepreneurial mindsets may be associated with SE knowledge areas and with each startup case. Method: Our theoretical foundation is based on causation and effectuation models. We conducted semi-structured interviews with 40 software startups. We used two-round open coding and thematic analysis to describe and identify entrepreneurial software development patterns. Additionally, we calculated an effectuation index for each startup case. Results: We identified 621 events merged into 32 codes of entrepreneurial logic in SE from the sample. We found a systemic occurrence of the logic in all areas of SE activities. Minimum Viable Product (MVP), Technical Debt (TD), and Customer Involvement (CI) tend to be associated with effectual logic, while testing activities at different levels are associated with causal logic. The effectuation index revealed that startups are either effectuation-driven or mixed-logics-driven. Conclusions: Software startups fall into two types that differentiate between how traditional SE approaches may apply to them. Effectuation seems the most relevant and essential model for explaining and developing suitable SE practices for software startups.
SEFeb 11, 2021
Business Model Canvas Should Pay More Attention to the Software Startup TeamKai-Kristian Kemell, Atte Elonen, Mari Suoranta et al.
Business Model Canvas (BMC) is a tool widely used to describe startup business models. Despite the various business aspects described, BMC pays a little emphasis on team-related factors. The importance of team-related factors in software development has been acknowledged widely in literature. While not as extensively studied, the importance of teams in software startups is also known in both literature and among practitioners. In this paper, we propose potential changes to BMC to have the tool better reflect the importance of the team, especially in a software startup environment. Based on a literature review, we identify various components related to the team, which we then further support with empirical data. We do so by means of a qualitative case study of five startups.
SEFeb 11, 2021
Software Startup Practices -- Software Development in Startups through the Lens of the Essence Theory of Software EngineeringKai-Kristian Kemell, Ville Ravaska, Anh Nguyen-Duc et al.
Software startups continue to be important drivers of economy globally. As the initial investment required to found a new software company becomes smaller and smaller resulting from technological advances such as cloud technology, increasing numbers of new software startups are born. Typically, the main argument for studying software startups is that they differ from mature software organizations in various ways, thus making the findings of many existing studies not directly applicable to them. How, exactly, software startups really differ from other types of software organizations as an on-going debate. In this paper, we seek to better understand how software startups differ from mature software organizations in terms of development practices. Past studies have primarily studied method use, and in comparison, we take on a more atomic approach by focusing on practices. Utilizing the Essence Theory of Software Engineering as a framework, we split these practices into categories for analysis while simultaneously evaluating the suitability of the theory for the context of software startups. Based on the results, we propose changes to the Essence Theory of Software Engineering for it to better fit the startup context.
SENov 7, 2020
Software engineering for artificial intelligence and machine learning software: A systematic literature reviewElizamary Nascimento, Anh Nguyen-Duc, Ingrid Sundbø et al.
Artificial Intelligence (AI) or Machine Learning (ML) systems have been widely adopted as value propositions by companies in all industries in order to create or extend the services and products they offer. However, developing AI/ML systems has presented several engineering problems that are different from those that arise in, non-AI/ML software development. This study aims to investigate how software engineering (SE) has been applied in the development of AI/ML systems and identify challenges and practices that are applicable and determine whether they meet the needs of professionals. Also, we assessed whether these SE practices apply to different contexts, and in which areas they may be applicable. We conducted a systematic review of literature from 1990 to 2019 to (i) understand and summarize the current state of the art in this field and (ii) analyze its limitations and open challenges that will drive future research. Our results show these systems are developed on a lab context or a large company and followed a research-driven development process. The main challenges faced by professionals are in areas of testing, AI software quality, and data management. The contribution types of most of the proposed SE practices are guidelines, lessons learned, and tools.
SESep 24, 2018
The Essence Theory of Software Engineering - Large-Scale Classroom Experiences from 450+ Software Engineering BSc StudentsKai-Kristian Kemell, Anh Nguyen-Duc, Xiaofeng Wang et al.
Software Engineering as an industry is highly diverse in terms of development methods and practices. Practitioners employ a myriad of methods and tend to further tailor them by e.g. omitting some practices or rules. This diversity in development methods poses a challenge for software engineering education, creating a gap between education and industry. General theories such as the Essence Theory of Software Engineering can help bridge this gap by presenting software engineering students with higher-level frameworks upon which to build an understanding of software engineering methods and practical project work. In this paper, we study Essence in an educational setting to evaluate its usefulness for software engineering students while also investigating barriers to its adoption in this context. To this end, we observe 102 student teams utilize Essence in practical software engineering projects during a semester long, project-based course.
SESep 23, 2018
Gamifying the Escape from the Engineering Method Prison - An Innovative Board Game to Teach the Essence Theory to Future Project Managers and Software EngineersKai-Kristian Kemell, Juhani Risku, Arthur Evensen et al.
Software Engineering is an engineering discipline but lacks a solid theoretical foundation. One effort in remedying this situation has been the SEMAT Essence specification. Essence consists of a language for modeling Software Engineering (SE) practices and methods and a kernel containing what its authors describe as being elements that are present in every software development project. In practice, it is a method agnostic project management tool for SE Projects. Using the language of the specification, Essence can be used to model any software development method or practice. Thus, the specification can potentially be applied to any software development context, making it a powerful tool. However, due to the manual work and the learning process involved in modeling practices with Essence, its initial adoption can be tasking for development teams. Due to the importance of project management in SE projects, new project management tools such as Essence are valuable, and facilitating their adoption is consequently important. To tackle this issue in the case of Essence, we present a game-based approach to teaching the use Essence. In this paper, we gamify the learning process by means of an innovative board game. The game is empirically validated in a study involving students from the IT faculty of University of Jyväskylä (n=61). Based on the results, we report the effectiveness of the game-based approach to teaching both Essence and SE project work.
SEAug 16, 2018
From MVPs to pivots: a hypothesis-driven journey of two software startupsDron Khanna, Anh Nguyen-Duc, Xiaofeng Wang
Software startups have emerged as an interesting multiperspective research area. Inspired by Lean Startup, a startup journey can be viewed as a series of experiments that validate a set of business hypotheses an entrepreneurial team make explicitly or inexplicitly about their startup. It is little known about how startups evolve through business hypothesis testing. This study proposes a novel approach to look at the startup evolution as a Minimum Viable Product(MVP) creat- ing process. We identified relationships among business hypotheses and MVPs via ethnography and post-mortem analysis in two software star- tups. We observe that the relationship between hypotheses and MVPs is incomplete and non-linear in these two startups. We also find that entrepreneurs do learn from testing their hypotheses. However, there are hypotheses not tested by MVPs and vice versa, MVPs not related to any business hypothesis. The approach we proposed visualizes the flow of entrepreneurial knowledge across pivots via MVPs.
CYAug 14, 2018
Evaluation of team dynamic in Norwegian projects for IT studentsSalah Uddin Ahmed, Ingrid Sundbø, Jon Kvisli et al.
The need for teaching realistic software development in project courses has increased in a global scale. It has always been challenges in cooperating fast-changing software technologies, development methodologies and teamwork. Moreover, such project courses need to be designed in the connection to existing theoretical courses. We performed a large-scale research on student performance in Software Engineering projects in Norwegian universities. This paper investigates four aspects of team dynamics, which are team reflection, leadership, decision making and task assignment in order to improve student learning. Data was collected from student projects in 4 years at two universities. We found that some leader's characteristics are perceived differently for female and male leaders, including the perception of leaders as skilful workers or visionaries. Leadership is still a challenging aspect to teach, and assigned leadership is probably not the best way to learn. Students is are performing well in task review, however, needs support while performing task assignment. The result also suggests that task management to be done in more fine-grained levels. It is also important to maintain an open and active discussion to facilitate effective group decision makings.
SESep 22, 2017
Female Leadership in Software Projects: A Preliminary Result on Leadership Style and Project Context FactorsAnh Nguyen-Duc, Soudabeh Khodambashi, Jon Atle Gulla et al.
Women have been shown to be effective leaders in many team-based situations. However, it is also well-recognized that women are underrepresented in engineering and technology areas, which leads to wasted efforts and a lack of diversity in professional organizations. Although studies about gender and leadership are rich, research focusing on engineering-specific activities, are scarce. To react on this gap, we explored the experience of female leaders of software development projects and possible context factors that influence leadership effectiveness. The study was conducted as a longitudinal multiple case study. Data was collected from survey, interviews, observation and project reports. In this work, we reported some preliminary findings related to leadership style, team perception on leadership and team-task context factors. We found a strong correlation between perceived team leadership and task management. We also observed a potential association between human-oriented leading approach in low customer involvement scenarios and task-oriented leading approach in high customer involvement situations.