Software intelligent development has become one of the most important research trends in software engineering. In this paper, we put forward two key concepts -- intelligent development environment (IntelliDE) and so...Software intelligent development has become one of the most important research trends in software engineering. In this paper, we put forward two key concepts -- intelligent development environment (IntelliDE) and software knowledge graph -- for the first time. IntelliDE is an ecosystem in which software big data are aggregated, mined and analyzed to provide intelligent assistance in the life cycle of software development. We present its architecture and discuss its key research issues and challenges. Software knowledge graph is a software knowledge representation and management framework, which plays an important role in IntelliDE. We study its concept and introduce some concrete details and examples to show how it could be constructed and leveraged.展开更多
The fast development of the Internet has extended wider space for Information and Communications Technology(ICT),and it has brought a series of challenges for traditional software theories,models,approaches and techno...The fast development of the Internet has extended wider space for Information and Communications Technology(ICT),and it has brought a series of challenges for traditional software theories,models,approaches and technologies.This paper looks back some popular Internet-based new computing paradigms and application schemas,discusses the current status and the future trend of software technologies for Internet Computing,including topics of software model,software runtime supporting platform,software development methodologies and software quality measurement and assurance.展开更多
The Internet is undergoing a tremendous change towards the globalized computing environment. Due to the open, dynamic and uncontrollable natures of the Internet, software running in the Internet computing environment ...The Internet is undergoing a tremendous change towards the globalized computing environment. Due to the open, dynamic and uncontrollable natures of the Internet, software running in the Internet computing environment has some new features, which bring challenges to current software technologies in terms of software model, software operating platform, software engineering approaches and software quality. Researchers in China have proposed the term "Internetware" to present the emerging software paradigm. Sponsored by the National Basic Research 973 Program, several research practices have been done on the Internetware in the past decade. This paper summarizes the progress and status of the Internetware researches. A technical solution framework for the Internetware paradigm is proposed from four aspects: the Internetware software model defines what the Internetware is to be; the Internetware middleware determines how to run the Internetware applications; the engineering methodology determines how to develop the Internetware applications; the Internetware quality assurance determines how well the Internetware applications can perform. The paper also discusses the ongoing research issues and future trends of Internetware.展开更多
For any proposed software project,when the software requirements specification has been established,requirements changes may result in not only a modification of the requirements specification but also a series of mod...For any proposed software project,when the software requirements specification has been established,requirements changes may result in not only a modification of the requirements specification but also a series of modifications of all existing artifacts during the development.Then it is necessary to provide effective and flexible requirements changes management.In this paper,we present an approach to managing requirements changes based on Booth's negotiation-style framework for belief revision.Informally,we consider the current requirements specification as a belief set about the systemto-be.The request of requirements change is viewed as new information about the same system-to-be.Then the process of executing the requirements change is a process of revising beliefs about the system-to-be.We design a family of belief negotiation models appropriate for different processes of requirements revision,including the setting of the request of requirements change being fully accepted,the setting of the current requirements specification being fully preserved,and that of the current specification and the request of requirements change reaching a compromise.In particular,the prioritization of requirements plays an important role in reaching an agreement in each belief negotiation model designed in this paper.展开更多
The defects in object-oriented models will result in poor quality of applications based on the models, and thus it is necessary to know which defects often occur in practice, to what extent they occur, why they occur,...The defects in object-oriented models will result in poor quality of applications based on the models, and thus it is necessary to know which defects often occur in practice, to what extent they occur, why they occur, and how they can be prevented. To gain deeper insights into these problems, this paper discusses how to improve the quality of object- oriented models from novice modelers through project prac- tice. This paper summarizes a set of typical quality defect types from a large number of the defects, and confirms them through our project practice. Moreover, the paper analyzes the improvement of the quality of object-oriented models by quantifying the level of occurrence for the defect types in dif- ferent phases of the project practice, and presents preventive measures by analyzing the causes for the defects to occur in object-oriented models in the aspects of syntax, semantics, and pragmatics.展开更多
The complexity and diversity of modern software demands a variety of metamodel-based modeling languages for software development. Existing languages change continuously, and new ones are constantly emerging. In this s...The complexity and diversity of modern software demands a variety of metamodel-based modeling languages for software development. Existing languages change continuously, and new ones are constantly emerging. In this situation, and especially for metamodel-based modeling languages, a quality assurance mechanism for metamodels is needed. This paper presents an approach to assessing the quality of metamodels. A quality model, which systematically characterizes and classifies quality attributes, and an operable measuring mechanism for effectively assessing the quality of metamodels based on the quality model, are pre- sented, using UML as the main example.展开更多
When reengineering a monolithic application to be a distributed one, programmers always have to decide how many distributed parts the application should be partitioned, and write many codes related to where a part wil...When reengineering a monolithic application to be a distributed one, programmers always have to decide how many distributed parts the application should be partitioned, and write many codes related to where a part will be placed on network nodes and how these parts communicate with each other through the network. These codes usually have nothing to do with the business functions of the application, and they are laborious to write. In addition, as the distribution architecture of the application is finalized beforehand, it may not adapt well to the everchanging execution environment. In this paper, we propose DPartner, an automatic partitioning system, to help programmers create a distributed Java application without explicitly writing the distribution-related codes. Unlike the other partitioning systems, DPartner does not partition an application directly into the coarse-grained client and server. Instead, it first partitions the application into several modules where each module performs a relatively independent business function of the application. Then it makes these modules be distributable through automatic bytecode rewriting. These modules can distribute in different nodes and cooperate to work just as the original monolithic application. Such a module-based partitioning approach enables a relatively easy reshaping of the distribution architecture of an application, which facilitates the application adapt to the environmental changes without manual recoding or repartitioning with regard to distribution. This paper gives the detailed design of DPartner, and evaluates it using real-world applications. The evaluation results demonstrate the effectiveness and efficiency of DPartner.展开更多
Agile development aims at rapidly developing software while embracing the continuous evolution of user requirements along the whole development process.User stories are the primary means of requirements collection and...Agile development aims at rapidly developing software while embracing the continuous evolution of user requirements along the whole development process.User stories are the primary means of requirements collection and elicitation in the agile development.A project can involve a large amount of user stories,which should be clustered into different groups based on their functionality’s similarity for systematic requirements analysis,effective mapping to developed features,and efficient maintenance.Nevertheless,the current user story clustering is mainly conducted in a manual manner,which is time-consuming and subjective to human bias.In this paper,we propose a novel approach for clustering the user stories automatically on the basis of natural language processing.Specifically,the sentence patterns of each component in a user story are first analysed and determined such that the critical structure in the representative tasks can be automatically extracted based on the user story meta-model.The similarity of user stories is calculated,which can be used to generate the connected graph as the basis of automatic user story clustering.We evaluate the approach based on thirteen datasets,compared against ten baseline techniques.Experimental results show that our clustering approach has higher accuracy,recall rate and F1-score than these baselines.It is demonstrated that the proposed approach can significantly improve the efficacy of user story clustering and thus enhance the overall performance of agile development.The study also highlights promising research directions for more accurate requirements elicitation.展开更多
Cloud computing has been widely adopted by enterprises because of its on-demand and elastic resource usage paradigm. Currently most cloud applications are running on one single cloud. However, more and more applicatio...Cloud computing has been widely adopted by enterprises because of its on-demand and elastic resource usage paradigm. Currently most cloud applications are running on one single cloud. However, more and more applications demand to run across several clouds to satisfy the requirements like best cost efficiency, avoidance of vender lock-in, and geolocation sensitive service. JointCloud computing is a new research initiated by Chinese institutes to address the computing issues concerned with multiple clouds. In JointCloud, users' diverse and dynamic requirements on cloud resources axe satisfied by providing users virtual cloud (VC) for special purposes. A virtual cloud for special purposes is in essence a user's specific cloud working environment having the customized software stacks, configurations and computing resources readily available. This paper first introduces what is JointCloud computing and then describes the design rationales, motivation examples, mechanisms and enabling technologies of VC in JointCloud.展开更多
Test-case prioritization, proposed at the end of last century, aims to schedule the execution order of test cases so as to improve test effectiveness. In the past years, test-case prioritization has gained much attent...Test-case prioritization, proposed at the end of last century, aims to schedule the execution order of test cases so as to improve test effectiveness. In the past years, test-case prioritization has gained much attention, and has significant achievements in five aspects: prioritization algorithms, coverage criteria, measurement, practical concems involved, and application scenarios. In this article, we will first review the achievements of test-case prioritization from these five as- pects and then give our perspectives on its challenges.展开更多
To enhance the energy efficiency and performance of algorithms with Graphics Processing Unit (GPU) accelerators in source-code development, we consider the power efficiency based on data transfer bandwidth and power...To enhance the energy efficiency and performance of algorithms with Graphics Processing Unit (GPU) accelerators in source-code development, we consider the power efficiency based on data transfer bandwidth and power consumption in key situations. First, a set of primitives is abstracted from program statements. Then, data transfer bandwidth and power consumption in different granularity sizes are consid- ered and mapped into proper primitives. With these mappings, a programmer can intuitively determine the power efficiency and performance in different running states of a thread. Finally, this intuition enables the programmer to tune the algorithm in order to achieve the best energy efficiency and performance. Using these power-aware principles, two Fast Fourier Transform (FFT) methods are compared. The mapping be- tween power consumption and primitives is helpful for algorithm tuning in source-code levels.展开更多
In many sensor network applications, it is essential to get the data distribution of the attribute value over the network. Such data distribution can be got through clustering, which partitions the network into contig...In many sensor network applications, it is essential to get the data distribution of the attribute value over the network. Such data distribution can be got through clustering, which partitions the network into contiguous regions, each of which contains sensor nodes of a range of similar readings. This paper proposes a method named Distributed, Hierarchical Clustering (DHC) for online data analysis and mining in senior networks. Different from the acquisition and aggregation of raw sensory data, DHC clusters sensor nodes based on their current data values as well as their geographical proximity, and computes a summary for each cluster. ~3arthermore, these clusters, together with their summaries, are produced in a distributed, bottom-up manner. The resulting hierarchy of clusters and their summaries facilitates interactive data exploration at multiple resolutions. It can also be used to improve the efficiency of data-centric routing and query processing in sensor networks. We also design and evaluate the maintenance mechanisms for DHC to make it be able to work on evolving data. Our simulation results on real world datasets as well as synthetic datasets show the effectiveness and efficiency of our approach.展开更多
文摘Software intelligent development has become one of the most important research trends in software engineering. In this paper, we put forward two key concepts -- intelligent development environment (IntelliDE) and software knowledge graph -- for the first time. IntelliDE is an ecosystem in which software big data are aggregated, mined and analyzed to provide intelligent assistance in the life cycle of software development. We present its architecture and discuss its key research issues and challenges. Software knowledge graph is a software knowledge representation and management framework, which plays an important role in IntelliDE. We study its concept and introduce some concrete details and examples to show how it could be constructed and leveraged.
基金supported by the National Basic Research Program of China (2009CB320700)the National Natural Science Foundation of China (60821003)
文摘The fast development of the Internet has extended wider space for Information and Communications Technology(ICT),and it has brought a series of challenges for traditional software theories,models,approaches and technologies.This paper looks back some popular Internet-based new computing paradigms and application schemas,discusses the current status and the future trend of software technologies for Internet Computing,including topics of software model,software runtime supporting platform,software development methodologies and software quality measurement and assurance.
基金sponsored by the National Basic Research 973 Program of China under Grant No.2009CB320700the National Natural Science Foundation of China under Grant No.60821003
文摘The Internet is undergoing a tremendous change towards the globalized computing environment. Due to the open, dynamic and uncontrollable natures of the Internet, software running in the Internet computing environment has some new features, which bring challenges to current software technologies in terms of software model, software operating platform, software engineering approaches and software quality. Researchers in China have proposed the term "Internetware" to present the emerging software paradigm. Sponsored by the National Basic Research 973 Program, several research practices have been done on the Internetware in the past decade. This paper summarizes the progress and status of the Internetware researches. A technical solution framework for the Internetware paradigm is proposed from four aspects: the Internetware software model defines what the Internetware is to be; the Internetware middleware determines how to run the Internetware applications; the engineering methodology determines how to develop the Internetware applications; the Internetware quality assurance determines how well the Internetware applications can perform. The paper also discusses the ongoing research issues and future trends of Internetware.
基金supported by the National Natural Science Foundation of China under Grant No.60703061the National Basic Research 973 Program of China under Grant No.2009CB320701+1 种基金the Key Project of National Natural Science Foundation of China under Grant No.90818026the NSFC & the British Royal Society China-UK Joint Project
文摘For any proposed software project,when the software requirements specification has been established,requirements changes may result in not only a modification of the requirements specification but also a series of modifications of all existing artifacts during the development.Then it is necessary to provide effective and flexible requirements changes management.In this paper,we present an approach to managing requirements changes based on Booth's negotiation-style framework for belief revision.Informally,we consider the current requirements specification as a belief set about the systemto-be.The request of requirements change is viewed as new information about the same system-to-be.Then the process of executing the requirements change is a process of revising beliefs about the system-to-be.We design a family of belief negotiation models appropriate for different processes of requirements revision,including the setting of the request of requirements change being fully accepted,the setting of the current requirements specification being fully preserved,and that of the current specification and the request of requirements change reaching a compromise.In particular,the prioritization of requirements plays an important role in reaching an agreement in each belief negotiation model designed in this paper.
文摘The defects in object-oriented models will result in poor quality of applications based on the models, and thus it is necessary to know which defects often occur in practice, to what extent they occur, why they occur, and how they can be prevented. To gain deeper insights into these problems, this paper discusses how to improve the quality of object- oriented models from novice modelers through project prac- tice. This paper summarizes a set of typical quality defect types from a large number of the defects, and confirms them through our project practice. Moreover, the paper analyzes the improvement of the quality of object-oriented models by quantifying the level of occurrence for the defect types in dif- ferent phases of the project practice, and presents preventive measures by analyzing the causes for the defects to occur in object-oriented models in the aspects of syntax, semantics, and pragmatics.
文摘The complexity and diversity of modern software demands a variety of metamodel-based modeling languages for software development. Existing languages change continuously, and new ones are constantly emerging. In this situation, and especially for metamodel-based modeling languages, a quality assurance mechanism for metamodels is needed. This paper presents an approach to assessing the quality of metamodels. A quality model, which systematically characterizes and classifies quality attributes, and an operable measuring mechanism for effectively assessing the quality of metamodels based on the quality model, are pre- sented, using UML as the main example.
基金Acknowledgements We thank all the anonymous reviewers for their valuable feedback on an earlier version of this paper. This work was supported by the National Basic Research Program of China (973) (2009CB320703) the National Natural Science Foundation of China (Grant Nos. 61121063, 60933003, 61003010)+1 种基金 the High-tech Research and Development Program of China (863) (2012AA011207), the European Commission Seventh Framework Programme (231167) and the NCET.
文摘When reengineering a monolithic application to be a distributed one, programmers always have to decide how many distributed parts the application should be partitioned, and write many codes related to where a part will be placed on network nodes and how these parts communicate with each other through the network. These codes usually have nothing to do with the business functions of the application, and they are laborious to write. In addition, as the distribution architecture of the application is finalized beforehand, it may not adapt well to the everchanging execution environment. In this paper, we propose DPartner, an automatic partitioning system, to help programmers create a distributed Java application without explicitly writing the distribution-related codes. Unlike the other partitioning systems, DPartner does not partition an application directly into the coarse-grained client and server. Instead, it first partitions the application into several modules where each module performs a relatively independent business function of the application. Then it makes these modules be distributable through automatic bytecode rewriting. These modules can distribute in different nodes and cooperate to work just as the original monolithic application. Such a module-based partitioning approach enables a relatively easy reshaping of the distribution architecture of an application, which facilitates the application adapt to the environmental changes without manual recoding or repartitioning with regard to distribution. This paper gives the detailed design of DPartner, and evaluates it using real-world applications. The evaluation results demonstrate the effectiveness and efficiency of DPartner.
基金sponsored by the National Natural Science Foundation of China(Grant Nos.62192731,62192730,62162051)the Australian Research Council Discovery Project(DP210102447)the Fundamental Research Funds for the Central Universities(BLX202003).
文摘Agile development aims at rapidly developing software while embracing the continuous evolution of user requirements along the whole development process.User stories are the primary means of requirements collection and elicitation in the agile development.A project can involve a large amount of user stories,which should be clustered into different groups based on their functionality’s similarity for systematic requirements analysis,effective mapping to developed features,and efficient maintenance.Nevertheless,the current user story clustering is mainly conducted in a manual manner,which is time-consuming and subjective to human bias.In this paper,we propose a novel approach for clustering the user stories automatically on the basis of natural language processing.Specifically,the sentence patterns of each component in a user story are first analysed and determined such that the critical structure in the representative tasks can be automatically extracted based on the user story meta-model.The similarity of user stories is calculated,which can be used to generate the connected graph as the basis of automatic user story clustering.We evaluate the approach based on thirteen datasets,compared against ten baseline techniques.Experimental results show that our clustering approach has higher accuracy,recall rate and F1-score than these baselines.It is demonstrated that the proposed approach can significantly improve the efficacy of user story clustering and thus enhance the overall performance of agile development.The study also highlights promising research directions for more accurate requirements elicitation.
基金This work is supported by the National Key Research and Development Program of China under Grant No. 2016YFB1000105 and the National Natural Science Foundation of China under Grant Nos. 61272154 and 61421091.
文摘Cloud computing has been widely adopted by enterprises because of its on-demand and elastic resource usage paradigm. Currently most cloud applications are running on one single cloud. However, more and more applications demand to run across several clouds to satisfy the requirements like best cost efficiency, avoidance of vender lock-in, and geolocation sensitive service. JointCloud computing is a new research initiated by Chinese institutes to address the computing issues concerned with multiple clouds. In JointCloud, users' diverse and dynamic requirements on cloud resources axe satisfied by providing users virtual cloud (VC) for special purposes. A virtual cloud for special purposes is in essence a user's specific cloud working environment having the customized software stacks, configurations and computing resources readily available. This paper first introduces what is JointCloud computing and then describes the design rationales, motivation examples, mechanisms and enabling technologies of VC in JointCloud.
文摘Test-case prioritization, proposed at the end of last century, aims to schedule the execution order of test cases so as to improve test effectiveness. In the past years, test-case prioritization has gained much attention, and has significant achievements in five aspects: prioritization algorithms, coverage criteria, measurement, practical concems involved, and application scenarios. In this article, we will first review the achievements of test-case prioritization from these five as- pects and then give our perspectives on its challenges.
基金Supported by the National Natural Science Foundation of China (No. 61170053)the Natural Science Foundation of Beijing (No. 4112027)the China HGJ Significant Project (No. 2009ZX01036-001-002-4)
文摘To enhance the energy efficiency and performance of algorithms with Graphics Processing Unit (GPU) accelerators in source-code development, we consider the power efficiency based on data transfer bandwidth and power consumption in key situations. First, a set of primitives is abstracted from program statements. Then, data transfer bandwidth and power consumption in different granularity sizes are consid- ered and mapped into proper primitives. With these mappings, a programmer can intuitively determine the power efficiency and performance in different running states of a thread. Finally, this intuition enables the programmer to tune the algorithm in order to achieve the best energy efficiency and performance. Using these power-aware principles, two Fast Fourier Transform (FFT) methods are compared. The mapping be- tween power consumption and primitives is helpful for algorithm tuning in source-code levels.
文摘In many sensor network applications, it is essential to get the data distribution of the attribute value over the network. Such data distribution can be got through clustering, which partitions the network into contiguous regions, each of which contains sensor nodes of a range of similar readings. This paper proposes a method named Distributed, Hierarchical Clustering (DHC) for online data analysis and mining in senior networks. Different from the acquisition and aggregation of raw sensory data, DHC clusters sensor nodes based on their current data values as well as their geographical proximity, and computes a summary for each cluster. ~3arthermore, these clusters, together with their summaries, are produced in a distributed, bottom-up manner. The resulting hierarchy of clusters and their summaries facilitates interactive data exploration at multiple resolutions. It can also be used to improve the efficiency of data-centric routing and query processing in sensor networks. We also design and evaluate the maintenance mechanisms for DHC to make it be able to work on evolving data. Our simulation results on real world datasets as well as synthetic datasets show the effectiveness and efficiency of our approach.