jehanweerasuriya/uni-ai-dataset huggingface dataset:
Survey Research in Software Engineering: Problems and Mitigation Strategies
Authors: Ahmad Nauman Ghazi, Kai Petersen, Sri Sai Vijay Raj Reddy, Harini Nekkanti
Published in: IEEE Access (2018-11-13)

Background: The need for empirical investigations in software engineering is growing. Many researchers nowadays, conduct and validate their solutions using empirical research. The Survey is an empirical method which enables researchers to collect data from a large population. The main aim of the survey is to generalize the findings. Aims: In this study, we aim to identify the problems researchers face during survey design and mitigation strategies. Method: A literature review, as well as semi-structured interviews with nine software engineering researchers, were conducted to elicit their views on problems and mitigation strategies. The researchers are all focused on empirical software engineering. Results: We identified 24 problems and 65 strategies, structured according to the survey research process. The most commonly discussed problem was sampling, in particular, the ability to obtain a sufficiently large sample. To improve survey instrument design, evaluation and execution recommendations for question formulation and survey pre-testing were given. The importance of involving multiple researchers in the analysis of survey results was stressed. Conclusions: The elicited problems and strategies may serve researchers during the design of their studies. However, it was observed that some strategies were conflicting. This shows that it is important to conduct a trade-off analysis between strategies.
Unifying software engineering and systems engineering
Authors: Barry Boehm
Published in: Computer (2000-03-01)

The author describes CMMI (Capability Maturity Model Integration) and the emerging project methods which demonstrate the opportunities for process improvement gains open to organizations. The organization that changes from separated software and system engineering processes to a more unified approach will find itself far more suited to developing dynamically changing, software-intensive systems. Culture change is never easy, but the alternative is even less palatable.
A Progression Model of Software Engineering Goals, Challenges, and Practices in Start-Ups
Authors: Eriks Klotins, Michael Unterkalmsteiner, Panagiota Chatzipetrou, Tony Gorschek, Rafael Prikladnicki, Nirnaya Tripathi, Leandro Pompermaier
Published in: IEEE Transactions on Software Engineering (2019-02-18)

Context: Software start-ups are emerging as suppliers of innovation and software-intensive products. However, traditional software engineering practices are not evaluated in the context, nor adopted to goals and challenges of start-ups. As a result, there is insufficient support for software engineering in the start-up context. Objective: We aim to collect data related to engineering goals, challenges, and practices in start-up companies to ascertain trends and patterns characterizing engineering work in start-ups. Such data allows researchers to understand better how goals and challenges are related to practices. This understanding can then inform future studies aimed at designing solutions addressing those goals and challenges. Besides, these trends and patterns can be useful for practitioners to make more informed decisions in their engineering practice. Method: We use a case survey method to gather first-hand, in-depth experiences from a large sample of software start-ups. We use open coding and cross-case analysis to describe and identify patterns, and corroborate the findings with statistical analysis. Results: We analyze 84 start-up cases and identify 16 goals, 9 challenges, and 16 engineering practices that are common among start-ups. We have mapped these goals, challenges, and practices to start-up life-cycle stages (inception, stabilization, growth, and maturity). Thus, creating the progression model guiding software engineering efforts in start-ups. Conclusions: We conclude that start-ups to a large extent face the same challenges and use the same practices as established companies. However, the primary software engineering challenge in start-ups is to evolve multiple process areas at once, with a little margin for serious errors.
Problem Oriented Software Engineering: Solving the Package Router Control Problem
Authors: Jon G. Hall, Lucia Rapanotti, Michael Jackson
Published in: IEEE Transactions on Software Engineering (2008-03-01)

Problem Orientation is gaining interest as a way of approaching the development of software intensive systems and yet a significant example that explores its use is missing from the literature. In this paper, we present the basic elements of Problem Oriented Software Engineering (POSE) which aims to bring both non-formal and formal aspects of software development together in a single framework. We provide an example of a detailed and systematic POSE development of a software problem, that of designing the controller for a package router. The problem is drawn from the literature, but the analysis presented here is new. The aim of the example is twofold: to illustrate the main aspects of POSE and how it supports software engineering design, and to demonstrate how a non-trivial problem can be dealt with by the approach.
Evaluating Software Development by Analysis of Changes: Some Data from the Software Engineering Laboratory
Authors: David M. Weiss, Victor R. Basili
Published in: IEEE Transactions on Software Engineering (1985-02-01)

