jehanweerasuriya/uni-ai-dataset huggingface dataset:
OptFlux: an open-source software platform for in silico metabolic engineering
Authors: Isabel Rocha, Paulo Maia, Pedro Evangelista, Paulo Vilaça, Simão Soares, José P. Pinto, Jens Nielsen, Kiran Raosaheb Patil, Eugénio C. Ferreira, Miguel Rocha
Published in: BMC Systems Biology (2010-04-19)

BACKGROUND: Over the last few years a number of methods have been proposed for the phenotype simulation of microorganisms under different environmental and genetic conditions. These have been used as the basis to support the discovery of successful genetic modifications of the microbial metabolism to address industrial goals. However, the use of these methods has been restricted to bioinformaticians or other expert researchers. The main aim of this work is, therefore, to provide a user-friendly computational tool for Metabolic Engineering applications. RESULTS: OptFlux is an open-source and modular software aimed at being the reference computational application in the field. It is the first tool to incorporate strain optimization tasks, i.e., the identification of Metabolic Engineering targets, using Evolutionary Algorithms/Simulated Annealing metaheuristics or the previously proposed OptKnock algorithm. It also allows the use of stoichiometric metabolic models for (i) phenotype simulation of both wild-type and mutant organisms, using the methods of Flux Balance Analysis, Minimization of Metabolic Adjustment or Regulatory on/off Minimization of Metabolic flux changes, (ii) Metabolic Flux Analysis, computing the admissible flux space given a set of measured fluxes, and (iii) pathway analysis through the calculation of Elementary Flux Modes. OptFlux also contemplates several methods for model simplification and other pre-processing operations aimed at reducing the search space for optimization algorithms. The software supports importing/exporting to several flat file formats and it is compatible with the SBML standard. OptFlux has a visualization module that allows the analysis of the model structure that is compatible with the layout information of Cell Designer, allowing the superimposition of simulation results with the model graph. CONCLUSIONS: The OptFlux software is freely available, together with documentation and other resources, thus bridging the gap from research in strain optimization algorithms and the final users. It is a valuable platform for researchers in the field that have available a number of useful tools. Its open-source nature invites contributions by all those interested in making their methods available for the community. Given its plug-in based architecture it can be extended with new functionalities. Currently, several plug-ins are being developed, including network topology analysis tools and the integration with Boolean network based regulatory models.
Thinking on the Development of Software Engineering Technology
Authors: Fu-Qing YANG
Published in: Journal of Software (2005-01-01)

The paper gives some thinking according to the following four aspects: 1) from the law of things development, revealing the development history of software engineering technology; 2) from the point of software natural characteristic, analyzing the construction of every abstraction layer of virtual machine; 3) from the point of software development, proposing the research content of software engineering discipline, and research the pattern of industrialized software production; 4) based on the appearance of Internet technology, exploring the development trend of software technology.
Software visualization in software maintenance, reverse engineering, and re‐engineering: a research survey
Authors: Rainer Koschke
Published in: Journal of Software Maintenance and Evolution Research and Practice (2003-03-01)

Abstract Software visualization is concerned with the static visualization as well as the animation of software artifacts, such as source code, executable programs, and the data they manipulate, and their attributes, such as size, complexity, or dependencies. Software visualization techniques are widely used in the areas of software maintenance, reverse engineering, and re‐engineering, where typically large amounts of complex data need to be understood and a high degree of interaction between software engineers and automatic analyses is required. This paper reports the results of a survey on the perspectives of 82 researchers in software maintenance, reverse engineering, and re‐engineering on software visualization. It describes to which degree the researchers are involved in software visualization themselves, what is visualized and how, whether animation is frequently used, whether the researchers believe animation is useful at all, which automatic graph layouts are used if at all, whether the layout algorithms have deficiencies, and—last but not least—where the medium‐term and long‐term research in software visualization should be directed. The results of this survey help to ascertain the current role of software visualization in software engineering from the perspective of researchers in these domains and give hints on future research avenues. Copyright © 2003 John Wiley &amp; Sons, Ltd.
Teaching software engineering
Authors: Deepak Dahiya
Published in: ACM SIGSOFT Software Engineering Notes (2010-03-27)

