jehanweerasuriya/uni-ai-dataset huggingface dataset:
Adoption of computer aided software engineering (CASE) technology
Authors: G. Premkumar, M Potter
Published in: ACM SIGMIS Database the DATABASE for Advances in Information Systems (1995-05-01)

This study examines the impact of various organizational and technology characteristics on the adoption of computer aided software engineering (CASE) technology. Based on research in innovation adoption and IS implementation, the study develops a research model comprised of seven factors that are important for the successful adoption of CASE technology. The data for the study were collected through a field survey of IS managers in the midwest area and 90 responses were received. The results of discriminant analysis reveal that of the seven predictor variables, five are important to differentiate adopters from non-adopters. They are the existence of a product champion, strong top management support, lower IS expertise, perception that CASE technology has greater relative advantage over other alternatives, and a conviction of the cost effectiveness of the technology. The results are consistent with findings in innovation adoption literature as well as case studies of many firms' experience on CASE implementation.
Trends in Embedded Software Engineering
Authors: Peter Liggesmeyer, Mario Trapp
Published in: IEEE Software (2009-04-18)

Software's importance in the development of embedded systems has been growing rapidly over the last 20 years. Because of current embedded systems' complexity, they require sophisticated engineering methods for systematically developing high-quality software. Embedded software development differs from IT system development in several ways. For example, IT systems developers can use standard hardware and software platforms and don't face the resource requirements that embedded systems developers must take into account. To meet embedded software's extrafunctional requirements, embedded systems development is shifting from programming to model-driven development. Another important trend is the emphasis on the quality assurance of safety-related systems.
Cognitive Biases in Software Engineering: A Systematic Mapping Study
Authors: Rahul Mohanani, Iflaah Salman, Burak Turhan, Pilar Rodríguez, Paul Ralph
Published in: IEEE Transactions on Software Engineering (2018-10-24)

One source of software project challenges and failures is the systematic errors introduced by human cognitive biases. Although extensively explored in cognitive psychology, investigations concerning cognitive biases have only recently gained popularity in software engineering research. This paper therefore systematically maps, aggregates and synthesizes the literature on cognitive biases in software engineering to generate a comprehensive body of knowledge, understand state-of-the-art research and provide guidelines for future research and practise. Focusing on bias antecedents, effects and mitigation techniques, we identified 65 articles (published between 1990 and 2016), which investigate 37 cognitive biases. Despite strong and increasing interest, the results reveal a scarcity of research on mitigation techniques and poor theoretical foundations in understanding and interpreting cognitive biases. Although bias-related research has generated many new insights in the software engineering community, specific bias mitigation techniques are still needed for software professionals to overcome the deleterious effects of cognitive biases on their work.
The Role of Ethnographic Studies in Empirical Software Engineering
Authors: Helen Sharp, Yvonne Dittrich, Cleidson R. B. de Souza
Published in: IEEE Transactions on Software Engineering (2016-01-20)

Ethnography is a qualitative research method used to study people and cultures. It is largely adopted in disciplines outside software engineering, including different areas of computer science. Ethnography can provide an in-depth understanding of the socio-technological realities surrounding everyday software development practice, i.e., it can help to uncover not only what practitioners do, but also why they do it. Despite its potential, ethnography has not been widely adopted by empirical software engineering researchers, and receives little attention in the related literature. The main goal of this paper is to explain how empirical software engineering researchers would benefit from adopting ethnography. This is achieved by explicating four roles that ethnography can play in furthering the goals of empirical software engineering: to strengthen investigations into the social and human aspects of software engineering; to inform the design of software engineering tools; to improve method and process development; and to inform research programmes. This article introduces ethnography, explains its origin, context, strengths and weaknesses, and presents a set of dimensions that position ethnography as a useful and usable approach to empirical software engineering research. Throughout the paper, relevant examples of ethnographic studies of software practice are used to illustrate the points being made.
SEGRESS: Software Engineering Guidelines for REporting Secondary Studies
Authors: Barbara Kitchenham, Lech Madeyski, David Budgen
Published in: IEEE Transactions on Software Engineering (2022-05-10)

