Structural development defects essentially refer to code structure that violates object-oriented design principles. They make program maintenance challenging and deteriorate software quality over time. Various detecti...Structural development defects essentially refer to code structure that violates object-oriented design principles. They make program maintenance challenging and deteriorate software quality over time. Various detection approaches, ranging from traditional heuristic algorithms to machine learning methods, are used to identify these defects. Ensemble learning methods have strengthened the detection of these defects. However, existing approaches do not simultaneously exploit the capabilities of extracting relevant features from pre-trained models and the performance of neural networks for the classification task. Therefore, our goal has been to design a model that combines a pre-trained model to extract relevant features from code excerpts through transfer learning and a bagging method with a base estimator, a dense neural network, for defect classification. To achieve this, we composed multiple samples of the same size with replacements from the imbalanced dataset MLCQ1. For all the samples, we used the CodeT5-small variant to extract features and trained a bagging method with the neural network Roberta Classification Head to classify defects based on these features. We then compared this model to RandomForest, one of the ensemble methods that yields good results. Our experiments showed that the number of base estimators to use for bagging depends on the defect to be detected. Next, we observed that it was not necessary to use a data balancing technique with our model when the imbalance rate was 23%. Finally, for blob detection, RandomForest had a median MCC value of 0.36 compared to 0.12 for our method. However, our method was predominant in Long Method detection with a median MCC value of 0.53 compared to 0.42 for RandomForest. These results suggest that the performance of ensemble methods in detecting structural development defects is dependent on specific defects.展开更多
Agent-oriented programming (AOP) is a framework to develop agents, and it aims to link the gap betweentheory and practical in agent research. The core of an AOP framework is its language and semantics. In this paper,w...Agent-oriented programming (AOP) is a framework to develop agents, and it aims to link the gap betweentheory and practical in agent research. The core of an AOP framework is its language and semantics. In this paper,we propose the necessary properties which agents should have, and then give a summary and analysis about differentAOP languages based on these properties.展开更多
An object oriented multi robotic graphic simulation environment is described in this paper. Object oriented programming is used to model the physical objects of the robotic workcell in the form of software objects ...An object oriented multi robotic graphic simulation environment is described in this paper. Object oriented programming is used to model the physical objects of the robotic workcell in the form of software objects or classes. The virtual objects are defined to provide the user with a user friendly interface including realistic graphic simulation and clarify the software architecture. The programming method of associating the task object with active object effectively increases the software reusability, maintainability and modifiability. Task level programming is also demonstrated through a multi robot welding task that allows the user to concentrate on the most important aspects of the tasks. The multi thread programming technique is used to simulate the interaction of multiple tasks. Finally, a virtual test is carried out in the graphic simulation environment to observe design and program errors and fix them before downloading the software to the real workcell.展开更多
To simulate the process of cold roll-forming process, a new method isadopted. The theoretical foundation of this method is an elastic-plastic large deformation splinefinite strip method based on object-oriented progra...To simulate the process of cold roll-forming process, a new method isadopted. The theoretical foundation of this method is an elastic-plastic large deformation splinefinite strip method based on object-oriented programming. Combined with the computer graphicstechnology, the visual simulation of cold roll-forming is completed and the system is established.By analyzing common channel steel, the process is shown and explained including theory method, modeland result display. So the simulation system is already a kind of mature and effective tool toanalyze the process of cold roll forming.展开更多
The design of finite element analysis program using object-oriented programming (OOP) techniques is presented. The objects, classes and the subclasses used in the programming are explained. The system of classes libra...The design of finite element analysis program using object-oriented programming (OOP) techniques is presented. The objects, classes and the subclasses used in the programming are explained. The system of classes library of finite element analysis program and Windows-type Graphical User Interfaces by VC + + and its MFC are developed. The reliability, reusability and extensibility of program are enhanced. It is a reference to develop the large-scale, versatile and powerful systems of object-oriented finite element software.展开更多
The Service ORiented Computing EnviRonment (SORCER) targets service abstractions for transdisciplinary complexity with support for heterogeneous service-oriented (SO) computing. SORCER's models are expressed in a ...The Service ORiented Computing EnviRonment (SORCER) targets service abstractions for transdisciplinary complexity with support for heterogeneous service-oriented (SO) computing. SORCER's models are expressed in a top-down Var-oriented Modeling Language (VML) unified with programs in a bottoms-up Exertion-Oriented Language (EOL). In this paper the introduction to mogramming (modeling and programing), which uses both languages, is described. First, the emphasis is on modeling with service variables that allow for computational fidelity within VML. Then, seven types of service providers, both local and distributed, are described to form collaborative federations described in EOL. Finally, the unified hybrid of SO modeling and SO programming is presented. Fourteen simple mogramming examples illustrate the syntax and usage of both VML and EOL.展开更多
This paper presents a team-oriented programming method specially designed for multiple mobile robots. The team, which is a typical constitution structure in multi-robot system, forms after the user selects suitable ro...This paper presents a team-oriented programming method specially designed for multiple mobile robots. The team, which is a typical constitution structure in multi-robot system, forms after the user selects suitable robots, assigns their roles and sets related parameters. Team behavior module are introduced for the team-level behavior description and the temporal chain of these modules, realized by finite state automata, partitions the team tasks into discrete operating states and triggers. A graphical programming tool is designed for the team task description with visual diagrams. The real robots experiment of adaptive formation shows the system's usability and effectivity.展开更多
Business process execution language(BPEL)is a most recognized standard workflow language.However,it is difficult to be used in the ubiquitous system computing environment because it is difficult to describe the contex...Business process execution language(BPEL)is a most recognized standard workflow language.However,it is difficult to be used in the ubiquitous system computing environment because it is difficult to describe the context information in the selection of the flow through the branch.To solve this problem,we propose a new BPEL workflow system with context-awareness by using aspect-oriented programming(AOP).This system is composed of a BPEL system module and a weaving module using AOP for context-aware.The BPEL system module generates a BPEL workflow program.And the weaving module converts a context-aware mark-up language(CAML)document to the aspect-oriented program that is applied to context-aware code without modification of the existing BPEL document.We also define a new document form that is called CAML,which provides a context-aware that is not available in BPEL.The system can generate a context-aware workflow program.It is developed in a way that inserts context information using AOP to provide context-aware services.展开更多
Model transformation is one of the prominent features and the rising research area of Model Driven Engineering (MDE). MDE promotes models to primary artifacts that drive the whole development process. This paper prese...Model transformation is one of the prominent features and the rising research area of Model Driven Engineering (MDE). MDE promotes models to primary artifacts that drive the whole development process. This paper presents the model transformation approach for textual model oriented programs Umple (UML Programming Language) to generate android applications (apps). The proposed approach improved the generation of android source code by using Drools transformation rules and introducing new concern in model driven mobile engineering. The major objective of proposed transformation approach intends to address consistency between source and target model and also intends to handle productivity issues in model driven software development. The main results of model transformation approach are Java class for model layer, XML file for view layer and android activity class for controller layer. Results show that proposed approach achieves high consistency between source and target model and also improves model transformation productivity.展开更多
Program slice has many applications such as program debugging, testing, maintenance, and complexity measurement. A static slice consists of all statements in program P that may effect the value of variable v a...Program slice has many applications such as program debugging, testing, maintenance, and complexity measurement. A static slice consists of all statements in program P that may effect the value of variable v at some point p , and a dynamic slice consists only of statements that influence the value of variable occurrence for specific program inputs. In this paper, we concern the problem of dynamic slicing of object oriented programs which, to our knowledge, has not been addressed in the literatures. To solve this problem, we present the dynamic object oriented dependence graph (DODG)which is an arc classified digraph to explicitly represent various dynamic dependence between statement instances for a particular execution of an object oriented program. Based on the DODG, we present a two phase backward algorithm for computing a dynamic slice of an object oriented program.展开更多
Detecting well-known design patterns in object-oriented program source code can help maintainers understand the design of a program. Through the detection, the understandability, maintainability, and reusability of ob...Detecting well-known design patterns in object-oriented program source code can help maintainers understand the design of a program. Through the detection, the understandability, maintainability, and reusability of object-oriented programs can be improved. There are automated detection techniques;however, many existing techniques are based on static analysis and use strict conditions composed on class structure data. Hence, it is difficult for them to detect and distinguish design patterns in which the class structures are similar. Moreover, it is difficult for them to deal with diversity in design pattern applications. To solve these problems in existing techniques, we propose a design pattern detection technique using source code metrics and machine learning. Our technique judges candidates for the roles that compose design patterns by using machine learning and measurements of several metrics, and it detects design patterns by analyzing the relations between candidates. It suppresses false negatives and distinguishes patterns in which the class structures are similar. As a result of experimental evaluations with a set of programs, we confirmed that our technique is more accurate than two conventional techniques.展开更多
Service Oriented Architecture (SOA) is an emerging paradigm for orchestrating software components to build new composite applications that enable businesses, government agencies and other organizations to collaborate ...Service Oriented Architecture (SOA) is an emerging paradigm for orchestrating software components to build new composite applications that enable businesses, government agencies and other organizations to collaborate across institutional boundaries. SOA offers new languages and a variety of software development tools that enable software engineers to configure software as services and to interconnect services with other services independent of differences in operating platform and programming and communicating languages. However, SOA composite applications introduce additional complexity into the construction, deployment and maintenance of software, for the purpose of aggravating the issue of program comprehension, which is at the heart of software maintenance. This article describes the challenges in SOA program comprehension and reports on the results of a two-part case study aimed at identifying information that would help a SOA software maintainer. Analysis of the results indicates a need for higher-level abstractions and visualizations that can enhance conventional text-based search to support SOA program understanding. This paper then reports on several specific abstractions, visualization methods, and the development of an intelligent search tool to enhance comprehension of the relationships and data within a SOA composite application.展开更多
Aspect-oriented programs have received much attention from software testing researchers. Various testing techniques and approaches have been proposed to tackle issues and challenges when testing aspect-oriented progra...Aspect-oriented programs have received much attention from software testing researchers. Various testing techniques and approaches have been proposed to tackle issues and challenges when testing aspect-oriented programs including traditional mutation testing. In traditional mutation testing of aspect-oriented programs, mutants are generated by making small changes to the syntax of the aspect-oriented language. Recently, a new approach known as semantic mutation testing has been proposed. This approach mutates the semantics of the language in which the program is written. The mutants generated misunderstandings of the language which are different classes of faults. Aspect-oriented programming presents itself with different properties that can be further explored with respect to semantic mutation testing. This paper describes various possible scenarios that semantic mutation testing strategy might have particular value in testing aspect-oriented programs.展开更多
To solve the identification and comprehension problem of crosscutting concerns in existing legacy software system, a framework of aspect-oriented software reveme engineering is proposed. An approach on re-modularizing...To solve the identification and comprehension problem of crosscutting concerns in existing legacy software system, a framework of aspect-oriented software reveme engineering is proposed. An approach on re-modularizing traversal features of legacy system is presented based on various unified modeling language (UML) diagrams. While modeling crosscutting concerns in UML use case diagrams, the non-functional requirements that affect several use case modules can be enveloped into aspect modules with a stereotype mechanism. The recurring message transmission patterns can be re-modularized as aspects in UML sequence diagrams with UML collaborations. Standard UML activity diagram notations are extended and modified by node fusion and addition, which support the graphical composition operation between crosscutting behaviors and primary business roles of concurrent systems. Case study indicates that travernal features of software system can be extracted and re-modularized from various perspectives in aspect-oriented reverse engineering, which improves comprehensibility and maintainability of legacy systems.展开更多
Java programming language is a major . new development which involves object-oriented programming and computer networking. Here, several examples of Java programs are presented. These examples show some major features...Java programming language is a major . new development which involves object-oriented programming and computer networking. Here, several examples of Java programs are presented. These examples show some major features that Java language provides, such as multi-thread, exception handling, network application writing, and the usage of Java applets. This article also shows some ways of setting up a Java language programming environment. All these examples are correct and ready to run.展开更多
Product information model for welding structure plays an important role for the integration of welding CAD/CAPP/CAM. However, existing CAD modeling systems are not capable of providing enough information for subsequen...Product information model for welding structure plays an important role for the integration of welding CAD/CAPP/CAM. However, existing CAD modeling systems are not capable of providing enough information for subsequent manufacturing activities such as CAPP and CAM. A new design approach using feature technique and object oriented programming method is put forward in this paper in order to create the product information model of welding structure. With this approach, the product information model is able to effectively support computer aided welding process planning, fixturing, assembling, path planning of welding robot and other manufacturing activities. The feature classification and representing scheme of welding structure are discussed. A prototype system is developed based on feature and object oriented programming. Its structure and functions are given in detail.展开更多
文摘Structural development defects essentially refer to code structure that violates object-oriented design principles. They make program maintenance challenging and deteriorate software quality over time. Various detection approaches, ranging from traditional heuristic algorithms to machine learning methods, are used to identify these defects. Ensemble learning methods have strengthened the detection of these defects. However, existing approaches do not simultaneously exploit the capabilities of extracting relevant features from pre-trained models and the performance of neural networks for the classification task. Therefore, our goal has been to design a model that combines a pre-trained model to extract relevant features from code excerpts through transfer learning and a bagging method with a base estimator, a dense neural network, for defect classification. To achieve this, we composed multiple samples of the same size with replacements from the imbalanced dataset MLCQ1. For all the samples, we used the CodeT5-small variant to extract features and trained a bagging method with the neural network Roberta Classification Head to classify defects based on these features. We then compared this model to RandomForest, one of the ensemble methods that yields good results. Our experiments showed that the number of base estimators to use for bagging depends on the defect to be detected. Next, we observed that it was not necessary to use a data balancing technique with our model when the imbalance rate was 23%. Finally, for blob detection, RandomForest had a median MCC value of 0.36 compared to 0.12 for our method. However, our method was predominant in Long Method detection with a median MCC value of 0.53 compared to 0.42 for RandomForest. These results suggest that the performance of ensemble methods in detecting structural development defects is dependent on specific defects.
文摘Agent-oriented programming (AOP) is a framework to develop agents, and it aims to link the gap betweentheory and practical in agent research. The core of an AOP framework is its language and semantics. In this paper,we propose the necessary properties which agents should have, and then give a summary and analysis about differentAOP languages based on these properties.
文摘An object oriented multi robotic graphic simulation environment is described in this paper. Object oriented programming is used to model the physical objects of the robotic workcell in the form of software objects or classes. The virtual objects are defined to provide the user with a user friendly interface including realistic graphic simulation and clarify the software architecture. The programming method of associating the task object with active object effectively increases the software reusability, maintainability and modifiability. Task level programming is also demonstrated through a multi robot welding task that allows the user to concentrate on the most important aspects of the tasks. The multi thread programming technique is used to simulate the interaction of multiple tasks. Finally, a virtual test is carried out in the graphic simulation environment to observe design and program errors and fix them before downloading the software to the real workcell.
基金This project is supported by Provincial Natural Science Foundation of Hebei (No.502214).
文摘To simulate the process of cold roll-forming process, a new method isadopted. The theoretical foundation of this method is an elastic-plastic large deformation splinefinite strip method based on object-oriented programming. Combined with the computer graphicstechnology, the visual simulation of cold roll-forming is completed and the system is established.By analyzing common channel steel, the process is shown and explained including theory method, modeland result display. So the simulation system is already a kind of mature and effective tool toanalyze the process of cold roll forming.
文摘The design of finite element analysis program using object-oriented programming (OOP) techniques is presented. The objects, classes and the subclasses used in the programming are explained. The system of classes library of finite element analysis program and Windows-type Graphical User Interfaces by VC + + and its MFC are developed. The reliability, reusability and extensibility of program are enhanced. It is a reference to develop the large-scale, versatile and powerful systems of object-oriented finite element software.
文摘The Service ORiented Computing EnviRonment (SORCER) targets service abstractions for transdisciplinary complexity with support for heterogeneous service-oriented (SO) computing. SORCER's models are expressed in a top-down Var-oriented Modeling Language (VML) unified with programs in a bottoms-up Exertion-Oriented Language (EOL). In this paper the introduction to mogramming (modeling and programing), which uses both languages, is described. First, the emphasis is on modeling with service variables that allow for computational fidelity within VML. Then, seven types of service providers, both local and distributed, are described to form collaborative federations described in EOL. Finally, the unified hybrid of SO modeling and SO programming is presented. Fourteen simple mogramming examples illustrate the syntax and usage of both VML and EOL.
基金国家高技术研究发展计划(863计划),the National Natural Science Foundation of China
文摘This paper presents a team-oriented programming method specially designed for multiple mobile robots. The team, which is a typical constitution structure in multi-robot system, forms after the user selects suitable robots, assigns their roles and sets related parameters. Team behavior module are introduced for the team-level behavior description and the temporal chain of these modules, realized by finite state automata, partitions the team tasks into discrete operating states and triggers. A graphical programming tool is designed for the team task description with visual diagrams. The real robots experiment of adaptive formation shows the system's usability and effectivity.
基金Basic Science Research Program through the National Research Foundation of Korea(NRF)funded by the Ministry of Education,Science and Technology(No.2010-0025831)
文摘Business process execution language(BPEL)is a most recognized standard workflow language.However,it is difficult to be used in the ubiquitous system computing environment because it is difficult to describe the context information in the selection of the flow through the branch.To solve this problem,we propose a new BPEL workflow system with context-awareness by using aspect-oriented programming(AOP).This system is composed of a BPEL system module and a weaving module using AOP for context-aware.The BPEL system module generates a BPEL workflow program.And the weaving module converts a context-aware mark-up language(CAML)document to the aspect-oriented program that is applied to context-aware code without modification of the existing BPEL document.We also define a new document form that is called CAML,which provides a context-aware that is not available in BPEL.The system can generate a context-aware workflow program.It is developed in a way that inserts context information using AOP to provide context-aware services.
文摘Model transformation is one of the prominent features and the rising research area of Model Driven Engineering (MDE). MDE promotes models to primary artifacts that drive the whole development process. This paper presents the model transformation approach for textual model oriented programs Umple (UML Programming Language) to generate android applications (apps). The proposed approach improved the generation of android source code by using Drools transformation rules and introducing new concern in model driven mobile engineering. The major objective of proposed transformation approach intends to address consistency between source and target model and also intends to handle productivity issues in model driven software development. The main results of model transformation approach are Java class for model layer, XML file for view layer and android activity class for controller layer. Results show that proposed approach achieves high consistency between source and target model and also improves model transformation productivity.
文摘Program slice has many applications such as program debugging, testing, maintenance, and complexity measurement. A static slice consists of all statements in program P that may effect the value of variable v at some point p , and a dynamic slice consists only of statements that influence the value of variable occurrence for specific program inputs. In this paper, we concern the problem of dynamic slicing of object oriented programs which, to our knowledge, has not been addressed in the literatures. To solve this problem, we present the dynamic object oriented dependence graph (DODG)which is an arc classified digraph to explicitly represent various dynamic dependence between statement instances for a particular execution of an object oriented program. Based on the DODG, we present a two phase backward algorithm for computing a dynamic slice of an object oriented program.
文摘Detecting well-known design patterns in object-oriented program source code can help maintainers understand the design of a program. Through the detection, the understandability, maintainability, and reusability of object-oriented programs can be improved. There are automated detection techniques;however, many existing techniques are based on static analysis and use strict conditions composed on class structure data. Hence, it is difficult for them to detect and distinguish design patterns in which the class structures are similar. Moreover, it is difficult for them to deal with diversity in design pattern applications. To solve these problems in existing techniques, we propose a design pattern detection technique using source code metrics and machine learning. Our technique judges candidates for the roles that compose design patterns by using machine learning and measurements of several metrics, and it detects design patterns by analyzing the relations between candidates. It suppresses false negatives and distinguishes patterns in which the class structures are similar. As a result of experimental evaluations with a set of programs, we confirmed that our technique is more accurate than two conventional techniques.
文摘Service Oriented Architecture (SOA) is an emerging paradigm for orchestrating software components to build new composite applications that enable businesses, government agencies and other organizations to collaborate across institutional boundaries. SOA offers new languages and a variety of software development tools that enable software engineers to configure software as services and to interconnect services with other services independent of differences in operating platform and programming and communicating languages. However, SOA composite applications introduce additional complexity into the construction, deployment and maintenance of software, for the purpose of aggravating the issue of program comprehension, which is at the heart of software maintenance. This article describes the challenges in SOA program comprehension and reports on the results of a two-part case study aimed at identifying information that would help a SOA software maintainer. Analysis of the results indicates a need for higher-level abstractions and visualizations that can enhance conventional text-based search to support SOA program understanding. This paper then reports on several specific abstractions, visualization methods, and the development of an intelligent search tool to enhance comprehension of the relationships and data within a SOA composite application.
文摘Aspect-oriented programs have received much attention from software testing researchers. Various testing techniques and approaches have been proposed to tackle issues and challenges when testing aspect-oriented programs including traditional mutation testing. In traditional mutation testing of aspect-oriented programs, mutants are generated by making small changes to the syntax of the aspect-oriented language. Recently, a new approach known as semantic mutation testing has been proposed. This approach mutates the semantics of the language in which the program is written. The mutants generated misunderstandings of the language which are different classes of faults. Aspect-oriented programming presents itself with different properties that can be further explored with respect to semantic mutation testing. This paper describes various possible scenarios that semantic mutation testing strategy might have particular value in testing aspect-oriented programs.
基金Project supported by National Natural Science Foundation of China (Grant No .60473063)
文摘To solve the identification and comprehension problem of crosscutting concerns in existing legacy software system, a framework of aspect-oriented software reveme engineering is proposed. An approach on re-modularizing traversal features of legacy system is presented based on various unified modeling language (UML) diagrams. While modeling crosscutting concerns in UML use case diagrams, the non-functional requirements that affect several use case modules can be enveloped into aspect modules with a stereotype mechanism. The recurring message transmission patterns can be re-modularized as aspects in UML sequence diagrams with UML collaborations. Standard UML activity diagram notations are extended and modified by node fusion and addition, which support the graphical composition operation between crosscutting behaviors and primary business roles of concurrent systems. Case study indicates that travernal features of software system can be extracted and re-modularized from various perspectives in aspect-oriented reverse engineering, which improves comprehensibility and maintainability of legacy systems.
文摘Java programming language is a major . new development which involves object-oriented programming and computer networking. Here, several examples of Java programs are presented. These examples show some major features that Java language provides, such as multi-thread, exception handling, network application writing, and the usage of Java applets. This article also shows some ways of setting up a Java language programming environment. All these examples are correct and ready to run.
文摘Product information model for welding structure plays an important role for the integration of welding CAD/CAPP/CAM. However, existing CAD modeling systems are not capable of providing enough information for subsequent manufacturing activities such as CAPP and CAM. A new design approach using feature technique and object oriented programming method is put forward in this paper in order to create the product information model of welding structure. With this approach, the product information model is able to effectively support computer aided welding process planning, fixturing, assembling, path planning of welding robot and other manufacturing activities. The feature classification and representing scheme of welding structure are discussed. A prototype system is developed based on feature and object oriented programming. Its structure and functions are given in detail.