jehanweerasuriya/uni-ai-dataset huggingface dataset:
On shared understanding in software engineering: an essay
Authors: Martin Glinz, Samuel A. Fricker
Published in: Computer Science - Research and Development (2014-07-01)

Shared understanding is essential for efficient software engineering when the risk of unsatisfactory out-come and rework of project results shall be low. Today, however, shared understanding is used mostly in an unreflected, ad-hoc way. This affects the quality of the engineered software solutions and generates re-work once the quality problems are discovered. In this article, we investigate the role, value, and usage of shared understanding in software engineering. We contribute a reflected analysis of the problem, in particular of how to rely on shared understanding that is implicit, rather than explicit. After an overview of the state of the art we discuss forms and value of shared understanding in software engineering, survey enablers and obstacles, compile existing practices for dealing with shared understanding, and present a roadmap for improving knowledge and practice in this area.
A Brief History of Software Engineering
Authors: Niklaus Wirth
Published in: IEEE Annals of the History of Computing (2008-07-01)

This personal perspective on the art of programming begins with a look at the state of programming from about 1960, and it follows programming's development through the present day. The article examines key contributions to the field of software engineering and identifies major obstacles, which persist even today.
Using the focus group method in software engineering: obtaining practitioner and user experiences
Authors: J. Kontio, Laura Lehtola, Johanna Bragge
Published in:  (2004-08-19)

This paper reflects on three cases where the focus group method was used to obtain feedback and experiences from software engineering practitioners and application users. The focus group method and its background are presented, the method&amp;apos;s weaknesses and strengths are discussed, and guidelines are provided for how to use the method in the software engineering context. Furthermore, the results of the three studies conducted are highlighted and the paper concludes in a discussion on the applicability of the method for this type of research. In summary, the focus group method is a cost-effective and quick empirical research approach for obtaining qualitative insights and feedback from practitioners. It can be used in several phases and types of research. However, a major limitation of the method is that it is useful only in studying concepts that can be understood by participants in a limited time. We also recommend that in the software engineering context, the method should be used with sufficient empirical rigor.
The Essence of Software Engineering: Applying the Semat Kernel
Authors: Ivar Jacobson, Pan-Wei Ng, Paul E. McMahon, Ian Spence, Svante Lidman
Published in:  (2013-01-11)

SEMAT (Software Engineering Methods and Theory) is an international initiative designed to identify a common ground, or universal standard, for software engineering. It is supported by some of the most distinguished contributors to the field. Creating a simple language to describe methods and practices, the SEMAT team expresses this common ground as a kernelor frameworkof elements essential to all software development. The Essence of Software Engineering introduces this kernel and shows how to apply it when developing software and improving a teams way of working. It is a book for software professionals, not methodologists. Its usefulness to development team members, who need to evaluate and choose the best practices for their work, goes well beyond the description or application of any single method. Software is both a craft and a science, both a work of passion and a work of principle. Writing good software requires both wild flights of imagination and creativity, as well as the hard reality of engineering tradeoffs. This book is an attempt at describing that balance. Robert Martin (unclebob) The work of Ivar Jacobson and his colleagues, started as part of the SEMAT initiative, has taken a systematic approach to identifying a kernel of software engineering principles and practices that have stood the test of time and recognition. Bertrand Meyer The software development industry needs and demands a core kernel and language for defining software development practicespractices that can be mixed and matched, brought on board from other organizations; practices that can be measured; practices that can be integrated; and practices that can be compared and contrasted for speed, quality, and price. This thoughtful book gives a good grounding in ways to think about the problem, and a language to address the need, and every software engineer should read it. Richard Soley
Creating a Software Engineering Culture
Authors: Karl E. Wiegers
Published in:  (1996-08-01)

Rarely in history has a field of endeavor evolved as rapidly as software development is right now. The struggle to stay abreast of new technology, deal with accumulated development backlogs, and cope with people issues has become a treadmill race, as software groups work as hard as they can just to stay in place. The Software Engineering Institute (SEI) and hordes of gurus exhort us to improve our development process, but how can we afford the time? Not every member of an organization feels the need to change. It is too easy to dismiss process improvement efforts as just the latest management blathering. Therein lies the seeds of conflict, as some members of a team embrace new ways of working, while others mutter &amp;quot;over my dead body.&amp;quot; The culture of an organization is a critical success factor in its process improvement efforts. &amp;quot;Culture &amp;quot; includes a set of shared values and principles that guide the behaviors, activities, priorities, and decisions of a group of people working in the same area. When coworkers align along common beliefs, it is easier to induce changes that will increase the group&amp;apos;s effectiveness and its probability of survival. A shared culture is one difference between a &amp;quot;team &amp;quot; and a &amp;quot;bunch of bozos on a bus &amp;quot; (to paraphrase Larry Constantine). This article describes some of the shared philosophy – the culture – that evolved over several
Component-Based Software Engineering
Authors: W. Kozaczynski, Grady Booch
Published in: IEEE Software (1998-09-01)

