jehanweerasuriya/uni-ai-dataset huggingface dataset:
Assessing process-centered software engineering environments
Authors: Vincenzo Ambriola, Reidar Conradi, Alfonso Fuggetta
Published in: ACM Transactions on Software Engineering and Methodology (1997-07-01)

Process-centered software engineering environments (PSEEs) are the most recent generation of environments supporting software development activities. They exploit an representation of the process (called the process model that specifies how to carry out software development activities, the roles and tasks of software developers, and how to use and control software development tools. A process model is therefore a vehicle to better understand and communicate the process. If it is expressed in a formal notation, it can be used to support a variety of activities such as process analysis, process simulation, and process enactment. PSEEs provide automatic support for these activities. They exploit languages based on different paradigms, such as Petri nets and rule-based systems. They include facilities to edit and analyze process models. By enacting the process model, a PSEE provides a variety of services, such as assistance for software developers, automation of routine tasks, invocation and control of software development tools, and enforcement of mandatory rules and practices. Several PSEEs have been developed, both as research projects and as commercial products. The initial deployment and exploitation of this technology have made it possible to produce a significant amount of experiences, comments, evaluations, and feedback. We still lack, however, consistent and comprehensive assessment methods that can be used to collect and organize this information. This article aims at contributing to the definition of such methods, by providing a systematic comparison grid and by accomplishing an initial evaluation of the state of the art in the field. This evaluation takes into account the systems that have been developed by the authors in the past five years, as well as the main characteristics of other well-known environments
Toward computer-supported concurrent software engineering
Authors: Prasun Dewan, John Riedl
Published in: Computer (1993-01-01)

An experimental software engineering environment called the flexible environment for collaborative software engineering (Flecse), which supports concurrent software engineering, is discussed. Flecse features tools designed to surmount collaboration problems that software engineers are increasingly encountering. The implementation of five important themes of concurrent software engineering in Flecse tools, concepts, life cycles, integration, and sharing, is examined.&gt;
Quality Models in Software Engineering Literature: An Analytical and Comparative Study
Authors: Rafa E. Al-Qutaish
Published in:  (2010-01-01)

Abstract: The quality of the software is critical and essential in different types of organizations. In some types of software, poor quality of the software product in sensitive systems (such as: real-time systems, control systems, etc.) may lead to loss of human life, permanent injury, mission failure, or financial loss. In software engineering literature, there are a number of quality models in which they contain a number of quality characteristics (or factors, as called in some models). These quality characteristics could be used to reflect the quality of the software product from the view of that characteristic. Selecting which one of the quality models to use is a real challenge. In this paper, we will discuss the contents of the following quality models: McCall’s quality model, Boehm’s quality model, Dromey&amp;apos;s quality model, FURPS quality model and ISO 9126 quality model. In addition, we will focus on a comparison between these quality models, and find the key differences between them. [Journal of American Science
Crossover Designs in Software Engineering Experiments: Benefits and Perils
Authors: Sira Vegas, Cecília Apa, Natália Juristo
Published in: IEEE Transactions on Software Engineering (2015-08-13)

In experiments with crossover design subjects apply more than one treatment. Crossover designs are widespread in software engineering experimentation: they require fewer subjects and control the variability among subjects. However, some researchers disapprove of crossover designs. The main criticisms are: the carryover threat and its troublesome analysis. Carryover is the persistence of the effect of one treatment when another treatment is applied later. It may invalidate the results of an experiment. Additionally, crossover designs are often not properly designed and/or analysed, limiting the validity of the results. In this paper, we aim to make SE researchers aware of the perils of crossover experiments and provide risk avoidance good practices. We study how another discipline (medicine) runs crossover experiments. We review the SE literature and discuss which good practices tend not to be adhered to, giving advice on how they should be applied in SE experiments. We illustrate the concepts discussed analysing a crossover experiment that we have run. We conclude that crossover experiments can yield valid results, provided they are properly designed and analysed, and that, if correctly addressed, carryover is no worse than other validity threats.
Impact of software engineering research on the practice of software configuration management
Authors: Jacky Estublier, David B. Leblang, André van der Hoek, Reidar Conradi, Geoffrey Clemm, Walter F. Tichy, Darcy Wiborg-Weber
Published in: ACM Transactions on Software Engineering and Methodology (2005-10-01)

Software Configuration Management (SCM) is an important discipline in professional software development and maintenance. The importance of SCM has increased as programs have become larger, more long lasting, and more mission and life critical. This article discusses the evolution of SCM technology from the early days of software development to the present, with a particular emphasis on the impact that university and industrial research has had along the way. Based on an analysis of the publication history and evolution in functionality of the available SCM systems, we trace the critical ideas in the field from their early inception to their eventual maturation in commercially and freely available SCM systems. In doing so, this article creates a detailed record of the critical value of SCM research and illustrates how research results have shaped the functionality of today's SCM systems.
Agent orientation in software engineering
Authors: Gerhard Weiß
Published in: The Knowledge Engineering Review (2001-12-01)

Agent-Oriented Software Engineering (AOSE) is rapidly emerging in response to urgent needs in both software engineering and agent-based computing. While these two disciplines coexisted without remarkable interaction until some years ago, today there is rich and fruitful interaction among them and various approaches are available that bring together techniques, concepts and ideas from both sides. This article offers a guide to the broad body of literature on AOSE. The guide, which is intended to be of value to both researchers and practitioners, is structured according to key issues and key topics that arise when dealing with AOSE: methods and frameworks for requirements engineering, analysis, design, and implementation; languages for programming, communication and coordination and ontology specification; and development tools and platforms.
A Systematic Mapping Study on Soft Skills in Software Engineering
Authors: Carina Fontán, Florencia Raschetti, Gerardo Matturro
Published in: DOAJ (DOAJ: Directory of Open Access Journals) (2020-04-07)

To participate in software development projects, team members may need to perform different roles and be skilled in diverse methodologies, tools and techniques. However, other skills, usually known as &quot;soft skills&quot; are also necessary. We report the results of a systematic mapping study to identify existing research on soft skills in software engineering and to determine what soft skills are considered relevant to the practice of software engineering. After applying an explicit mapping protocol, 44 papers were finally selected, and 30 main categories of soft skills were identified. At least half of the studies selected mention five skills: communication, teamwork, analytical, organizational, and interpersonal skills. We also identified the data collection methods commonly used for research on this topic: job advertisements and surveys were the main ones. The results of this work are of interest to researchers in human aspects of software engineering, to those responsible for Human Resource in software development companies, and to curriculum designers in careers related to software engineering and development.
On the pragmatic design of literature studies in software engineering: an experience-based guideline
Authors: Marco Kuhrmann, Daniel Méndez, Maya Daneva
Published in: Empirical Software Engineering (2017-01-06)

Systematic literature studies have received much attention in empirical software engineering in recent years. They have become a powerful tool to collect and structure reported knowledge in a systematic and reproducible way. We distinguish systematic literature reviews to systematically analyze reported evidence in depth, and systematic mapping studies to structure a field of interest in a broader, usually quantified manner. Due to the rapidly increasing body of knowledge in software engineering, researchers who want to capture the published work in a domain often face an extensive amount of publications, which need to be screened, rated for relevance, classified, and eventually analyzed. Although there are several guidelines to conduct literature studies, they do not yet help researchers coping with the specific difficulties encountered in the practical application of these guidelines. In this article, we present an experience-based guideline to aid researchers in designing systematic literature studies with special emphasis on the data collection and selection procedures. Our guideline aims at providing a blueprint for a practical and pragmatic path through the plethora of currently available practices and deliverables capturing the dependencies among the single steps. The guideline emerges from various mapping studies and literature reviews conducted by the authors and provides recommendations for the general study design, data collection, and study selection procedures. Finally, we share our experiences and lessons learned in applying the different practices of the proposed guideline.
Software Engineering Risk Management
Authors: Dale Walter Karolak
Published in:  (1995-01-01)

This book discusses costs, schedules, just-in-time examples, technical performance, and risk-based approaches for software development. It also is designed to assist those who manage software development projects.
How to Effectively Use Topic Models for Software Engineering Tasks? An Approach based on Genetic Algorithms
Authors: Annibale Panichella, Bogdan Dit, Rocco Oliveto, Massimilano Di Penta, Denys Poshynanyk, Andrea De Lucia
Published in:  (2013-01-01)

Abstract—Information Retrieval (IR) methods, and in partic-ular topic models, have recently been used to support essential software engineering (SE) tasks, by enabling software textual retrieval and analysis. In all these approaches, topic models have been used on software artifacts in a similar manner as they were used on natural language documents (e.g., using the same settings and parameters) because the underlying assumption was that source code and natural language documents are similar. However, applying topic models on software data using the same settings as for natural language text did not always produce the expected results. Recent research investigated this assumption and showed that source code is much more repetitive and predictable as compared to the natural language text. Our paper builds on this new fundamental finding and proposes a novel solution to adapt, configure and effectively use a topic modeling technique, namely Latent Dirichlet Allocation (LDA), to achieve better (acceptable) performance across various SE tasks. Our paper introduces a novel solution called LDA-GA, which uses Genetic Algorithms (GA) to determine a near-optimal configuration for LDA in the context of three different SE tasks: (1) traceability link recovery, (2) feature location, and (3) software artifact labeling. The results of our empirical studies demonstrate that LDA-GA is able to identify robust LDA configurations, which lead to a higher accuracy on all the datasets for these SE tasks as compared to previously published results, heuristics, and the results of a combinatorial search.
Toward a discipline of software engineering
Authors: Anthony I. Wasserman
Published in: IEEE Software (1996-01-01)

Despite rapid changes in computing and software development, some fundamental ideas have remained constant. This article describes eight such concepts that together constitute a viable foundation for a software engineering discipline: abstraction, analysis and design methods and notations, user interface prototyping, modularity and architecture, software life cycle and process, reuse, metrics, and automated support.
Software engineering, the software process and their support
Authors: M. M. Lehman
Published in: Software Engineering Journal (1991-01-01)

Computers are being applied more and more widely, penetrating ever deeper into the very fabric of society. Mankind is becoming increasingly dependent on the availability of software and its continuing validity. To achieve this consistently and reliably, in an operational domain that is forever changing, requires disciplined execution of the software development and evolution process and its effective management. That is the goal of advanced software engineering [1]. This paper summarises basic concepts of software engineering and of the software development process. This leads to a principle of uncertainty, analysis of its implications for the software development process, an overview of computer-assisted software engineering (CASE) and brief comments on the societal relevance of these topics. For researchers in the field and practitioners familiar with individual concepts, issues and specific solutions, the paper provides a unifying framework, a basis for conceptual advance. Those without a significant practical software engineering background and experienced graduate students will extend general familiarity with fresh insights, new concepts and additional detail. Undergraduate and graduate students without significant experience may treat the paper as an introductory text.
Operational profiles in software-reliability engineering
Authors: Donald Musa
Published in: IEEE Software (1993-03-01)

A systematic approach to organizing the process of determining the operational profile for guiding software development is presented. The operational profile is a quantitative characterization of how a system will be used that shows how to increase productivity and reliability and speed development by allocating development resources to function on the basis of use. Using an operational profile to guide testing ensures that if testing is terminated and the software is shipped because of schedule constraints, the most-used operations will have received the most testing and the reliability level will be the maximum that is practically achievable for the given test time. For guiding regression testing, it efficiently allocates test cases in accordance with use, so the faults most likely to be found, of those introduced by changes, are the ones that have the most effect on reliability.&gt;
Volume II: Technical Concepts of Component-Based Software Engineering
Authors: Felix Bachman, Len Bass, Charles Buhman, Santiago Comella-Dorda, Fred Long, John Robert, Robert C. Seacord, Kurt Wallnau
Published in:  (2000-01-01)

vii 1 Nothing New Under the Sun? 1 2 Software Component Technology 3 Summary of Key Points 5 3 Vision Statement 7 Summary of Key Points 8 4 Components 9 Summary of Key Points 10 5 Interfaces 11 5.1 Interface Abstraction and Application Programming Interfaces 11 5.2 Extending APIs to Extra-Functional Properties 12 5.2.1 Specifying Behavior 12 5.2.2 Specifying Synchronization 13 5.2.3 Specifying Quality of Service 13 5.3 Credentials 14 5.4 Components and Multiple Interfaces 15 Summary of Key Points 16 6 Contracts 17 6.1 Contracts and Reciprocal Obligations 18 6.2 Two Senses of Contract 20 Summary of Key Points 21 7 Component Models and Frameworks 23 7.1 What are Component Models? 23 7.2 Component Framework 25 7.3 Custom Frameworks and Programmable Middleware 26 Summary of Key Points 28
Integrating Security and Software Engineering: Advances and Future Visions
Authors: Haralambos Mouratidis, Paolo Giorgini
Published in:  (2006-08-22)

"This book investigates the integration of security concerns into software engineering practices, drawing expertise from the security and the software engineering community; and discusses future visions and directions for the field of secure software engineering" - Provided by publisher
Speed, Data, and Ecosystems: The Future of Software Engineering
Authors: Jan Bosch
Published in: IEEE Software (2015-12-29)

An evaluation of recent industrial and societal trends revealed three key factors driving software engineering's future: speed, data, and ecosystems. These factors' implications have led to guidelines for companies to evolve their software engineering practices. This article is part of a special issue on the Future of Software Engineering.
Automatic query reformulations for text retrieval in software engineering
Authors: Sonia Haiduc, Gabriele Bavota, Andrian Marcus, Rocco Oliveto, Andrea De Lucia, Tim Menzies
Published in:  (2015-09-04)

Abstract—There are more than twenty distinct software engi-neering tasks addressed with text retrieval (TR) techniques, such as, traceability link recovery, feature location, refactoring, reuse, etc. A common issue with all TR applications is that the results of the retrieval depend largely on the quality of the query. When a query performs poorly, it has to be reformulated and this is a difficult task for someone who had trouble writing a good query in the first place. We propose a recommender (called Refoqus) based on machine learning, which is trained with a sample of queries and relevant results. Then, for a given query, it automatically recommends a reformulation strategy that should improve its performance, based on the properties of the query. We evaluated Refoqus empirically against four baseline approaches that are used in natural language document retrieval. The data used for the evaluation corresponds to changes from five open source systems in Java and C++ and it is used in the context of TR-based concept location in source code. Refoqus outperformed the baselines and its recommendations lead to query performance improvement or preservation in 84 % of the cases (in average). Index Terms—Text Retrieval, Query Reformulation. I.
Views on Internal and External Validity in Empirical Software Engineering
Authors: Janet Siegmund, Norbert Siegmund, Sven Apel
Published in:  (2015-11-01)

Abstract—Empirical methods have grown common in software engineering, but there is no consensus on how to apply them properly. Is practical relevance key? Do internally valid studies have any value? Should we replicate more to address the tradeoff between internal and external validity? We asked the community how empirical research should take place in software engineering, with a focus on the tradeoff between internal and external validity and replication, complemented with a literature review about the status of empirical research in software engineering. We found that the opinions differ considerably, and that there is no consensus in the community when to focus on internal or external validity and how to conduct and review replications. I.
Thinking objectively: software engineering in the small
Authors: Mohamed E. Fayad, Mauri Laitinen, Robert P. Ward
Published in: Communications of the ACM (2000-03-01)

article Free AccessThinking objectively: software engineering in the small Authors: Mohamed E. Fayad Univ. of Nebraska, Lincoln Univ. of Nebraska, LincolnView Profile , Mauri Laitinen Laitinen Consulting, Lake Tahoe, CA Laitinen Consulting, Lake Tahoe, CAView Profile , Robert P. Ward Maoi, San Francisco, CA Maoi, San Francisco, CAView Profile Authors Info & Claims Communications of the ACMVolume 43Issue 3March 2000 pp 115–118https://doi.org/10.1145/330534.330555Published:01 March 2000Publication History 80citation1,946DownloadsMetricsTotal Citations80Total Downloads1,946Last 12 Months83Last 6 weeks19 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteView all FormatsPDF
A Software Chasm: Software Engineering and Scientific Computing
Authors: Diane Kelly
Published in: IEEE Software (2007-11-01)

Some time ago, a chasm opened between the scientific-computing community and the software engineering community. Originally, computing meant scientific computing. Today, science and engineering applications are at the heart of software systems such as environmental monitoring systems, rocket guidance systems, safety studies for nuclear stations, and fuel injection systems. Failures of such health-, mission-, or safety-related systems have served as examples to promote the use of software engineering best practices. Yet, the bulk of the software engineering community's research is on anything but scientific-application software. This chasm has many possible causes. In this article, we look at the impact of one particular contributor in industry.
Software engineering in the academy
Authors: Bertrand Meyer
Published in: Computer (2001-05-01)

Institutions that teach software are responsible for producing professionals who will build and maintain systems to the satisfaction of their beneficiaries. The article presents some ideas on how best to honor this responsibility. It presents five goals of a curriculum: principles: lasting concepts that underlie the whole field; practices: problem-solving techniques that good professionals apply consciously and regularly; applications: areas of expertise in which the principles and practices find their best expression; tools: state-of-the-art products that facilitate the application of these principles and practices; mathematics: the formal basis that makes it possible to understand everything else.
Prospects for an engineering discipline of software
Authors: Mary Shaw
Published in: IEEE Software (1990-11-01)

Although software engineering is not yet a true engineering discipline, it has the potential to become one. Older engineering fields are examined to ascertain the character that software engineering might have. The current state of software technology is discussed, covering information processing as an economic force, the growing role of software in critical applications, the maturity of development techniques, and the scientific basis for software engineering practice. Five basic steps that the software engineering profession must take to become a true engineering discipline are described. They are: understanding the nature of expertise, recognizing different ways to get information, encouraging routine practice, expecting professional specializations, and improving the coupling between science and commercial practice.&gt;