jehanweerasuriya/uni-ai-dataset huggingface dataset:
App Store Effects on Software Engineering Practices
Authors: Afnan Al-Subaihin, Federica Sarro, Sue Black, Licia Capra, Mark Harman
Published in: IEEE Transactions on Software Engineering (2019-01-09)

In this paper, we study the app store as a phenomenon from the developers' perspective to investigate the extent to which app stores affect software engineering tasks. Through developer interviews and questionnaires, we uncover findings that highlight and quantify the effects of three high-level app store themes: bridging the gap between developers and users, increasing market transparency and affecting mobile release management. Our findings have implications for testing, requirements engineering and mining software repositories research fields. These findings can help guide future research in supporting mobile app developers through a deeper understanding of the app store-developer interaction.
Big Data Software Engineering: Analysis of Knowledge Domains and Skill Sets Using LDA-Based Topic Modeling
Authors: Fatih Gürcan, Nergiz Ercil Çağıltay
Published in: IEEE Access (2019-01-01)

Software engineering is a data-driven discipline and an integral part of data science. The introduction of big data systems has led to a great transformation in the architecture, methodologies, knowledge domains, and skills related to software engineering. Accordingly, education programs are now required to adapt themselves to up-to-date developments by first identifying the competencies concerning big data software engineering to meet the industrial needs and follow the latest trends. This paper aims to reveal the knowledge domains and skill sets required for big data software engineering and develop a taxonomy by mapping these competencies. A semi-automatic methodology is proposed for the semantic analysis of the textual contents of online job advertisements related to big data software engineering. This methodology uses the latent Dirichlet allocation (LDA), a probabilistic topic-modeling technique to discover the hidden semantic structures from a given textual corpus. The output of this paper is a systematic competency map comprising the essential knowledge domains, skills, and tools for big data software engineering. The findings of this paper are expected to help evaluate and improve IT professionals' vocational knowledge and skills, identify professional roles and competencies in personnel recruitment processes of companies, and meet the skill requirements of the industry through software engineering education programs. Additionally, the proposed model can be extended to blogs, social networks, forums, and other online communities to allow automatic identification of emerging trends and generate contextual tags.
Software Engineering for Machine-Learning Applications: The Road Ahead
Authors: Foutse Khomh, Bram Adams, Jinghui Cheng, Marios Fokaefs, Giuliano Antoniol
Published in: IEEE Software (2018-09-01)

The First Symposium on Software Engineering for Machine Learning Applications (SEMLA) aimed to create a space in which machine learning (ML) and software engineering (SE) experts could come together to discuss challenges, new insights, and practical ideas regarding the engineering of ML and AI-based systems. Key challenges discussed included the accuracy of systems built using ML and AI models, the testing of those systems, industrial applications of AI, and the rift between the ML and SE communities. This article is part of a theme issue on software engineering’s 50th anniversary.
Software engineering in start-up companies: An analysis of 88 experience reports
Authors: Eriks Klotins, Michael Unterkalmsteiner, Tony Gorschek
Published in: Empirical Software Engineering (2018-05-21)

Start-up companies have become an important supplier of innovation and software-intensive products. The flexibility and reactiveness of start-ups enables fast development and launch of innovative products. However, a majority of software start-up companies fail before achieving any success. Among other factors, poor software engineering could be a significant contributor to the challenges experienced by start-ups. However, the state-of-practice of software engineering in start-ups, as well as the utilization of state-of-the-art is largely an unexplored area. In this study we investigate how software engineering is applied in start-up context with a focus to identify key knowledge areas and opportunities for further research. We perform a multi-vocal exploratory study of 88 start-up experience reports. We develop a custom taxonomy to categorize the reported software engineering practices and their interrelation with business aspects, and apply qualitative data analysis to explore influences and dependencies between the knowledge areas. We identify the most frequently reported software engineering (requirements engineering, software design and quality) and business aspect (vision and strategy development) knowledge areas, and illustrate their relationships. We also present a summary of how relevant software engineering knowledge areas are implemented in start-ups and identify potentially useful practices for adoption in start-ups. The results enable a more focused research on engineering practices in start-ups. We conclude that most engineering challenges in start-ups stem from inadequacies in requirements engineering. Many promising practices to address specific engineering challenges exists, however more research on adaptation of established practices, and validation of new start-up specific practices is needed.
Perspectives on the Gap Between the Software Industry and the Software Engineering Education
Authors: Damla Oğuz, Kaya Oğuz
Published in: IEEE Access (2019-01-01)

