jehanweerasuriya/uni-ai-dataset huggingface dataset:
Software engineering across boundaries: student project in distributed collaboration
Authors: Conny Johansson, Yvonne Dittrich, Antti Juustila
Published in: IEEE Transactions on Professional Communication (1999-01-01)

Geographically distributed software development projects have been made possible by rapid developments primarily within the data communication area. A number of companies recognize that distributed collaboration has great potential for the near future. The article describes the empirical study of a cooperative student project located at two different geographical sites. The project was carried out at two universities: one in Sweden and one in Finland. The initial goals were to give the students the opportunity to learn about the practical aspects of cooperation between two geographically separate institutions and to study specific problems anticipated by the teachers with regard to communication, coordination, language, culture, requirements' handling, testing, and bug fixing. The article focuses on communication and coordination within the cooperative project, as these were identified as the most significant problem areas. We also thought that these areas were the most interesting and the ones most likely to lead to improvements. The article not only describes our findings but also gives hints about what to think about when running similar projects, both with respect to project related issues and teaching issues.
On the Reproducibility and Replicability of Deep Learning in Software Engineering
Authors: Chao Liu, Cuiyun Gao, Xin Xia, David Lo, John Grundy, Xiaohu Yang
Published in: ACM Transactions on Software Engineering and Methodology (2021-10-26)

Context: Deep learning (DL) techniques have gained significant popularity among software engineering (SE) researchers in recent years. This is because they can often solve many SE challenges without enormous manual feature engineering effort and complex domain knowledge. Objective: Although many DL studies have reported substantial advantages over other state-of-the-art models on effectiveness, they often ignore two factors: (1) reproducibility —whether the reported experimental results can be obtained by other researchers using authors’ artifacts (i.e., source code and datasets) with the same experimental setup; and (2) replicability —whether the reported experimental result can be obtained by other researchers using their re-implemented artifacts with a different experimental setup. We observed that DL studies commonly overlook these two factors and declare them as minor threats or leave them for future work. This is mainly due to high model complexity with many manually set parameters and the time-consuming optimization process, unlike classical supervised machine learning (ML) methods (e.g., random forest). This study aims to investigate the urgency and importance of reproducibility and replicability for DL studies on SE tasks. Method: In this study, we conducted a literature review on 147 DL studies recently published in 20 SE venues and 20 AI (Artificial Intelligence) venues to investigate these issues. We also re-ran four representative DL models in SE to investigate important factors that may strongly affect the reproducibility and replicability of a study. Results: Our statistics show the urgency of investigating these two factors in SE, where only 10.2% of the studies investigate any research question to show that their models can address at least one issue of replicability and/or reproducibility. More than 62.6% of the studies do not even share high-quality source code or complete data to support the reproducibility of their complex models. Meanwhile, our experimental results show the importance of reproducibility and replicability, where the reported performance of a DL model could not be reproduced for an unstable optimization process. Replicability could be substantially compromised if the model training is not convergent, or if performance is sensitive to the size of vocabulary and testing data. Conclusion: It is urgent for the SE community to provide a long-lasting link to a high-quality reproduction package, enhance DL-based solution stability and convergence, and avoid performance sensitivity on different sampled data.
Team Formation in Software Engineering: A Systematic Mapping Study
Authors: Alexandre Costa, Felipe Ramos, Mirko Perkusich, Emanuel Dantas, Ednaldo Dilorenzo, Ferdinandy Chagas, André Meireles, Danyllo Albuquerque, Luiz Silva, Hyggo Almeida, Ângelo Perkusich
Published in: IEEE Access (2020-01-01)

Context:Software team formation is an important project management activity. However, forming appropriate teams is a challenge for most of the companies.Objective:To analyze and synthesize the state of the art on the software team formation research. Additionally, we aim to organize the identified body of knowledge in software team formation as a taxonomy.Method:Using a Snowballing-based systematic mapping study, 51 primary studies, out of 2516, were identified and analyzed. We classified the studies considering the research methods used, their overall quality, and the characteristics of the formed teams and the proposed solutions.Results:The majority of the studies use search and optimization techniques in their approaches. Also, technical attributes are the most frequent type considered to build individuals’ profiles during the team formation process. Furthermore, we proposed a taxonomy on software team formation.Conclusion:There is a predominant use of search-based approaches that combine search and optimization techniques with technical attributes. However, the adoption of non-technical attributes as complementary information is a tendency. Regarding the research gaps, we highlight the level of subjectivity in software team formation and the lack of scalability of the proposed solutions.
No Silver Bullet: Software Engineering Reloaded
Authors: Steven Fraser, Dennis Mancl
Published in: IEEE Software (2008-01-01)

