This paper presents a tool for managing, reusing and analysing C software code based on database techniques. The abstract information of entire software code is stored in a program database that is the conceptual sche...This paper presents a tool for managing, reusing and analysing C software code based on database techniques. The abstract information of entire software code is stored in a program database that is the conceptual scheme of the entire software, whereas the reuse component is a subscheme. Relational algebra can be conveniently used to manage, analyse and reuse C code. In the tool, we can manage, analyse and reuse any components in the program database and rapidly extract source code of any components or construct the program code of a new system. The rule system is introduced in reusing source code.展开更多
Reusing programs and other artifacts has been shown to be an effective strategy for significant reduction of development costs. This article reports on a survey of 128 developers to explore their experiences and perce...Reusing programs and other artifacts has been shown to be an effective strategy for significant reduction of development costs. This article reports on a survey of 128 developers to explore their experiences and perceptions about using other people’s code: to what extent does the “not invented here” attitude exist? The survey was structured around a novel and simple “4A” model, which is introduced in this article: for an organization to obtain any benefits from reusing code, four conditions must obtain: availability, awareness, accessibility, and acceptability. The greatest impediments to reuse were shown to be awareness of reusable code and developers’ perceptions of its acceptability for use on their new projects. For 72% of developers, the complexity of the old code was cited as a reason that the code was not reused. The survey also included developers’ suggestions for ways to take greater advantage of existing code and related artifacts.展开更多
Software technology based on reuse is identified as a process of designing software for the reuse purpose. The software reuse is a process in which the existing software is used to build new software. A metric is a qu...Software technology based on reuse is identified as a process of designing software for the reuse purpose. The software reuse is a process in which the existing software is used to build new software. A metric is a quantitative indicator of an attribute of an item/thing. Reusability is the likelihood for a segment of source code that can be used again to add new functionalities with slight or no modification. A lot of research has been projected using reusability in reducing code, domain, requirements, design etc., but very little work is reported using software reuse in medical domain. An attempt is made to bridge the gap in this direction, using the concepts of clustering and classifying the data based on the distance measures. In this paper cardiologic database is considered for study. The developed model will be useful for Doctors or Para-medics to find out the patient’s level in the cardiologic disease, deduce the medicines required in seconds and propose them to the patient. In order to measure the reusability K-means clustering algorithm is used.展开更多
Software projects are not developed in isolation but often build upon other open source resources. These projects form a kind of reference ecosystem regarded as a software world. Most of social computing works focus o...Software projects are not developed in isolation but often build upon other open source resources. These projects form a kind of reference ecosystem regarded as a software world. Most of social computing works focus on social networks such as Facebook and weibo to mine information. However, few previous works analyze Open Source Community which could help developers conduct collaborative development. In this paper, we model the Java reference ecosystem as a network based on the reuse relationships of GitHub-hosted Java projects and analyze the characteristics and the patterns of this reference ecosystem by using community detection and pattern discovery algorithms. Our study indicates that (1) Developers prefer to reuse software limited in only a small part of projects with cross cutting functionality or advanced applications. (2) Developers usually select software reused with similar function widely depending on different requirements, resulting to different patterns. Based on these collective intelligence, our study opens up several possible future directions of reuse recommendation,which are considered as guidance of collaborative development.展开更多
Task-oriented virtual assistants are software systems that provide users with a natural language interface to complete domain-specific tasks.With the recent technological advances in natural language processing and ma...Task-oriented virtual assistants are software systems that provide users with a natural language interface to complete domain-specific tasks.With the recent technological advances in natural language processing and machine learning,an increasing number of task-oriented virtual assistants have been developed.However,due to the well-known complexity and difficulties of the natural language understanding problem,it is challenging to manage a task-oriented virtual assistant software project.Meanwhile,the management and experience related to the development of virtual assistants are hardly studied or shared in the research community or industry,to the best of our knowledge.To bridge this knowledge gap,in this paper,we share our experience and the lessons that we have learned at managing a task-oriented virtual assistant software project at Microsoft.We believe that our practices and the lessons learned can provide a useful reference for other researchers and practitioners who aim to develop a virtual assistant system.Finally,we have developed a requirement management tool,named SpecSpace,which can facilitate the management of virtual assistant projects.展开更多
Reflection mechanism for reuse software architecture (RMRSA) divides a software architecture into base-level architecture and meta-level architecture logically. Base-level architecture is the ordinary architecture; ...Reflection mechanism for reuse software architecture (RMRSA) divides a software architecture into base-level architecture and meta-level architecture logically. Base-level architecture is the ordinary architecture; meta-level represents and manipulates the reusable meta-information of base-level architecture explicitly. Through reflection, the modification of meta-level architecture will result in the modification of the architecture in base-level. Then we can gain a new base-level architecture design. In this paper, we use π-calculus to define the constituents and their interaction processes of RMRSA, by these definition, we specify the business function in base-level at runtime, and illustrate the reflection mechanism between the base-level architecture and meta-level architecture.展开更多
Tests involving a large number of test cases and test scenarios are always time- and effort- intensive, and use ad hoc approaches. Test management is needed to control the complexity and the qual- ity of the testing o...Tests involving a large number of test cases and test scenarios are always time- and effort- intensive, and use ad hoc approaches. Test management is needed to control the complexity and the qual- ity of the testing of large software systems. The reporting mechanism is critical for monitoring the testing progress, analyzing test results, and evaluating the test effectiveness for a disciplined testing process throughout the testing lifecycle. This paper presents an XML-based report generation method for large sys- tem testing. The service-oriented architecture enables flexible test report generation, presentation, and ex- change to facilitate collaboration in a distributed environment. The results show that proper reporting can ef- fectively improve the visibility of the testing process and that this web-based approach is critical to enhance communication among multiple testing groups.展开更多
Objective To solve the three principal problems for reusing the software components, i.e., existence, discovery and availability principles, web services provided a new solution for reusing and assembling web software...Objective To solve the three principal problems for reusing the software components, i.e., existence, discovery and availability principles, web services provided a new solution for reusing and assembling web software or components under distributed environment with a series of XML-based protocols. Methods A 4+1 meta-model between atomic services, such as Sequence, Parallelism, Alternation, Substitute and Iteration, and a kind of service composition description language in composition process are investigated. Furthermore, an architecture-based service composition model with Ontology Engine is proposed, which is based on the software architecture life-cycle model and provides a mechanism for services composition with dynamic management and deployment. Results The results of the prototype system development show that the service-composed application not only reused the web service components, but also reused the data resources located in distributed databases. Conclusion The method of reused-based web services composition observably decreases the period and cost of development and greatly improves the programming efficiency.展开更多
To improve the reusable and configurable ability of computer numerical control ( CNC ) software, a new method to construct reusable model of CNC software with object-oriented (OO) technology is proposed. Based on anal...To improve the reusable and configurable ability of computer numerical control ( CNC ) software, a new method to construct reusable model of CNC software with object-oriented (OO) technology is proposed. Based on analyzing function of CNC software, the article presents how to construct a general class library of CNC software with OO technology. Most function modules of CNC software can he reused because of inheritable capability of classes. Besides, the article analyzes the object relational model in request/report mode, and multitask concurrent management model, which can he applied on double-CPU hardware platform and Windows 95/NT environment. Finally, the method has been successfully applied on a turning CNC system and a milling CNC system, and some function modules have been reused.展开更多
The rapid growth in software demand incentivizes software development organizations to develop exclusive software for their customers worldwide.This problem is addressed by the software development industry by softwar...The rapid growth in software demand incentivizes software development organizations to develop exclusive software for their customers worldwide.This problem is addressed by the software development industry by software product line(SPL)practices that employ feature models.However,optimal feature selection based on user requirements is a challenging task.Thus,there is a requirement to resolve the challenges of software development,to increase satisfaction and maintain high product quality,for massive customer needs within limited resources.In this work,we propose a recommender system for the development team and clients to increase productivity and quality by utilizing historical information and prior experiences of similar developers and clients.The proposed system recommends features with their estimated cost concerning new software requirements,from all over the globe according to similar developers’and clients’needs and preferences.The system guides and facilitates the development team by suggesting a list of features,code snippets,libraries,cheat sheets of programming languages,and coding references from a cloud-based knowledge management repository.Similarly,a list of features is suggested to the client according to their needs and preferences.The experimental results revealed that the proposed recommender system is feasible and effective,providing better recommendations to developers and clients.It provides proper and reasonably well-estimated costs to perform development tasks effectively as well as increase the client’s satisfaction level.The results indicate that there is an increase in productivity,performance,and quality of products and a reduction in effort,complexity,and system failure.Therefore,our proposed system facilitates developers and clients during development by providing better recommendations in terms of solutions and anticipated costs.Thus,the increase in productivity and satisfaction level maximizes the benefits and usability of SPL in the modern era of technology.展开更多
<div style="text-align:justify;"> <span style="font-family:Verdana;">Software reliability is an important quality attribute, and software reliability models are frequently used to measu...<div style="text-align:justify;"> <span style="font-family:Verdana;">Software reliability is an important quality attribute, and software reliability models are frequently used to measure and predict software maturity. The nature of mobile environments differs from that of PC and server environments due to many factors, such as the network, energy, battery, and compatibility. Evaluating and predicting mobile application reliability are real challenges because of the diversity of the mobile environments in which the applications are used, and the lack of publicly available defect data. In addition, bug reports are optionally submitted by end-users. In this paper, we propose assessing and predicting the reliability of a mobile application using known software reliability growth models (SRGMs). Four software reliability models are used to evaluate the reliability of an open-source mobile application through analyzing bug reports. Our experiment proves it is possible to use SRGMs with defect data acquired from bug reports to assess and predict the software reliability in mobile applications. The results of our work enable software developers and testers to assess and predict the reliability of mobile software applications.</span> </div>展开更多
文摘This paper presents a tool for managing, reusing and analysing C software code based on database techniques. The abstract information of entire software code is stored in a program database that is the conceptual scheme of the entire software, whereas the reuse component is a subscheme. Relational algebra can be conveniently used to manage, analyse and reuse C code. In the tool, we can manage, analyse and reuse any components in the program database and rapidly extract source code of any components or construct the program code of a new system. The rule system is introduced in reusing source code.
文摘Reusing programs and other artifacts has been shown to be an effective strategy for significant reduction of development costs. This article reports on a survey of 128 developers to explore their experiences and perceptions about using other people’s code: to what extent does the “not invented here” attitude exist? The survey was structured around a novel and simple “4A” model, which is introduced in this article: for an organization to obtain any benefits from reusing code, four conditions must obtain: availability, awareness, accessibility, and acceptability. The greatest impediments to reuse were shown to be awareness of reusable code and developers’ perceptions of its acceptability for use on their new projects. For 72% of developers, the complexity of the old code was cited as a reason that the code was not reused. The survey also included developers’ suggestions for ways to take greater advantage of existing code and related artifacts.
文摘Software technology based on reuse is identified as a process of designing software for the reuse purpose. The software reuse is a process in which the existing software is used to build new software. A metric is a quantitative indicator of an attribute of an item/thing. Reusability is the likelihood for a segment of source code that can be used again to add new functionalities with slight or no modification. A lot of research has been projected using reusability in reducing code, domain, requirements, design etc., but very little work is reported using software reuse in medical domain. An attempt is made to bridge the gap in this direction, using the concepts of clustering and classifying the data based on the distance measures. In this paper cardiologic database is considered for study. The developed model will be useful for Doctors or Para-medics to find out the patient’s level in the cardiologic disease, deduce the medicines required in seconds and propose them to the patient. In order to measure the reusability K-means clustering algorithm is used.
基金This work is supported by the National Natural Science Foundation of China (Grant Nos.61432020,61472430 and 61502512).
文摘Software projects are not developed in isolation but often build upon other open source resources. These projects form a kind of reference ecosystem regarded as a software world. Most of social computing works focus on social networks such as Facebook and weibo to mine information. However, few previous works analyze Open Source Community which could help developers conduct collaborative development. In this paper, we model the Java reference ecosystem as a network based on the reuse relationships of GitHub-hosted Java projects and analyze the characteristics and the patterns of this reference ecosystem by using community detection and pattern discovery algorithms. Our study indicates that (1) Developers prefer to reuse software limited in only a small part of projects with cross cutting functionality or advanced applications. (2) Developers usually select software reused with similar function widely depending on different requirements, resulting to different patterns. Based on these collective intelligence, our study opens up several possible future directions of reuse recommendation,which are considered as guidance of collaborative development.
文摘Task-oriented virtual assistants are software systems that provide users with a natural language interface to complete domain-specific tasks.With the recent technological advances in natural language processing and machine learning,an increasing number of task-oriented virtual assistants have been developed.However,due to the well-known complexity and difficulties of the natural language understanding problem,it is challenging to manage a task-oriented virtual assistant software project.Meanwhile,the management and experience related to the development of virtual assistants are hardly studied or shared in the research community or industry,to the best of our knowledge.To bridge this knowledge gap,in this paper,we share our experience and the lessons that we have learned at managing a task-oriented virtual assistant software project at Microsoft.We believe that our practices and the lessons learned can provide a useful reference for other researchers and practitioners who aim to develop a virtual assistant system.Finally,we have developed a requirement management tool,named SpecSpace,which can facilitate the management of virtual assistant projects.
基金Supported by the National Natural Science Foundation of China (60473066)Young Outstanding Talent Foundation of Hubei Province,China(2003ABB004)
文摘Reflection mechanism for reuse software architecture (RMRSA) divides a software architecture into base-level architecture and meta-level architecture logically. Base-level architecture is the ordinary architecture; meta-level represents and manipulates the reusable meta-information of base-level architecture explicitly. Through reflection, the modification of meta-level architecture will result in the modification of the architecture in base-level. Then we can gain a new base-level architecture design. In this paper, we use π-calculus to define the constituents and their interaction processes of RMRSA, by these definition, we specify the business function in base-level at runtime, and illustrate the reflection mechanism between the base-level architecture and meta-level architecture.
基金Supported by the National Key Basic Research and Development (973) Program of China (No. 041250001)
文摘Tests involving a large number of test cases and test scenarios are always time- and effort- intensive, and use ad hoc approaches. Test management is needed to control the complexity and the qual- ity of the testing of large software systems. The reporting mechanism is critical for monitoring the testing progress, analyzing test results, and evaluating the test effectiveness for a disciplined testing process throughout the testing lifecycle. This paper presents an XML-based report generation method for large sys- tem testing. The service-oriented architecture enables flexible test report generation, presentation, and ex- change to facilitate collaboration in a distributed environment. The results show that proper reporting can ef- fectively improve the visibility of the testing process and that this web-based approach is critical to enhance communication among multiple testing groups.
文摘Objective To solve the three principal problems for reusing the software components, i.e., existence, discovery and availability principles, web services provided a new solution for reusing and assembling web software or components under distributed environment with a series of XML-based protocols. Methods A 4+1 meta-model between atomic services, such as Sequence, Parallelism, Alternation, Substitute and Iteration, and a kind of service composition description language in composition process are investigated. Furthermore, an architecture-based service composition model with Ontology Engine is proposed, which is based on the software architecture life-cycle model and provides a mechanism for services composition with dynamic management and deployment. Results The results of the prototype system development show that the service-composed application not only reused the web service components, but also reused the data resources located in distributed databases. Conclusion The method of reused-based web services composition observably decreases the period and cost of development and greatly improves the programming efficiency.
基金Supported by Science and Technology Development Foundation of Shanghai Science and Technology Committee(995107017)
文摘To improve the reusable and configurable ability of computer numerical control ( CNC ) software, a new method to construct reusable model of CNC software with object-oriented (OO) technology is proposed. Based on analyzing function of CNC software, the article presents how to construct a general class library of CNC software with OO technology. Most function modules of CNC software can he reused because of inheritable capability of classes. Besides, the article analyzes the object relational model in request/report mode, and multitask concurrent management model, which can he applied on double-CPU hardware platform and Windows 95/NT environment. Finally, the method has been successfully applied on a turning CNC system and a milling CNC system, and some function modules have been reused.
基金supported by the National Natural Science Foundation of China(Grant Number:61672080,Sponsored Authors:Yang S.,Sponsors’Websites:http://www.nsfc.gov.cn/english/site_1/index.html).
文摘The rapid growth in software demand incentivizes software development organizations to develop exclusive software for their customers worldwide.This problem is addressed by the software development industry by software product line(SPL)practices that employ feature models.However,optimal feature selection based on user requirements is a challenging task.Thus,there is a requirement to resolve the challenges of software development,to increase satisfaction and maintain high product quality,for massive customer needs within limited resources.In this work,we propose a recommender system for the development team and clients to increase productivity and quality by utilizing historical information and prior experiences of similar developers and clients.The proposed system recommends features with their estimated cost concerning new software requirements,from all over the globe according to similar developers’and clients’needs and preferences.The system guides and facilitates the development team by suggesting a list of features,code snippets,libraries,cheat sheets of programming languages,and coding references from a cloud-based knowledge management repository.Similarly,a list of features is suggested to the client according to their needs and preferences.The experimental results revealed that the proposed recommender system is feasible and effective,providing better recommendations to developers and clients.It provides proper and reasonably well-estimated costs to perform development tasks effectively as well as increase the client’s satisfaction level.The results indicate that there is an increase in productivity,performance,and quality of products and a reduction in effort,complexity,and system failure.Therefore,our proposed system facilitates developers and clients during development by providing better recommendations in terms of solutions and anticipated costs.Thus,the increase in productivity and satisfaction level maximizes the benefits and usability of SPL in the modern era of technology.
文摘<div style="text-align:justify;"> <span style="font-family:Verdana;">Software reliability is an important quality attribute, and software reliability models are frequently used to measure and predict software maturity. The nature of mobile environments differs from that of PC and server environments due to many factors, such as the network, energy, battery, and compatibility. Evaluating and predicting mobile application reliability are real challenges because of the diversity of the mobile environments in which the applications are used, and the lack of publicly available defect data. In addition, bug reports are optionally submitted by end-users. In this paper, we propose assessing and predicting the reliability of a mobile application using known software reliability growth models (SRGMs). Four software reliability models are used to evaluate the reliability of an open-source mobile application through analyzing bug reports. Our experiment proves it is possible to use SRGMs with defect data acquired from bug reports to assess and predict the software reliability in mobile applications. The results of our work enable software developers and testers to assess and predict the reliability of mobile software applications.</span> </div>