An effective data collection methodology for evaluating software development methodologies was applied to five different software development projects. Results and data from three of the projects are presented. Goals of the data collection included characterizing changes, errors, projects, and programmers, identifying effective error detection and correction techniques, and investigating ripple effects.
PCTE interfaces: supporting tools in software-engineering environments
Authors: Ian Thomas
Published in: IEEE Software (1989-11-01)

A description is given of a public tool interface, the ESPRIT Portable Common Tool Environment (PCTE). The aim of the project was to define an interface for the software developed in ESPRIT and to provide a prototype implementation. The PCTE project produced several versions of the prototype implementation and has been used as the basis for several other projects. The facilities of PCTE Version 1.5 are described.&gt;
The Four Pillars of Research Software Engineering
Authors: Jeremy Cohen, Daniel S. Katz, Michelle Barker, Neil Chue Hong, Robert Haines, Caroline Jay
Published in: IEEE Software (2020-02-11)

We present four elements we believe are key to providing a comprehensive and sustainable support for research software engineering: software development, community, training, and policy. We also show how the wider developer community can learn from, and engage with, these activities.
Determining the Impact of Software Engineering Research on Practice
Authors: Leon J. Osterweil, Carlo Ghezzi, Jeff Kramer, Alexander L. Wolf
Published in: Computer (2008-03-01)

The impact project provides a solid and scholarly assessment of the impact software engineering research has had on software engineering practice. The assessment takes the form of a series of studies and briefings, each involving literature searches and, where possible, personal interviews.
Software engineering issues in interactive installation art
Authors: Anna Trifonova, Letizia Jaccheri, Kristin Bergaust
Published in: International Journal of Arts and Technology (2008-01-01)

Software engineering has been in contact with new media art for years, although the connections between these fields have rarely been explicit. In this article, we discuss the software engineering issues that appear in one of the new media art subfields, namely interactive installation art, as reported in the scientific literature. Interactive installations are often built in small multidisciplinary teams, including collaboration between artists and software developers, as the artworks are heavily dependent on software. Some of the requirements for successful multidisciplinary work are to share common goals and common language and thus software engineering issues in art context are important to consider and discuss. The goal of this article is twofold. On one hand we provide a road map for artists to the basic software engineering concepts and terms for the purpose of communicating with software engineers or for acting themselves as programmers of their artworks. On the other hand, software engineers who start working with interactive installation art will profit from this summary of relevant reports. Awareness of the software engineering essentials and knowledge of others' experience in similar situations would allow good planning, recognition of problems in early stages, and might simplify the look up for solutions in the right direction.
A self-assessment by the software engineering community
Authors: Gene Forte, Ronald J. Norman
Published in: Communications of the ACM (1992-04-01)

glneerlng munity is increasingly identified as a critical constraint in the realization of all types of industrial and commercial systems. The findings of the last International Workshop on Computer-Aided Software Engineering (IWCASE), summarized here with a fair degree of editorial license, represent a cross section of opinions and perspectives from over 200 experts in software development technology from the academic, supplier and user communities. In effect, it constitutes one self-assessment of how well our profession is meeting the challenge of building a respectable engineering discipline, and the design automation tools required to support it.
The push to make software engineering respectable
Authors: Gilda Pour, Martin Griss, Michael W. Lutz
Published in: Computer (2000-05-01)

A recognized engineering profession must have an established body of knowledge and skill that its practitioners understand and use consistently. After 30 years, there is still a wide gap between the best and the typical software engineering practices. To close this gap, we need a deeper partnership among industry, academia, and professional societies. We have spent some time considering the reasons for SE's immaturity. All of us are heavily involved in both industry and academia and have been active in professional societies that aim to promote SE as a profession. Promotion efforts are by no means limited to the US, but because our experience is primarily with US activities, that is our focus in this article. Our main goal is to explore, from a multifaceted perspective, why we are where we are now and how we can move forward.
Discovering trends in software engineering with google trend
Authors: Jörg Rech
Published in: ACM SIGSOFT Software Engineering Notes (2007-03-01)

Trends are a valuable tool to shape one's research, decide on acquisitions, inform about technologies or standards used in the development process. Google Trends is a new service by Google for researching the amount of searches and news articles collected by their search engines, which can be used to discover trends in software engineering. In May 2006 Google Trends was opened to the public to support researching trends based on searches to Google Search and news articles collected in Google News. This short paper shows how information from Google Trend can be used to analyze media attention, search interests, and cause-effect relations of one topic or between multiple topics such as technologies, tools, or methodologies.
Design and analysis in software engineering
Authors: Shari Lawrence Pfleeger
Published in: ACM SIGSOFT Software Engineering Notes (1994-10-01)