Components are hot, and changing at a fast pace. Here are industry forecasts from two leaders in the field, as well as their choices for inclusion in this focus: a state-of-the-practice overview and some of the latest work in CBSE.
The WEKA data mining software
Authors: Mark Hall, Eibe Frank, Geoffrey Holmes, Bernhard Pfahringer, Peter Reutemann, Ian H. Witten
Published in: ACM SIGKDD Explorations Newsletter (2009-11-16)

More than twelve years have elapsed since the first public release of WEKA. In that time, the software has been rewritten entirely from scratch, evolved substantially and now accompanies a text on data mining [35]. These days, WEKA enjoys widespread acceptance in both academia and business, has an active community, and has been downloaded more than 1.4 million times since being placed on Source-Forge in April 2000. This paper provides an introduction to the WEKA workbench, reviews the history of the project, and, in light of the recent 3.6 stable release, briefly discusses what has been added since the last stable version (Weka 3.4) released in 2003.
A Master of software engineering curriculum: recommendations from the Software Engineering Institute
Authors: Gary A. Ford, Norman E. Gibbs
Published in: Computer (1989-09-01)

The authors present a structure of the software engineering discipline as a first step toward identifying its content and boundaries. They recommend a core Master's-level curriculum in software engineering. They discuss the future of software engineering education.&gt;
Model-driven software development technology, engineering, management
Authors: Thomas Stahl, Markus Voelter, Krzysztof Czarnecki
Published in:  (2006-01-01)

Part I: Introduction. 1. Introduction. 2. MDSD - Basic Ideas and Terminology. 3. Case Study: A Typical Web Application. 4. Concept Formation. 5. Classification. Part II: Domain Architectures. 6. Metamodeling. 7. MDSD-Capable Target Architectures. 8. Building Domain Architectures. 9. Code Generation Techniques. 10. Model Transformation Techniques. 11. MDSD Tools: Roles, Architecture, Selection Criteria, and Pointers. 12. The MDA Standard. Part III: Processes and Engineering. 13. MDSD Process Building Blocks and Best Practices. 14. Testing. 15. Versioning. 16. Case Study: Embedded Component Infrastructures. 17. Case Study: An Enterprise System. Part IV: Management. 18. Decision Support. 1.9 Organizational Aspects. 20. Adoption Strategies for MDSD. References. Index.
On the effectiveness of virtual reality in the education of software engineering
Authors: Akhan Akbulut, Cagatay Catal, Burak Yıldız
Published in: Computer Applications in Engineering Education (2018-04-06)

Abstract The popularity of virtual reality headsets have been rapidly increasing. With this technology, students can efficiently interact with the course content and learn the material faster than the traditional methodologies. In addition to this benefit, virtual reality devices also draw the attention of young generation and this helps to the widespread use of this technology among students. In this study, we investigate the use of virtual reality on the performance of computer engineering bachelor science (BS) students within the scope of Data Structures course and develop a software‐intensive system called “Virtual Reality Enhanced Interactive Teaching Environment” (VR‐ENITE). Specifically, we focus on the sorting algorithms such as selection sort, bubble sort, insertions sort, and merge sort which are relatively hard to be understood by the BS students at first glance. For the evaluation of VR‐ENITE, students were divided into two groups: a group which uses VR‐ENITE in addition to the traditional teaching material and the control group which utilizes from only the traditional material. In order to evaluate the performance of these two groups having 36 students in total, a multiple choice exam was delivered to all of them. According to the test results, students who used the VR‐ENITE system got 12% more successful results in average than the students who are in the control group. This study experimentally shows that VR‐ENITE which is based on virtual reality technology is effective for teaching software engineering courses and it has assistive capabilities for traditional teaching approaches.
A knowledge-based environment for modeling and simulating software engineering processes
Authors: Peiwei Mi, Walt Scacchi
Published in: IEEE Transactions on Knowledge and Data Engineering (1990-01-01)

The design and representation schemes used in constructing a prototype computational environment for modeling and simulating multiagent software engineering processes are described. This environment is called the articulator. An overview of the articulator's architecture identifying five principal components is provided. Three of the components, the knowledge metamodel, the software process behavior simulator, and a knowledge base querying mechanism, are detailed and examples are included. The conclusion reiterates what is unique to this approach in applying knowledge engineering techniques to the problems of understanding the statics and dynamics of complex software engineering processes.&gt;
Embracing the Engineering Side of Software Engineering
Authors: Lionel Briand
Published in: IEEE Software (2012-07-01)

