separation of concerns
Recently Published Documents


TOTAL DOCUMENTS

220
(FIVE YEARS 27)

H-INDEX

13
(FIVE YEARS 1)

2021 ◽  
Author(s):  
Reiner Jung ◽  
Sven Gundlach ◽  
Wilhelm Hasselbring

Abstract. Ocean models are long-living software systems facing challenges with increasing complexity, architecture erosion, and managing legacy code. These challenges increase maintenance costs in development and use, which reduces the time and resources available for research. Software engineering addresses these challenges by separation of concerns and modularization. One particular approach is to separate concerns by tailor-made notations, i.e. Domain-Specific Languages (DSLs). Using DSLs, the model developer can focus on one concern at a time without the need to consider other concerns of a software system simultaneously. In ocean and climate models, DSL tooling, like PSyclone and Dusk/Dawn, is used for instance to separate scientific and technical code. CP-DSL complements this approach with a focus on configuration and parametrization, which play an important role in ocean models, especially in parameter optimization and scenario-based simulations. CP-DSL is designed to be model agnostic and provides a unified interface to different ocean models. Furthermore, the DSL can be integrated into tools and processes used by domain experts. In this paper we report on the DSL design, implementation, and the evaluation with scientists and research software engineers. The implementation of CP-DSL is available as open source software and a replication package for configuration and parameterization of UVic and MITgcm is provided.


2021 ◽  
Vol 11 (17) ◽  
pp. 7856
Author(s):  
Vincent Bushong ◽  
Amr S. Abdelfattah ◽  
Abdullah A. Maruf ◽  
Dipta Das ◽  
Austin Lehman ◽  
...  

Microservice architecture has become the leading design for cloud-native systems. The highly decentralized approach to software development consists of relatively independent services, which provides benefits such as faster deployment cycles, better scalability, and good separation of concerns among services. With this new architecture, one can naturally expect a broad range of advancements and simplifications over legacy systems. However, microservice system design remains challenging, as it is still difficult for engineers to understand the system module boundaries. Thus, understanding and explaining the microservice systems might not be as easy as initially thought. This study aims to classify recently published approaches and techniques to analyze microservice systems. It also looks at the evolutionary perspective of such systems and their analysis. Furthermore, the identified approaches target various challenges and goals, which this study analyzed. Thus, it provides the reader with a roadmap to the discipline, tools, techniques, and open challenges for future work. It provides a guide towards choices when aiming for analyzing cloud-native systems. The results indicate five analytical approaches commonly used in the literature, possibly in combination, towards problems classified into seven categories.


Informatics ◽  
2021 ◽  
Vol 8 (3) ◽  
pp. 41
Author(s):  
Hamid Mcheick ◽  
John Sayegh

The emergence of pervasive computing technology has revolutionized all aspects of life and facilitated many everyday tasks. As the world fights the coronavirus pandemic, it is necessary to find new ways to use technology to fight diseases and reduce their economic burden. Distributed systems have demonstrated efficiency in the healthcare domain, not only by organizing and managing patient data but also by helping doctors and other medical experts to diagnose diseases and take measures to prevent the development of serious conditions. In the case of chronic diseases, telemonitoring systems provide a way to monitor patients’ states and biomarkers in the course of their everyday routines. We developed a Chronical Obstructive Pulmonary Disease (COPD) healthcare system to protect patients against risk factors. However, each change in the patient context initiated the execution of the system’s entire rule base, which diminished performance. In this article, we use separation of concerns to reduce the impact of contextual changes by dividing the context, rules and services into software modules (units). We combine healthcare telemonitoring with context awareness and self-adaptation to create an adaptive architecture model for COPD patients. The model’s performance is validated using COPD data, demonstrating the efficiency of the separation of concerns and adaptation techniques in context-aware systems.


2021 ◽  
Author(s):  
Alexander L Cope ◽  
Felicity Anderson ◽  
John Favate ◽  
Michael Jackson ◽  
Amanda Mok ◽  
...  