The gap between the software industry and software engineering education was first mentioned three decades ago, in 1989. Since then, its existence has been regularly reported on and solutions to close it have been proposed. However, after thirty years this gap resists all efforts for closure. In this study we assert that the gap between industry and academia exists for several reasons that are related and intertwined. To take a broader look at the problem from the perspective of all related entities, we (i) provide a detailed overview of the profession and identify the entities, (ii) extract the causes that stem from these entities and discuss what each entity should do, (iii) report and analyze the results of a questionnaire that has been conducted with students and recent graduates, (iv) emphasize the highlights of the interviews conducted with students, recent graduates and academics, (v) and compile a list of skills that are sought by the industry by analyzing the software engineering job advertisements. We further contribute to finding solutions by considering all entities involved, which provides an opportunity to access all of them, so that each can find out what they can do to acknowledge and narrow the gap. Our study concludes that the gap requires constant attention and hard work for all of the entities involved, and therefore all should be on the lookout for new technologies, learn to embrace the changes and adapt to them, so that the gap is kept at a minimum.
Component-based software engineering
Authors: Ivica Crnković, Stig Larsson, Judith A. Stafford
Published in: ACM SIGSOFT Software Engineering Notes (2002-05-01)

This paper gives a short overview of the Workshop on Component-based Software Engineering - Building Systems from Components held at 9th IEEE Conference and Workshops on Engineering of Computer-Based Systems in Lund, Sweden, April, 2002. The aim of the workshop was to bring together researches and practitioners from system engineering, software architecture and from component-based software engineering communities in order to exchange experiences and research results from these domains.
Voices of women in a software engineering course: reflections on collaboration
Authors: Sarah B. Berenson, Kelli M. Slaten, Laurie Williams, Chih-Wei Ho
Published in: Journal on Educational Resources in Computing (2004-03-01)

Those science, mathematics, and engineering faculty who are serious about making the education they offer as available to their daughters as to their sons are, we posit, facing the prospect of dismantling a large part of its traditional pedagogical structure, along with the assumptions and practice which support it. [Seymour and Hewett 1997].Prior research indicates that female students can be concerned about the insularity of working alone for long periods of time, as they perceive to be the case with computer science and information technology careers. We studied an advanced undergraduate software engineering course at North Carolina State University to characterize the potential of collaborative learning environments created via pair-programming and agile software development to ameliorate this concern. A collective case study of three representative women in the course revealed that they held the following four themes in common: working with others; productivity; confidence; and interest in IT careers. Three conjectures concerning collaboration emerged from our study, including the importance of face-to-face meetings, an increased confidence among women based on product quality, and a reduction in the amount of time spent on assignments. While our findings are not generalized to early undergraduate courses, the young women we studied were at a critical junction in deciding whether to pursue a career in IT upon their near-term graduation. Additionally, we propose a model for future testing with both males and females that connects these three factors with an increased interest in IT careers.
Teaching software engineering by means of computer‐game development: Challenges and opportunities
Authors: Nergiz Ercil Çağıltay
Published in: British Journal of Educational Technology (2007-04-25)

Abstract Software‐engineering education programs are intended to prepare students for a field that involves rapidly changing conditions and expectations. Thus, there is always a danger that the skills and the knowledge provided may soon become obsolete. This paper describes results and draws on experiences from the implementation of a computer game‐development course whose design addresses problems in software‐engineering education by improving students' abilities in four areas: (1) problem solving; (2) the application of previously learned knowledge; (3) the use of independent learning; and (4) learning by doing. In order to better understand this course's effect on students' performance in a software‐development project, I investigated 125 students' performance in a 1‐year senior‐project course. Results of this study show that the students who had taken the computer game‐development course became more successful in the senior‐project course than the students who had not taken it.
Engineering Automotive Software
Authors: Manfred Broy, Ingolf H. Krüger, Alexander Pretschner, Christian Salzmann
Published in: Proceedings of the IEEE (2007-02-01)

The amount of software in cars grows exponentially. Driving forces of this development are the availability of cheaper and more powerful hardware, as well as the demand for innovation through new functionality. The rapidly growing significance of software and software-based functionality is at the root of various challenges in the automotive industries. These concern their organization, definition of key competencies, processes, methods, tools, models, product structures, division of labor, logistics, maintenance, and long-term strategies. This paper pinpoints the idiosyncrasies of the domain, characterizes the essentials of automotive software, and discusses the challenges of automotive software engineering
Developing interactive information systems with the User Software Engineering methodology
Authors: Anthony I. Wasserman, Peter Pircher, David T. Shewmake, Martin Kersten
Published in: IEEE Transactions on Software Engineering (1986-02-01)

