scholarly journals Recent advances in biomedical simulations: a manifesto for model engineering

F1000Research ◽  
2019 ◽  
Vol 8 ◽  
pp. 261 ◽  
Author(s):  
Joseph L. Hellerstein ◽  
Stanley Gu ◽  
Kiri Choi ◽  
Herbert M. Sauro

Biomedical simulations are widely used to understand disease, engineer cells, and model cellular processes. In this article, we explore how to improve the quality of biomedical simulations by developing simulation models using tools and practices employed in software engineering. We refer to this direction as model engineering. Not all techniques used by software engineers are directly applicable to model engineering, and so some adaptations are required. That said, we believe that simulation models can benefit from software engineering practices for requirements, design, and construction as well as from software engineering tools for version control, error checking, and testing. Here we survey current efforts to improve simulation quality and discuss promising research directions for model engineering.

2022 ◽  
Vol 8 ◽  
pp. e839
Author(s):  
Adeeb Noor

Background Bioinformatics software is developed for collecting, analyzing, integrating, and interpreting life science datasets that are often enormous. Bioinformatics engineers often lack the software engineering skills necessary for developing robust, maintainable, reusable software. This study presents review and discussion of the findings and efforts made to improve the quality of bioinformatics software. Methodology A systematic review was conducted of related literature that identifies core software engineering concepts for improving bioinformatics software development: requirements gathering, documentation, testing, and integration. The findings are presented with the aim of illuminating trends within the research that could lead to viable solutions to the struggles faced by bioinformatics engineers when developing scientific software. Results The findings suggest that bioinformatics engineers could significantly benefit from the incorporation of software engineering principles into their development efforts. This leads to suggestion of both cultural changes within bioinformatics research communities as well as adoption of software engineering disciplines into the formal education of bioinformatics engineers. Open management of scientific bioinformatics development projects can result in improved software quality through collaboration amongst both bioinformatics engineers and software engineers. Conclusions While strides have been made both in identification and solution of issues of particular import to bioinformatics software development, there is still room for improvement in terms of shifts in both the formal education of bioinformatics engineers as well as the culture and approaches of managing scientific bioinformatics research and development efforts.


Author(s):  
Pankaj Kamthan

The steady rise of open source software (OSS) (Raymond, 1999) over the last few decades has made a noticeable impact on many sectors of society where software has a role to play. As reflected from the frequency of media articles, traffic on mailing lists, and growing research literature, OSS has garnered much support in the software community. Indeed, from the early days of GNU software, to X Window System, to Linux and its utilities, and more recently the Apache Software Project, OSS has changed the way software is developed and used. As the deployment of OSS increases, the issue of its quality with respect to its stakeholders arises. We contend that the open source community collectively bears responsibility of producing “high-quality” OSS. Lack of quality raises various risks for organizations adopting OSS (Golden, 2004). This article discusses the manifestation of quality in open source software development (OSSD) from a traditional software engineering standpoint. The organization is as follows. We first outline the background and related work necessary for the discussion that follows, and state our position. This is followed by a detailed treatment of key software engineering practices that directly or indirectly impact the quality of OSS. Next, challenges and directions for future research are outlined and, finally, concluding remarks are given.


Author(s):  
Ann Q. Gates ◽  
Elsa Y. Villa ◽  
Salamah Salamah

A major challenge to teaching software engineering is achieving functioning teams that enforce individual accountability while integrating software engineering principles, approaches, and techniques. The two-semester software engineering course at the University of Texas at El Paso, referred to as the Team-Oriented Software Engineering (TOSE) course, establishes communities of practice that are cultivated through cooperative group practices and an improvement process model that enables learning from past experiences. The experience of working with incomplete, ambiguous, and changing software requirements motivates the need for applying disciplined software engineering practices and approaches throughout project development. Over the course of the two-semester sequence, the nature of students’ participation in project teams changes: they begin to influence others in software engineering practice, and their identities as software engineers begins to develop. The purpose of the chapter is to describe how to structure a software engineering course that results in establishing communities of practice in which learners become increasingly more knowledgeable team members who embody the skills needed to work effectively in a team- and project-based environment.


Author(s):  
Ann Q. Gates ◽  
Elsa Y. Villa ◽  
Salamah Salamah

A major challenge to teaching software engineering is achieving functioning teams that enforce individual accountability while integrating software engineering principles, approaches, and techniques. The two-semester software engineering course at the University of Texas at El Paso, referred to as the Team-Oriented Software Engineering (TOSE) course, establishes communities of practice that are cultivated through cooperative group practices and an improvement process model that enables learning from past experiences. The experience of working with incomplete, ambiguous, and changing software requirements motivates the need for applying disciplined software engineering practices and approaches throughout project development. Over the course of the two-semester sequence, the nature of students' participation in project teams changes: they begin to influence others in software engineering practice, and their identities as software engineers begins to develop. The purpose of the chapter is to describe how to structure a software engineering course that results in establishing communities of practice in which learners become increasingly more knowledgeable team members who embody the skills needed to work effectively in a team- and project-based environment.


Author(s):  
David Worth ◽  
Chris Greenough ◽  
Shawn Chin

The purpose of this chapter is to introduce scientific software developers to software engineering tools and techniques that will save them much blood, sweat, and tears and allow them to demonstrate the quality of their software. By introducing ideas around the software development life cycle, source code analysis, documentation, and testing, and touching on best practices, this chapter demonstrates ways in which scientific software can be improved and future developments made easier. This is not a research article on current software engineering methods, nor does it attempt to specify best practices. Its aim is to introduce components that can be built into a tailored process. The chapter draws upon ideas of best practice current in software engineering, but recommends using these only selectively. This is done by presenting details of tools that can be used to implement these ideas and a set of case studies to demonstrate their use.


Author(s):  
Wm. Arthur Conklin

Software defects lead to security vulnerabilities, which cost businesses millions of dollars each year and threaten the security of both individuals and the nation. Changes to the software engineering process can help to reduce the number of defects, improving the quality of the process. This chapter introduces the concept of threat modeling to include security in the process of developing software. Adding threat modeling to the software development process will improve the quality of the process. The majority of software coding errors are preventable using a process designed to avoid a series of common errors. Increasing the visibility of common errors will enable software engineers to produce code with substantially fewer security errors. Threat modeling provides insight into the risks facing the software at design time, increasing the software engineering team’s opportunity to avoid errors during coding.


Author(s):  
David Worth ◽  
Chris Greenough ◽  
Shawn Chin

The purpose of this chapter is to introduce scientific software developers to software engineering tools and techniques that will save them much blood, sweat, and tears and allow them to demonstrate the quality of their software. By introducing ideas around the software development life cycle, source code analysis, documentation, and testing, and touching on best practices, this chapter demonstrates ways in which scientific software can be improved and future developments made easier. This is not a research article on current software engineering methods, nor does it attempt to specify best practices. Its aim is to introduce components that can be built into a tailored process. The chapter draws upon ideas of best practice current in software engineering, but recommends using these only selectively. This is done by presenting details of tools that can be used to implement these ideas and a set of case studies to demonstrate their use.


Sign in / Sign up

Export Citation Format

Share Document