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.展开更多
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.展开更多
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.展开更多
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.展开更多
Software component library is the essential part of reuse-based softwaredevelopment. It is shown that making use of a single component library to store all kinds ofcomponents and from which components are searched is ...Software component library is the essential part of reuse-based softwaredevelopment. It is shown that making use of a single component library to store all kinds ofcomponents and from which components are searched is very inefficient. We construct multi-librariesto support software reuse and use PVM as development environments to imitate large-scale computer,which is expected to fulfill distributed storage and parallel search of components efficiently andimprove software reuse.展开更多
IntelligentPad approach provides a standard for dynamically linkable components. Based on the standard, this paper introduces an approach of developing dynamically linkable components by using object oriented techniques.
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.展开更多
How to compose prefabricated components is a key issue in component-based reuse. Research on Software Architecture (SA) and Component-based Software Development (CBSD) provides two hopeful solutions from different per...How to compose prefabricated components is a key issue in component-based reuse. Research on Software Architecture (SA) and Component-based Software Development (CBSD) provides two hopeful solutions from different perspectives. SA provides a top-down approach to realizing component-based reuse. However, it pays insufficient attention to the refinement and implementation of the architectural descriptions, and does not provide the necessary capability to automate the transformation or composition to form a final executable application. CBSD provides a bottom-up way by using existing middleware infrastructures. However, these technologies do not take into account the systematic methodology that can guide the CBSD process, especially the component composition at higher abstract levels. We argue that it is a natural solution to combine these two approaches.In this paper, an architecture-based component composition approach is presented. In this way, SA description, using mapping rules and mini-tools to narrow the gap between design and implementation , is used as the blueprint and middleware technology as the runtime scaffold for component composition. Our approach presents an ADL, which supports user-defined connectors and has an extensible framework, to specify software architectures. To map a SA description into implementation, it is necessary to map it first to an OO design model described in UML, then to the final implementation. The architectural description can be mapped into source code or executable code by using some ORB conforming to CORBA standard. Also a toolkit is provided to support this approach efficiently.展开更多
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.展开更多
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.展开更多
Reuse is viewed as a realistically effective approach to solving software crisis. For an organization that wants to build a reuse program, technical and non-technical issues must be considered in parallel. In this pap...Reuse is viewed as a realistically effective approach to solving software crisis. For an organization that wants to build a reuse program, technical and non-technical issues must be considered in parallel. In this paper, a model-based approach to building systematic reuse program is presented. Component-based reuse is currently a dominant approach to software reuse. In this approach, building the right reusable component model is the first important step. In order to achieve systematic reuse, a set of component models should be built from different perspectives. Each of these models will give a specific view of the components so as to satisfy different needs of different persons involved in the enterprise reuse program. There already exist some component models for reuse from technical perspectives. But less attention is paid to the reusable components from a non-technical view, especially fromthe view of process and management. In our approach, a reusable component model--FLP modelfor reusable component--is introduced. This model describes components from three dimensions(Form, Level, and Presentation) and views components and their relationships from the perspective of process and management. It determines the sphere of reusable components, the time points of reusing components in the development process, and the needed means to present components in terms of the abstraction level, logic granularity and presentation media. Being the basis on which the management and technical decisions are made, our model will be used as the kernel model to initialize and normalize a systematic enterprise reuse program.展开更多
With the growing requirements of web applications,web components are developed to package the implementation of commonly-used features for reuse.In some cases,the developer may want to reuse some features which cannot...With the growing requirements of web applications,web components are developed to package the implementation of commonly-used features for reuse.In some cases,the developer may want to reuse some features which cannot be customized by the component’s APIs.He/she has to extract the implementation by hand.It is labor-intensive and error-prone.Considering the widely-used test cases which can be useful to specify the software features,a test-driven approach is proposed to extract the implementation of the desired features in web components.The satisfaction of the user^requirements is transformed into the passing rate of user-specified test cases.In this way,the quality of the extraction result can be evaluated automatically.Meanwhile,a record/replay-based GUI test generation method is proposed to ensure that the extraction result has the correct GUI appearance.To extract the feature implementation,a hierarchical genetic algorithm is proposed to find the code snippet that can pass all the tests and has the approximate smallest size.We compare our method with two existing feature extraction methods.The result shows that our method can extract the correct implementation with the minimum size.A human-subject study is conducted to show the effectiveness and weaknesses of our method in helping users extract the features.展开更多
文摘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.
基金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.
基金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.
文摘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 High Performance Computation Foundation(984057)
文摘Software component library is the essential part of reuse-based softwaredevelopment. It is shown that making use of a single component library to store all kinds ofcomponents and from which components are searched is very inefficient. We construct multi-librariesto support software reuse and use PVM as development environments to imitate large-scale computer,which is expected to fulfill distributed storage and parallel search of components efficiently andimprove software reuse.
文摘IntelligentPad approach provides a standard for dynamically linkable components. Based on the standard, this paper introduces an approach of developing dynamically linkable components by using object oriented techniques.
文摘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.
基金This work was supported by the 9th State Five-Year Plan, State 863 High-Tech Program, and the National Natural Science Foundation of China It also got support from Bell-Labs China and Software Production Research of Bell-Labs.
文摘How to compose prefabricated components is a key issue in component-based reuse. Research on Software Architecture (SA) and Component-based Software Development (CBSD) provides two hopeful solutions from different perspectives. SA provides a top-down approach to realizing component-based reuse. However, it pays insufficient attention to the refinement and implementation of the architectural descriptions, and does not provide the necessary capability to automate the transformation or composition to form a final executable application. CBSD provides a bottom-up way by using existing middleware infrastructures. However, these technologies do not take into account the systematic methodology that can guide the CBSD process, especially the component composition at higher abstract levels. We argue that it is a natural solution to combine these two approaches.In this paper, an architecture-based component composition approach is presented. In this way, SA description, using mapping rules and mini-tools to narrow the gap between design and implementation , is used as the blueprint and middleware technology as the runtime scaffold for component composition. Our approach presents an ADL, which supports user-defined connectors and has an extensible framework, to specify software architectures. To map a SA description into implementation, it is necessary to map it first to an OO design model described in UML, then to the final implementation. The architectural description can be mapped into source code or executable code by using some ORB conforming to CORBA standard. Also a toolkit is provided to support this approach efficiently.
基金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.
文摘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.
基金This work was supported by State 9th Five-Year Plan, State 863 High-Tech Program, and the National Natural Science Foundation of China.
文摘Reuse is viewed as a realistically effective approach to solving software crisis. For an organization that wants to build a reuse program, technical and non-technical issues must be considered in parallel. In this paper, a model-based approach to building systematic reuse program is presented. Component-based reuse is currently a dominant approach to software reuse. In this approach, building the right reusable component model is the first important step. In order to achieve systematic reuse, a set of component models should be built from different perspectives. Each of these models will give a specific view of the components so as to satisfy different needs of different persons involved in the enterprise reuse program. There already exist some component models for reuse from technical perspectives. But less attention is paid to the reusable components from a non-technical view, especially fromthe view of process and management. In our approach, a reusable component model--FLP modelfor reusable component--is introduced. This model describes components from three dimensions(Form, Level, and Presentation) and views components and their relationships from the perspective of process and management. It determines the sphere of reusable components, the time points of reusing components in the development process, and the needed means to present components in terms of the abstraction level, logic granularity and presentation media. Being the basis on which the management and technical decisions are made, our model will be used as the kernel model to initialize and normalize a systematic enterprise reuse program.
基金supported by the Key-Area Research and Development Program of Guangdong Province under Grant No.2020B010165001the National Natural Science Foundation of China under Grant No.61976061Guangdong Basic and Applied Basic Research Foundation under Grant No.2020A1515010973.
文摘With the growing requirements of web applications,web components are developed to package the implementation of commonly-used features for reuse.In some cases,the developer may want to reuse some features which cannot be customized by the component’s APIs.He/she has to extract the implementation by hand.It is labor-intensive and error-prone.Considering the widely-used test cases which can be useful to specify the software features,a test-driven approach is proposed to extract the implementation of the desired features in web components.The satisfaction of the user^requirements is transformed into the passing rate of user-specified test cases.In this way,the quality of the extraction result can be evaluated automatically.Meanwhile,a record/replay-based GUI test generation method is proposed to ensure that the extraction result has the correct GUI appearance.To extract the feature implementation,a hierarchical genetic algorithm is proposed to find the code snippet that can pass all the tests and has the approximate smallest size.We compare our method with two existing feature extraction methods.The result shows that our method can extract the correct implementation with the minimum size.A human-subject study is conducted to show the effectiveness and weaknesses of our method in helping users extract the features.