jehanweerasuriya/uni-ai-dataset huggingface dataset:
Empirical Research in Software Engineering: Concepts, Analysis, and Applications
Authors: Ruchika Malhotra
Published in:  (2015-10-05)

Empirical research has now become an essential component of software engineering yet software practitioners and researchers often lack an understanding of how the empirical procedures and practices are applied in the field. Empirical Research in Software Engineering: Concepts, Analysis, and Applications shows how to implement empirical research processes, procedures, and practices in software engineering. Written by a leading researcher in empirical software engineering, the book describes the necessary steps to perform replicated and empirical research. It explains how to plan and design experiments, conduct systematic reviews and case studies, and analyze the results produced by the empirical studies. The book balances empirical research concepts with exercises, examples, and real-life case studies, making it suitable for a course on empirical software engineering. The author discusses the process of developing predictive models, such as defect prediction and change prediction, on data collected from source code repositories. She also covers the application of machine learning techniques in empirical software engineering, includes guidelines for publishing and reporting results, and presents popular software tools for carrying out empirical studies.
A Software Engineering Perspective on SDN Programmability
Authors: Felipe A. Lopes, Marcelo Santos, Robson Fidalgo, Stênio Fernandes
Published in: IEEE Communications Surveys & Tutorials (2015-11-18)

Software-defined networking (SDN) has received a great deal of attention from both academia and industry in recent years. Studies on SDN have brought a number of interesting technical discussions on network architecture design, along with scientific contributions. Researchers, network operators, and vendors are trying to establish new standards and provide guidelines for proper implementation and deployment of such novel approach. It is clear that many of these research efforts have been made in the southbound of the SDN architecture, while the northbound interface still needs improvements. By focusing in the SDN northbound, this paper surveys the body of knowledge and discusses the challenges for developing SDN software. We investigate the existing solutions and identify trends and challenges on programming for SDN environments. We also discuss future developments on techniques, specifications, and methodologies for programmable networks, with the orthogonal view from the software engineering discipline.
Reverse engineering and design recovery: a taxonomy
Authors: Elliot J. Chikofsky, James H. Cross
Published in: IEEE Software (1990-01-01)

The key to applying computer-aided software engineering to the maintenance and enhancement of existing systems lies in applying reverse-engineering approaches. However, there is considerable confusion over the terminology used in both technical and marketplace discussions. The authors define and relate six terms: forward engineering, reverse engineering, redocumentation, design recovery, restructuring, and reengineering. The objective is not to create new terms but to rationalize the terms already in use. The resulting definitions apply to the underlying engineering processes, regardless of the degree of automation applied.&gt;
SEthesaurus: WordNet in Software Engineering
Authors: Xiang Chen, Chunyang Chen, Dun Zhang, Zhenchang Xing
Published in: IEEE Transactions on Software Engineering (2019-01-01)

Informal discussions on social platforms (e.g., Stack Overflow, CodeProject) have accumulated a large body of programming knowledge in the form of natural language text. Natural language process (NLP) techniques can be utilized to harvest this knowledge base for software engineering tasks. However, consistent vocabulary for a concept is essential to make an effective use of these NLP techniques. Unfortunately, the same concepts are often intentionally or accidentally mentioned in many different morphological forms (such as abbreviations, synonyms and misspellings) in informal discussions. Existing techniques to deal with such morphological forms are either designed for general English or mainly resort to domain-specific lexical rules. A thesaurus, which contains software-specific terms and commonly-used morphological forms, is desirable to perform normalization for software engineering text. However, constructing this thesaurus in a manual way is a challenge task. In this paper, we propose an automatic unsupervised approach to build such a thesaurus. In particular, we first identify software-specific terms by utilizing a software-specific corpus (e.g., Stack Overflow) and a general corpus (e.g., Wikipedia). Then we infer morphological forms of software-specific terms by combining distributed word semantics, domain-specific lexical rules and transformations. Finally, we perform graph analysis on morphological relations. We evaluate the coverage and accuracy of our constructed thesaurus against community-cumulated lists of software-specific terms, abbreviations and synonyms. We also manually examine the correctness of the identified abbreviations and synonyms in our thesaurus. We demonstrate the usefulness of our constructed thesaurus by developing three applications and also verify the generality of our approach in constructing thesauruses from data sources in other domains.
Teaching practical software engineering and global software engineering
Authors: Dragutin Petković, Gary D. Thompson, Rainer Todtenhoefer
Published in: ACM SIGCSE Bulletin (2006-06-26)

