[原创]组件库管理系统的构成(英文)

本文介绍了组件库管理系统(CLMS),旨在解决代码复用问题,提高开发效率、降低成本。阐述了CLMS的构成,包括组件模型、源代码等,其具备描述、存储和检索功能。还介绍了CLMS的架构,依赖IDE、版本控制等工具,核心是组件搜索引擎,采用多种算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Component Library Management System Introduction

Index

Component Library Management System Introduction. 1

1. Objective. 2

2. What is component library Management System.. 2

3. Architecture of Component Library Management System.. 3

3.1 Process. 4

3.2 Component Search Engine. 5

4. Summary. 5

Reference. 5

1. Objective

Nowadays, we are not effective to reuse the existing codes to develop in the new projects. The most projects cause delay because this and that reason. If we can reuse the existing codes in the implement phase, we could reduce the coding defects, short the developing time and testing time and even short the internal design time.

In fact, most new projects can be built by the components from the old projects. But the components scatter the world sites. On most condition it is longer time to find an expected component among the components sea than the developer codes himself. But the new component exist more defects and risks than the certificated component. The worse condition is that the developer even doesn't know where he can search expected components. The most common components functions are saved in brains of the senior engineers but not in the hard disk.

In this article my objective is not to explain why we should reuse the components and how to make a component but to support how to manage a component library and how to make everyone recognize that he/she can retrieval expected components effectively in the component library and make everyone become a component provider of component library.

2. What is component library Management System

<group id="_x0000_s1026" style="MARGIN-TOP: 74.25pt; Z-INDEX: 1; LEFT: 0px; MARGIN-LEFT: 9pt; WIDTH: 6in; POSITION: absolute; HEIGHT: 126pt; TEXT-ALIGN: left" coordorigin="1980,10080" coordsize="8640,2520"></group><oval id="_x0000_s1027" style="LEFT: 7863px; WIDTH: 2757px; POSITION: absolute; TOP: 10080px; HEIGHT: 2160px"></oval><textbox style="mso-next-textbox: #_x0000_s1027"></textbox>

Application

<textbox style="mso-next-textbox: #_x0000_s1028"></textbox>

Component 1

<textbox style="mso-next-textbox: #_x0000_s1029"></textbox>

Component 2

<textbox style="mso-next-textbox: #_x0000_s1032"></textbox>

C1.1

<textbox style="mso-next-textbox: #_x0000_s1033"></textbox>

C1.2

<shapetype id="_x0000_t202" coordsize="21600,21600" o:spt="202" path="m,l,21600r21600,l21600,xe"></shapetype><stroke joinstyle="miter"></stroke><shape id="_x0000_s1038" style="LEFT: 4002px; WIDTH: 3861px; POSITION: absolute; TOP: 12060px; HEIGHT: 540px" type="#_x0000_t202" strokecolor="white"></shape><textbox style="mso-next-textbox: #_x0000_s1038"></textbox>

Graphic 2.1 Components

<oval id="_x0000_s1039" style="LEFT: 2057px; WIDTH: 147px; POSITION: absolute; TOP: 10885px; HEIGHT: 179px"></oval><oval id="_x0000_s1040" style="LEFT: 2057px; WIDTH: 147px; POSITION: absolute; TOP: 11215px; HEIGHT: 179px"></oval><oval id="_x0000_s1041" style="LEFT: 5479px; WIDTH: 147px; POSITION: absolute; TOP: 11236px; HEIGHT: 179px"></oval><oval id="_x0000_s1042" style="LEFT: 4630px; WIDTH: 147px; POSITION: absolute; TOP: 10705px; HEIGHT: 179px"></oval><oval id="_x0000_s1043" style="LEFT: 6184px; WIDTH: 147px; POSITION: absolute; TOP: 10690px; HEIGHT: 179px"></oval><oval id="_x0000_s1044" style="LEFT: 8046px; WIDTH: 147px; POSITION: absolute; TOP: 10696px; HEIGHT: 179px"></oval><oval id="_x0000_s1045" style="LEFT: 8068px; WIDTH: 147px; POSITION: absolute; TOP: 11416px; HEIGHT: 179px"></oval>Before I explain my component library management system, I have to explain a little what is component that I mean. The component is a reusable unit that can complete one function and an independent unit. The instance of component is not only codes, e.g. COM, Java Bean, but also reusable documents, graphics, design patterns and even frameworks. One component can contain other components. Two components can communicate each other. And every component has interfaces to Application.