The author provides, based on 20 years of research and industrial experience, his assessment of software engineering research. He then builds on such analysis to provide recommendations on how we need to change as a research community to increase our impact, gain credibility, and ultimately ensure the success and recognition of our young discipline. The gist of the author's message is that we need to become a true engineering discipline.
A Green Model for Sustainable Software Engineering
Authors: Sara S. Mahmoud, Imtiaz Ahmad
Published in:  (2014-09-03)

Information Communication Technology (ICT) has a strong impact on sustainable development due its rising demands for energy and resources needed when building hardware and software products. Most of the efforts spent on Green ICT/IT have been dedicated to addressing the effects of hardware on the environment but little have been considering the effects of building software products as well. Efficient software will indirectly consume less energy by using up less hardware equipment to run. Our contributions in this paper are devoted to building a two level green software model that covers the sustainable life cycle of a software product and the software tools promoting green and environmentally sustainable software. In the first level we propose a new green software engineering process that is a hybrid process between sequential, iterative, and agile development processes to produce an environmentally sustainable one. Each stage of the software process is then further studied to produce a green and sustainable stage. We propose either green guidelines or green processes for each software stage in the engineering process. We add to the software life cycle the requirements stage and the testing stage. We also include in the first level a complete list of metrics to measure the greenness of each stage in terms of the first order effects of ICT on the environment for a green software engineering process. No effort has been placed before in designing a green software engineering process. The second level explains how software itself can be used as a tool to aid in green computing by monitoring resources in an energy efficient manner. Finally, we show and explain relationships that can be found between the two levels in our proposed model to make the software engineering process and product green and sustainable.
Ontology Classification for Semantic-Web-Based Software Engineering
Authors: Yajing Zhao, Jing Dong, Tu Peng
Published in: IEEE Transactions on Services Computing (2009-07-15)

The semantic Web is the second generation of the Web, which helps sharing and reusing data across application, enterprise, and community boundaries. Ontology defines a set of representational primitives with which a domain of knowledge is modeled. The main purpose of the semantic Web and ontology is to integrate heterogeneous data and enable interoperability among disparate systems. Ontology has been used to model software engineering knowledge by denoting the artifacts that are designed or produced during the engineering process. The semantic Web allows publishing reusable software engineering knowledge resources and providing services for searching and querying. This paper classifies the ontologies developed for software engineering, reviews the current efforts on applying the semantic Web techniques on different software engineering aspects, and presents the benefits of their applications. We also foresee the possible future research directions.
Computer-aided software engineering (CASE)
Authors: Albert F. Case
Published in: ACM SIGMIS Database the DATABASE for Advances in Information Systems (1985-09-01)

Today, system developers are challenged to produce complex, high quality software to support explosive demand for new and revised computer applications. This challenge is complicated by severe resource constraints, forcing management to deploy new technologies, methods and procedures to manage this increasingly complex environment. Often the methods, procedures and technologies are not integrated. Therefore, they achieve less than desired improvements in productivity, or force management to make tradeoff decisions between software quality and developer efficiency.Computer-Aided Software Engineering (CASE) helps system developers meet their challenge by providing a new generation of integrated system development tools which provides an automated environment in which to design and implement system projects. CASE technology enables system developers to improve both quality and efficiency, resulting in a net improvement in maintenance and development productivity.The objectives of this paper are to provide the reader with sufficient information about CASE technology to develop an evaluation and implementation strategy for utilizing CASE to improve systems development productivity.
A Comparison of Natural Language Understanding Platforms for Chatbots in Software Engineering
Authors: Ahmad Abdellatif, Khaled Badran, Diego Elias Costa, Emad Shihab
Published in: IEEE Transactions on Software Engineering (2021-05-08)

Chatbots are envisioned to dramatically change the future of Software Engineering, allowing practitioners to chat and inquire about their software projects and interact with different services using natural language. At the heart of every chatbot is a Natural Language Understanding (NLU) component that enables the chatbot to understand natural language input. Recently, many NLU platforms were provided to serve as an off-the-shelf NLU component for chatbots, however, selecting the best NLU for Software Engineering chatbots remains an open challenge. Therefore, in this paper, we evaluate four of the most commonly used NLUs, namely IBM Watson, Google Dialogflow, Rasa, and Microsoft LUIS to shed light on which NLU should be used in Software Engineering based chatbots. Specifically, we examine the NLUs’ performance in classifying intents, confidence scores stability, and extracting entities. To evaluate the NLUs, we use two datasets that reflect two common tasks performed by Software Engineering practitioners, 1) the task of chatting with the chatbot to ask questions about software repositories 2) the task of asking development questions on Q&A forums (e.g., Stack Overflow). According to our findings, IBM Watson is the best performing NLU when considering the three aspects (intents classification, confidence scores, and entity extraction). However, the results from each individual aspect show that, in intents classification, IBM Watson performs the best with an F1-measure$&gt;$84%, but in confidence scores, Rasa comes on top with a median confidence score higher than 0.91. Our results also show that all NLUs, except for Dialogflow, generally provide trustable confidence scores. For entity extraction, Microsoft LUIS and IBM Watson outperform other NLUs in the two SE tasks. Our results provide guidance to software engineering practitioners when deciding which NLU to use in their chatbots.
Diffusing software-engineering methods
Authors: S.A. Raghavan, Donald R. Chand
Published in: IEEE Software (1989-07-01)