Context: Several tertiary studies have criticized the reporting of software engineering secondary studies.Objective: Our objective is to identify guidelines for reporting software engineering (SE) secondary studies which would address problems observed in the reporting of software engineering systematic reviews (SRs).Method: We review the criticisms of SE secondary studies and identify the major areas of concern. We assess the PRISMA 2020 (Preferred Reporting Items for Systematic Reviews and Meta-Analyses) statement as a possible solution to the need for SR reporting guidelines, based on its status as the reporting guideline recommended by the Cochrane Collaboration whose SR guidelines were a major input to the guidelines developed for SE. We report its advantages and limitations in the context of SE secondary studies. We also assess reporting guidelines for mapping studies and qualitative reviews, and compare their structure and content with that of PRISMA 2020.Results: Previous tertiary studies confirm that reports of secondary studies are of variable quality. However,ad hocrecommendations that amend reporting standards may result in unnecessary duplication of text. We confirm that the PRISMA 2020 statement addresses SE reporting problems, but is mainly oriented to quantitative reviews, mixed-methods reviews and meta-analyses. However, we show that the PRISMA 2020 item definitions can be extended to cover the information needed to report mapping studies and qualitative reviews.Conclusions: In this paper and its Supplementary Material, we present and illustrate an integrated set of guidelines called SEGRESS (Software Engineering Guidelines for REporting Secondary Studies), suitable for quantitative systematic reviews (building upon PRISMA 2020), mapping studies (PRISMA-ScR), and qualitative reviews (ENTREQ and RAMESES), that addresses reporting problems found in current SE SRs.
Applications of AI in classical software engineering
Authors: Marco Barenkamp, Jonas Rebstadt, Oliver Thomas
Published in: AI Perspectives (2020-07-26)

Abstract Although Artificial Intelligence (AI) has become a buzzword for self-organizing IT applications, its relevance to software engineering has hardly been analyzed systematically. This study combines a systematic review of previous research in the field and five qualitative interviews with software developers who use or want to use AI tools in their daily work routines, to assess the status of development, future development potentials and equally the risks of AI application to software engineering. The study classifies the insights in the software development life cycle. The analysis results that major achievements and future potentials of AI are a) the automation of lengthy routine jobs in software development and testing using algorithms, e.g. for debugging and documentation, b) the structured analysis of big data pools to discover patterns and novel information clusters and c) the systematic evaluation of these data in neural networks. AI thus contributes to speed up development processes, realize development cost reductions and efficiency gains. AI to date depends on man-made structures and is mainly reproductive, but the automation of software engineering routines entails a major advantage: Human developers multiply their creative potential when using AI tools effectively.
Toward a Quantum Software Engineering
Authors: Mario Piattini, Manuel Serrano, Ricardo Pérez‐Castillo, Guido Petersen, José Luis Hevia
Published in: IT Professional (2021-01-01)

Nowadays, we are at the dawn of a new age, the quantum era. Quantum computing is no longer a dream; it is a reality that needs to be adopted. But this new technology is taking its first steps, so we still do not have models, standards, or methods to help us in the creation of new systems and the migration of current ones. Given the current state of quantum computing, we need to go back to the path software engineering took in the last century to achieve the new golden age for quantum software engineering.
Evaluating software engineering methods and tool part 1
Authors: Barbara Kitchenham
Published in: ACM SIGSOFT Software Engineering Notes (1996-01-01)

In the last five issues of SIGSOFT Notes, Shari Lawrence Pfleeger has discussed the use of formal experiments to evaluate software engineering methods and tools [1]. Shari's articles were based on work she performed for the U.K. DESMET project which aimed to develop a methodology for evaluating software engineering methods and tools.The DESMET project identified a number of useful evaluation methods in addition to formal experiments, and Shari asked me to continue this column by describing some of other methods. As a starting point, I will give an overview of the scope of the DESMET methodology in this article and describe the nine different evaluation methods DESMET identified. In the next few articles I will discuss criteria for selecting a specific method in particular circumstances. Later I will present the DESMET guidelines for performing quantitative case studies and feature analysis.
Cognitive bias in software engineering
Authors: Webb Stacy, Jean MacMillan
Published in: Communications of the ACM (1995-06-01)

Developer's thought processes are a fundamental area of concern. Cognitive scientist have discovered that people's intiative inferences and probality judgments do not strictly conform to the laws of logic or mathematics, and that people are willing to provide plausible explanations for random events. This article examines the role these phenomena might have in software development, ultimately concluding that what are cast as one-sided software development guidelines often can be recast beneficially as two-sided trade-offs.
Usability engineering methods for software developers
Authors: Andreas Holzinger
Published in: Communications of the ACM (2005-01-01)

The human-computer interaction community aims to increase the awareness and acceptance of established methods among software practitioners. Indeed, awareness of the basic usability methods will drive an Information Society for all.
On negative results when using sentiment analysis tools for software engineering research
Authors: Robbert Jongeling, Proshanta Sarkar, Subhajit Datta, Alexander Serebrenik
Published in: Empirical Software Engineering (2017-01-10)