In the component library one component instance include below sections:

  • Component model
  • Component source code
  • Component binary files
  • Help documents
  • Development documents.

Unfortunately almost we cannot get all of them. We get more, more reusable the component is.

Component library is responsible to describe component, save it and provide the search method so that the component can be found quickly:

  • Description: as input section the description of component is complicated. It includes function, interface, method, property, national language, program language, platform, usage, quality level, restriction, performance, author, created info, public license and so on. It must be sure that each information is correct or the reuser cannot gain the expected component. So it is not just to force the component provider provide all information. The description function should have automation to get most information from component instance.
  • Storage: components come from different projects, different providers with much different forms every day. The storage function should be strong enough to manage the thousands components. The storage function could save the component binary files, source code files, help files, document and description of the components.
  • Retrieval: as output section the retrieval function is responsible to search components quickly and correctly. The retrieval function can be called search engine that provides different type of search method. We can imagine that when a reuser want to find a component that completes neuron network algorithm, he/she would like input “neuron network algorithm” in the function search. Of course it is not only. The reuser then chooses software environment “windows 2000” and chooses program language “C++”. It is clear now that the function searching is important and it should be a full-text searching engine like google. But to reduce the misunderstanding with reuser, the function searching should permit reuser to restriction the scope to window 2000 operation system and C++ language. Such searching can be a simple select sentence in the database. The found component should show reuser its interface, method, property, help, document and other info like author so that reuser can use it correctly and can contact author for help.

Are these three functions all of component library? Of course not. The reality proved the component library organized only three functions cannot be used popularly. The busy developers always forget inputting their components in component library. Even when they remember to do it, they would like inputting all of their components because it cost so much time. Why costs so much time for other people to reuse? The component library without components cannot be called a library. Otherwise the quality of component cannot be assurance.

So the component library should include other functions to solve above problems. Component Library Management System (I call it CLMS) is not one product or one independent product. CLMS is an integration development and management system. It integrates IDE, Model, Component Library and other powerful development tools. From application design phase to service in, CLMS exists everywhere.

3. Architecture of Component Library Management System

The architecture of CLMS is not independent; it depends on IDE like WSAD, Visual Studio, or <place></place>Delphi, model tools like rational rose, source code version control like CVS or VSS, storage database like DB2, Domino Notes, and component development process management like MS project 2000. The modules of CLMS itself contain component input/output module, component search index module, component search engineer, component storage module, component version control, component integration tool.

3.1 Process

In fact, in most case component reuser is also a component provider. In one project when the plan is finished in a project, the design phase begins. According to the user requirement developer abstracts business component model and common component model using model tools, e.g. rational rose. The component model is searched in the CLMS by the search engine to match the similar existed component model. If existed, CLMS will return the component instance. The developer will take a short time to prove if the retrieval component is expected. If not exist, CLMS will save the component model and documents under document version control, it will also prepare for saving the future components source code and other sections. The components that retrieval may be not one expected component, but they are able to compose into one component that complete one function. At this case, component integration tool helps developer to produce component. In the internal phase, the developer begins to find business components and common components. When developer finish design phase, the coding phase begins. The developer has already known if the expected components exist in CLMS. In the coding phase, the developer as a component provider saves the component in CLMS when he/she finish it. Because the trace begins from the design phase, the most information of component has been known by CLMS and what the developer to do is just to push one button to submit the component source code and binary files to the CLMS. Just as the source code version control, In CLMS, component version should also be controlled. The following content will describe how to search component.

3.2 Component Search Engine

Component search engine is the core of CLMS. It enables to search components by providing properties, function sentence or even model graphic. The quantity of searching objects is huge and the content of searching is complicated. So it is necessary to use some algorithm to complete it.

There are three algorithms I would like to adopt to build engine. The first one is faceted classification to classify the component information that would reduce the scope of the full text searching. The second one is clustering analysis algorithm that complete the full text searching and build index for CLMS. The last one is self-organized mapping neural network algorithms that can also complete the full text searching and build index. How to combine these algorithm to search component have described in my paper [1] and my graduate thesis [2].