Motivation: Ribosome profiling, or Ribo-seq, is the state of the art method for quantifying protein synthesis in living cells. Computational analysis of Ribo-seq data remains challenging due to the complexity of the procedure, as well as variations introduced for specific organisms or specialized analyses. Many bioinformatic pipelines have been developed, but these pipelines have key limitations in terms of functionality or usability. Results: We present riboviz 2, an updated riboviz package, for the comprehensive transcript-centric analysis and visualization of Ribo-seq data. riboviz 2 includes an analysis workflow built on the Nextflow workflow management system, combining freely available software with custom code. The package is extensively documented and provides example configuration files for organisms spanning the domains of life. riboviz 2 is distinguished by clear separation of concerns between annotation and analysis: prior to a run, the user chooses a transcriptome in FASTA format, paired with annotation for the CDS locations in GFF3 format. The user is empowered to choose the relevant transcriptome for their biological question, or to run alternative analyses that address distinct questions. riboviz 2 has been extensively tested on various library preparation strategies, including multiplexed samples. riboviz 2 is flexible and uses open, documented file formats, allowing users to integrate new analyses with the pipeline.


2021 ◽  
Vol 6 ◽  
pp. 37
Author(s):  
Richard Domander ◽  
Alessandro A Felder ◽  
Michael Doube

Research software is often developed with expedience as a core development objective because experimental results, but not the software, are specified and resourced as a project output. While such code can help find answers to specific research questions, it may lack longevity and flexibility to make it reusable. We reimplemented BoneJ, our software for skeletal biology image analysis, to address design limitations that put it at risk of becoming unusable. We improved the quality of BoneJ code by following contemporary best programming practices. These include separation of concerns, dependency management, thorough testing, continuous integration and deployment, source code management, code reviews, issue and task ticketing, and user and developer documentation. The resulting BoneJ2 represents a generational shift in development technology and integrates with the ImageJ2 plugin ecosystem.


2021 ◽  
Vol 6 ◽  
pp. 37 ◽  
Author(s):  
Richard Domander ◽  
Alessandro A Felder ◽  
Michael Doube

Research software is often developed with expedience as a core development objective because experimental results, but not the software, are specified and resourced as a project output. While such code can help find answers to specific research questions, it may lack longevity and flexibility to make it reusable. We reimplemented BoneJ, our software for skeletal biology image analysis, to address design limitations that put it at risk of becoming unusable. We improved the quality of BoneJ code by following contemporary best programming practices. These include separation of concerns, dependency management, thorough testing, continuous integration and deployment, source code management, code reviews, issue and task ticketing, and user and developer documentation. The resulting BoneJ2 represents a generational shift in development technology and integrates with the ImageJ2 plugin ecosystem.


Author(s):  
Janis Osis ◽  
Erika Nazaruka (Asnina)

Some experts opine that software is built in a primitive way. The role of modeling as a treatment for the weakness of software engineering became more important when the principles of Model Driven Architecture (MDA) appeared. Its main advantage is architectural separation of concerns. It showed the necessity of modeling and opened the way for software development to become an engineering discipline. However, this principle does not demonstrate its whole potential power in practice because of lack of mathematical accuracy in the very initial steps of software development. The sufficiency of modeling in software development is still disputable. The authors believe that software development in general (and modeling in particular) based on mathematical formalism in all of its stages and together with the implemented principle of architectural separation of concerns can become an important part of software engineering in its real sense. They propose the formalism by topological modeling of system functioning as the first step towards engineering.


Author(s):  
Henrique Jank ◽  
William Alegranci Venturini ◽  
Mario Lucio da Silva Martins ◽  
Humberto Pinheiro ◽  
Fabio Bisogno

2020 ◽  
pp. 53-108
Author(s):  
Christian Schlegel ◽  
Alex Lotz ◽  
Matthias Lutz ◽  
Dennis Stampfer

AbstractSuccessful engineering principles for building software systems rely on the separation of concerns for mastering complexity. However, just working on different concerns of a system in a collaborative way is not good enough for economically feasible tailored solutions. A successful approach for this is the composition of complex systems out of commodity building blocks. These come as is and can be represented as blocks with ports via data sheets. Data sheets are models and allow a proper selection and configuration as well as the prediction of the behavior of a building block in a specific context. This chapter explains how model-driven approaches can be used to support separation of roles and composition for robotics software systems. The models, open-source tools, open-source robotics software components and fully deployable robotics software systems shape a robotics software ecosystem.


Sign in / Sign up

Export Citation Format

Share Document