Changes and globalization of software (SW) development urgently require new ways of teaching and training students in practical and global SW engineering (SE). In this paper we present the innovative methods and experiences from several years of teaching practical and global SW engineering at the Computer Science Departments of San Francisco State University (SFSU), USA in conjunction with the University of Applied Sciences, Fulda University, Germany. We also provide analysis and evaluation of class effectiveness based on several assessment methods including extensive student questionnaires, with our recommendations for teaching such SE classes. Our approach was to combine and synchronize class teaching about SW engineering methods and processes with actual SW development work in a setting designed to simulate a small SW company. Students were divided in "local" groups of 4-6 members, each group forming small SW "companies" in charge of developing a complete working WWW application as a final class project. Several smaller groups of students at SFSU were paired with groups of students at Fulda University, whom they never met face to face, to form "global" groups, thus simulating global SW engineering in a realistic setting. Students developed their final project incorporating five well-defined milestones typical for full SW development lifecycle. Instructors spent considerable time supervising and interacting with student "companies" in the role of company customers, CTO and VPs of engineering, marketing and sales. All student groups (including global ones) were able to produce impressive final project applications and provided very positive feedback for this class.
Array programming with NumPy
Authors: Charles R. Harris, K. Jarrod Millman, Stéfan J. van der Walt, Ralf Gommers, Pauli Virtanen, David Cournapeau, Eric Wieser, Julian Taylor, Sebastian Berg, Nathaniel J. Smith, Robert Kern, Matti Picus, Stephan Hoyer, Marten H. van Kerkwijk, Matthew Brett, Allan Haldane, Jaime Fernández del Río, Mark Wiebe, Pearu Peterson, Pierre Gérard-Marchant, Kevin Sheppard, Tyler Reddy, Warren Weckesser, Hameer Abbasi, Christoph Gohlke, Travis E. Oliphant
Published in: Nature (2020-09-16)

Abstract Array programming provides a powerful, compact and expressive syntax for accessing, manipulating and operating on data in vectors, matrices and higher-dimensional arrays. NumPy is the primary array programming library for the Python language. It has an essential role in research analysis pipelines in fields as diverse as physics, chemistry, astronomy, geoscience, biology, psychology, materials science, engineering, finance and economics. For example, in astronomy, NumPy was an important part of the software stack used in the discovery of gravitational waves 1 and in the first imaging of a black hole 2 . Here we review how a few fundamental array concepts lead to a simple and powerful programming paradigm for organizing, exploring and analysing scientific data. NumPy is the foundation upon which the scientific Python ecosystem is constructed. It is so pervasive that several projects, targeting audiences with specialized needs, have developed their own NumPy-like interfaces and array objects. Owing to its central position in the ecosystem, NumPy increasingly acts as an interoperability layer between such array computation libraries and, together with its application programming interface (API), provides a flexible framework to support the next decade of scientific and industrial analysis.
The object management system of PCTE as a software engineering database management system
Authors: Ferdinando Gallo, Régis Minot, Ian Thomas
Published in: ACM SIGPLAN Notices (1987-01-01)

The PCTE project is specifying, designing and implementing a host structure for Software Engineering Environments. The host structure is designed to run on powerful, bitmap screen terminals connected to a local network. It features an Object Management System based on a Binary Entity-Relationship model that manages a database that is transparently distributed over the workstations connected to the network. Migration to this new hosting structure is facilitated by compatibility at the executable file level with Unix System V * . This paper examines how the OMS corresponds to the requirements for Software Engineering databases.
The Talavera Manifesto for Quantum Software Engineering and Programming
Authors: Mario Piattini, Guido Peterssen, Ricardo Pérez‐Castillo, José Luis Hevia, Manuel Serrano, García Hernández, Moisés Rodríguez, Claudio Andrés Paradela, Macario Polo, Ezequiel Murina, Linett Velasquez Jimenez, J.C. Marqueño, R. Gallego, Jordi Tura, Frank Phillipson, Juan M. Murillo
Published in: Research Publications (Maastricht University) (2020-01-01)