Recent years have seen an increasing attention to social aspects of software engineering, including studies of emotions and sentiments experienced and expressed by the software developers. Most of these studies reuse existing sentiment analysis tools such as SentiStrength and NLTK. However, these tools have been trained on product reviews and movie reviews and, therefore, their results might not be applicable in the software engineering domain. In this paper we study whether the sentiment analysis tools agree with the sentiment recognized by human evaluators (as reported in an earlier study) as well as with each other. Furthermore, we evaluate the impact of the choice of a sentiment analysis tool on software engineering studies by conducting a simple study of differences in issue resolution times for positive, negative and neutral texts. We repeat the study for seven datasets (issue trackers and Stack Overflow questions) and different sentiment analysis tools and observe that the disagreement between the tools can lead to diverging conclusions. Finally, we perform two replications of previously published studies and observe that the results of those studies cannot be confirmed when a different sentiment analysis tool is used.
Software Engineering Project Courses with Industrial Clients
Authors: Bernd Bruegge, Stephan Krusche, Lukas Alperowitz
Published in: ACM Transactions on Computing Education (2015-12-03)

There is an acknowledged need for teaching realistic software development in project courses. The design space for such courses is wide, ranging from single-semester to two-semester courses, from single-client to multicustomer courses, from local to globally distributed courses, and from toy projects to projects with real clients. The challenge for a nontrivial project course is how to make the project complex enough to enrich students’ software engineering experience, yet realistic enough to have a teaching environment that does not unduly burden students or the instructor. We describe a methodology for project courses that is realizable for instructors, improves students’ skills, and leads to viable results for industry partners. In particular, recent advances in release management and collaboration workflows reduce the effort of students and instructors during delivery and increase the quality of the deliverables. To enable release and feedback management, we introduce Rugby, an agile process model based on Scrum that allows reacting to changing requirements. To improve early communication, we use Tornado, a scenario-based design approach that emphasizes the use of informal models for the interaction between clients and students. The combination of Rugby and Tornado allows students to deal with changing requirements, produce multiple releases, and obtain client feedback through the duration of the course. We describe our experience with more than 300 students working on 40 projects with external clients over a 4-year period. In the latest instance of our course, the students have produced more than 7000 builds with 600 releases for eleven clients. In an evaluation of the courses, we found that the introduction of Rugby and Tornado significantly increased students’ technical skills, especially with respect to software engineering, usability engineering, and configuration management, as well as their nontechnical skills such as communication with the client, teamwork, presentation, and demo management. Finally, we discuss how other instructors can adapt the course concept.
The management of software engineering, Part I: Principles of software engineering
Authors: Harlan D. Mills
Published in: IBM Systems Journal (1980-01-01)

Software engineering may be defined as the systematic design and development of software prod-ucts and the management of the software pro-cess. Software engineering has as one of its primary objectives the production of programs that meet specifications, and are demonstrably accurate, produced on time, and within budget. This paper in five parts discusses the principles and practices used by the IBM Federal Systems Division for the design, development, and management of software. The general principles of software engineering are set forth in Part I, in which the author relates software engineering to the whole field of the system development process—system engineering, hardware engineering, software engineering, and system integration. Presented briefly are overviews of the major aspects of software engineering—design, development, and management. The general principles of software engineering are set forth in Part I, in which the author relates software engineering to the whole field of the system development process—system engineering, hardware engineering, software engineering, and system integration. Presented briefly are overviews of the major aspects of software engineering—design, development, and management.
Object-Oriented Software Engineering
Authors: Stephen R. Schach
Published in:  (2007-09-05)

Object-Oriented Software Engineering is written for both the traditional one-semester and the newer two-semester software engineering curriculum. Part I covers the underlying software engineering theory, while Part II presents the more practical life cycle, workflow by workflow. The text is intended for the substantial object-oriented segment of the software engineering market. It focuses exclusively on object-oriented approaches to the development of large software systems that are the most widely used. Text includes 2 running case studies, expanded coverage of agile processes and open-source development. Table of contents PART ONE INTRODUCTION TO OBJECT-ORIENTED SOFTWARE ENGINEERING 1 The Scope of Object-Oriented Software Engineering 2 Software Life-Cycle Models 3 The Software Process 4 Teams 5 The Tools of the Trade 6 Testing 7 From Modules to Objects 8 Reusability and Portability 9 Planning and Estimating PART TWO THE WORKFLOWS OF THE SOFTWARE LIFECYCLE 10 The Requirements Workflow 11 The Analysis Workflow 12 The Design Workflow 13 The Implementation Workflow 14 Postdelivery Maintenance 15 More on UML Bibliography Appendix A Term Project: Osric's Office Appliances and Decor Appendix B Software Engineering Resources Appendix C The Requirements Workflow: The MSG Foundation Case Study Appendix D The Analysis Workflow: The MSG Foundation Case Study Appendix E Software Project Management Plan: The MSG Foundation Case Study Appendix F The Design Workflow: The MSG Foundation Case Study Appendix G The Implementation Workflow: The MSG Foundation Case Study (C++ Version) Appendix H The Implementation Workflow: The MSG Foundation Case Study (Java Version) Appendix I The Test Workflow: The MSG Foundation Case Study
Bringing the Human Factor to Software Engineering
Authors: Luiz Fernando Capretz
Published in: IEEE Software (2014-01-01)

