According to the current research status of component retrieval, the component description model based on facet classification is improved by adding semantic features. Furthermore, the component retrieval process mode...According to the current research status of component retrieval, the component description model based on facet classification is improved by adding semantic features. Furthermore, the component retrieval process model is put forward by combining the domain ontology with the relative concept match algorithm. A detailed illustration of a component reasoning engine and a component classification engine is given and the component classification algorithm is provided by using the Naive Bayes algorithm based on domain ontology. The experimental results show that the recall ratio and the precision ratio are obviously improved by using the method based on semantics, and demonstrate the feasibility and effectiveness of the proposed method.展开更多
The field of software engineering and software technology is developing very fast. Perhaps as a consequence, there is seldom enough interest or opportunity for systematic investigation of how the underlying technology...The field of software engineering and software technology is developing very fast. Perhaps as a consequence, there is seldom enough interest or opportunity for systematic investigation of how the underlying technology will actually perform. That is, we introduce new concepts, methods, techniques and tools – or change existing ones and emphasize their value. A major turn in software engineering leading to Componentware has dramatically changed the shape of software development and introduced interesting methods for the design and rapid development of systems which may provide cost-effective benefits. In this paper we will discuss Componentware, process model, architecture, principles and the drivers, advantages, disadvantage and reveal profound changes from the traditional software engineering approaches.展开更多
According to the morphological structure characteristics of plants, the de- velopment mode for component-based virtual plants software was put forward, and the internal structure of plant organs component under this m...According to the morphological structure characteristics of plants, the de- velopment mode for component-based virtual plants software was put forward, and the internal structure of plant organs component under this mode were analyzed, thereby, the overall design mode for virtual plants software was given out, and its characteristics were estimated. Compared with traditional development modes of virtual plants software, component-based virtual plants software had significant advantages in code reusing, development efficiency and expansion of software functions.展开更多
Due to the fact that the existing web service description methods cannot address the issue of service reuse of various levels of granularity, the concept of service component is introduced, which packages together web...Due to the fact that the existing web service description methods cannot address the issue of service reuse of various levels of granularity, the concept of service component is introduced, which packages together web services and choreography, and their operations and properties are presented in a consistent and uniform manner. Service components are published externally as normal web services and can thus be employed by webbased applications. In order to improve reusability and testability of service components, the concept of composition pattern is also proposed, which presents the relationships among service components. The relationships and relationship compositions have a rigorous semantic, so that composite components can be validated at the configuration stage. The composition patterns support to integrate service components of various levels of granularity. Experience indicates that the application assembly can effectively be conducted by understanding, selecting, and reusing components easily.展开更多
After describing the characteristics of programming paradigm, this paper introduces the approach of code component composition reuse in detail, proposes and discusses viewpoint that code component composition reuse is...After describing the characteristics of programming paradigm, this paper introduces the approach of code component composition reuse in detail, proposes and discusses viewpoint that code component composition reuse is a kind of new programming paradigm. This paper also specifies the characteristics of this new programming paradigm in detail, and points out some issues that must be resolved for using this new programming paradigm.展开更多
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.展开更多
Since most of the available component-based software reliability models consume high computational cost and suffer from the evaluating complexity for the software system with complex structures,a component-based back-...Since most of the available component-based software reliability models consume high computational cost and suffer from the evaluating complexity for the software system with complex structures,a component-based back-propagation reliability model(CBPRM)with low complexity for the complex software system reliability evaluation is presented in this paper.The proposed model is based on the artificial neural networks and the component reliability sensitivity analyses.These analyses are performed dynamically and assigned to the neurons to optimize the reliability evaluation.CBPRM has a linear increasing complexity and outperforms the state-based and the path-based reliability models.Another advantage of CBPRM over others is its robustness.CBPRM depends on the component reliabilities and the correlative sensitivities,which are independent from the software system structure.Based on the theory analysis and experiment results,it shows that the complexity of CBPRM is evidently lower than the contrast models and the reliability evaluating accuracy is acceptable when the software system structure is complex.展开更多
With the rapid progress of component technology,the software development methodology of gathering a large number of components for designing complex software systems has matured.But,how to assess the application relia...With the rapid progress of component technology,the software development methodology of gathering a large number of components for designing complex software systems has matured.But,how to assess the application reliability accurately with the information of system architecture and the components reliabilities together has become a knotty problem.In this paper,the defects in formal description of software architecture and the limitations in existed model assumptions are both analyzed.Moreover,a new software reliability model called Component Interaction Mode(CIM) is proposed.With this model,the problem for existed component-based software reliability analysis models that cannot deal with the cases of component interaction with non-failure independent and non-random control transition is resolved.At last,the practice examples are presented to illustrate the effectiveness of this model.展开更多
Computer software has been becoming more and more c om plex with the development of hardware. Thus, how to efficiently develop extensib le, maintainable and adaptable software occurs to be an urgent problem. The comp ...Computer software has been becoming more and more c om plex with the development of hardware. Thus, how to efficiently develop extensib le, maintainable and adaptable software occurs to be an urgent problem. The comp onent-based software development technique is a better method to solve the prob lem. In this paper, we first discuss the concept, description method and some fa miliar styles of software architecture, and then analyze the merits of using the software architecture to guide the software development. We also present a gene ral design method for component. Its applications are finally provided.展开更多
The key ingredient for promoting software reuse in a repository base integrated development environment, is to provide support for the software developer who wants to search the repository to locate and retrieve suit...The key ingredient for promoting software reuse in a repository base integrated development environment, is to provide support for the software developer who wants to search the repository to locate and retrieve suitable software components for reuse. This paper presents that reusable software components form a base to provide a flexible representation of component adaptability to any repository with a specific classification. As an alternative, it proposes to automatically identify and convert the component source code with all its information into a standard form, so that components can be transferred from one type of library to another.展开更多
Reliability is one of the most critical properties of software system.System deployment architecture is the allocation of system software components on host nodes.Software Architecture(SA) based software deployment mo...Reliability is one of the most critical properties of software system.System deployment architecture is the allocation of system software components on host nodes.Software Architecture(SA) based software deployment models help to analyze reliability of different deployments.Though many approaches for architecture-based reliability estimation exist,little work has incorporated the influence of system deployment and hardware resources into reliability estimation.There are many factors influencing system deployment.By translating the multi-dimension factors into degree matrix of component dependence,we provide the definition of component dependence and propose a method of calculating system reliability of deployments.Additionally,the parameters that influence the optimal deployment may change during system execution.The existing software deployment architecture may be ill-suited for the given environment,and the system needs to be redeployed to improve reliability.An approximate algorithm,A*_D,to increase system reliability is presented.When the number of components and host nodes is relative large,experimental results show that this algorithm can obtain better deployment than stochastic and greedy algorithms.展开更多
Software projects generally have to deal with producing and managing large and complex software products. As the functionality of computer operations become more essential and yet more critical, there is a great need ...Software projects generally have to deal with producing and managing large and complex software products. As the functionality of computer operations become more essential and yet more critical, there is a great need for the development of modular software system. Component-Based Software Engineering concerned with composing, selecting and designing components to satisfy a set of requirements while minimizing cost and maximizing reliability of the software system. This paper discusses the fuzzy approach for component selection using “Build-or-Buy” strategy in designing a software structure. We introduce a framework that helps developers to decide whether to buy or build components. In case a commercial off-the-shelf (COTS) component is selected then different versions are available for each alternative of a module and only one version will be selected. If a component is an in-house built component, then the alternative of a module is selected. Numerical illustrations are provided to demonstrate the model developed.展开更多
Autonomic software component (ASC) QoS matchmaking problem for autonomic element has been taken as one of the most important issue in field of autonomic computing based on agent. Aimed at overcoming drawbacks such as ...Autonomic software component (ASC) QoS matchmaking problem for autonomic element has been taken as one of the most important issue in field of autonomic computing based on agent. Aimed at overcoming drawbacks such as subjec-tiveness and unfairness, and improving the self-configuration capability for autonomic element, we introduce evalua-tion mechanism of confidence of individual QoS attributes during ASC QoS matchmaking, i.e., fidelity factor for each attribute, and propose an ASC QoS matchmaking algorithm based on fidelity factor. Simulation experiments demon-strate that our proposed algorithm performs best performance in terms of QoS than other existing algorithms, and has better compromise between attribute quality and users’ evaluation when selecting ASC.展开更多
For a more accurate and comprehensive assessment of the trustworthiness of component-based soft- ware system, the fuzzy analytic hierarchy process is introduced to establish the analysis model. Combine qualitative and...For a more accurate and comprehensive assessment of the trustworthiness of component-based soft- ware system, the fuzzy analytic hierarchy process is introduced to establish the analysis model. Combine qualitative and quantitative analyses, the impacts to overall trustworthiness by the different types of components are distinguished. Considering the coupling relationship between components, dividing the system into several layers from target layer to scheme layer, evaluating the scheme advantages disadvantages by group decision-making, the trustworthiness of a typical J2EE structured component-based software is assessed. The trustworthiness asses model of the software components provides an effective methods of operation.展开更多
In a component-based software development life cycle, selection of preexisting components is an important task. Every component that has to be reused has an associated risk of failure of not meeting the functional and...In a component-based software development life cycle, selection of preexisting components is an important task. Every component that has to be reused has an associated risk of failure of not meeting the functional and non-functional requirements. A component's failure would lead a developer to look for some other alternative of combinations of COTS, in-house and engineered components among possible candidate combinations. This means design itself can readily change. The very process of design of a software system and component selection seems to be heavily dependent on testing results. Instability of design, further, becomes more severe due to requirements change requests. Therefore, this instability of design has to be essentially mitigated by using proper design and testing approaches, otherwise, it may lead to exorbitantly high testing cost due to the repeated testing of various alternatives. How these three activities: Component-based software design, component selection and component-based software testing are interrelated? What process model is most suited to address this concern? This work explores the above questions and their implication in terms of nature of a process model that can be convincing in case of component-based software development.展开更多
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 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 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.展开更多
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.
基金The National Natural Science Foundation of China(No60072006)
文摘According to the current research status of component retrieval, the component description model based on facet classification is improved by adding semantic features. Furthermore, the component retrieval process model is put forward by combining the domain ontology with the relative concept match algorithm. A detailed illustration of a component reasoning engine and a component classification engine is given and the component classification algorithm is provided by using the Naive Bayes algorithm based on domain ontology. The experimental results show that the recall ratio and the precision ratio are obviously improved by using the method based on semantics, and demonstrate the feasibility and effectiveness of the proposed method.
文摘The field of software engineering and software technology is developing very fast. Perhaps as a consequence, there is seldom enough interest or opportunity for systematic investigation of how the underlying technology will actually perform. That is, we introduce new concepts, methods, techniques and tools – or change existing ones and emphasize their value. A major turn in software engineering leading to Componentware has dramatically changed the shape of software development and introduced interesting methods for the design and rapid development of systems which may provide cost-effective benefits. In this paper we will discuss Componentware, process model, architecture, principles and the drivers, advantages, disadvantage and reveal profound changes from the traditional software engineering approaches.
基金Supported by the National Natural Science Foundation of China(61062007)the Principal Fund Project of Tarim University,China(TDZKSS201115)~~
文摘According to the morphological structure characteristics of plants, the de- velopment mode for component-based virtual plants software was put forward, and the internal structure of plant organs component under this mode were analyzed, thereby, the overall design mode for virtual plants software was given out, and its characteristics were estimated. Compared with traditional development modes of virtual plants software, component-based virtual plants software had significant advantages in code reusing, development efficiency and expansion of software functions.
基金The National Basic Research Program of China (973Program) (No.1999032710).
文摘Due to the fact that the existing web service description methods cannot address the issue of service reuse of various levels of granularity, the concept of service component is introduced, which packages together web services and choreography, and their operations and properties are presented in a consistent and uniform manner. Service components are published externally as normal web services and can thus be employed by webbased applications. In order to improve reusability and testability of service components, the concept of composition pattern is also proposed, which presents the relationships among service components. The relationships and relationship compositions have a rigorous semantic, so that composite components can be validated at the configuration stage. The composition patterns support to integrate service components of various levels of granularity. Experience indicates that the application assembly can effectively be conducted by understanding, selecting, and reusing components easily.
文摘After describing the characteristics of programming paradigm, this paper introduces the approach of code component composition reuse in detail, proposes and discusses viewpoint that code component composition reuse is a kind of new programming paradigm. This paper also specifies the characteristics of this new programming paradigm in detail, and points out some issues that must be resolved for using this new programming paradigm.
文摘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(No.60973118,60873075)
文摘Since most of the available component-based software reliability models consume high computational cost and suffer from the evaluating complexity for the software system with complex structures,a component-based back-propagation reliability model(CBPRM)with low complexity for the complex software system reliability evaluation is presented in this paper.The proposed model is based on the artificial neural networks and the component reliability sensitivity analyses.These analyses are performed dynamically and assigned to the neurons to optimize the reliability evaluation.CBPRM has a linear increasing complexity and outperforms the state-based and the path-based reliability models.Another advantage of CBPRM over others is its robustness.CBPRM depends on the component reliabilities and the correlative sensitivities,which are independent from the software system structure.Based on the theory analysis and experiment results,it shows that the complexity of CBPRM is evidently lower than the contrast models and the reliability evaluating accuracy is acceptable when the software system structure is complex.
基金Supported by the National Natural Science Foundation of China (No. 60873195,60873003,and 61070220)the Doctoral Foundation of Ministry of Education (No.20090111110002)
文摘With the rapid progress of component technology,the software development methodology of gathering a large number of components for designing complex software systems has matured.But,how to assess the application reliability accurately with the information of system architecture and the components reliabilities together has become a knotty problem.In this paper,the defects in formal description of software architecture and the limitations in existed model assumptions are both analyzed.Moreover,a new software reliability model called Component Interaction Mode(CIM) is proposed.With this model,the problem for existed component-based software reliability analysis models that cannot deal with the cases of component interaction with non-failure independent and non-random control transition is resolved.At last,the practice examples are presented to illustrate the effectiveness of this model.
文摘Computer software has been becoming more and more c om plex with the development of hardware. Thus, how to efficiently develop extensib le, maintainable and adaptable software occurs to be an urgent problem. The comp onent-based software development technique is a better method to solve the prob lem. In this paper, we first discuss the concept, description method and some fa miliar styles of software architecture, and then analyze the merits of using the software architecture to guide the software development. We also present a gene ral design method for component. Its applications are finally provided.
基金Supported by Scientific Research Funds from Huazhong University of Science and Technology
文摘The key ingredient for promoting software reuse in a repository base integrated development environment, is to provide support for the software developer who wants to search the repository to locate and retrieve suitable software components for reuse. This paper presents that reusable software components form a base to provide a flexible representation of component adaptability to any repository with a specific classification. As an alternative, it proposes to automatically identify and convert the component source code with all its information into a standard form, so that components can be transferred from one type of library to another.
基金Supported by the High Technology Research and Development Program of China(No.2008AA01A201)National High Technology Research,Development Plan of China (No.2006AA01A103)the High Technology Research and Development Program of China(No.2009AA01A404)
文摘Reliability is one of the most critical properties of software system.System deployment architecture is the allocation of system software components on host nodes.Software Architecture(SA) based software deployment models help to analyze reliability of different deployments.Though many approaches for architecture-based reliability estimation exist,little work has incorporated the influence of system deployment and hardware resources into reliability estimation.There are many factors influencing system deployment.By translating the multi-dimension factors into degree matrix of component dependence,we provide the definition of component dependence and propose a method of calculating system reliability of deployments.Additionally,the parameters that influence the optimal deployment may change during system execution.The existing software deployment architecture may be ill-suited for the given environment,and the system needs to be redeployed to improve reliability.An approximate algorithm,A*_D,to increase system reliability is presented.When the number of components and host nodes is relative large,experimental results show that this algorithm can obtain better deployment than stochastic and greedy algorithms.
文摘Software projects generally have to deal with producing and managing large and complex software products. As the functionality of computer operations become more essential and yet more critical, there is a great need for the development of modular software system. Component-Based Software Engineering concerned with composing, selecting and designing components to satisfy a set of requirements while minimizing cost and maximizing reliability of the software system. This paper discusses the fuzzy approach for component selection using “Build-or-Buy” strategy in designing a software structure. We introduce a framework that helps developers to decide whether to buy or build components. In case a commercial off-the-shelf (COTS) component is selected then different versions are available for each alternative of a module and only one version will be selected. If a component is an in-house built component, then the alternative of a module is selected. Numerical illustrations are provided to demonstrate the model developed.
文摘Autonomic software component (ASC) QoS matchmaking problem for autonomic element has been taken as one of the most important issue in field of autonomic computing based on agent. Aimed at overcoming drawbacks such as subjec-tiveness and unfairness, and improving the self-configuration capability for autonomic element, we introduce evalua-tion mechanism of confidence of individual QoS attributes during ASC QoS matchmaking, i.e., fidelity factor for each attribute, and propose an ASC QoS matchmaking algorithm based on fidelity factor. Simulation experiments demon-strate that our proposed algorithm performs best performance in terms of QoS than other existing algorithms, and has better compromise between attribute quality and users’ evaluation when selecting ASC.
基金Sponsored by the National High Technology Research and Development Program of China ("863"Program) (2009AA01Z433)
文摘For a more accurate and comprehensive assessment of the trustworthiness of component-based soft- ware system, the fuzzy analytic hierarchy process is introduced to establish the analysis model. Combine qualitative and quantitative analyses, the impacts to overall trustworthiness by the different types of components are distinguished. Considering the coupling relationship between components, dividing the system into several layers from target layer to scheme layer, evaluating the scheme advantages disadvantages by group decision-making, the trustworthiness of a typical J2EE structured component-based software is assessed. The trustworthiness asses model of the software components provides an effective methods of operation.
文摘In a component-based software development life cycle, selection of preexisting components is an important task. Every component that has to be reused has an associated risk of failure of not meeting the functional and non-functional requirements. A component's failure would lead a developer to look for some other alternative of combinations of COTS, in-house and engineered components among possible candidate combinations. This means design itself can readily change. The very process of design of a software system and component selection seems to be heavily dependent on testing results. Instability of design, further, becomes more severe due to requirements change requests. Therefore, this instability of design has to be essentially mitigated by using proper design and testing approaches, otherwise, it may lead to exorbitantly high testing cost due to the repeated testing of various alternatives. How these three activities: Component-based software design, component selection and component-based software testing are interrelated? What process model is most suited to address this concern? This work explores the above questions and their implication in terms of nature of a process model that can be convincing in case of component-based software development.
文摘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 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 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.
文摘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.