This paper presents the Talavera Manifesto for quantum software engineering and programming. This manifesto collects some principles and commitments about the quantum software engineering and programming field, as well as some calls for action. This is the result of the discussion and different viewpoints of academia and industry practitioners who joined at the first International Workshop on QuANtum SoftWare Engineering & pRogramming (QANSWER
Software engineering
Authors: David Lorge Parnas
Published in: Communications of the ACM (1997-09-01)

No abstract available.
How software engineering research aligns with design science: a review
Authors: Emelie Engström, Margaret-Anne Storey, Per Runeson, Martin Höst, Maria Teresa Baldassarre
Published in: Empirical Software Engineering (2020-04-18)

Abstract Background Assessing and communicating software engineering research can be challenging. Design science is recognized as an appropriate research paradigm for applied research, but is rarely explicitly used as a way to present planned or achieved research contributions in software engineering. Applying the design science lens to software engineering research may improve the assessment and communication of research contributions. Aim The aim of this study is 1) to understand whether the design science lens helps summarize and assess software engineering research contributions, and 2) to characterize different types of design science contributions in the software engineering literature. Method In previous research, we developed a visual abstract template, summarizing the core constructs of the design science paradigm. In this study, we use this template in a review of a set of 38 award winning software engineering publications to extract, analyze and characterize their design science contributions. Results We identified five clusters of papers, classifying them according to their different types of design science contributions. Conclusions The design science lens helps emphasize the theoretical contribution of research output—in terms of technological rules—and reflect on the practical relevance, novelty and rigor of the rules proposed by the research.
Evaluating individual contribution toward group software engineering projects
Authors: Jane Huffman Hayes, Timothy C. Lethbridge, Daniel Port
Published in:  (2003-05-03)

It is widely acknowledged that group or team projects are a staple of undergraduate and graduate software engineering courses. Such projects provide students with experiences that better prepare them for their careers, so teamwork is often required or strongly encouraged by accreditation agencies. While there are a multitude of educational benefits of group projects, they also pose considerable challenge in fairly and accurately discerning individual contribution for evaluation purposes. Issues, approaches, and best practices for evaluating individual contribution are presented from the perspectives of the University of Kentucky, University of Ottawa, University of Southern California, and others.
Mathematical reasoning in software engineering education
Authors: Peter Henderson
Published in: Communications of the ACM (2003-09-01)

Discrete mathematics, especially logic, plays an implicit role in software engineering similar to the role of continuous mathematics in traditional physically based engineering disciplines.
Software Engineering for Smart Cyber-Physical Systems
Authors: Tomáš Bureš, Danny Weyns, Bradley Schmer, Eduardo Tovar, Eric Boden, Thomas Gabor, Ilias Gerostathopoulos, Pragya Gupta, Eunsuk Kang, Alessia Knauss, Pankesh Patel, Awais Rashid, Ivan Ruchkin, Roykrong Sukkerd, Christos Tsigkanos
Published in: ACM SIGSOFT Software Engineering Notes (2017-06-12)

Smart Cyber--Physical Systems (sCPS) are modern CPS systems that are engineered to seamlessly integrate a large number of computation and physical components; they need to control entities in their environment in a smart and collective way to achieve a high degree of effectiveness and efficiency. At the same time, these systems are supposed to be safe and secure, deal with environment dynamicity and uncertainty, cope with external threats, and optimize their behavior to achieve the best possible outcome. This "smartness" typically stems from highly cooperative behavior, self--awareness, self--adaptation, and selfoptimization. Most of the "smartness" is implemented in software, which makes the software one of the most complex and most critical constituents of sCPS. As the specifics of sCPS render traditional software engineering approaches not directly applicable, new and innovative approaches to software engineering of sCPS need to be sought. This paper reports on the results of the Second International Workshop on Software Engineering for Smart Cyber--Physical Systems (SEsCPS 2016), which specifically focuses on challenges and promising solutions in the area of software engineering for sCPS.
Representing software engineering models: the TAME goal oriented approach
Authors: Markku Oivo, Victor R. Basili
Published in: IEEE Transactions on Software Engineering (1992-01-01)

A methodology and a knowledge representation and reasoning framework for top-down goal-oriented characterization, modeling, and execution of software engineering activities is presented. A prototype system (ES-TAME) which demonstrates the underlying knowledge representation and reasoning principles is described. ES-TAME provides an object-oriented metamodel concept that provides support for tailorable and reusable software engineering models (SEMs). It provides the basic mechanisms, functions, and attributes for all the other models. It is based on interobject relationships, dynamic viewpoints, and selective inheritance in addition to traditional object-oriented mechanisms. Descriptive SEMs include representations for basic software engineering activities. They are controlled and made operational by active GQM (goal-question-metric paradigm) models which are built by a systematic mechanism for defining and evaluating project and corporate goals and using measurement to provide feedback in real-time.&gt;
Systems Management for Information Technology and Software Engineering
Authors: Andrew P. Sage
Published in:  (1995-04-03)

