Model-driven development processes mainly from the capabilities of modelling frameworks, since these offer an explicit representation of model elements and features, as well as reusable tooling, such as transformation...
详细信息
ISBN:
(纸本)9789897583582
Model-driven development processes mainly from the capabilities of modelling frameworks, since these offer an explicit representation of model elements and features, as well as reusable tooling, such as transformation languages or editor frameworks. Nevertheless, most software systems are not developed in a model-driven way although they do contain implicit models encoded in their object-oriented design. Adaptation to model-driven tooling imposes high manual effort and easily breaks compatibility with dependent code and existing tooling. We present an automated and minimally intrusive approach that makes implicit models in software systems explicit. We adapt existing object-oriented code so that it provides an explicit model representation, while preserving its original API. As a result, capabilities of modelling frameworks, such as persistence and change notifications, can be integrated into object-oriented code, and enable the application of reusable tools. We provide a classification of requirements that existing code has to fulfill, usable as an indicator for the applicability of modelling tools to them. An evaluation based on one artificial and two open-source case study systems shows the correct preservation of the API, as well as the ability to apply tooling to the modified code.
In the field of programming education, learners often cannot fully understand the behavior of algorithms and programs, because it is difficult for them to capture a realistic image of their behavior. Many researchers ...
详细信息
Development of quality object-oriented software contains security as an integral aspect of that process. During that process, a ceaseless burden on the developers was posed in order to maximize the development and at ...
详细信息
ISBN:
(数字)9781728167992
ISBN:
(纸本)9781728168005
Development of quality object-oriented software contains security as an integral aspect of that process. During that process, a ceaseless burden on the developers was posed in order to maximize the development and at the same time to reduce the expense and time invested in security. In this paper, the authors analyzed metrics for object-oriented software in order to evaluate and identify the relation between metric value and security of the software. Identification of these relations was achieved by study of software vulnerabilities with code level metrics. By using OWASP classification of vulnerabilities and experimental results, we proved that there was relation between metric values and possible security issues in software. For experimental code analysis, we have developed special software called SOFTMET.
Existing cache and main memory compression techniques compress data in small fixed-size blocks, typically cache lines. Moreover, they use simple compression algorithms that focus on exploiting redundancy within a bloc...
详细信息
ISBN:
(纸本)9781450362405
Existing cache and main memory compression techniques compress data in small fixed-size blocks, typically cache lines. Moreover, they use simple compression algorithms that focus on exploiting redundancy within a block. These techniques work well for scientific programs that are dominated by arrays. However, they are ineffective on object-based programs because objects do not fall neatly into fixed-size blocks and have a more irregular layout. We present the first compressed memory hierarchy designed for object-based applications. We observe that (i) objects, not cache lines, are the natural unit of compression for these programs, as they traverse and operate on object pointers;and (ii) though redundancy within each object is limited, redundancy across objects of the same type is plentiful. We exploit these insights through Zippads, an object-based compressed memory hierarchy, and COCO, a cross-object-compression algorithm. Building on a recent object-based memory hierarchy, Zippads transparently compresses variable-sized objects and stores them compactly. As a result, Zippads consistently outperforms a state-of-the-art compressed memory hierarchy: on a mix of array- and object-dominated workloads, Zippads achieves 1.63x higher compression ratio and improves performance by 17%.
This article is about computer based simulations applied to physical systems that consists both of fluids and rigid bodies. It explains how to build such simulations in a systematic manner applying objectoriented pro...
详细信息
We present a novel approach for modeling cyberphysical systems for analysis and test purposes. Instead of creating a new expressive specification language with sophisticated semantics and complex compilers, we rely on...
详细信息
ISBN:
(纸本)9781728108889
We present a novel approach for modeling cyberphysical systems for analysis and test purposes. Instead of creating a new expressive specification language with sophisticated semantics and complex compilers, we rely on a lightweight version of Back's Action systems, for which we provide a simple bounded model checker using the SMT solver Z3. In order to model industrial-sized embedded systems, we extend our simple specification language by using the powerful capabilities of the modern programming language Scala for creating Domain Specific languages (DSL). This enables us to use the features of an expressive, object-oriented and functional general-purpose language without the need to increase the complexity of the model checker. We demonstrate how to model a railway interlocking system with a configurable track layout and sketch the application to model-based testing.
Modern web applications rely heavily on databases to query and update information. To ease the development efforts, object Relational Mapping (ORM) frameworks provide an abstraction for developers to manage databases ...
详细信息
ISBN:
(纸本)9781728125084
Modern web applications rely heavily on databases to query and update information. To ease the development efforts, object Relational Mapping (ORM) frameworks provide an abstraction for developers to manage databases by writing in the same object-orientedprogramming languages. Prior studies have shown that there are various types of performance issues caused by inefficient accesses to databases via different ORM frameworks (e.g., Hibernate and ActiveRecord). However, it is not clear whether the reported performance anti-patterns (common performance issues) can be generalizable across various frameworks. In particular, there is no study focusing on detecting performance issues for applications written in PHP, which is the choice of programming languages for the majority (79%) of web applications. In this experience paper, we detail our process on conducting performance-aware refactoring of an industrial web application written in Laravel, the most popular web framework in PHP. We have derived a complete catalog of 17 performance anti-patterns based on prior research and our experimentation. We have found that some of the reported anti-patterns and refactoring techniques are framework or programming language specific, whereas others are general. The performance impact of the anti-pattern instances are highly dependent on the actual usage context (workload and database settings). When communicating the performance differences before and after refactoring, the results of the complex statistical analysis may be sometimes confusing. Instead, developers usually prefer more intuitive measures like percentage improvement. Experiments show that our refactoring techniques can reduce the response time up to 93.0% and 93.4% for the industrial and the open source application under various scenarios.
In an aspect-oriented program, the cross-cutting functionalities are defined in pieces of advice such that they apply to program-execution points for the core functionalities. Program changes can affect the applicatio...
详细信息
ISBN:
(纸本)9789897583759
In an aspect-oriented program, the cross-cutting functionalities are defined in pieces of advice such that they apply to program-execution points for the core functionalities. Program changes can affect the application of pieces of advice. To that end, a source-code differencing tool, for two versions of an aspect-oriented program, needs to support the identification of changes in pieces of advice at locations of their applications. To alleviate this task, we introduce an extension of the existing differencing technique for object-oriented programs. We implemented a tool AjDiff and used it to evaluate our technique on the two examples of aspect-oriented programs: Tracing and Telecom. We manually verified that our tool can successfully identify changes in pieces of advice at locations of their application.
The study of Java as a programming language for scientific computing is warranted by simpler, more extensible and more easily maintainable code. Previous work on refactoring a C++ scientific computing code base to fol...
详细信息
Ontologies can represent a significant asset of domain-specific information systems, written predominantly using the object-oriented paradigm. However, to be able to work with ontological data in this paradigm, a mapp...
详细信息
ISBN:
(纸本)9783030310950;9783030310943
Ontologies can represent a significant asset of domain-specific information systems, written predominantly using the object-oriented paradigm. However, to be able to work with ontological data in this paradigm, a mapping must ensure transformation between the ontology and the object world. While many software libraries provide such a mapping, they lack standardization or formal guarantees of its semantics. In this paper, we provide a formalism for mapping ontologies between description logics and F-logic, a formal language for representing structural aspects of object-orientedprogramming languages. This formalism allows to precisely specify the semantics of the object-ontological mapping and thus ensure a predictable shape and behavior of the object model.
暂无评论