In teaching software engineering, it is a major challenge to integrate applied methodology and theory into the practice of software development. Today teaching a course in software engineering involves a theoretical approach with white board and doing a project at the end of the course. Teaching Software engineering as a course involves many disciplines and requires delivering lectures accompanied by lecture demos and hands on lab sessions to accompany individual constituent topics or areas that form the bricks and mortar of this course. Only when the bricks and mortar of software engineering have delivered a solid foundation, is it then that software engineering as a course will be delivered in a true and meaningful sense. This paper presents a method to teach Software Engineering using the applied approach that the author designed and successfully used
Bioconductor: open software development for computational biology and bioinformatics
Authors: Robert Gentleman, Vincent J. Carey, Douglas M. Bates, Ben Bolstad, Marcel Dettling, Sandrine Dudoit, Byron Ellis, Laurent Gautier, Yongchao Ge, Jeff Gentry, Kurt Hornik, Torsten Hothorn, Wolfgang Huber, Stefano M. Iacus, Rafael A. Irizarry, Friedrich Leisch, Cheng Li, Martin Maechler, Anthony Rossini, Günther Sawitzki, Colin A. Smith, Gordon K. Smyth, Luke Tierney, Jean Yang, Jianhua Zhang
Published in: Genome biology (2004-09-15)

The Bioconductor project is an initiative for the collaborative creation of extensible software for computational biology and bioinformatics. The goals of the project include: fostering collaborative development and widespread use of innovative software, reducing barriers to entry into interdisciplinary scientific research, and promoting the achievement of remote reproducibility of research results. We describe details of our aims and methods, identify current challenges, compare Bioconductor to other open bioinformatics projects, and provide working examples.
Agents of change: educating software engineering leaders
Authors: David Garlan, David P. Gluch, James E. Tomayko
Published in: Computer (1997-01-01)

Most professional degree programs for software engineering focus on solving today's problems with today's technologies. Carnegie Mellon's Master of Software Engineering program takes a different approach, preparing engineers to work with new science and technology throughout their careers and helping them become agents of change in the industry. The approach aims to cultivate future leaders in software engineering. It combines a long-term, mentored software development project with an unusual core curriculum that stresses broad-based models and problem-solving skills.
Non Verbal Communication in Software Engineering – An Empirical Study
Authors: Paolo Ciancarini, Mirko Farina, Sergey Masyagin, Giancarlo Succi, Sofiia Yermolaieva, Nadezhda Zagvozkina
Published in: IEEE Access (2021-01-01)

Communication among humans consists of both verbal and non verbal components. The latter may sometimes express concepts or ideas not conveyable by the former. This is also true in Software Engineering. This paper first analyses theoretically the role of non verbal communication in software development teams, using the framework provided by distributed cognition as a conceptual palette and as a point of reference. Then, it presents an empirical investigation involving 38 IT professionals from Russia, sharing their experiences in communicating and interacting when developing software artifacts. The results of this empirical investigation are consistent with many of the ideas underlying a distributed approach to cognition. In addition, our findings provide valuable insights to make communication more effective in software development teams, while defining a new framework for follow-up studies.
Beyond Code Generation: An Observational Study of ChatGPT Usage in Software Engineering Practice
Authors: Ranim Khojah, Mazen Mohamad, Philipp Leitner, Francisco Gomes de Oliveira Neto
Published in: Proceedings of the ACM on software engineering. (2024-07-12)

Large Language Models (LLMs) are frequently discussed in academia and the general public as support tools for virtually any use case that relies on the production of text, including software engineering. Currently, there is much debate, but little empirical evidence, regarding the practical usefulness of LLM-based tools such as ChatGPT for engineers in industry. We conduct an observational study of 24 professional software engineers who have been using ChatGPT over a period of one week in their jobs, and qualitatively analyse their dialogues with the chatbot as well as their overall experience (as captured by an exit survey). We find that rather than expecting ChatGPT to generate ready-to-use software artifacts (e.g., code), practitioners more often use ChatGPT to receive guidance on how to solve their tasks or learn about a topic in more abstract terms. We also propose a theoretical framework for how the (i) purpose of the interaction, (ii) internal factors (e.g., the user’s personality), and (iii) external factors (e.g., company policy) together shape the experience (in terms of perceived usefulness and trust). We envision that our framework can be used by future research to further the academic discussion on LLM usage by software engineering practitioners, and to serve as a reference point for the design of future empirical LLM research in this domain.
Software Process Improvement in the NASA Software Engineering Laboratory
Authors: F. E. Mcgarry, Rose Pajerski, Gerald Page, Sharon Waligora, Victor R. Basili, Marvin V. Zelkowitz
Published in:  (1994-12-01)

