The aim of this paper is to provide guidelines for developing high-quality, well-written GNSS software receivers. The systematic application of software design patterns and programming methodologies speeds up the deve...
详细信息
ISBN:
(纸本)9781424487417
The aim of this paper is to provide guidelines for developing high-quality, well-written GNSS software receivers. The systematic application of software design patterns and programming methodologies speeds up the development process by providing tested, proven development paradigms, and improved code readability for coders, receiver architects, and users. This includes unit testing of all the modules, and the use of a code programming style stressing readability and language-specific conventions. All these good practices result in fewer bugs, reduce reinvention-of-the-wheel, and cut long-term maintenance costs. The paper provides an analysis of design patters, good coding practices, and methodologies for the design and implementation of GNSS software receivers, describing a working implementation released under the GNU General Public License.
During the last decades we have faced an outburst in needs for software and consequently in software engineering, accompanied with numerous problems that needed to be solved and robust, documented solutions that neede...
详细信息
ISBN:
(纸本)9781538681619
During the last decades we have faced an outburst in needs for software and consequently in software engineering, accompanied with numerous problems that needed to be solved and robust, documented solutions that needed to be proposed. Towards this end, software design patterns become practically a necessity, since they offered reusable solutions to commonly occurring problems within specified contexts of software architectures. In this paper we propose one more evaluation dimension for common designpatterns, using code metrics and structuring specific experiments of software projects that derive from real life and thus can be considered as quite realistic. Our results indicate that while in many occasions, architectures implementing designpatterns are prevailing, there are considerable cases where simplistic, generic approaches seem to outperform them in specific metrics.
Auto dynamic difficulty (ADD) is the technique of automatically changing the level of difficulty of a video game in real time to match player expertise. Recreating an ADD system on a game-by-game basis is both expensi...
详细信息
ISBN:
(纸本)9789077381748
Auto dynamic difficulty (ADD) is the technique of automatically changing the level of difficulty of a video game in real time to match player expertise. Recreating an ADD system on a game-by-game basis is both expensive and time consuming, ultimately limiting its usefulness. Thus, we leverage the benefits of software design patterns to construct an ADD framework. In this paper, we discuss a number of desirable software quality attributes that can be achieved through the usage of these designpatterns, based on a case study of two video games.
The Web Content Accessibility Guidelines was developed by World Wide Web Consortium with a goal of providing a single shared standard for web content accessibility that meets the needs of individuals, organizations, a...
详细信息
The Web Content Accessibility Guidelines was developed by World Wide Web Consortium with a goal of providing a single shared standard for web content accessibility that meets the needs of individuals, organizations, and governments. Given that there is a large percentage of very small entities that develop software who also utilize the ISO/IEC software process standard, the purpose of this study is the development of software design patterns for users with visual disabilities. As a result, four accessibility designpatterns are defined: Authentication adapter, Blindness adapter, Dichromatic color vision adapter, and Blurry vision adapter. These patterns will help to improve the design of the web applications built using them while being compliant with the ISO/IEC 29110 standard. The use of designpatterns also enables the transfer of design experience to programming practices and improves the software documentation. To validate the set of patterns, an online course for Spanish speakers was developed, and the evaluation was carried out using simulators, automated tools, experts, and users. Simulators and automated tools showed no accessibility errors and experts evaluated 10 heuristics principles and did not identify any severity issues. Taken together, our results provide positive evidence that users with visual disabilities could benefit from the proposed features.
Modularity is an ongoing focus in genetic programming research. Enhanced modularity can accelerate solution convergence and increase human understanding and knowledge gained from evolved programs. Prior advances in mo...
详细信息
Modularity is an ongoing focus in genetic programming research. Enhanced modularity can accelerate solution convergence and increase human understanding and knowledge gained from evolved programs. Prior advances in modularity research have addressed programming language elements such as functions, modules, and recursion. This paper proposes improving modularity by considering non-language elements, specifically software design patterns. A new genetic programming technique implementing the template method pattern is described. This technique was tested and compared to existing genetic programming approaches in the prediction of nonlinear time series subject to abrupt changes in the underlying data generation process. Such series are often seen in areas such as finance and meteorology and have proved challenging for genetic programming to model and predict. Experimental results demonstrate the potential for incorporating additional software design patterns into genetic programming and applying these techniques to additional problem domains.
Over the past two decades, the HCI community has proposed specific features that software applications should include to overcome some of the most common usability problems. However, incorporating such usability featu...
详细信息
Over the past two decades, the HCI community has proposed specific features that software applications should include to overcome some of the most common usability problems. However, incorporating such usability features into software applications may not be a straightforward process for software developers who have not been trained in usability (i.e., determining when, how, and why usability features should been considered). We have defined a set of usability guidelines for software development to help software engineers incorporate particular usability features into their applications. In this paper, we focus on the softwaredesign artifacts provided by the guidelines. We detail the structure of the proposed design artifacts and how they should be used according to the software development process and software architecture used in each application. We have tested our guidelines in an academic setting. Preliminary validation shows that the use of the guidelines reduces development time, improves the quality of the resulting designs, and significantly decreases the perceived complexity of the usability features from the developers' perspective.
Several software design patterns have cataloged either with canonical or as variants to solve a recurring design problem. However, novice designers mostly adopt patterns without considering their ground reality and re...
详细信息
Several software design patterns have cataloged either with canonical or as variants to solve a recurring design problem. However, novice designers mostly adopt patterns without considering their ground reality and relevance to design problems, which causes to increase the development and maintenance efforts. The existing automated systems to select the designpatterns need either high computing effort and time for the formal specification or precise learning through the training of several classifiers with large sample size to select the right designpatterns realized on the base of their ground reality. In order to discuss this issue, we propose a method on the base of a supervised learning technique named 'Learning to Rank', to rank the designpatterns via the text relevancy with the description of the given design problems. Subsequently, we also propose an evaluation model to assess the effectiveness of the proposed method. We evaluate the efficacy of the proposed method in the context of several design pattern collections and relevant design problems. The promising experimental results indicate the applicability of the proposed method as a recommendation system to select the right design pattern(s).
designpatterns have been used successfully in recent years in the software engineering community in order to share knowledge about the structural and behavioural properties of software. There is a growing body of res...
详细信息
designpatterns have been used successfully in recent years in the software engineering community in order to share knowledge about the structural and behavioural properties of software. There is a growing body of research in the area of design pattern detection and design recovery, requiring a formal description of patterns which can be matched by tools against the software that is to be analysed. We propose a novel approach to the formal definition of designpatterns that is based on the idea that designpatterns are knowledge that is shared across a community and that is by nature distributed and inconsistent. By using the web ontology language (OWL) we are able to formally define designpatterns and some related concepts such as pattern participant, pattern refinement, and pattern instance. We discuss the respective ontology and give examples of how patterns can be defined using this ontology. We present the prototype of a Java client that accesses the pattern definitions and detects patterns in Java software, and analyse some scan results. This leads to the discussion on design pattern instantiation. (C) 2007 Elsevier B. V. All rights reserved.
This paper describes our approach to developing a simulation software application for the fully kinetic 6D-Vlasov equation, which will be used to explore physics beyond the reduced gyrokinetic model. Simulating the fu...
详细信息
This paper describes our approach to developing a simulation software application for the fully kinetic 6D-Vlasov equation, which will be used to explore physics beyond the reduced gyrokinetic model. Simulating the fully kinetic Vlasov equation requires efficient utilization of compute and storage capabilities due to the high dimensionality of the problem. In addition, the implementation needs to be extensible regarding the physical model and flexible regarding the hardware for production runs. We start on the algorithmic background to simulate the 6-D Vlasov equation using a semi-Lagrangian algorithm. The performance portable software stack, which enables production runs on pure CPU as well as AMD or Nvidia GPU accelerated nodes, is presented. The extensibility of our implementation is guaranteed through the described software architecture of the main kernel, which achieves a memory bandwidth of almost 500 GB/s on a V100 Nvidia GPU and around 100 GB/s on an Intel Xeon Gold CPU using a single code base. We provide performance data on multiple node-level architectures discussing utilized and further available hardware capabilities. Finally, the network communication bottleneck of 6-D grid-based algorithms is quantified. A verification of physics beyond gyrokinetic theory, for the example of ion Bernstein waves, concludes the work.
Behavior-based systems form the basis of autonomous control for many robots. In this article, we demonstrate that a single software framework can be used to represent many existing behavior based approaches. The unifi...
详细信息
Behavior-based systems form the basis of autonomous control for many robots. In this article, we demonstrate that a single software framework can be used to represent many existing behavior based approaches. The unified behavior framework presented, incorporates the critical ideas and concepts of the existing reactive controllers. Additionally, the modular design of the behavior framework: (1) simplifies development and testing;(2) promotes the reuse of code;(3) supports designs that scale easily into large hierarchies while restricting code complexity;and (4) allows the behavior based system developer the freedom to use the behavior system they feel will function the best. When a hybrid or three layer control architecture includes the unified behavior framework, a common interface is shared by all behaviors, leaving the higher order planning and sequencing elements free to interchange behaviors during execution to achieve high level goals and plans. The framework's ability to compose structures from independent elements encourages experimentation and reuse while isolating the scope of troubleshooting to the behavior composition. The ability to use elemental components to build and evaluate behavior structures is demonstrated using the Robocode simulation environment. Additionally, the ability of a reactive controller to change its active behavior during execution is shown in a goal seeking robot implementation.
暂无评论