User software engineering (USE) is a methodology, supported by automated tools, for the systematic development of interactive information systems. The USE methodology gives particular attention to effective user involvement in the early stages of the software development process, concentrating on external design and the use of rapidly created and modified prototypes of the user interface. The USE methodology is supported by an integrated set of graphically based tools. The USE methodology and the tools that support it are described.
Why do we need personality diversity in software engineering?
Authors: Luiz Fernando Capretz, Faheem Ahmed
Published in: ACM SIGSOFT Software Engineering Notes (2010-03-27)

Diversity of skills is good for society, it is also good in problem solving because different people see a problem from several pers-pectives, so diversity should be good for software engineering too. This study tackles a difficult to study aspect of software engineer-ing, that is, how to best associate personnel with the various tasks in a software project. The approach uses psychological types to determine who is best suited to particular development roles. The article has four main objectives: (1) to arouse awareness of human factors among software engineers; (2) to investigate how psycho-logical factors can contribute to their effectiveness at work; (3) to catalyze effort among software engineers leading towards a deeper understanding and broader applications of human factors in the light of the activities involving the engineering of software; and (4) to emphasize the important of skill diversity in the software engi-neering field. This article provides conceptual knowledge, reports findings, and presents both real and hypothesized beliefs from the software engineering community. Likewise, it is hoped that the article will motivate software engineers and psychologists to con-duct more research in the area of software psychology, so as to understand more profoundly the possibilities for increased effec-tiveness and fulfilment among software engineers
Software survey: VOSviewer, a computer program for bibliometric mapping
Authors: Nees Jan van Eck, Ludo Waltman
Published in: Scientometrics (2009-12-30)

We present VOSviewer, a freely available computer program that we have developed for constructing and viewing bibliometric maps. Unlike most computer programs that are used for bibliometric mapping, VOSviewer pays special attention to the graphical representation of bibliometric maps. The functionality of VOSviewer is especially useful for displaying large bibliometric maps in an easy-to-interpret way. The paper consists of three parts. In the first part, an overview of VOSviewer's functionality for displaying bibliometric maps is provided. In the second part, the technical implementation of specific parts of the program is discussed. Finally, in the third part, VOSviewer's ability to handle large maps is demonstrated by using the program to construct and display a co-citation map of 5,000 major scientific journals.
Software engineering: community and culture
Authors: Helen Sharp, Hugh Robinson, Mark Woodman
Published in: IEEE Software (2000-01-01)

Ideas and techniques from the social sciences can improve the theory and practice of the software engineering discipline. To illustrate the contributions this cross-pollination has made, the authors focus on the nature of paradigms and software quality management systems. Their studies underscore the importance of community in how new technical ideas become accepted, how despite software engineers too often prefer polemic to evidence, and the primacy given to the local guru that transcends formal organizational structures.
Architectural styles and the design of network-based software architectures
Authors: Roy T. Fielding, Richard N. Taylor
Published in:  (2000-01-01)

&#13;\nThe World Wide Web has succeeded in large part because its software architecture has been designed to meet the needs of an Internet-scale distributed hypermedia system. The Web has been iteratively developed over the past ten years through a series of modifications to the standards that define its architecture. In order to identify those aspects of the Web that needed improvement and avoid undesirable modifications, a model for the modern Web architecture was needed to guide its design, definition, and deployment.&#13;\n&#13;\nSoftware architecture research investigates methods for determining how best to partition a system, how components identify and communicate with each other, how information is communicated, how elements of a system can evolve independently, and how all of the above can be described using formal and informal notations. My work is motivated by the desire to understand and evaluate the architectural design of network-based application software through principled use of architectural constraints, thereby obtaining the functional, performance, and social properties desired of an architecture. An architectural style is a named, coordinated set of architectural constraints.&#13;\n&#13;\nThis dissertation defines a framework for understanding software architecture via architectural styles and demonstrates how styles can be used to guide the architectural design of network-based application software. A survey of architectural styles for network-based applications is used to classify styles according to the architectural properties they induce on an architecture for distributed hypermedia. I then introduce the Representational State Transfer (REST) architectural style and describe how REST has been used to guide the design and development of the architecture for the modern Web.&#13;\n&#13;\nREST emphasizes scalability of component interactions, generality of interfaces, independent deployment of components, and intermediary components to reduce interaction latency, enforce security, and encapsulate legacy systems. I describe the software engineering principles guiding REST and the interaction constraints chosen to retain those principles, contrasting them to the constraints of other architectural styles. Finally, I describe the lessons learned from applying REST to the design of the Hypertext Transfer Protocol and Uniform Resource Identifier standards, and from their subsequent deployment in Web client and server software.
Finding a History for Software Engineering
Authors: Michael S. Mahoney
Published in: IEEE Annals of the History of Computing (2004-01-01)