The Software Engineering Laboratory (SEL) was established in 1976 for the purpose of studying and measuring software processes with the intent of identifying improvements that could be applied to the production of ground support software within the Flight Dynamics Division (FDD) at the National Aeronautics and Space Administration (NASA)/Goddard Space Flight Center (GSFC). The SEL has three member organizations: NASA/GSFC, the University of Maryland, and Computer Sciences Corporation (CSC). The concept of process improvement within the SEL focuses on the continual understanding of both process and product as well as goal-driven experimentation and analysis of process change within a production environment.
Learner-Centered Web-Based Instruction in Software Engineering
Authors: Said Hadjerrouit
Published in: IEEE Transactions on Education (2005-02-01)

During the past several years, there has been a growing demand for skilled software engineers, a demand that, unfortunately, has not been satisfied, resulting in a variety of problems for the discipline. This work presents a new approach called learner-centered Web-based instruction in software engineering that can be used to educate skilled engineers. The approach is based on three ideas. First, software engineering education must become more realistic. Second, software engineering education has to move closer to the learner. Finally, it must take advantage of the Web since this technology has the power of being a unique tool for implementing change in education. This work reports and discusses the results from the evaluation of the approach.
On Software Engineering Repositories and Their Open Problems
Authors: Daniel Rodríguez, Israel Herraiz, Rachel Harrison
Published in:  (2012-05-01)

Abstract—In the last decade, a large number of software repositories have been created for different purposes. In this paper we present a survey of the publicly available repositories and classify the most common ones as well as discussing the problems faced by researchers when applying machine learning or statistical techniques to them. Keywords-quality; software engineering repositories; prepro-cessing software engineering data; data quality I.
BEAST 2.5: An advanced software platform for Bayesian evolutionary analysis
Authors: Remco Bouckaert, Timothy G. Vaughan, Joëlle Barido‐Sottani, Sebastián Duchêne, Mathieu Fourment, Alexandra Gavryushkina, Joseph Heled, Graham Jones, Denise Kühnert, Nicola De Maio, Michael Matschiner, Fábio K. Mendes, Nicola F. Müller, Huw A. Ogilvie, Louis du Plessis, Alex Popinga, Andrew Rambaut, David A. Rasmussen, Igor Siveroni, Marc A. Suchard, Chieh‐Hsi Wu, Dong Xie, Chi Zhang, Tanja Stadler, Alexei J. Drummond
Published in: PLoS Computational Biology (2019-04-08)

Elaboration of Bayesian phylogenetic inference methods has continued at pace in recent years with major new advances in nearly all aspects of the joint modelling of evolutionary data. It is increasingly appreciated that some evolutionary questions can only be adequately answered by combining evidence from multiple independent sources of data, including genome sequences, sampling dates, phenotypic data, radiocarbon dates, fossil occurrences, and biogeographic range information among others. Including all relevant data into a single joint model is very challenging both conceptually and computationally. Advanced computational software packages that allow robust development of compatible (sub-)models which can be composed into a full model hierarchy have played a key role in these developments. Developing such software frameworks is increasingly a major scientific activity in its own right, and comes with specific challenges, from practical software design, development and engineering challenges to statistical and conceptual modelling challenges. BEAST 2 is one such computational software platform, and was first announced over 4 years ago. Here we describe a series of major new developments in the BEAST 2 core platform and model hierarchy that have occurred since the first release of the software, culminating in the recent 2.5 release.
A practice driven approach to software engineering education
Authors: Lennart Ohlsson, Conny Johansson
Published in: IEEE Transactions on Education (1995-01-01)

This paper describes a two year undergraduate education program in software engineering. This program is designed around the principle of exploratory learning, whereby the students are trained to build knowledge by themselves and actively search for solutions to the problems they experience. In addition to the essential aspects of software engineering: managing complexity of large, changing systems and the ability to work in teams; the program also aims to prepare the students for working in a field of rapidly changing conditions and constraints. This paper describes how these high level goals have been implemented in an actual curriculum. At the core of the program is a set of project courses which are conducted as role playing games in order to simulate the conditions in an industrial environment. Two years worth of students have graduated from the program now, and the paper summarizes the main lessons learned as well as a follow-up survey of experiences from some of the organizations who hired the students.&gt;
Systematic Mapping: Artificial Intelligence Techniques in Software Engineering
Authors: Hazrina Sofian, Nur Arzilawati Md Yunus, Rodina Ahmad
Published in: IEEE Access (2022-01-01)

