The semantics of concurrent programs is now defined by a weak memory model, determined either by the programminglanguage (e.g., in the case of C/C++11 or java) or by the hardware architecture (e.g., for assembly and ...
详细信息
ISBN:
(纸本)9783319633879;9783319633862
The semantics of concurrent programs is now defined by a weak memory model, determined either by the programminglanguage (e.g., in the case of C/C++11 or java) or by the hardware architecture (e.g., for assembly and legacy C code). Since most work in concurrent software verification has been developed prior to weak memory consistency, it is natural to ask how these models affect formal reasoning about concurrent programs. In this overview paper, we show that verification is indeed affected: for example, the standard Owicki-Gries method is unsound under weak memory. Further, based on concurrent separation logic, we develop a number of sound program logics for fragments of the C/C++11 memory model. We show that these logics are useful not only for verifying concurrent programs, but also for explaining the weak memory constructs of C/C++.
Structural health monitoring (SHM) is processes which detects and monitor the destructive part of various structures like bridges, buildings, wind turbines etc. Structural health assessment is widely applied to variou...
详细信息
ISBN:
(纸本)9781509056866
Structural health monitoring (SHM) is processes which detects and monitor the destructive part of various structures like bridges, buildings, wind turbines etc. Structural health assessment is widely applied to various forms of infrastructures. Structural health monitoring system elements consider the structural model, various types of sensors, Data acquisition systems, power management unit. SHM system for bridge application is including accelerometer sensor and ultrasonic sensor. Accelerometer sensor is used to measure the tilting angle of bridge pillar and ultrasonic sensor is used to measure the level of water. SHM system developing hardware and software model to be used for distributed real-time monitoring. Two sensor node and central station work at same frequency band. By using the central station, receive sensor data from the nodes and send to the PC. By using the visual basic program uploading data to the static IP address and also developing the android application to send the condition of bridge structure to the people. The wireless sensor network is easy to use;it is require minimum power and its ability to fast data acquisition. The main aim of this project to develop the sensor nodes for bridge health monitoring system and send the bridge situation to the people.
The naming of local variables is usually at the programmer's discretion. Thus, there is a diversity in naming local variables and this may cause variations in the code quality. Many coding conventions say that the...
详细信息
ISBN:
(纸本)9781538623879
The naming of local variables is usually at the programmer's discretion. Thus, there is a diversity in naming local variables and this may cause variations in the code quality. Many coding conventions say that the name of a local variable can/should be short. This paper focuses on such conventions, and aims to explore the trends of local variables' names in java and examine if abnormal local variables create harmful effects on the code quality. This paper collected data on local variablesnames, scopes and types-from six popular open source products, and proposes to evaluate their abnormalities by using the notion of the Mahalanobis distance. The empirical results report the following findings: 1) The trend of naming local variables differs according to the variable type;2) The majority of local variables have short names with narrow scopes, where a name is often a word or its abbreviated form;3) Methods having abnormal local variables are about 1.2 - 2.5 times more likely to be change-prone than the others. While the naming of local variables depends on who writes the code, there seem to be common trend of naming. java methods with deviant local variables tend to be fixed many times after their release and cannot survive unscathed.
Testing networked systems is challenging. The client or server side cannot be tested by itself. We present a solution using tool "Modbat" that generates test cases for java's network library ***, where w...
详细信息
Testing networked systems is challenging. The client or server side cannot be tested by itself. We present a solution using tool "Modbat" that generates test cases for java's network library ***, where we test both blocking and non-blocking network functions. Our test model can dynamically simulate actions in multiple worker and client threads, thanks to a carefully orchestrated design that covers non-determinism while ensuring progress.
Demand Side Management (DSM) is to be handled in a better coordinated way with the increase in the intermittency of the renewable energy sources (RES) into the power sector. With the implementation of centralized cont...
详细信息
ISBN:
(纸本)9781509062553
Demand Side Management (DSM) is to be handled in a better coordinated way with the increase in the intermittency of the renewable energy sources (RES) into the power sector. With the implementation of centralized control having its own drawbacks, Microgrids are emerging as a potential entity for managing it efficiently. In this paper, an agent based approach for the implementation of the supply and load balance is realized. A decentralized control ensures that the balance in load and supply is achieved when these micro grids are working in islanded mode. The agent implementation is done in java using java Agent Development Environment (JADE). The interactions of the components of the micro grid are shown in a sniffer diagram in JADE.
Executable Domain-Specific Modeling languages (xDSMLs) are typically defined by metamodels that specify their abstract syntax, and model interpreters or compilers that define their execution semantics. To face the pro...
详细信息
ISBN:
(纸本)9781538634929
Executable Domain-Specific Modeling languages (xDSMLs) are typically defined by metamodels that specify their abstract syntax, and model interpreters or compilers that define their execution semantics. To face the proliferation of xDSMLs in many domains, it is important to provide language engineering facilities for opportunistic reuse, extension, and customization of existing xDSMLs to ease the definition of new ones. Current approaches to language reuse either require to anticipate reuse, make use of advanced features that are not widely available in programminglanguages, or are not directly applicable to metamodel-based xDSMLs. In this paper, we propose a new language implementation pattern, named REVISITOR, that enables independent extensibility of the syntax and semantics of metamodel-based xDSMLs with incremental compilation and without anticipation. We seamlessly implement our approach alongside the compilation chain of the Eclipse Modeling Framework, thereby demonstrating that it is directly and broadly applicable in various modeling environments. We show how it can be employed to incrementally extend both the syntax and semantics of the fUML language without requiring anticipation or re-compilation of existing code, and with acceptable performance penalty compared to classical handmade visitors.
With the spread of mobile communication nodes such as smartphones and wireless communication technologies, the demand for the use of networks has been increasing. In the case of IPv4 networks, exhaustion of global IP ...
详细信息
ISBN:
(纸本)9784907626310
With the spread of mobile communication nodes such as smartphones and wireless communication technologies, the demand for the use of networks has been increasing. In the case of IPv4 networks, exhaustion of global IP addresses has been a serious problem. As a short-term solution for this problem, the use of NAT is quite common. However, there exists a problem which associated with NAT as well. Namely, we cannot make communication from the global network side to the private network side behind NAT. As a long-term solution for the IPv4 address exhaustion problem, it is necessary to migrate from IPv4 to IPv6 network environment. However, there is no compatibility between these networks, and thus, IPv6 is not widely spread at all. Because of the above-said problem, the mixed environment of IPv4 and IPv6 networks seems to last for a long period of time. Accordingly, \"connectivity\" is required so that communication can be maintained regardless of the connected network environment. Furthermore, the communication node cannot continue its communication when it moves to another network, owing to the change of its IP Address. Therefore, \"mobility\" is required so that the node can continue communication even if the network is switched to another network.
This paper explores adding capabilities to java with the objective of tightening security management for access to resources both within the java Class Library and java applications. Code can only access resources if ...
详细信息
ISBN:
(数字)9783319712376
ISBN:
(纸本)9783319712376
This paper explores adding capabilities to java with the objective of tightening security management for access to resources both within the java Class Library and java applications. Code can only access resources if it is given explicit capabilities, allowing replacement of the use of doPrivileged blocks. Capabilities provide restricted access to their implementing object - like an interface - but when a capability is created, it has a more restrictive dynamic type than its implementing object, and hence access to the full facilities of the implementing object (e.g. via down casting) are precluded. We used the Annotation Processing Tool to track the declaration and use of capabilities.
The component-based software development enables to construct applications from reusable components providing particular functionalities and simplifies application evolution. To ensure the correct functioning of a giv...
详细信息
ISBN:
(纸本)9788394625375
The component-based software development enables to construct applications from reusable components providing particular functionalities and simplifies application evolution. To ensure the correct functioning of a given component-based application and its preservation across evolution steps, it is necessary to test not only the functional properties of the individual components but also the correctness of their mutual interactions and cooperation. This is complicated by the fact that third-party components often come without source code and/or documentation of functional and interaction properties. In this paper, we describe an approach for performing rigorous semi-automated testing of software components with unavailable source code. Utilizing an automated analysis of the component interfaces, scenarios invoking methods with generated parameter values are created. When they are performed on a stable application version and their runtime effects (component interactions) are recorded, the resulting scenarios with recorded effects can be used for accurate regression testing of newly installed versions of selected components. Our experiences with a prototype implementation show that the approach has acceptable demands on manual work and computational resources.
Reflection, which is widely used in practice and abused by many security exploits, poses a significant obstacle to program analysis. Reflective calls can be analyzed statically or dynamically. Static analysis is more ...
详细信息
ISBN:
(纸本)9781538609415
Reflection, which is widely used in practice and abused by many security exploits, poses a significant obstacle to program analysis. Reflective calls can be analyzed statically or dynamically. Static analysis is more sound but also more imprecise (by introducing many false reflective targets and thus affecting its scalability). Dynamic analysis can be precise but often miss many true reflective targets due to low code coverage. We introduce MIRROR, the first automatic reflection analysis for java that increases significantly the code coverage of dynamic analysis while keeping false reflective targets low. In its static analysis, a novel reflection-oriented slicing technique is applied to identify a small number of small path-based slices for a reflective call so that different reflective targets are likely exercised along these different paths. This preserves the soundness of pure static reflection analysis as much as possible, improves its scalability, and reduces substantially its false positive rate. In its dynamic analysis, these slices are executed with automatically generated test cases to report the reflective targets accessed. This significantly improves the code coverage of pure dynamic analysis. We evaluate MIRROR against a state-of-the-art dynamic reflection analysis tool, TAMIFLEX, by using 10 large real-world java applications. MIRROR detects 12.5% - 933.3% more reflective targets efficiently (in 362.8 seconds on average) without producing any false positives. These new targets enable 5 - 174949 call-graph edges to be reachable in the application code.
暂无评论