The human aspects involved in the software development process are vital to a successful completion of a software project. The author advocates for human factor topics to be part of mainstream software engineering education in order to elevate job satisfaction, improve performance, and increase productivity of software engineers. Emphasis should be on providing a practical overview of software engineering processes from a human perspective, offering alternative viewpoints within technically saturated curricula.
A survey of Agent-Oriented Software Engineering
Authors: Amund Tveit
Published in:  (2001-01-01)

Agent-Oriented Software Engineering is the one of the most recent contributions to the field of Software Engineering. It has several benefits compared to existing development approaches, in particular the ability to let agents represent high-level abstractions of active entities in a software system. This paper gives an overview of recent research and industrial applications of both general high-level methodologies and on more specific design methodologies for industry-strength software engineering.
Organizational social structures for software engineering
Authors: Damian A. Tamburri, Patricia Lago, Hans van Vliet
Published in: ACM Computing Surveys (2013-07-11)

Software engineering evolved from a rigid process to a dynamic interplay of people (e.g., stakeholders or developers). Organizational and social literature call this interplay an Organizational Social Structure (OSS). Software practitioners still lack a systematic way to select, analyze, and support OSSs best fitting their problems (e.g., software development). We provide the state-of-the-art in OSSs, and discuss mechanisms to support OSS-related decisions in software engineering (e.g., choosing the OSS best fitting development scenarios). Our data supports two conclusions. First, software engineering focused on building software using project teams alone, yet these are one of thirteen OSS flavors from literature. Second, an emerging OSS should be further explored for software development: social networks. This article represents a first glimpse at OSS-aware software engineering, that is, to engineer software using OSSs best fit for the problem.
Metrics and Models in Software Quality Engineering
Authors: Stephen H. Kan, B. Thomas
Published in:  (1994-12-01)

From the Publisher: Author Biography: Dr. Stephen H. Kan, an ASQC Certified Quality Engineer, is responsible for IBM Rochester's software quality strategy and plans, quality assessment, software measurements, and statistical analysis. He has been the software quality focal point for the software system of the AS/400 computer since its initial release in 1988.
Investigating Country Differences in Mobile App User Behavior and Challenges for Software Engineering
Authors: Soo Ling Lim, Peter J. Bentley, Natalie Kanakam, Fuyuki Ishikawa, Shinichi Honiden
Published in: IEEE Transactions on Software Engineering (2014-09-29)

Mobile applications (apps) are software developed for use on mobile devices and made available through app stores. App stores are highly competitive markets where developers need to cater to a large number of users spanning multiple countries. This work hypothesizes that there exist country differences in mobile app user behavior and conducts one of the largest surveys to date of app users across the world, in order to identify the precise nature of those differences. The survey investigated user adoption of the app store concept, app needs, and rationale for selecting or abandoning an app. We collected data from more than 15 countries, including USA, China, Japan, Germany, France, Brazil, United Kingdom, Italy, Russia, India, Canada, Spain, Australia, Mexico, and South Korea. Analysis of data provided by 4,824 participants showed significant differences in app user behaviors across countries, for example users from USA are more likely to download medical apps, users from the United Kingdom and Canada are more likely to be influenced by price, users from Japan and Australia are less likely to rate apps. Analysis of the results revealed new challenges to market-driven software engineering related to packaging requirements, feature space, quality expectations, app store dependency, price sensitivity, and ecosystem effect.
Some future trends and implications for systems and software engineering processes
Authors: Barry Boehm
Published in: Systems Engineering (2006-01-09)

Abstract In response to the increasing criticality of software within systems and the increasing demands being put onto 21st century systems, systems and software engineering processes will evolve significantly over the next two decades. This paper identifies eight relatively surprise‐free trends—the increasing interaction of software engineering and systems engineering; increased emphasis on users and end value; increased emphasis on systems and software dependability; increasingly rapid change; increasing global connectivity and need for systems to interoperate; increasingly complex systems of systems; increasing needs for COTS, reuse, and legacy systems and software integration; and computational plenty. It also identifies two “wild card” trends: increasing software autonomy and combinations of biology and computing. It then discusses the likely influences of these trends on systems and software engineering processes between now and 2025, and presents an emerging scalable spiral process model for coping with the resulting challenges and opportunities of developing 21st century software‐intensive systems and systems of systems. © 2006 Wiley Periodicals, Inc. Syst Eng 9: 1–19, 2006