Artificial Intelligence (AI) has become a core feature of today’s real-world applications, making it a trending topic within the software engineering (SE) community. The rise in the availability of AI techniques encompasses the capability to make rapid, automated, impactful decisions and predictions, leading to the adoption of AI techniques in SE. With industry revolution 4.0, the role of software engineering has become critical for developing productive, efficient, and quality software. Thus, there is a major need for AI techniques to be applied to enhance and improve the critical activities within the software engineering phases. Software is developed through intelligent software engineering phases. This paper concerns a systematic mapping study that aimed to characterize the publication landscape of AI techniques in software engineering. Gaps are identified and discussed by mapping these AI techniques against the SE phases to which they contributed. Many systematic mapping review papers have been produced only for a specific AI technique or a specific SE phase or activity. Hence, no previous systematic mapping review has explored the overall trends in AI techniques and their application to all SE phases.
Software engineering research: A critical appraisal
Authors: John McDermid, Keith Bennett
Published in: IEE Proceedings - Software (1999-01-01)

It is argued that computer science and software engineering should be regarded as separate disciplines, and that the long term success of academic computer science departments will only be secured by adopting a stronger engineering stance in research, enhanced by closer links with industry. A number of ways are suggested to revitalise the software engineering community and forge stronger links with industry, particularly through a better and more coherent research base.
Evaluating software engineering methods and tools
Authors: Barbara Kitchenham, Lesley M. Pickard
Published in: ACM SIGSOFT Software Engineering Notes (1998-01-01)

This article is the first of three articles describing how to undertake a quantitative case study based on work done as part of the DESMET project [1], [2]. In the context of methods and tool evaluations, case studies are a means of evaluating methods and tools as part of the normal software development activities undertaken by an organisation. The main benefit of such case studies is that they allow the effect of new methods and tools to be assessed in realistic situations. Thus, case studies provide a cost-effective means of ensuring that process changes provide the desired results. However, unlike formal experiments and surveys, case studies do not have a well-understood theoretical basis. This series of articles provides guidelines for organising and analysing case studies so that your investigations of new technologies will produce meaningful results.
Human Values in Software Engineering: Contrasting Case Studies of Practice
Authors: Waqar Hussain, Harsha Perera, Jon Whittle, Arif Nurwidyantoro, Rashina Hoda, Rifat Ara Shams, Gillian Oliver
Published in: IEEE Transactions on Software Engineering (2020-11-17)

The growing diffusion of software in society and its influence on people demands from its creators that their work carefully considers human values such as transparency, social responsibility, and equality. But how do software practitioners address human values in software engineering practice? We interviewed 31 software practitioners from two organizations, each having a strong values framework, with the aim to understand: (a) practitioners’ perceptions of human values and their role in software engineering; (b) practices that practitioners use to address human values in software; and (c) challenges they face during this process. We report our findings from two contrasting case organizations on how practitioners “engineer” values in their unique organizational settings. We found evidence that organizational culture significantly contributes to how values are addressed in software. We summarize recommendations from the practitioners to support proactive engineering of values-conscious software.
SIMSE: An Interactive Simulation Game for Software Engineering Education.
Authors: Emily Oh Navarro, André van der Hoek
Published in:  (2004-01-01)

The typical software engineering education lacks a practical experience of the process of software engineering— students are presented with relevant process theory in lectures, but have limited opportunity to put these concepts into practice in an associated class project. SimSE is an educational, interactive, fully graphical computer game that simulates software engineering processes, and is designed specifically to train students in situations that require an understanding and handling of software process issues. In this paper we describe SimSE, including its educational goals, its design, and its implementation.
An ontology of online user feedback in software engineering
Authors: Itzel Morales-Ramirez, Anna Perini, Renata S. S. Guizzardi
Published in: Applied Ontology (2015-12-02)

Online user feedback is principally used as an information source for evaluating customers’ satisfaction for a given goods, service or software application. The increasing attitude of people towards sharing comments through the social media is making online user feedback a resource containing diffe rent types of valuable information. The huge amount of available user feedback has drawn the attention of researchers from different fields. For instance, data mining techniques have been developed to enable information extraction for different purposes, or the use of social techniques for involving users in the innovation of services and processes. Specifically, current research and technological efforts are put into the definition of platforms to gather and/or analyze multi-modal feedback. But we believe that the understanding of the type of concepts instantiated as information contained in user feedback would be beneficial to define new methods for its better exploitation. In our research, we focus on online explicit user feedback that can be considered as a powerful means for user-driven evolution of software services and applications. Up to our knowledge, a conceptualization of user feedback is still missing. With the purpose of contributing to fill up this gap we propose an ontology, for explicit online user feedback that is founded on a foundational ontology and has been proposed to describe artifacts and processes in software engineering. Our contribution in this paper concerns a novel user feedback ontology founded on a Unified Foundational Ontology (UFO) that supports the description of analysis processes of user feedback in software engineering. We describe the ontology together with an evaluation of its quality, and discuss some application scenarios.