Historians and software engineers are both looking for a history for software engineering. For historians, it is a matter of finding a point of perspective from which to view an enterprise that is still in the process of defining itself. For software engineers, it is the question of finding a usable past, as they have sought to ground their vision of the enterprise on historical models taken from science, engineering, industry, and the professions. The article examines some of those models and their application to software engineering.
A Case for Human Values in Software Engineering
Authors: Jon Whittle, Maria Angela Ferrario, Will Simm, Waqar Hussain
Published in: IEEE Software (2019-11-28)

This article argues that human values-such as responsibility, transparency, creativity, and equality-are heavily underrepresented in software engineering methods. Using experience with projects involving notfor-protorganizations, we explored how human values can be integrated into existing participatory agile practices.
Concurrent software engineering: prospects and pitfalls
Authors: Joseph D. Blackburn, Geert M. Hoedemaker, Luk N. Van Wassenhove
Published in: IEEE Transactions on Engineering Management (1996-05-01)

Software development remains largely a sequential, time-consuming process. Concurrent engineering (CE) principles have been more widely adopted and with greater success in hardware development. In this paper, a methodology for marrying CE principles to software engineering, or concurrent software engineering (CSE), is proposed. CSE is defined as a management technique to reduce the time-to-market in product development through simultaneous performance of activities and processing of information. A hierarchy of concurrent software development activity is defined, ranging from the simplest (within stage) to the most complex (across products and platforms). The information support activities to support this activity hierarchy are also defined, along with two key linking concepts-synchronicity and architectural modularity. Principles of CSE are developed for each level in the activity hierarchy. Research findings that establish limitations to implementing CE are also discussed.
Toward Methodological Guidelines for Process Theories and Taxonomies in Software Engineering
Authors: Paul Ralph
Published in: IEEE Transactions on Software Engineering (2018-01-23)

Software engineering is increasingly concerned with theory because the foundational knowledge comprising theories provides a crucial counterpoint to the practical knowledge expressed through methods and techniques. Fortunately, much guidance is available for generating and evaluating theories for explaining why things happen (variance theories). Unfortunately, little guidance is available concerning theories for explaining how things happen (process theories), or theories for analyzing and understanding situations (taxonomies). This paper therefore attempts to clarify the nature and functions of process theories and taxonomies in software engineering research, and to synthesize methodological guidelines for their generation and evaluation. It further advances the key insight that most process theories are taxonomies with additional propositions, which helps inform their evaluation. The proposed methodological guidance has many benefits: it provides a concise summary of existing guidance from reference disciplines, it adapts techniques from reference disciplines to the software engineering context, and it promotes approaches that better facilitate scientific consensus.
Enhancing the Student Learning Experience in Software Engineering Project Courses
Authors: Maíra Marques Samary, Sergio F. Ochoa, María Cecilia Bastarrica, Francisco J. Gutiérrez
Published in: IEEE Transactions on Education (2017-09-07)

Carrying out real-world software projects in their academic studies helps students to understand what they will face in industry, and to experience first-hand the challenges involved when working collaboratively. Most of the instructional strategies used to help students take advantage of these activities focus on supporting agile programming, which is appropriate for capstone courses. This is not always recommended in initial software engineering project courses, however, where novice developers run projects in teams while simultaneously taking other courses. To enhance the learning and teamwork experience in this latter instructional scenario, this paper proposes a formative monitoring method, reflexive weekly monitoring (RWM), for use in project courses that involve disciplined software processes and loosely coupled work. RWM uses self-reflection and collaborative learning practices to help students be aware of their individual and team performance. RWM was applied in a case study over nine consecutive semesters. The results obtained indicate that RWM was effective in enhancing the learning experience in the instructional scenario studied. While students in the monitored teams were more effective and coordinated, and experienced a higher sense of team belonging and satisfaction, little evidence was found of them being more productive than students working in non-monitored teams.