4. Summary

For using CLMS to improve efficiency and reduce cost, we must remember reuse definition and we reuse anytime. CLMS follows developer every time in development project. The objective of CLMS is to make components saving and searching simple and easy and be shared for all of developers. To do it, CLMS cannot be an isolated product but a set of tools for developer using. CLMS may not only one in one company, but CLMSes should be able to communicate each other. CLMS should be an international tool without area boundary. All of developers should know and use CLMS. Whatever project managers or programmers should have authority to use, create components in the CLMS. Or it loses its meaning to exist.

2. What is component library Management System

<group id="_x0000_s1026" style="MARGIN-TOP: 74.25pt; Z-INDEX: 1; LEFT: 0px; MARGIN-LEFT: 9pt; WIDTH: 6in; POSITION: absolute; HEIGHT: 126pt; TEXT-ALIGN: left" coordorigin="1980,10080" coordsize="8640,2520"></group><oval id="_x0000_s1027" style="LEFT: 7863px; WIDTH: 2757px; POSITION: absolute; TOP: 10080px; HEIGHT: 2160px"></oval><textbox style="mso-next-textbox: #_x0000_s1027"></textbox>

Application

<textbox style="mso-next-textbox: #_x0000_s1028"></textbox>

Component 1

<textbox style="mso-next-textbox: #_x0000_s1029"></textbox>

Component 2

<textbox style="mso-next-textbox: #_x0000_s1032"></textbox>

C1.1

<textbox style="mso-next-textbox: #_x0000_s1033"></textbox>

C1.2

<shapetype id="_x0000_t202" coordsize="21600,21600" o:spt="202" path="m,l,21600r21600,l21600,xe"></shapetype><stroke joinstyle="miter"></stroke><shape id="_x0000_s1038" style="LEFT: 4002px; WIDTH: 3861px; POSITION: absolute; TOP: 12060px; HEIGHT: 540px" type="#_x0000_t202" strokecolor="white"></shape><textbox style="mso-next-textbox: #_x0000_s1038"></textbox>

Graphic 2.1 Components

<oval id="_x0000_s1039" style="LEFT: 2057px; WIDTH: 147px; POSITION: absolute; TOP: 10885px; HEIGHT: 179px"></oval><oval id="_x0000_s1040" style="LEFT: 2057px; WIDTH: 147px; POSITION: absolute; TOP: 11215px; HEIGHT: 179px"></oval><oval id="_x0000_s1041" style="LEFT: 5479px; WIDTH: 147px; POSITION: absolute; TOP: 11236px; HEIGHT: 179px"></oval><oval id="_x0000_s1042" style="LEFT: 4630px; WIDTH: 147px; POSITION: absolute; TOP: 10705px; HEIGHT: 179px"></oval><oval id="_x0000_s1043" style="LEFT: 6184px; WIDTH: 147px; POSITION: absolute; TOP: 10690px; HEIGHT: 179px"></oval><oval id="_x0000_s1044" style="LEFT: 8046px; WIDTH: 147px; POSITION: absolute; TOP: 10696px; HEIGHT: 179px"></oval><oval id="_x0000_s1045" style="LEFT: 8068px; WIDTH: 147px; POSITION: absolute; TOP: 11416px; HEIGHT: 179px"></oval>Before I explain my component library management system, I have to explain a little what is component that I mean. The component is a reusable unit that can complete one function and an independent unit. The instance of component is not only codes, e.g. COM, Java Bean, but also reusable documents, graphics, design patterns and even frameworks. One component can contain other components. Two components can communicate each other. And every component has interfaces to Application.

In the component library one component instance include below sections:

  • Component model
  • Component source code
  • Component binary files
  • Help documents
  • Development documents.

Unfortunately almost we cannot get all of them. We get more, more reusable the component is.