Members of the winning IBM team were Feng-hsinng Hsu, Murray S
Software Engineering for AI-Based Systems: A Survey
Authors: Silverio Martínez‐Fernández, Justus Bogner, Xavier Franch, Marc Oriol, Julien Siebert, Adam Trendowicz, Anna Maria Vollmer, Stefan Wagner
Published in: ACM Transactions on Software Engineering and Methodology (2022-04-01)

AI-based systems are software systems with functionalities enabled by at least one AI component (e.g., for image-, speech-recognition, and autonomous driving). AI-based systems are becoming pervasive in society due to advances in AI. However, there is limited synthesized knowledge on Software Engineering (SE) approaches for building, operating, and maintaining AI-based systems. To collect and analyze state-of-the-art knowledge about SE for AI-based systems, we conducted a systematic mapping study. We considered 248 studies published between January 2010 and March 2020. SE for AI-based systems is an emerging research area, where more than 2/3 of the studies have been published since 2018. The most studied properties of AI-based systems are dependability and safety. We identified multiple SE approaches for AI-based systems, which we classified according to the SWEBOK areas. Studies related to software testing and software quality are very prevalent, while areas like software maintenance seem neglected. Data-related issues are the most recurrent challenges. Our results are valuable for: researchers, to quickly understand the state-of-the-art and learn which topics need more research; practitioners, to learn about the approaches and challenges that SE entails for AI-based systems; and, educators, to bridge the gap among SE and AI in their curricula.
Scrum: An Agile Process Reengineering In Software Engineering
Authors: Krunal Bhavsar, Vrutik Shah, Sameer Gopalan
Published in: International Journal of Innovative Technology and Exploring Engineering (2020-01-23)

BPR (Business Process Re-engineering) is an organizational mechanism leading organization towards change management as and when it is required. In the form BPR, Agile practices have had a remarkable impact on Software Engineering Management (SEM) in software development organizations across the world. It has enhanced collaboration and productivity of Software Engineering (SE) teams and improved the level of quality of software products. Nowadays Scrum has been trending into software development organizations as a standard SDLC approach. Scrum is the framework of the Agile methodology, built on empiricism control theory, asserts that experience brings knowledge and increases decision making capabilities. The empiricism control theory is built on three pillars: Adaptation, Inspection and Transparency. This research study presents Scrum as a trending SDLC framework using empirical analysis. We have analyzed literature reviews, case studies, and research surveys; and implemented Scrum in our software development unit and carried out the reasons, why Scrum is trending in software development organizations. How the scrum artifacts, events and values play a vital role in upholding the Scrum pillars and strengthen the capabilities of Scrum team members to address the software engineering management challenges; compared to traditional software development approaches.
Problems and Programmers: an educational software engineering card game
Authors: Alex Baker, Emily Oh Navarro, André van der Hoek
Published in:  (2003-05-03)

Problems and Programmers is an educational card game that we have developed to help teach software engineering. It is based on the observation that students, in a typical software engineering course, gain little practical experience in issues regarding the software process. The underlying problem is time: any course faces the practical constraint of only being able to involve students in at most a few small software development projects. Problems and Programmers overcomes this limitation by providing a simulation of the software process. In playing the game, students become aware of not only general lessons, such as the fact that they must continuously make tradeoffs among multiple potential next steps, but also specific issues such as the fact that inspections improve the quality of code but delay its delivery time. We describe game play of Problems and Programmers, discuss its underlying design, and report on the results of a small experiment in which twenty-eight students played the game. 1.
User-centric Software Engineering
Authors: Michael DeBellis, Christine Haapala
Published in: IEEE Expert (1995-02-01)

The rapid introduction of new technology, a growing number of users, and competition from the developing world are all pushing the computer industry in new directions. Any nation's software industry that hopes to survive as a world-class enterprise must make fundamental challenges in the software development process and its supporting development environment. The traditional waterfall approach to software development focuses on requirements defined early in the process, often releasing systems years later that are obsolete on delivery. In the mid-1980's, however, programming environments emerged that let developers build usable prototypes in days or weeks instead of months or years. These capabilities opened the way for alternative approaches to developing software. One of the most important results of the ARPA-Rome Planning Initiative (ARPI) was the formalization of such a new approach. We call it User-Centric Software Engineering. USE represents a synthesis of methods advocated and practiced by leaders in the software engineering field. The initial aim of USE is to encourage collaboration between users and developers to help design more efficient business processes and supporting software.&gt;
Hiring and Intra-occupational Gender Segregation in Software Engineering
Authors: Santiago Campero
Published in: American Sociological Review (2020-11-16)