Systems Engineering Process Lifecycles. Risk Management. Systematic Measurements. Systematic Assessments of Cost. Strategic Quality Assurance and Management. Organizational Leadership, Cultures, and Process Maturity. Reengineering. Index.
The Company Approach to Software Engineering Project Courses
Authors: David Broman, Kristian Sandahl, Mohamed Abu Baker
Published in: IEEE Transactions on Education (2012-03-09)

Teaching larger software engineering project courses at the end of a computing curriculum is a way for students to learn some aspects of real-world jobs in industry. Such courses, often referred to as capstone courses, are effective for learning how to apply the skills they have acquired in, for example, design, test, and configuration management. However, these courses are typically performed in small teams, giving only a limited realistic perspective of problems faced when working in real companies. This paper describes an alternative approach to classic capstone projects, with the aim of being more realistic from an organizational, process, and communication perspective. This methodology, called the company approach, is described by intended learning outcomes, teaching/learning activities, and assessment tasks. The approach is implemented and evaluated in a larger Master's student course.
Software Engineering Practices in the US and Japan
Authors: Zelkowitz, Yeh, Hamlet, Gannon, Basili
Published in: Computer (1984-06-01)

This in-depth survey of 30 companies reveals actual goings-on in software production. Results show that, while practice is 10 years behind research, we have the tools to narrow the gap.
Designing with Blends: Conceptual Foundations of Human-Computer Interaction and Software Engineering
Authors: Manuel Imaz, David Benyon
Published in:  (2006-11-14)

This work talks about how recent research in cognitive science offers new ways to understand the interaction of people and computers and develops a new literacy for well-informed, sensitive software design. The evolution of the concept of mind in cognitive science over the past 25 years creates new ways to think about the interaction of people and computers. New ideas about embodiment, metaphor as a fundamental cognitive process, and conceptual integration - a blending of older concepts that gives rise to new, emergent properties - have become increasingly important in Software Engineering (SE) and Human-Computer Interaction (HCI). If once computing was based on algorithms, mathematical theories, and formal notations, now the use of stories, metaphors, and blends can contribute to well-informed, sensitive software design. In Designing with Blends, Manuel Imaz and David Benyon show how these new metaphors and concepts of mind allow us to discover new aspects of HCI-SE. After 60 years, digital technology has come of age, but software design has not kept pace with technological sophistication; people struggle to understand and use their computers, cameras, phones, and other devices. Imaz and Benyon argue that the dominance of digital media in our lives demands changes in HCI-SE based on advances in cognitive science. The idea of embodied cognition, they contend, can change the way we approach design by emphasizing the figurative nature of interaction. Imaz and Benyon offer both theoretical grounding and practical examples that illustrate the advantages of applying cognitive concepts to software design. A new view of cognition, they argue, will develop a cognitive literacy in software and interaction design that helps designers understand the opportunities of digital technology and provides people with a more satisfying interactive experience.
Simse: a software engineering simulation environment for software process education
Authors: André van der Hoek, Emily Oh Navarro
Published in:  (2006-01-01)

The typical software engineering education lacks a practical treatment of the processes of software engineering---students are presented with relevant process theory in lectures, but have only limited opportunity to put these concepts into practice in an associated class project. Simulation is a powerful educational tool that is commonly used to teach processes that are infeasible to practice in the real world. The work described in this dissertation is based on the hypothesis that simulation can bring to software engineering education the same kinds of benefits that it has brought to other domains. In particular, we believe that software process education can be improved by allowing students to practice, through a simulator, the activity of managing different kinds of quasi-realistic software engineering processes. To investigate this hypothesis, we used a three-part approach: (1) design and build SimSE, a graphical, interactive, educational, customizable, game-based simulation environment for software processes, (2) develop a set of simulation models to be used in seeding the environment, (3) evaluate the usage of the environment, both in actual software engineering courses, and in a series of formal, out-of-class experiments to gain an understanding of its various educational aspects. Some of the educational aspects explored in these experiments included how SimSE compares to traditional teaching techniques, and which learning theories are employed by students who play SimSE. Our evaluations strongly suggest that SimSE is a useful and educationally effective approach to teaching software process concepts. Students who play SimSE tend to learn the intended concepts, and find it a relatively enjoyable experience. These statements apply to students of different genders, academic performance levels, and industrial experience backgrounds. However, in order for SimSE to be used in the most effective way possible, our experience has demonstrated that it is crucial that it be used complementary to other educational techniques and accompanied by an adequate amount of direction and guidance given to the student. Our evaluations also suggested a number of promising directions for future research that can potentially increase the effectiveness of SimSE and be applied to educational simulation environments in general.