The problems that surround software technology transfer are examined. It is suggested that for software engineers to understand these problems, they need to identify a conceptual framework that can provide a systematic understanding of diffusion processes and to identify priority areas through which the software-engineering community can effect the successful diffusion of its innovations. E.M. Roger's framework for diffusion of innovations (The Diffusion of Innovations, Free Press, NY, 1983) is discussed, and two ways to use it, as a descriptive model or as a prescriptive model, are described. A case study is presented to illustrate the arguments.&gt;
Model-Based Software Engineering to Tame the IoT Jungle
Authors: Brice Morin, Nicolas Harrand, Franck Fleurey
Published in: IEEE Software (2017-01-01)

The Internet of Things (IoT) is a challenging combination of distribution and heterogeneity. A number of software engineering solutions address those challenges in isolation, but few solutions tackle them in combination, which poses a set of concrete challenges. The ThingML (Internet of Things Modeling Language) approach attempts to address those challenges. This model-driven, generative approach, which was inspired by UML, integrates concepts targeted at the IoT. Over the past six years, it has been continuously evolved and applied to cases in different domains, including a commercial e-health solution.
Metrics and Models in Software Quality Engineering
Authors: Ronald B. Finkbine
Published in: ACM SIGSOFT Software Engineering Notes (1996-01-01)

No abstract available.
Social debt in software engineering: insights from industry
Authors: Damian A. Tamburri, Philippe Kruchten, Patricia Lago, Hans van Vliet
Published in: Journal of Internet Services and Applications (2015-05-04)

Social debt is analogous to technical debt in many ways: it represents the state of software development organisations as the result of “accumulated” decisions. In the case of social debt, decisions are about people and their interactions. Our objective was to study the causality around social debt in practice. In so doing, we conducted exploratory qualitative research in a large software company. We found many forces together causing social debt; we represented them in a framework, and captured anti-patterns that led to the debt in the first place. Finally, we elicited best practices that technicians adopted to pay back some of the accumulated debt. We learned that social debt is strongly correlated with technical debt and both forces should be reckoned with together during the software process.
LLM-Based Multi-Agent Systems for Software Engineering: Literature Review, Vision, and the Road Ahead
Authors: Junda He, Christoph Treude, David Lo
Published in: ACM Transactions on Software Engineering and Methodology (2025-01-13)

Integrating Large Language Models (LLMs) into autonomous agents marks a significant shift in the research landscape by offering cognitive abilities that are competitive with human planning and reasoning. This article explores the transformative potential of integrating Large Language Models into Multi-Agent (LMA) systems for addressing complex challenges in software engineering (SE). By leveraging the collaborative and specialized abilities of multiple agents, LMA systems enable autonomous problem-solving, improve robustness, and provide scalable solutions for managing the complexity of real-world software projects. In this article, we conduct a systematic review of recent primary studies to map the current landscape of LMA applications across various stages of the software development lifecycle (SDLC). To illustrate current capabilities and limitations, we perform two case studies to demonstrate the effectiveness of state-of-the-art LMA frameworks. Additionally, we identify critical research gaps and propose a comprehensive research agenda focused on enhancing individual agent capabilities and optimizing agent synergy. Our work outlines a forward-looking vision for developing fully autonomous, scalable, and trustworthy LMA systems, laying the foundation for the evolution of Software Engineering 2.0.
SE 2014: Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering
Authors: Mark A. Ardis, David Budgen, Gregory W. Hislop, Jeff Offutt, Mark J. Sebern, Willem Visser
Published in: Computer (2015-11-01)

Revised curriculum guidelines help university faculty create or update undergraduate software engineering programs.
Software engineering metrics for COTS-based systems
Authors: Sahra Sedigh, A. Ghafoor, Raymond A. Paul
Published in: Computer (2001-01-01)

The paradigm shift to commercial off-the-shelf components appears inevitable, necessitating drastic changes to current software development and business practices. Quality and risk concerns currently limit the application of COTS based system design to noncritical applications. New approaches to quality and risk management will be needed to handle the growth of CBSs. Our metrics based approach and software engineering metrics can aid developers and managers in analyzing the return on investment in quality improvement initiatives for CBSs. These metrics also facilitate the modeling of cost and quality, although we need more complex models to capture the intricate relationships between cost and quality metrics in a CBS.