We formalize paper fold (origami) by graph rewriting. Origami construction is abstractly described by a rewrite system (O, ↬), where O is the set of abstract origami's and ↬ is a binary relation on O, called fold. An abstract origami is a triplet (Π, ∽, ≻), where Π is a set of faces constituting an origami, and ∽ and ≻ are binary relations on Π, each representing adjacency and superposition relations of the faces. Origami construction is modeled as a rewrite sequence of abstract origami's. We then address the problems of representation and transformation of abstract origami's and of reasoning about the construction for computational purposes. We present a hypergraph of origami and define origami fold as algebraic graph transformation. The algebraic graph theoretic formalism enables us to reason origami in two separate domains of discourse, i.e. pure combinatoric domain and geometric domain R × R, and thus helps us to further tackle challenging problems in origami research.
One of the keys to success in business system development is to sufficiently elicit user requirements from the customers and to fully and correctly define the requirements specification that meets these requirements. However, the following facts bring about dropping the quality of the target software products: the developers sometimes misunderstand the customer's requirements and their business context; the customers often have the implicit requirements; the developers sometimes define incorrect requirements specification. In this paper, to establish a Web business application development method based on the validated requirements analysis model, we propose an automatic generation method of Web UI prototype from requirements analysis model in UML. In our method, the developer models the required services on the business tasks: the interaction between a system and the users corresponds to a business workflow; the I/O data through the interaction also corresponds to the data used in the workflow. These behavior and data models generate the prototype of Web UI in HTML. We discuss effectiveness of the method by applying it to several Web business application developments.
We propose a dynamic method to verify system behaviors of executable models in UML/SysML. The verification checks timed-functional constraints as behavioral specification with the system's execution traces. Most of embedded/real-time system models consist of discrete behaviors of system controllers and continuous behaviors of mechanical/electronical systems. Therefore, the verification of discrete system behaviors using a static analysis technology like a model checking is inadequate for the verification of system overall behaviors, so that dynamic verification technologies are needed for developing embedded/real-time systems. Our verification method is effective for check satisfiability of non-functional requirements in early phase of development, e.g. performance requirements. The method verifies a event sequence captured as execution traces of the system model by checking with behavioral specification of event patterns specified in sequence diagrams with pre-conditions and constraints. A set of event patterns can be converted into a binary tree for quick verification with a large amount of execution traces.
We propose a practical distributed programming language system based on the ambient calculus. In our language, an ambient can migrate to remote sites and communicate with any other ambients directly via channels. In addition, the system provides a framework for designating communication/migration targets in a flexible way with dynamic name resolution. By using some example programs, we show that our system provides a high-level abstraction that reduces programming costs and improves readability of source code.
We designed and implemented a novel tool for checking #include correctness in C programs called “Dr. simple #include checker.” We experimentally applied the tool to 158 small sample code in our textbook and found many #include bugs in 58 files. This paper reports our experiences obtained; our tool is quite effective for detecting #include bugs, the result supports the idea of “disposable tools”, and the number of #include bugs are more than expected.
To deal with missing data in historical project data sets is an important issue for constructing effort estimation models. Past researches have showed that the similarity-based imputation showed high estimation performance. However, it is unclear if it is still effective for small data sets. In this paper, using multiple data sets with different project cases each extracted from ISBSG data set, we present an experimental evaluation among four methods: mean imputation, similarity-based imputation, row-column deletion and pairwise deletion. The result showed that the row-column deletion showed better performance than similarity-based imputation for data sets not exceeding 220 cases.
The paper presents a translation method from OCL (Object Constraint Language) into JML (Java Modelling Language). Several approaches have proposed automatic generation methods of Java skeleton files from UML class diagrams. Less papers are found for automatic generation of JML from OCL. They deal with not all of the standard OCL library. Especially, some features of collections including iterate feature are not implemented. We resolve the problem by translating the iterate feature into Java methods. This paper also provides a concrete translation algorithm. The paper also provides a translation example from OCL into JML.
In source code review and/or debug phase, developers must understand both the big picture and details of the software behavior. It is difficult to understand both details and the whole of target software at the same time by tracing method calls on complecated relationship between methods. In this paper, we propose a method for supporting software comprehension that forms “software navigation map”. It allows developers to view details and the whole at the same time by changing visualization granularity interactively with automatic navigation supports. We also prove our method with a tool implemented on the bases of our method.
This paper proposes a technique for selecting the most appropriate alternative of source code changes based on the commitment of a software development project by each developer of the project. In the technique, we evaluate the alternative changes by using an evaluation function with integrating multiple software metrics to suppress the influence of each developer's subjectivity. By regarding the selection of the alternative changes as a multiple criteria decision making, we create the function with Analytic Hierarchy Process. A preliminary evaluation shows the efficiency of the technique.
In this paper, we propose description style of model-based formal specification considering an executability for verification and a readability. We use model-based formal specification language VDM++. In a software development, a role of specification and that of design are often distinguished. If this boundary is ambiguous, designers can not understand a scope of specification and design. In an executable specification, there are mechanisms of execution and description of specifications. If this boundary is ambiguous, it is hard to understand a specification. First, we focus on the internal data structure as a boundary between specification and design. We propose techniques of hiding types that are outside the scope of specification. We compare the differences in a readability by use of hiding techniques. Next, in a executable specification, we examine a readability and an executability from the description style provided by the language specification of VDM++. Finally, we present the part of experimental results of ongoing project.
Detecting design patterns from object-oriented program source-code can help maintainers understand the design of the program. However, the detection precision of conventional approaches based on the structural aspects of patterns is low due to the fact that there are several patterns with the same structure. To solve this problem, we propose an approach of design pattern detection using source-code of before the application of the design pattern. Our approach is able to distinguish different design patterns with similar structures, and help maintainers understand the design of the program more accurately.
This paper proposes a foreign function interface seemlessly connecting ML style functional programming language with C. With this interface, a programmer can import and use C functions operating not only on base types such as int and double but also function pointers without writing complicated stub or wrapper functions. This is realized by the combination of a type-directed compilation method that achieves the same runtime data representation for primitive data types including integers and floating point numbers as those of C, and foreign language interface that enables for ML functions to call C functions and for C functions to call back ML functions. This paper reports the design, underlying theory, and implementation techniques for the foreign language interface. The mechanism reported in this article has been implemented in the SML# compiler, which is made available as an open source software.
Distributed constraint optimization problem (DCOP) has attracted attention as one of the effective approaches for modeling distributed reasoning tasks in the multi-agent environment. However, existing approaches has alternatives problems i.e. requiring very long processing time to guarantee the optimal solution, or obtaining only a rough approximate solution by a probabilistic method at short time in the proposed algorithms. Under these constraints, existing approaches had issues when they are applied to the real world e.g. processing time issues in complete algorithms, and quality issues in approximate algorithms. In order to solve these problems, the authors had developed a method that uses Tabu Search under multi-agent environment, and we have improved this method by adding Simulated Annealing factor. This new method enables approximate solution under DCOP in short time. In this paper, we present the improved method adding Simulated Annealing factor, and report principle of algorithm and evaluation results comparing with existing algorithms, and application result to the large scale problem with 10000 variables.