Investigating Research Software Engineering
@CACM

Investigating Research Software Engineering

In this edition of "Advances in Computing," a team of researchers highlight the concept of research software engineering research (RSE research) as a complementary approach to RSE.

Also featured in this edition: two articles on Meta's hyperscale infrastructure and California's vetoed AI Act, as well as selected stories from the ACM magazines Interactions and XRDS.

Enjoy!


Research software is software that is designed and developed to support research activities. It can be used to collect, process, analyze, and visualize data, as well as to model complex phenomena and run sophisticated simulations. Research software is developed by researchers themselves or by software developers working closely with researchers. Research software is typically developed to meet specific research needs, and it often has unique requirements that are different from standard commercial software.

Research software engineering (RSE) and the related role of research software engineer has emerged as a job profile in its own right. We highlight the concept of research software engineering research—RSE research in short—as a complementary approach to RSE: conducting research on understanding and improving how software is developed for research. To set the stage, we start with a look at 50 years of software engineering research, and introduce the characteristics of research software, RSE in general, RSE research, and conclude with an outlook to further essential activities on RSE research.


@ACM

Software Engineering Research

Randell reviewed the first 50 years of software engineering: To address the so-called software crisis, NATO was the sponsor of the first software engineering conference in 1968. The perception at that time was that while errors in scientific data processing applications might be a nuisance, they are to a large extent tolerable. In contrast, failures in mission-critical military systems might cost lives and substantial amounts of money. Based on this attitude, software engineering—like computer science as a whole—aimed for generality in its methods, techniques, and processes and focused almost exclusively on business and embedded software, and system software, such as operating systems, networks and compilers. Software development is more than just programming. Meanwhile, the software engineering discipline has gained a lot of insight into the whole process of software development, accumulating in various text books on software engineering, a multitude of books on dedicated sub-fields of software engineering, such as requirements engineering, software architecture, design, modeling, testing, and development processes. The Software Engineering Body of Knowledge (SWEBOK) structures and aggregates what software developers have learned in the last 50+ years.

Software engineering does not only have these sub-disciplines mentioned previously, which cover the different activities within a software engineering project. To properly address the various application areas, software engineering is also organized into domain-specific sub-disciplines, such as automotive software engineering. However, software engineering research largely ignored the specific demands of research software, and vice versa....

Research Software Engineering

Research software engineering (RSE) is a discipline that focuses on the development of software for research purposes. It is a relatively new field that emerged in response to the growing recognition of the importance of research software and the need for specialized skills and expertise in its development. Overall, the goal of research software engineering is to support and advance research fields by providing high-quality software that is reliable, efficient, and easy to use. Specific to engineering research software is, for instance, that requirements are usually not known up front, emerge and evolve as research advances, and often hard to comprehend without some Ph.D. in science. Verification and validation are difficult, and strictly scientific. Overly formal software processes restrict research. Few scientists are trained in software engineering, which leads to a disregard of most modern software engineering methods and tools. This situation created a chasm between software engineering and computational science.

As early scientific software was developed by small teams of scientists primarily for their own research, modularity, maintainability, and team coordination could often be neglected without a large impact. As a consequence of the expected sustainability and reproducibility requirements on research software, the software turns from a by-product into a long-living, sustainable asset if not into a core research infrastructure, where demands for quality of the code heavily increase. This includes understandability, documentation, reuse, ability to evolve, adaptability, and other typical quality attributes that software engineering has discussed as a consequence of the software crisis in other development domains over the past 50+ years. However, software engineering approaches will only be adopted by scientists if these approaches honor the distinct characteristics and constraints of scientific software development.

Research software engineers develop, optimize, and maintain research software. They should have a deep understanding of both software engineering and research practices, and are skilled at bridging the gap between these two domains. To foster RSE skills and leverage the job profile of RSE, several associations have been founded, such as the U.K. Society of Research Software Engineering (https://society-rse.org/), the U.S. Research Software Engineer Association (https://us-rse.org/), or the German Society for Research Software (https://de-rse.org), which in turn coordinate in an international council (researchsoftware.org/council.html). The U.K. Software Sustainability Institute (https://www.software.ac.uk/) provides support for furthering RSE practice, while the Research Software Alliance (https://researchsoft.org) works toward evolving RSE policy by collaborating with decision makers and key stakeholders. We propose to complement these activities via RSE research.

Visit the full article here.



California’s AI Act Vetoed
@CACM

More like this:

Meta’s Hyperscale Infrastructure: Overview and Insights

A look at Meta's planetary-scale computing infrastructure, including some key lessons from its development, as the company pursues its vision of “all global datacenters as a computer.”

[A]ll of [Meta's] systems research papers are authored by teams developing production systems. These teams advance the state of the art while tackling challenging production issues at scale, then reflect on these experiences to distill working solutions into research papers. This approach ensures that the addressed problems are real and the solutions work at scale, aligning well with key criteria for successful systems research.

California’s AI Act Vetoed

Why the recent statewide artificial intelligence regulation legislation was vetoed.

Under SB 1047, developers of very large frontier models (defined as models trained on computing power greater than 1026 integer or floating point operations or costing more than $100 million at the start of training) and those who fine-tune large frontier models (also measured by compute requirements and/or training costs) would be responsible to ensure that these models will not cause “critical harms.”

Interactions - All About HCI:

The State of Large Language Models in HCI Research: Workshop Report

"All these projects began with a key question: Could LLMs help us accomplish this research task?" Learn more here.

CHI’s Greatest Hits: Analyzing the 100 Most-Cited Papers in 43 Years of Research at ACM CHI

None of the top 100 CHI papers received a Best Paper award, and only two received an honorable mention. More insights here.


XRDS - Computing for Students:

Quanta Computer Vision

With the increasing accessibility of high-resolution single-photon sensors, we can now explore what computer vision would look like if we could operate on light, one photon at a time.


Discover our past editions:

"I Was Wrong about the Ethics Crisis"

Notice and Choice Cannot Stand Alone

Reevaluating Google’s Reinforcement Learning for IC Macro Placement

AI Should Challenge, Not Obey

The Myth of the Coder

Summer Special Issue: Research and Opinions from Latin America

New Metrics for a Changing World

Do Know Harm: Considering the Ethics of Online Community Research

Now, Later, and Lasting

The Science of Detecting LLM-Generated Text

Can Machines Be in Language?


Enjoyed this newsletter?

Subscribe now to keep up to speed with what's happening in computing. The articles featured in this edition are from CACM, ACM's flagship magazine on computing and information technology; Interactions, a home to research related to human-computer interaction (HCI), user experience (UX), and all related disciplines; and XRDS, an ACM magazine for students. If you are new to ACM, consider following us on X | IG | FB | YT | Mastodon. See you next time!


@ACM


May be missing something since this is a longish article. Still, I don't see any mention of the "hardware" - the hardware constrains at a fundamental level where Software Research can go either from a complexity or efficiency level. For instance, without biological parallelism in hardware, we will waste a lot of energy achieving something humans can do relatively efficiently.

回复

要查看或添加评论,请登录

ACM, Association for Computing Machinery的更多文章

其他会员也浏览了