Since 2013, open government data is one of hot topic in Japan to realize more open about conduct of government, citizen participation, and positive economic growth. It's also make opportunities for cross-industrial association and students active learning. To make use of open government data actively and efficiently, the data should be machine-readable and software engineers are necessary. This paper commentates a situation and issues of the domestic open government data on the basis of a software engineer.
Fostering high level IT professional students is a strong social demand. Actions to address this have been carried out continuously at Graduate School, University of Tsukuba since 2007. In this paper, an overview of the main action and its expected effect are shown, and we evaluate the result of the action from the skill diagnosis in our continuous monitoring activity and the student questionnaires. Some suggestions are shown to make it possible to continue activities to foster high level IT professional students in universities in future.
Due to widely spread of Internet Technology, We can use network technology at ordinary environment. However its operational style is not so developed. Network operator still configure and manage each device with traditional style. Several proposal achieves to resolv this issue at research environment, though these quality is not enough for practical operational level. We propose new network operational architecture, GINEW (General Integrated Network Engineering Workbox), and evaluate feasibility of prototype implementation.
The technique of constructing Internet Emulation environment with virtual machine on large scale testbed is researched as a experimental environment for scale testing of Internet or emulating world wide cyber attacks. Because of verifying AS path attribute, technology or software that cooperate with ASes, we build emulated AS (Autonomous System) network, one of Internet Emulation. In this paper, we call this emulation as AS emulation. For using physical resources effectively, virtual machine technology is employed in AS emulation. To maximize multiplicity of virtual machines, resources are allocated to the software is required. Because of complexity of calculating, it is difficult to compute optimum solution, so this estimation is unsuitable for emulating Internet on the clusters. In this paper, we propose a model-based estimation method for memory usage on AS emulation. This model is based on static analysis of source code and dynamic analysis on small scale experiment. To verify the proposed model, we build AS emulation environment with Quagga bgpd on the StarBED. This environment has 500, 1000 and 1500 virtual nodes on 100 physical nodes. At the result of this, we verify that proposed estimation model is superior at the point of calculate order and scalability.
We propose a method for checking the behavior preservation property of refactoring based on static analysis of source code. Our method detects difference of program structure using AST-based models that are extracted from the source code and transformed according to the refactoring patterns. We also built a tool named POM/EQ that checks C/C++ source code. As a result of the case study using the tool, we successfully judged the validity of 56% of the refactoring changes that are performed to an industrial product.
In an education and training program for software professional engineers at the company, the teaching methods are mostly lectures and exercises, and are hard to qualify the trainees in acquiring knowledge and skills. The proposed method allows to design the teaching method according to the knowledge and skills needed for software professional engineers based on the set of learning goals of extended Bloom's Taxonomy. We applied the proposed method to our education and training program for software professional engineers and demonstrated the effectiveness of the method.
In this paper, we examine brain activity in program comprehension that contains the effects of 1) calculation, 2) memorizing variables, and 3) judging conditional branch. We measured Frontal pole of twenty subjects at three types code reading tasks and three level mental calculation tasks using NIRS. The result of the experiment showed a significantly higher brain activity at the variables-memorizing task. On the other hand, no significant difference was observed between different levels of mental calculation task. The results suggest that brain activity at Frontal pole indicate a workload of memorizing in program comprehension.
Structured overlay networks that support range queries cannot hash data IDs for load balancing, in order to preserve the total order on the IDs. Since data and queries are not equally distributed on the ID-space without hashing in range-based overlay networks, uneven loads are imposed on the overlay nodes. Existing load balancing techniques for range-based overlay networks distribute the loads by using data reallocation or node migration, which makes the networks very unstable due to heavy data reallocation or frequent churn. This paper proposes a novel scheme that distributes, fairly, the loads without node migration and with little data reallocation, by sharing some ID-space regions between neighboring nodes. Our “overlapping” ID-space management scheme derives the optimal overlap based on kernel density estimations; the query loads based on the statistical theory are used to calculate the best overlap regions. This calculation is executed in a distributed manner with no central coordinator. We conduct thorough computer simulations, and show that our scheme alleviates the worst node load by 20–90 % against existing techniques without node migration and with least data reallocation.
It is ideal to test whether there is a regression in a software system or not by running all available test cases, whenever the system is modified. However, practitioners may not be able to run all test cases due to a lack of time or manpower, and then they usually prioritize the test cases and run some of them in decreasing order of priority. In order to make such regression testings more cost-effective, an application of 0–1 programming method to plan the regression testing has been studied in the past. While an empirical superiority of the 0–1 programming method-based testing over the conventional one has been reported, there is an issue of the testing completeness such that only a few functionalities might be tested. Thus, this paper utilizes a clustering technique for a more effective test case selection and proposes to formulate the regression testing as a 0–1 programming problem having constraints to cover all clusters of the test cases. The empirical work shows that the proposed method can detect regressions with about one-third (1/3) effort of the conventional method.
In this paper, we discuss the issue of how to define and develop a software development process with formal methods from a view point of software process improvement. We use a standard development process improvement model, CMMI-DEV, as a reference which is a compilation of best practices in software development process. We expect this approach can lead to the exploitation of knowledge and findings obtained in the successful cases of introducing formal methods. In this work, we analyzed the process area network using the relationship of Related Process Areas components in the process improvement model CMMI-DEV. We compared the results with succeeded cases using formal methods in real projects and found similarities between observations on the process networks and the lessons learned from the succeeded cases.
The state of a program at runtime is useful information for developers to understand a program. Omniscient Debugging and logging-based tools enable developers to investigate the state of a program at an arbitrary point of time in an execution. While these tools are effective to analyze the state at a single point of time, they might be insufficient to understand the generic behavior of a method which includes various control-flow paths. In this paper, we propose REMViewer (Repeatedly-Executed-Method Viewer), or a tool that visualizes multiple execution paths of a Java method. The tool shows each execution path in a separated view so that developers can firstly select actual execution paths of interest and then compare the state of local variables in the paths.
One of the properties of context-oriented programming languages is the composition of partial module definitions. While in most such language extensions the state and behavior introduced by partial definitions are treated equally at the module level, we propose a refinement of that approach to allow for both public and restricted visibility of methods and local and shared visibility of fields in our experimental language L. Furthermore, we propose a new lookup mechanism to reduce the risk of name captures.