scholarly journals Realization of best practices in software engineering and scientific writing through ready-to-use project skeletons

2021 ◽  
Vol 53 (10) ◽  
Author(s):  
Michael Haider ◽  
Michael Riesch ◽  
Christian Jirauschek

AbstractEfforts in providing high-quality scientific software are hardly rewarded, as scientific output is typically measured in terms of publications in high ranking journals. As a result, scientific software is often developed without proper documentation and support of modern software design patterns. Ready-to-use project skeletons can be employed to accelerate the development process, while at the same time taking care of the implementation of best practices in software engineering. In this work, we revisit best practices in software engineering and review existing project skeletons. Special emphasis is given on the realization of best practices. Finally, we present a new project skeleton for scientific writing in "Image missing", which takes care of the attainment of best practices, adapted for being used in academic publications.

2012 ◽  
Author(s):  
Isaias Alves Ferreira ◽  
Antônio Maria P. de Resende ◽  
Heitor A. Xavier Costa

Software design patterns are the result of best practices that help minimize the recurring problems in systems development. Thus, this article examines how the application of design patterns has contributed to improving the maintainability, among other quality factors, a legacy system during it is refactoring. Improving the quality of the system was observed through a comparative analysis of software metrics applied to the legacy system and the system refactored.


2020 ◽  
Author(s):  
Ismar Frango Silveira

Software Design Patterns, namely those belonging to GoF catalog, are gradually being incorporated into undergraduate Computer Sciencesrelated curricula worldwide. However, this is a subject that often requires students to have some maturity on Software Development issues, which is a scenario that is barely found on actual classrooms. Besides, the comprehensive taught of many patterns' aspects depends upon professors' expertise on a large range of Software Engineering and Object Orientation-related topics. Both aspects are possibly caused by the complexity and abstract nature of the subject, whose concrete, real-world applications not always are successfully reached in an undergraduate course. In this sense, this paper presents a strategy for Teaching GoF Design Patterns through a Game Development Process, under a Flipped Classroom pedagogical context. The results of some case studies are also shown, taken from two classes where Challenge-based Learning techniques were applied.


2014 ◽  
Vol 22 (1) ◽  
pp. 1-19 ◽  
Author(s):  
Valeria Cardellini ◽  
Salvatore Filippone ◽  
Damian W.I. Rouson

We apply object-oriented software design patterns to develop code for scientific software involving sparse matrices. Design patterns arise when multiple independent developments produce similar designs which converge onto a generic solution. We demonstrate how to use design patterns to implement an interface for sparse matrix computations on NVIDIA GPUs starting from PSBLAS, an existing sparse matrix library, and from existing sets of GPU kernels for sparse matrices. We also compare the throughput of the PSBLAS sparse matrix–vector multiplication on two platforms exploiting the GPU with that obtained by a CPU-only PSBLAS implementation. Our experiments exhibit encouraging results regarding the comparison between CPU and GPU executions in double precision, obtaining a speedup of up to 35.35 on NVIDIA GTX 285 with respect to AMD Athlon 7750, and up to 10.15 on NVIDIA Tesla C2050 with respect to Intel Xeon X5650.


2020 ◽  
Vol 12 (20) ◽  
pp. 8404
Author(s):  
Kawther Saeedi ◽  
Monirah Dakilallah Almalki ◽  
Dania Aljeaid ◽  
Anna Visvizi ◽  
Muhammad Ahtisham Aslam

An emerging technology with a secure and a decentralized nature, blockchain has the potential to transform conventional practices in an efficient and dynamic manner. However, migrating to blockchain can be challenging due to the complexity of its infrastructure and processes. The complexity of building applications on blockchain has been highlighted by many studies, thus stressing the need to investigate practical solutions further. A commonly known software engineering concept, software design pattern contributes to the acceleration of software development. It offers a holistic reusable solution for commonly occurring problems in a given context. It helps to identify problems that occur repetitively and describes best practices to address them. The present study is one of the first investigations to inquire into design patterns for blockchain application. Seeking to reduce the complexity in understanding and building applications on blockchain, this paper identifies a design pattern elicitation framework from similar blockchain applications. Next, it provides a demonstration of the Proof of Integrity (PoI) pattern elicited from two different applications on the blockchain. The applicability of the pattern is evaluated by building a blockchain application to verify the integrity of the academic certificates and by explaining how this integrity has been achieved empirically.


2014 ◽  
Vol 556-562 ◽  
pp. 5267-5270
Author(s):  
Tai Fa Zhang ◽  
Ya Jiang Zhang ◽  
Jun Yao

Nowadays, object-oriented design is the trend of software design patterns, and the database connection pool is one of the important research topics. The paper firstly describes the basic principle of connection pool under traditional, tomcat and hibernate modes. Based on that, a new connection pool method is proposed, and these four methods are experimentally simulated in java language at last. The comparative analysis has verified that the presented connection pool owns the optimum access time and it can greatly improve the access efficiency of database.


Author(s):  
Sahana Prabhu Shankar ◽  
Harshit Agrawal ◽  
Naresh E.

Software design is a basic plan of all elements in the software, how they relate to each other in such a way that they meet the user requirements. In software development process, software design phase is an important phase as it gives a plan of what to do and how to do it during the implementation phase. As the technology is evolving and people's needs in the technological field are increasing, the development of software is becoming more complex. To make the development process somewhat easy, it is always better to have a plan which is followed throughout the process. In this way, many problems can be solved in the design phase, for which a number of tools and techniques are present. One is known as Design Patterns. In software engineering, a design pattern is a general solution to commonly occurring problems in software design. A design pattern isn't a finished design that can be transformed directly into code.


Author(s):  
Javier Garzas ◽  
Mario Piattini

In order to establish itself as a branch of engineering, a profession must understand its accumulated knowledge. In this regard, software engineering has advanced greatly in recent years, but it still suffers from the lack of a structured classification of its knowledge. In this sense, in the field of object-oriented micro-architectural design designers have accumulated a large body of knowledge and it is still have not organized or unified. Therefore, items such as design patterns are the most popular example of accumulated knowledge, but other elements of knowledge exist such as principles, heuristics, best practices, bad smells, refactorings, and so on, which are not clearly differentiated; indeed, many are synonymous and others are just vague concepts.


Sign in / Sign up

Export Citation Format

Share Document