Women tend to be segregated into different subspecialties than men within male-dominated occupations, but the mechanisms contributing to such intra-occupational gender segregation remain obscure. In this study, I use data from an online recruiting platform and a survey to examine the hiring mechanisms leading to gender segregation within software engineering and development. I find that women are much more prevalent among workers hired in software quality assurance than in other software subspecialties. Importantly, jobs in software quality assurance are lower-paying and perceived as lower status than jobs in other software subspecialties. In examining the origins of this pattern, I find that it stems largely from women being more likely than men to apply for jobs in software quality assurance. Further, such gender differences in job applications are attenuated among candidates with stronger educational credentials, consistent with the idea that relevant accomplishments help mitigate gender differences in self-assessments of competence and belonging in these fields. Demand-side selection processes further contribute to gender segregation, as employers penalize candidates with quality assurance backgrounds, a subspecialty where women are overrepresented, when they apply for jobs in other, higher-status software subspecialties.
Ontologies for Software Engineering: Past, Present and Future
Authors: M. P. S. Bhatia, Akshi Kumar, Rohit Beniwal
Published in: Indian Journal of Science and Technology (2016-03-22)

Background/Objectives: Research in recent years has probed integration amongst research field of Software Engineering and Semantic Web technology, addressing the advantages of applying Semantic techniques to the field of Software Engineering. Prolifically published studies have further substantiated the benefits of ontologies to the field of Software Engineering, which clearly motivate us to explore further opportunities available in this collaborated field. This paper is a survey expounding such opportunities while discussing the role of ontologies as a Software Life-Cycle support technology. Method/Statistical Analysis: Survey centred on providing an overview of the state-of-art of all the ontologies available for Software Engineering followed by their categorization based on software life cycle phases and their application scope. Findings: Characterization of ontologies as a Software Life-cycle support technology, instigated by the increasing need to investigate the interplay between Semantic Web & Software Engineering with the ultimate goal of enabling & improving Software Engineering capabilities.Application/Improvements: This paper discusses the practical and potential applications of ontologies in the field of Software Engineering followed by the issues and challenges that will keep this field dynamic and lively for years to come. Keywords: Life Cycle, Ontologies, Semantic Web, Semantic Web Enabled Software Engineering, Software Engineering, Support Technology
ERP Customization as Software Engineering: Knowledge Sharing and Cooperation
Authors: Yvonne Dittrich, Sebastien Vaucouleur, Stephen Giff
Published in: IEEE Software (2009-10-19)

Enterprise resource planning (ERP) vendors provide multiple configuration possibilities ranging from module selection to master data provision to steer access rights for different users. These configuration possibilities cover anticipated variability. If the customer requires adaptation beyond what's anticipated, the source code of the product must be adapted. Customizations in this article's context are source code based adaptations of software products. The size and complexity of customizations range from simple report generation to developing independent add-ons that support specific businesses, for example, solutions for flight carriers. The size and lead time of such projects can compare to a full-size software development project. Enterprise resource planning (ERP) systems must be configured and customized to fit a specific company. The authors discuss cooperation with regard to ERP systems customization.
Large team projects in software engineering courses
Authors: David Coppit, Jennifer M. Haddox-Schatz
Published in: ACM SIGCSE Bulletin (2005-02-23)

A key goal of educators teaching software engineering is to provide students with useful experience that will benefit them after graduation. A key component of this experience is usually a class project that is meant to expose students to the issues associated with real software development efforts. Unfortunately, educators rarely have the time required to manage software projects in addition to their normal pedagogical duties. As a result, many software engineering courses compromise the project experience by reducing the team sizes, project scope, and risk. In this paper, we present an approach to teaching a one-semester software engineering course in which approximately 30 students work together to construct a moderately sized (22 KLOC) software system. This approach provides a more realistic project experience for the students, without incurring significant managerial overhead for the instructor. We present our experiences using the approach for the spring 2004 software engineering course at The College of William and Mary.