Component library is responsible to describe component, save it and provide the search method so that the component can be found quickly:

  • Description: as input section the description of component is complicated. It includes function, interface, method, property, national language, program language, platform, usage, quality level, restriction, performance, author, created info, public license and so on. It must be sure that each information is correct or the reuser cannot gain the expected component. So it is not just to force the component provider provide all information. The description function should have automation to get most information from component instance.
  • Storage: components come from different projects, different providers with much different forms every day. The storage function should be strong enough to manage the thousands components. The storage function could save the component binary files, source code files, help files, document and description of the components.
  • Retrieval: as output section the retrieval function is responsible to search components quickly and correctly. The retrieval function can be called search engine that provides different type of search method. We can imagine that when a reuser want to find a component that completes neuron network algorithm, he/she would like input “neuron network algorithm” in the function search. Of course it is not only. The reuser then chooses software environment “windows 2000” and chooses program language “C++”. It is clear now that the function searching is important and it should be a full-text searching engine like google. But to reduce the misunderstanding with reuser, the function searching should permit reuser to restriction the scope to window 2000 operation system and C++ language. Such searching can be a simple select sentence in the database. The found component should show reuser its interface, method, property, help, document and other info like author so that reuser can use it correctly and can contact author for help.

Are these three functions all of component library? Of course not. The reality proved the component library organized only three functions cannot be used popularly. The busy developers always forget inputting their components in component library. Even when they remember to do it, they would like inputting all of their components because it cost so much time. Why costs so much time for other people to reuse? The component library without components cannot be called a library. Otherwise the quality of component cannot be assurance.

So the component library should include other functions to solve above problems. Component Library Management System (I call it CLMS) is not one product or one independent product. CLMS is an integration development and management system. It integrates IDE, Model, Component Library and other powerful development tools. From application design phase to service in, CLMS exists everywhere.

3. Architecture of Component Library Management System

The architecture of CLMS is not independent; it depends on IDE like WSAD, Visual Studio, or <place></place>Delphi, model tools like rational rose, source code version control like CVS or VSS, storage database like DB2, Domino Notes, and component development process management like MS project 2000. The modules of CLMS itself contain component input/output module, component search index module, component search engineer, component storage module, component version control, component integration tool.

3.1 Process

In fact, in most case component reuser is also a component provider. In one project when the plan is finished in a project, the design phase begins. According to the user requirement developer abstracts business component model and common component model using model tools, e.g. rational rose. The component model is searched in the CLMS by the search engine to match the similar existed component model. If existed, CLMS will return the component instance. The developer will take a short time to prove if the retrieval component is expected. If not exist, CLMS will save the component model and documents under document version control, it will also prepare for saving the future components source code and other sections. The components that retrieval may be not one expected component, but they are able to compose into one component that complete one function. At this case, component integration tool helps developer to produce component. In the internal phase, the developer begins to find business components and common components. When developer finish design phase, the coding phase begins. The developer has already known if the expected components exist in CLMS. In the coding phase, the developer as a component provider saves the component in CLMS when he/she finish it. Because the trace begins from the design phase, the most information of component has been known by CLMS and what the developer to do is just to push one button to submit the component source code and binary files to the CLMS. Just as the source code version control, In CLMS, component version should also be controlled. The following content will describe how to search component.

3.2 Component Search Engine

Component search engine is the core of CLMS. It enables to search components by providing properties, function sentence or even model graphic. The quantity of searching objects is huge and the content of searching is complicated. So it is necessary to use some algorithm to complete it.

There are three algorithms I would like to adopt to build engine. The first one is faceted classification to classify the component information that would reduce the scope of the full text searching. The second one is clustering analysis algorithm that complete the full text searching and build index for CLMS. The last one is self-organized mapping neural network algorithms that can also complete the full text searching and build index. How to combine these algorithm to search component have described in my paper [1] and my graduate thesis [2].

4. Summary

For using CLMS to improve efficiency and reduce cost, we must remember reuse definition and we reuse anytime. CLMS follows developer every time in development project. The objective of CLMS is to make components saving and searching simple and easy and be shared for all of developers. To do it, CLMS cannot be an isolated product but a set of tools for developer using. CLMS may not only one in one company, but CLMSes should be able to communicate each other. CLMS should be an international tool without area boundary. All of developers should know and use CLMS. Whatever project managers or programmers should have authority to use, create components in the CLMS. Or it loses its meaning to exist.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值