Bad smells are indications of poor designs that decrease the quality and maintainability of software. Compared with extensive research on bad smells in the context of object-orientedprogramming (code smells), bad sme...
详细信息
Bad smells are indications of poor designs that decrease the quality and maintainability of software. Compared with extensive research on bad smells in the context of object-orientedprogramming (code smells), bad smells in systems models (model smells) need much more investigation. Although some works have proposed several model smells in a few modeling domains, the understanding and perception of different types of model smells may vary due to depth of knowledge and area of expertise. To fill this gap, we conducted an empirical study to evaluate the model smells summarized in the existing literature within the context of LabVIEW systems models through an anonymous online survey. Based on the 45 complete responses received from a diverse group of systems modelers, we observed that there exist differences regarding the perception of various model smells. Furthermore, depth of knowledge (experienced and inexperienced users) was observed as a factor that affects a user's understanding of different model smells. However, area of expertise (academia/industry, as well as domain of focus) did not show significant difference in model smells perception. Moreover, we identified additional model smells from this empirical study. In this paper, we provide several recommendations to avoid common model smells and we summarize the lessons learned from this investigation. Our exploratory research provides empirical evidence that drives deeper insights into model smells and lays out recommendations to practitioners on how to avoid some of the prominent smells, thus improving the quality of software artifacts in systems models.
Historically, Fortran and C have been the default programming languages in High-Performance Computing (HPC). In both, programmers have primitives and functions available that allow manipulating system memory and inter...
详细信息
This paper presents a human-computer cooperation platform, which permits the coordination between the user and the tool to improve the development of real-time control applications (e.g., mobile robots). These applica...
详细信息
This paper presents a human-computer cooperation platform, which permits the coordination between the user and the tool to improve the development of real-time control applications (e.g., mobile robots). These applications have functional (robot objectives) and temporal requirements to accomplish (deadlines guarantee of tasks). The simulation tool has been designed in order to permit the testing and validation of these two requirements. To this end, the tool is composed of two independent simulators interconnected through a shared memory: the robot simulator (functional level) and the real-time task scheduler simulator (task execution level). Robotic applications can be defined with the robot simulator while the real-time scheduler simulator permits to analyze the schedulability of the robotic tasks. The real-time task simulator incorporates a flexible task model where the task temporal parameters (e.g., computation time) adapt to the requirements of the application (e.g., number of objects in scenes);thus, the use of the CPU is not overestimated. A key issue of the framework is the human-computer interface, which allows the monitoring of different parameters of the application: robot objectives, task schedule, robot speed, computation time, CPU utilization, deadline misses. The usefulness of the simulation tool is shown through different robotic navigation experiments. Finally, the simulation tool has been used to evaluate the proposed flexible model of tasks compared to a traditional fixed temporal parameters task model. Results show that the robot fulfills the objectives earlier, about 32% on average, and consumes on average about 15% less CPU to accomplish the objectives.
In this article, object-relational mapping (ORM) engines in object-orientedprogramming are introduced. The tradeoffs that must be considered when using ORM are discussed and four lessons that will help software devel...
详细信息
In this article, object-relational mapping (ORM) engines in object-orientedprogramming are introduced. The tradeoffs that must be considered when using ORM are discussed and four lessons that will help software developers take advantage of ORM in transaction processing scenarios are provided.
Teaching is an essential part to determine personnel training, teaching quality and teaching level of the university. Curriculum development is an important part of teaching infrastructure. For features and status of ...
详细信息
Component-based programming is a programming paradigm that eases software reuse but has yet to be widely adopted in scientific computing. We propose to embed component frameworks inside high-performance languages dire...
详细信息
Component-based programming is a programming paradigm that eases software reuse but has yet to be widely adopted in scientific computing. We propose to embed component frameworks inside high-performance languages directly to improve flexibility compared to the literature. We present this approach through the example of a high-performance Bayesian inference application.
In the software maintenance activity, regression testing is performed for validing modified source code. Regression testing ensures that the modified code would not affect the earlier tested program. Due to a constrai...
详细信息
In the software maintenance activity, regression testing is performed for validing modified source code. Regression testing ensures that the modified code would not affect the earlier tested program. Due to a constraint of resources and time, regression testing is a time-consuming process and it is a very expensive activity. During the regression testing, a set of the test case and the existing test cases are reused. To minimize the cost of regression testing, the researchers proposed a test case prioritization based on clustering techniques. In recent years, research on regression testing has made significant progress for object-oriented software. The empirical results show the importance of K-mean clustering algorithm used to achieve an effective result. They found from experimental results that their proposed approach achieves the highest faults detected value than others.
In this article we propose techniques based on separation logic to reason about object-oriented programs. This leads to a modular proof system that can deal with features considered core to object-orientedprogramming...
详细信息
Informative identifiers are crucial for the comprehensibility and maintainability of programs. Exploring properties of identifiers and investigating their impact on software artifacts have been an important research f...
详细信息
Informative identifiers are crucial for the comprehensibility and maintainability of programs. Exploring properties of identifiers and investigating their impact on software artifacts have been an important research focus. However, to enable such capabilities, fundamentally we need to have comprehensive understanding on the main characteristics of identifiers at the first place, which is unfortunately not sufficiently studied. For example, it remained unclear what Part of Speech (POS) tags that developers commonly use to define identifiers. To answer such open issues, we conducted a large-scale empirical study on the naturalness of identifiers, based on 5,000 open source Java and Android projects, concerning five dimensions of identifiers: distributions, compositions, POS tags, lengths, and initializations of identifiers. Results of the empirical study contain five key findings for identifiers in programs, including, e.g., the observation that the three POS tags (i.e., nouns, verbs, and adjectives) are the most commonly used ones when developers define identifiers. Furthermore, based on our findings, we provide implications and insights for developers, researchers, and Integrated Development Environments (IDEs) in the context that identifier-related activities are performed or functionalities are enabled.
暂无评论