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.展开更多
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.展开更多
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.展开更多
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.展开更多
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.展开更多
Software guidelines have been with us in many forms within Software Engineering community such as knowledge, experiences, domain expertise, laws, software design principles, rules, design heuristics, hypothesis, exper...Software guidelines have been with us in many forms within Software Engineering community such as knowledge, experiences, domain expertise, laws, software design principles, rules, design heuristics, hypothesis, experimental results, programming rules, best practices, observations, skills, algorithms have played major role in software development. This paper presents a new discipline known as Guidelines Based Software Engineering where the aim is to learn from well-known best practices and documenting newly developed and successful best practices as a knowledge based (could be part of the overall KM strategies) when developing software systems across the life cycle. Thereby it allows reuse of knowledge and experiences.展开更多
Software reuse is viewed as a key technology to improve software product quality and productivity. This paper discusses a series of technologies related with software reuse and software component technology: component...Software reuse is viewed as a key technology to improve software product quality and productivity. This paper discusses a series of technologies related with software reuse and software component technology: component model, which describes component’s essential characteristics; component acquisition technology, of which domain engineering is the main approach; component management technology, of which component library is the kernel; application integration and composition technology, of which application engineering is the main approach; software evolution technology, of which software reengineering is the main approach, etc. This paper introduces the software development environment: JadeBird Software Production Line System, which effectively integrates the above-mentioned technologies.展开更多
Software reuse is considered as a practical approach to solving the software crisis. The BD-HCRUS, a software development supporting system based on heterogeneous component reuse, is introduced. The system has a reusa...Software reuse is considered as a practical approach to solving the software crisis. The BD-HCRUS, a software development supporting system based on heterogeneous component reuse, is introduced. The system has a reusable component library as its kernel in charge of the organization, storage and retrieval of the heterogeneous components, an object-oriented integrated language for the specification and composition of the heterogeneous components, and program comprehension tools for reverse-engineering and extracting reusable components from source code, then re-engineering the components. Therefore, a whole support is lent systematically to the acquisition, specification, organization, storage, retrieval and composition of reusable components.展开更多
Summary of Software Reuse What we mean 'software reuse' is that we use those software components that were developed before in the new environment. Increasing the productivity and reliability of software...Summary of Software Reuse What we mean 'software reuse' is that we use those software components that were developed before in the new environment. Increasing the productivity and reliability of software is an important task in the development of software. One of the most promising techniques for achieving a significant level of improvement is reuse. The reuse process occurs in every phase of software life cycle: analysis, design, coding, testing, and maintenance. The technologies applied to the reusability can be divided into two major groups depending on the nature of the components being reused. These two major groups are composition approach and generation approach. Both of the approaches have their advantages and drawbacks and there is no agreement upon a unique approach to reusability. We choose composition approach. In this paper, we focus on the research of switching software reuse. There has been no report on the research of communication software reuse in China. The research was carried out in Japan and U.S.A. in the middle of 1980′s. Some references report that there are many advantages in using object oriented language C++ in the development of 5ESS switching system. The software reusability is high and the productivity is also greatly improved. It seems that every switching system has its own software supporting tools or environment. The aim is the same and the reusing technologies are somewhat different. Three main reuse methods are listed below: (1) Paradigm method; (2) Knowledge Base method; (3) Object oriented method. 2 Main Researches (1) Research on the integrated environment for SDL (IES). (2) Convert Abstract Data Types(ADT) in SDL specification to CHILL implementation; By using IF_THEN_ELSE rewriting rules, we prove the correctness of conversion. (3) Introduce the concept of reuse into SDL, and design and implement a SDL ADT/CHILL reusable component library. We focus on the Dissertation completed Jul. 1993research of the definition of reusable objects, the composition of library, the relations among objects in library, and formal definition of reuse relation. A new algorithm for query is also put forward. (4) Switching software reuse Through analyzing EWSD switching software, we get an important conclusion that the object oriented method is the most appropriate method for reuse. Finally, we get a new query algorithm by formally defining reusable switching software object SPCO. The object oriented method needs specification language SDL and implementation language CHILL which are object oriented. (5) We design and implement an object oriented library and its supporting tools. All reusable components of switching software are considered to be reusable objects. Supporting tools have four main functions: view functions; searching functions; objects extraction; and objects manage ment. (6) Put forward many strategies for reusing implementation. This includes the classification of reusable objects, reusable objects extraction, reusable object semantic representation, object oriented method implementation, and reuse process. By using these strategies and supporting tools, we can integrate reuse process into switching software development process. All the researches enhance IES, and make it support software reuse not only for specification , but also for implementation. Zhou Chen Received his PhD degree in Jul. 1993, in Information Engineering, Beijing University of Posts and Telecommunications.展开更多
Developers still need design workflow system according to users' specific needs, though workflow management coalition standardized the five kinds of abstract interfaces in workflow reference model. Specific business ...Developers still need design workflow system according to users' specific needs, though workflow management coalition standardized the five kinds of abstract interfaces in workflow reference model. Specific business process characteristics are still supported by specific workflow system. A set of common functionalities of workflow engine are abstracted from business component, so the reusability of business component is extended into workflow engine and composition method is proposed. Needs of different business requirements and characteristics are met by reusing the workflow engine.展开更多
针对影子栈难以兼顾安全性和性能,软件实现的前向CFI(control-flow integrity)技术性能开销过大、难以进行实际部署,提出基于软硬件结合的CFI(control-flow integrity based on the combination of software and hardware,SHCFI)技术。...针对影子栈难以兼顾安全性和性能,软件实现的前向CFI(control-flow integrity)技术性能开销过大、难以进行实际部署,提出基于软硬件结合的CFI(control-flow integrity based on the combination of software and hardware,SHCFI)技术。通过二进制重写器对程序反编译,生成中间语言,并判断转移指令类型。对于后向控制流的保护,提出基于返回地址加密的平行影子栈方案,使用随机数对栈上的返回地址进行异或加密,将加密结果备份到原始栈固定偏移处的影子栈中,在函数返回时对影子栈中的地址异或解密,将解密结果作为实际的返回地址。对于前向控制流的保护,使用硬件ENDBRANCH状态机指令标记间接转移指令的目标地址,在运行时对目标地址进行合法性检查,以降低性能开销。实验结果表明,SHCFI加固后的程序能够有效地防御代码重用攻击,且具有良好的运行开销。展开更多
文摘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.
基金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.
文摘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.
文摘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 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.
文摘Software guidelines have been with us in many forms within Software Engineering community such as knowledge, experiences, domain expertise, laws, software design principles, rules, design heuristics, hypothesis, experimental results, programming rules, best practices, observations, skills, algorithms have played major role in software development. This paper presents a new discipline known as Guidelines Based Software Engineering where the aim is to learn from well-known best practices and documenting newly developed and successful best practices as a knowledge based (could be part of the overall KM strategies) when developing software systems across the life cycle. Thereby it allows reuse of knowledge and experiences.
基金This research is supported by the Key Project of State Ninth "Five-Year Plan" the 863 High-Tech Program of CHina and the National Natural Science Foundatino of China.
文摘Software reuse is viewed as a key technology to improve software product quality and productivity. This paper discusses a series of technologies related with software reuse and software component technology: component model, which describes component’s essential characteristics; component acquisition technology, of which domain engineering is the main approach; component management technology, of which component library is the kernel; application integration and composition technology, of which application engineering is the main approach; software evolution technology, of which software reengineering is the main approach, etc. This paper introduces the software development environment: JadeBird Software Production Line System, which effectively integrates the above-mentioned technologies.
文摘Software reuse is considered as a practical approach to solving the software crisis. The BD-HCRUS, a software development supporting system based on heterogeneous component reuse, is introduced. The system has a reusable component library as its kernel in charge of the organization, storage and retrieval of the heterogeneous components, an object-oriented integrated language for the specification and composition of the heterogeneous components, and program comprehension tools for reverse-engineering and extracting reusable components from source code, then re-engineering the components. Therefore, a whole support is lent systematically to the acquisition, specification, organization, storage, retrieval and composition of reusable components.
文摘Summary of Software Reuse What we mean 'software reuse' is that we use those software components that were developed before in the new environment. Increasing the productivity and reliability of software is an important task in the development of software. One of the most promising techniques for achieving a significant level of improvement is reuse. The reuse process occurs in every phase of software life cycle: analysis, design, coding, testing, and maintenance. The technologies applied to the reusability can be divided into two major groups depending on the nature of the components being reused. These two major groups are composition approach and generation approach. Both of the approaches have their advantages and drawbacks and there is no agreement upon a unique approach to reusability. We choose composition approach. In this paper, we focus on the research of switching software reuse. There has been no report on the research of communication software reuse in China. The research was carried out in Japan and U.S.A. in the middle of 1980′s. Some references report that there are many advantages in using object oriented language C++ in the development of 5ESS switching system. The software reusability is high and the productivity is also greatly improved. It seems that every switching system has its own software supporting tools or environment. The aim is the same and the reusing technologies are somewhat different. Three main reuse methods are listed below: (1) Paradigm method; (2) Knowledge Base method; (3) Object oriented method. 2 Main Researches (1) Research on the integrated environment for SDL (IES). (2) Convert Abstract Data Types(ADT) in SDL specification to CHILL implementation; By using IF_THEN_ELSE rewriting rules, we prove the correctness of conversion. (3) Introduce the concept of reuse into SDL, and design and implement a SDL ADT/CHILL reusable component library. We focus on the Dissertation completed Jul. 1993research of the definition of reusable objects, the composition of library, the relations among objects in library, and formal definition of reuse relation. A new algorithm for query is also put forward. (4) Switching software reuse Through analyzing EWSD switching software, we get an important conclusion that the object oriented method is the most appropriate method for reuse. Finally, we get a new query algorithm by formally defining reusable switching software object SPCO. The object oriented method needs specification language SDL and implementation language CHILL which are object oriented. (5) We design and implement an object oriented library and its supporting tools. All reusable components of switching software are considered to be reusable objects. Supporting tools have four main functions: view functions; searching functions; objects extraction; and objects manage ment. (6) Put forward many strategies for reusing implementation. This includes the classification of reusable objects, reusable objects extraction, reusable object semantic representation, object oriented method implementation, and reuse process. By using these strategies and supporting tools, we can integrate reuse process into switching software development process. All the researches enhance IES, and make it support software reuse not only for specification , but also for implementation. Zhou Chen Received his PhD degree in Jul. 1993, in Information Engineering, Beijing University of Posts and Telecommunications.
文摘Developers still need design workflow system according to users' specific needs, though workflow management coalition standardized the five kinds of abstract interfaces in workflow reference model. Specific business process characteristics are still supported by specific workflow system. A set of common functionalities of workflow engine are abstracted from business component, so the reusability of business component is extended into workflow engine and composition method is proposed. Needs of different business requirements and characteristics are met by reusing the workflow engine.
文摘针对影子栈难以兼顾安全性和性能,软件实现的前向CFI(control-flow integrity)技术性能开销过大、难以进行实际部署,提出基于软硬件结合的CFI(control-flow integrity based on the combination of software and hardware,SHCFI)技术。通过二进制重写器对程序反编译,生成中间语言,并判断转移指令类型。对于后向控制流的保护,提出基于返回地址加密的平行影子栈方案,使用随机数对栈上的返回地址进行异或加密,将加密结果备份到原始栈固定偏移处的影子栈中,在函数返回时对影子栈中的地址异或解密,将解密结果作为实际的返回地址。对于前向控制流的保护,使用硬件ENDBRANCH状态机指令标记间接转移指令的目标地址,在运行时对目标地址进行合法性检查,以降低性能开销。实验结果表明,SHCFI加固后的程序能够有效地防御代码重用攻击,且具有良好的运行开销。