A celebratory panel took place at the 22nd International Conference on object-oriented programming, systems, languages, and applications in Montreal. The occasion was the 20th anniversary of Fred Brooks' paper "no silver bullet: essence and accidents of software engineering." Fred suggested that useful solutions must address inherent complexity observing that object-oriented techniques have come closest to achieving this goal. David described a "silver bullet" as a technique that requires no training or experience to apply a silver bullet should find its mark without aim. Software engineering as a discipline has expanded significantly, both in terms of system complexity and the community's global extent. "no silver bullet" continues to be both an enjoyable must-read and an influential reference. People use languages without the ideas, so the object community still has much to do. It is nice to know that, when all else fails us, we have an innate decision-making tool to fall back on.
Copiloting the future: How generative AI transforms Software Engineering
Authors: Leonardo Banh, Florian Holldack, Gero Strobel
Published in: Information and Software Technology (2025-04-06)

Context With rapid technological advancements, artificial intelligence (AI) has become integral to various sectors. Generative AI (GenAI) tools like ChatGPT or GitHub Copilot, with their unique content creation capabilities, pose transformative potential in Software Engineering by offering new ways to optimize software development processes. However, the integration into current processes also presents challenges that require a sociotechnical analysis to effectively realize GenAI's potential. Objective This study investigates how GenAI can be leveraged in the domain of Software Engineering, exploring its action potentials and challenges to help businesses and developers optimize the adoption of this technology in their workflows. Method We performed a qualitative study and collected data from expert interviews with eighteen professionals working in Software Engineering-related roles. Data analysis followed the principles of Grounded Theory to analyze how GenAI supports developers' goals, aligns with organizational practices, and facilitates integration into existing routines. Results The findings demonstrate several opportunities of GenAI in Software Engineering to increase productivity in development teams. However, several key barriers were also identified, that should be accounted for in successful integrations. We synthesize the results in a grounded conceptual framework for GenAI adoption in Software Engineering. Conclusions This study contributes to the discourse on GenAI in Software Engineering by providing a conceptual framework that aids in understanding the opportunities and challenges of GenAI. It offers practical guidelines for businesses and developers to enhance GenAI integration and lays the groundwork for future research on its impact in software development.
Operationalizing Human Values in Software Engineering: A Survey
Authors: Mojtaba Shahin, Waqar Hussain, Arif Nurwidyantoro, Harsha Perera, Rifat Ara Shams, John Grundy, Jon Whittle
Published in: IEEE Access (2022-01-01)

Human values (e.g., pleasure, privacy, and social justice) are what a person or a society considers important. Inability to address them in software-intensive systems can result in numerous undesired consequences (e.g., financial losses) for individuals and communities. Various solutions (e.g., methodologies, techniques) are developed to help &#x201C;operationalize values in software&#x201D;. The ultimate goal is to ensure building software (better) reflects and respects human values. In this survey, &#x201C;operationalizing values&#x201D; is referred to asthe process of identifying human values and translating them to accessible and concrete concepts so that they can be implemented, validated, verified, and measured in software. This paper provides a deep understanding of the research landscape on operationalizing values in software engineering, covering 51 primary studies. It also presents an analysis and taxonomy of 51 solutions for operationalizing values in software engineering. Our survey reveals that most solutions attempt to help operationalize values in the early phases (requirements and design) of the software development life cycle. However, the later phases (implementation and testing) and other aspects of software development (e.g., &#x201C;team organization&#x201D;) still need adequate consideration.We outline implications for research and practice and identify open issues and future research directions to advance this area.
Educating software engineering students to manage risk
Authors: Barry Boehm, Daniel Port
Published in:  (2001-07-01)

In 1996, USC switched its core two-semester software engineering course from a hypothetical-project, homework-and-exam course based on the Bloom taxonomy of educational objectives (knowledge, comprehension, application, analysis, synthesis, evaluation). The revised course is a real-client team-project course based on the CRESST model of learning objectives (content understanding, problem solving, collaboration, communication, and self-regulation). We used the CRESST cognitive demands analysis to determine the necessary student skills required for software risk management and the other major project activities, and have been refining the approach over the last four years of experience, including revised versions for one-semester undergraduate and graduate project course at Columbia. This paper summarizes our experiences in evolving the risk management aspects of the project course. These have helped us mature more general techniques such as risk-driven specifications, domain specific simplifier and complicator lists, and the schedule as an independent variable (SSIV) process model. The largely positive results in terms of review pass/fail rates, client evaluations, product adoption rates, and hiring manager feedback are summarized as well.
Software reuse
Authors: Charles W. Krueger
Published in: ACM Computing Surveys (1992-06-01)

Software reuse is the process of creating software systems from existing software rather than building software systems from scratch. This simple yet powerful vision was introduced in 1968. Software reuse has, however, failed to become a standard software engineering practice. In an attempt to understand why, researchers have renewed their interest in software reuse and in the obstacles to implementing it. This paper surveys the different approaches to software reuse found in the research literature. It uses a taxonomy to describe and compare the different approaches and make generalizations about the field of software reuse. The taxonomy characterizes each reuse approach in terms of its reusable artifacts and the way these artifacts are abstracted, selected, specialized, and integrated . Abstraction plays a central role in software reuse. Concise and expressive abstractions are essential if software artifacts are to be effectively reused. The effectiveness of a reuse technique can be evaluated in terms of cognitive distance —an intuitive gauge of the intellectual effort required to use the technique. Cognitive distance is reduced in two ways: (1) Higher level abstractions in a reuse technique reduce the effort required to go from the initial concept of a software system to representations in the reuse technique, and (2) automation reduces the effort required to go from abstractions in a reuse technique to an executable implementation. This survey will help answer the following questions: What is software reuse? Why reuse software? What are the different approaches to reusing software? How effective are the different approaches? What is required to implement a software reuse technology? Why is software reuse difficult? What are the open areas for research in software reuse?
Length and readability of structured software engineering abstracts
Authors: Barbara Kitchenham, O. Pearl Brereton, Stuart Owen, J.B. Butcher, Clive Jefferies
Published in: IET Software (2008-02-18)

Attempts to perform systematic literature reviews have identified a problem with the quality of software engineering abstracts for papers describing empirical studies. Structured abstracts have been found useful for improving the quality of abstracts in many other disciplines. However, there have been no studies of the value of structured abstracts in software engineering. Therefore this paper aims to assess the comparative length and readability of unstructured abstracts and structured versions of the same abstract. Abstracts were obtained from all empirical conference papers from the Evaluation and Assessment in Software Engineering Conference (EASE04 and EASE06) that did not have a structured abstract (23 in total). Two novice researchers created structured versions of the abstracts, which were checked by the papers&apos; authors (or a surrogate). Web tools were used to extract the length in words and readability in terms of the Flesch reading ease index and automated readability index (ARI) for the structured and unstructured abstracts. The structured abstracts were on average 142.5 words longer than the unstructured abstracts (p&lt;0.001). The readability of the structured abstracts was better by 8.5 points on the Flesch index (p&lt;0.001) and 1.8 points on the ARI (p&lt;0.003). The results are consistent with previous studies, although the increase in length and the increase in readability are both greater than the previous studies. Future work will consider whether structured abstracts increase the content and quality of abstracts.
An evaluation of expert systems for software engineering management
Authors: Connie Loggia Ramsey, Victor R. Basili
Published in: IEEE Transactions on Software Engineering (1989-06-01)

The development of four separate, prototype expert systems to aid in software engineering management is described. Given the values for certain metrics, these systems provide interpretations which explain any abnormal patterns of these values during the development of a software project. The four expert systems which solve the same problem, were built using two different approaches to knowledge acquisition, a bottom-up approach and a top-down approach and two different expert system methods, rule-based deduction and frame-based abduction. In a comparison to see which methods might better suit the needs of this field, it was found that the bottom-up approach led to better results that did the top-down approach, and the rule-based deduction systems using simple rules provided more complete and correct solutions than did the frame-based abduction systems.&gt;
Practical relevance of software engineering research: synthesizing the community’s voice
Authors: Vahid Garousi, Markus Borg, Markku Oivo
Published in: Empirical Software Engineering (2020-03-05)

Abstract Software engineering (SE) research should be relevant to industrial practice. There have been regular discussions in the SE community on this issue since the 1980’s, led by pioneers such as Robert Glass. As we recently passed the milestone of “50 years of software engineering”, some recent positive efforts have been made in this direction, e.g., establishing “industrial” tracks in several SE conferences. However, many researchers and practitioners believe that we, as a community, are still struggling with research relevance and utility. The goal of this paper is to synthesize the evidence and experience-based opinions shared on this topic so far in the SE community, and to encourage the community to further reflect and act on the research relevance. For this purpose, we have conducted a Multi-vocal Literature Review (MLR) of 54 systematically-selected sources (papers and non peer-reviewed articles). Instead of relying on and considering the individual opinions on research relevance, mentioned in each of the sources, the MLR aims to synthesize and provide the “holistic” view on the topic. The highlights of our MLR findings are as follows. The top three root causes of low relevance, discussed in the community, are: (1) Researchers having simplistic views (or wrong assumptions) about SE in practice; (2) Lack of connection with industry; and (3) Wrong identification of research problems. The top three suggestions for improving research relevance are: (1) Using appropriate research approaches such as action-research; (2) Choosing relevant (practical) research problems; and (3) Collaborating with industry. By synthesizing all the discussions on this important topic so far, this paper aims to encourage further discussions and actions in the community to increase our collective efforts to improve the research relevance. Furthermore, we raise the need for empirically-grounded and rigorous studies on the relevance problem in SE research, as carried out in other fields such as management science.
Increasing the reliability of ecological models using modern software engineering techniques
Authors: Robert M. Scheller, Brian R. Sturtevant, Eric J. Gustafson, Brendan C. Ward, David J. Mladenoff
Published in: Frontiers in Ecology and the Environment (2009-07-20)

Modern software development techniques are largely unknown to ecologists. Typically, ecological models and other software tools are developed for limited research purposes, and additional capabilities are added later, usually in an ad hoc manner. Modern software engineering techniques can substantially increase scientific rigor and confidence in ecological models and tools. These techniques have the potential to transform how ecological software is conceived and developed, improve precision, reduce errors, and increase scientific credibility. We describe our re‐engineering of the forest landscape model LANDIS (LANdscape DIsturbance and Succession) to illustrate the advantages of using common software engineering practices.
The software engineering capstone
Authors: A. T. Chamillard, Kim A. Braun
Published in: ACM SIGCSE Bulletin (2002-02-27)

One of the largest challenges facing educators teaching undergraduate software engineering courses is providing the students with meaningful experiences they will find useful when they complete their undergraduate education. Those experiences should include all phases of the software development process, and to be as realistic as possible they should also include the uncertainty and continual change present in any real project. In addition, those experiences need to include working with others in a team, which can affect the morale of some students and also poses challenges to the professor when the time to assign grades arrives. In this paper we discuss how we have tailored the software engineering capstone sequence at the U.S. Air Force Academy to address these issues.
A new software engineering
Authors: Ivar Jacobson, Ed Seidewitz
Published in: Communications of the ACM (2014-11-26)

What happened to the promise of rigorous, disciplined, professional practices for software development?
Improving learning experiences in software engineering capstone courses using artificial intelligence virtual assistants
Authors: Luis A. González, Andrés Neyem, Ignacio Contreras‐McKay, Danilo Rigoberto García Molina
Published in: Computer Applications in Engineering Education (2022-05-13)

Abstract Students of Software Engineering Capstone Courses face situations and challenges that grant them valuable experiences. However, as this knowledge is acquired through real‐life exposure, it is difficult to transmit it across different generations. To deal with this problem, it has been proposed that students record their learnings through a lesson learned model. But the question of how future students can best benefit from these records remains unanswered. This study addresses this problem through the use of Artificial Intelligence (AI) Virtual Assistant combined with a recommender system. Artificial Intelligence Virtual Assistants, as conversational chatbots, are a manifestation of AI via the simulation of conversation with human users. The technology has the potential to provide personalized service to a range of stakeholders. Thus, we seek to move this trend forward by now pushing these capabilities into the field of higher education. Consequently, we aim to assist software engineering students by leveraging collective knowledge to enhance learning experiences.
Exploiting Persistent Linkage in Software Engineering Environments
Authors: Ron Morrison, Richard Connor, Quintin Cutts, Vivienne Dunstan, Graham Kirby
Published in: The Computer Journal (1995-01-01)

Persistent programming systems are designed to provide technology for the construction and maintenance of large, long-lived object-based application systems. Many successful prototypes have been constructed and a large body of application building experience is emerging. Three common attributes of persistent systems are persistent linkage, strong typing, and the referential integrity of data. Persistent linkage allows persistent objects to be included in the binding process. Strong typing guarantees that objects are only manipulated in a manner consistent with their type system descriptions. Referential integrity ensures that once a link (reference) to an object is established, its identity is unique and it persists over time. As a consequence no object can be deleted while another refers to it. Here we examine some of the advantages of providing software engineering environments within a persistent object system with strong typing and referential integrity. It is shown how the integration of system specifications, programs, configuration management tools and documentation all within a single persistent environment leads to powerful new techniques. This new power is achieved by sharing structured persistent data across the hitherto enclosing boundaries of system components.