CN101763258A - 一种软件复用方法及系统 - Google Patents
一种软件复用方法及系统 Download PDFInfo
- Publication number
- CN101763258A CN101763258A CN200910239533A CN200910239533A CN101763258A CN 101763258 A CN101763258 A CN 101763258A CN 200910239533 A CN200910239533 A CN 200910239533A CN 200910239533 A CN200910239533 A CN 200910239533A CN 101763258 A CN101763258 A CN 101763258A
- Authority
- CN
- China
- Prior art keywords
- file
- forms
- information
- control
- item
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及一种软件复用方法及系统,所述方法包括以下步骤:A、采用.net反射技术将项目文件分解为文件信息、窗体信息及需要进行权限控制的控件信息;B、将分解得到的文件信息、窗体信息及控件信息通过文件服务程序和数据访问组件存储到系统数据库中;C、根据文件信息、窗体信息及控件信息定义系统的功能菜单,并将菜单与相应的文件和窗体关联;D、在菜单被点击时,根据与被点击的菜单对应的文件及窗体名称,从项目文件中反射构造出项目功能窗体,显示在子窗体中,完成功能调用。本发明的软件复用方法和系统使得实现不同项目开发时,便于在不同的业务系统中进行复用,并使业务系统的实现更具备扩展性和可维护性。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及可组装软件的系统框架。
背景技术
随着软件系统的日益增多,很多企业在软件的可复用性上做了很多的研究。一般都采用源代码级别的重用方式,来复用业务系统中与具体业务无关的部分。比如对数据访问的处理、系统日志、系统异常、系统主界面及登录、权限等,即当有新的项目开发时,将原有类似的项目源码复制到新的项目中再基于此代码进行新项目的开发。
现有方案在可复用的方式上,采用源代码级别的复用,模块与模块之间关系都是紧耦合,即当一个模块需要调用另一个模块的功能方法时,必须将其引用到自身所在的工程中。
在项目研发过程中,业务需求的变化会导致程序的修改,采用现有的复用方式,当另一个模块有变化时,势必导致此模块需要重新编译,往往容易出现“触一发而动全身”的状况。
且软件在发布后,在运行维护阶段时,如果改动了某个文件,势必要将其他关联了此文件的文件同时更新发布,给正式系统带来较高的风险。导致发布的可复用版本比较难管理,且随着项目开发的增多,每个项目所使用的框架版本可能都不一致,后期维护比较麻烦。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种可组装软件的系统框架,使得实现不同项目开发时,与具体业务无关的部分能进行文件级别的重用,并能支持系统分部开发。
本发明解决其技术问题所采用的技术方案是:
构造一种软件复用方法,其包括以下步骤:
A、采用.net反射技术将项目文件分解为文件信息、窗体信息及需要进行权限控制的控件信息;
B、将分解得到的文件信息、窗体信息及控件信息通过文件服务程序和数据访问组件存储到系统数据库中;
C、根据所述文件信息、窗体信息及控件信息定义系统的功能菜单,并将菜单与相应的文件和窗体关联;
D、在所述菜单被点击时,根据与被点击的菜单对应的文件及窗体名称,从项目文件中反射构造出项目功能窗体,显示在子窗体中,完成功能调用。
本发明所述的软件复用方法,其中,所述步骤A包括:
A1、读取项目文件;
A2、判断所读取的项目文件是否为.net程序集文件;
A3、在所述项目文件为.net程序集文件时,判断所述项目文件是否拥有窗体类,若有,则循环所有窗体类,反射构造窗体类,记录控件信息、窗体信息和文件信息。
本发明所述的软件复用方法,其中,所述步骤A3包括:
A31、反射构造窗体类时,判断所依赖文件是否完善,若是,则循环窗体类的控件,判断是否为容器控件,若是,则递归查找容器控件的子控件,再判断是否有权限控件,若是,则记录控件信息。
本发明所述的软件复用方法,其中,所述步骤A3还包括:
A32、记录控件信息后,判断窗体控件循环是否完成,若是,则再判断窗体循环是否完成,若完成,则记录文件信息、窗体信息及控件信息的关联信息,若没有完成,继续循环所有窗体类。
本发明所述的软件复用方法,其中,所述步骤A3中,在所述项目文件不是.net程序集文件时,提示返回信息。
本发明所述的软件复用方法,其中,所述步骤A31中,在所述依赖文件不完善时,提示返回信息。
本发明所述的软件复用方法,其中,所述步骤A31中,若所循环的窗体类的控件不是容器控件,则直接判断是否为有权限控件,若是,则记录控件信息。
本发明所述的软件复用方法,其中,所述步骤D包括:
D1、在所述菜单被点击时,根据与被点击的菜单对应的文件及窗体名称,查找文件,如果所查找的文件存在,则从项目文件中反射构造出项目功能窗体,显示在子窗体中,完成功能调用,若查找的文件不存在,则提示返回信息。
本发明还提供了一种软件复用系统,其包括项目文件分解模块、信息存储模块、功能菜单生成模块;其中,
所述项目文件分解模块,用于采用.net反射技术将项目文件分解为文件信息、窗体信息及需要进行权限控制的控件信息;
所述信息存储模块,用于将分解得到的文件信息、窗体信息及控件信息通过文件服务程序和数据访问组件存储到系统数据库中;
所述功能菜单生成模块,用于根据所述文件信息、窗体信息及控件信息定义系统的功能菜单,并将菜单与相应的文件和窗体关联,使所述菜单在被点击时,根据与被点击的菜单对应的文件及窗体名称,从项目文件中反射构造出项目功能窗体,显示在子窗体中,完成功能调用。
本发明的软件复用方法和系统将功能模块与模块之间耦合降低,使得实现不同项目开发时,与具体业务无关的部分能进行文件级别的重用,并能支持系统分部开发,最后一起进行组装功能,便于在不同的业务系统中进行复用,并使业务系统的实现更具备扩展性和可维护性。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明实施例的软件复用方法中文件分解部分大致流程图;
图2是本发明实施例的软件复用方法中文件分解部分详细流程图;
图3是本发明实施例的软件复用方法中功能调用部分大致流程图;
图4是本发明实施例的软件复用方法中功能调用部分详细流程图。
具体实施方式
下面结合图示,对本发明的优选实施例作详细介绍。
本发明较佳实施例的软件复用方法流程图如图1-4所示,其包括以下步骤:
S100、采用.net反射技术将项目文件分解为文件信息、窗体信息及需要进行权限控制的控件信息,如图1和图3所示,具体包括:
S110、读取项目文件;
S120、判断所读取的项目文件是否为.net程序集文件;
S130、在项目文件为.net程序集文件时,判断项目文件是否拥有窗体类,若有,则循环所有窗体类,反射构造窗体类,记录控件信息、窗体信息和文件信息;并在项目文件不是.net程序集文件时,提示返回信息。
步骤S130具体包括:
S131、反射构造窗体类时,判断所依赖文件是否完善,若是,则循环窗体类的控件,判断是否为容器控件,若是,则递归查找容器控件的子控件;
再判断是否有权限控件,若是,则记录控件信息;
在所依赖文件不完善时,提示返回信息;
若所循环的窗体类的控件不是容器控件,则直接判断是否为有权限控件,若是,则记录控件信息。
S132、记录控件信息后,判断窗体控件循环是否完成,若是,则再判断窗体循环是否完成,若完成,则记录文件信息、窗体信息及控件信息的关联信息,若没有完成,继续循环所有窗体类。
S200、将分解得到的文件信息、窗体信息及控件信息通过文件服务程序和数据访问组件存储到系统的数据库中;
S300、根据文件信息、窗体信息及控件信息定义系统的功能菜单,并将菜单与相应的文件和窗体关联,如图2所示;如在功能菜单中可包括功能名称:销售管理、生产管理、采购管理等等。
S400、在菜单被点击时,根据与被点击的菜单对应的文件及窗体名称,查找文件,如果所查找的文件存在,则从项目文件中反射构造出项目功能窗体,显示在子窗体中,完成功能调用,若查找的文件不存在,则提示返回信息。
具体是,如图4所示,根据控件信息、窗体信息定义功能,保存功能与窗体、控件的关联关系。系统功能框架定义好后,使用时,系统进行初始化,取出已授权功能菜单信息,并加载显示。可根据需要点击菜单,选择要复用的功能。系统获取当前被点击的菜单信息,获取菜单关联的文件窗体信息,查找文件。如果所需要查找的文件不存在,则提示返回信息,如果存在,则从文件中反射窗体类,并显示窗体。
本发明还提供了一种软件复用系统,其包括项目文件分解模块、信息存储模块、功能菜单生成模块。其中,项目文件分解模块用于采用.net反射技术将项目文件分解为文件信息、窗体信息及需要进行权限控制的控件信息;信息存储模块用于将分解得到的文件信息、窗体信息及控件信息通过文件服务程序和数据访问组件存储到系统数据库中;功能菜单生成模块用于根据文件信息、窗体信息及控件信息定义系统的功能菜单,并将菜单与相应的文件和窗体关联,使所述菜单在被点击时,根据与被点击的菜单对应的文件及窗体名称,从项目文件中反射构造出项目功能窗体,显示在子窗体中,完成功能调用。
本发明的软件复用方法和系统具有以下优点:
(1)可在不同的软件系统中实现文件级复用,项目可将精力集中在业务功能的实现上,与业务无关的系统功能皆可由可复用的框架提供。
(2)软件系统可由本专利提供的技术来进行松耦合组装,能分块进行开发,对系统整体维护性及开发便利性有较大提升。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (9)
1.一种软件复用方法,其特征在于,包括以下步骤:
A、采用.net反射技术将项目文件分解为文件信息、窗体信息及需要进行权限控制的控件信息;
B、将分解得到的文件信息、窗体信息及控件信息通过文件服务程序和数据访问组件存储到系统数据库中;
C、根据所述文件信息、窗体信息及控件信息定义系统的功能菜单,并将菜单与相应的文件和窗体关联;
D、在所述菜单被点击时,根据与被点击的菜单对应的文件及窗体名称,从项目文件中反射构造出项目功能窗体,显示在子窗体中,完成功能调用。
2.根据权利要求1所述的软件复用方法,其特征在于,所述步骤A包括:
A1、读取项目文件;
A2、判断所读取的项目文件是否为.net程序集文件;
A3、在所述项目文件为.net程序集文件时,判断所述项目文件是否拥有窗体类,若有,则循环所有窗体类,反射构造窗体类,记录控件信息、窗体信息和文件信息。
3.根据权利要求2所述的软件复用方法,其特征在于,所述步骤A3包括:
A31、反射构造窗体类时,判断所依赖文件是否完善,若是,则循环窗体类的控件,判断是否为容器控件,若是,则递归查找容器控件的子控件,再判断是否有权限控件,若是,则记录控件信息。
4.根据权利要求3所述的软件复用方法,其特征在于,所述步骤A3还包括:
A32、记录控件信息后,判断窗体控件循环是否完成,若是,则再判断窗体循环是否完成,若完成,则记录文件信息、窗体信息及控件信息的关联信息,若没有完成,继续循环所有窗体类。
5.根据权利要求2所述的软件复用方法,其特征在于,所述步骤A3中,在所述项目文件不是.net程序集文件时,提示返回信息。
6.根据权利要求3所述的软件复用方法,其特征在于,所述步骤A31中,在所述依赖文件不完善时,提示返回信息。
7.根据权利要求3所述的软件复用方法,其特征在于,所述步骤A31中,若所循环的窗体类的控件不是容器控件,则直接判断是否为有权限控件,若是,则记录控件信息。
8.根据权利要求1所述的软件复用方法,其特征在于,所述步骤D包括:
D1、在所述菜单被点击时,根据与被点击的菜单对应的文件及窗体名称,查找文件,如果所查找的文件存在,则从项目文件中反射构造出项目功能窗体,显示在子窗体中,完成功能调用,若查找的文件不存在,则提示返回信息。
9.一种软件复用系统,其特征在于,包括项目文件分解模块、信息存储模块、功能菜单生成模块;其中,
所述项目文件分解模块,用于采用.net反射技术将项目文件分解为文件信息、窗体信息及需要进行权限控制的控件信息;
所述信息存储模块,用于将分解得到的文件信息、窗体信息及控件信息通过文件服务程序和数据访问组件存储到系统数据库中;
所述功能菜单生成模块,用于根据所述文件信息、窗体信息及控件信息定义系统的功能菜单,并将菜单与相应的文件和窗体关联,使所述菜单在被点击时,根据与被点击的菜单对应的文件及窗体名称,从项目文件中反射构造出项目功能窗体,显示在子窗体中,完成功能调用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910239533 CN101763258B (zh) | 2009-12-31 | 2009-12-31 | 一种软件复用方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910239533 CN101763258B (zh) | 2009-12-31 | 2009-12-31 | 一种软件复用方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101763258A true CN101763258A (zh) | 2010-06-30 |
CN101763258B CN101763258B (zh) | 2013-09-11 |
Family
ID=42494430
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910239533 Active CN101763258B (zh) | 2009-12-31 | 2009-12-31 | 一种软件复用方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101763258B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102053863A (zh) * | 2010-12-31 | 2011-05-11 | 深圳联友科技有限公司 | 一种动态交互数据的方法及系统 |
CN104424159A (zh) * | 2013-09-04 | 2015-03-18 | 上海复旦微电子集团股份有限公司 | 软件项目文档生成方法和软件项目文档生成器 |
CN105373384A (zh) * | 2015-11-13 | 2016-03-02 | 大唐终端技术有限公司 | 一种软件开发方法和装置 |
CN108153523A (zh) * | 2016-12-06 | 2018-06-12 | 北京京东尚科信息技术有限公司 | 基于Java技术的个性化界面和内容实现的方法、装置及系统 |
CN110647326A (zh) * | 2019-09-20 | 2020-01-03 | 中国银行股份有限公司 | 基于NuGet程序包的软件复用方法、装置及系统 |
CN111625379A (zh) * | 2020-06-02 | 2020-09-04 | 网易(杭州)网络有限公司 | 一种信息处理的方法、装置、电子设备和可读存储介质 |
CN112905173A (zh) * | 2021-05-07 | 2021-06-04 | 南京沁恒微电子股份有限公司 | 一种基于Eclipse的工程复用实现方法及其集成开发环境 |
CN112926060A (zh) * | 2021-04-13 | 2021-06-08 | 深圳开源互联网安全技术有限公司 | 一种检测.net项目组件及其漏洞的方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050204340A1 (en) * | 2004-03-10 | 2005-09-15 | Ruminer Michael D. | Attribute-based automated business rule identifier and methods of implementing same |
US20060064674A1 (en) * | 2004-06-03 | 2006-03-23 | Olson John B Jr | Methods and apparatus for visual application design |
CN1916842A (zh) * | 2006-09-06 | 2007-02-21 | 上海科泰世纪科技有限公司 | 构件化软件系统中实现反射机制的构件封装方法 |
EP1805602A2 (en) * | 2004-08-31 | 2007-07-11 | Sap Ag | Parsing and handling events from .net objects |
-
2009
- 2009-12-31 CN CN 200910239533 patent/CN101763258B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050204340A1 (en) * | 2004-03-10 | 2005-09-15 | Ruminer Michael D. | Attribute-based automated business rule identifier and methods of implementing same |
US20060064674A1 (en) * | 2004-06-03 | 2006-03-23 | Olson John B Jr | Methods and apparatus for visual application design |
EP1805602A2 (en) * | 2004-08-31 | 2007-07-11 | Sap Ag | Parsing and handling events from .net objects |
CN1916842A (zh) * | 2006-09-06 | 2007-02-21 | 上海科泰世纪科技有限公司 | 构件化软件系统中实现反射机制的构件封装方法 |
Non-Patent Citations (2)
Title |
---|
徐卫东: "基于.net反射技术的动态界面的实现", 《计算机工程与设计》 * |
王玉峰,张振业: "《基于_NET反射技术的动态菜单的设计与实现》", 《微计算机信息》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102053863A (zh) * | 2010-12-31 | 2011-05-11 | 深圳联友科技有限公司 | 一种动态交互数据的方法及系统 |
CN102053863B (zh) * | 2010-12-31 | 2012-11-28 | 深圳联友科技有限公司 | 一种动态交互数据的方法及系统 |
CN104424159A (zh) * | 2013-09-04 | 2015-03-18 | 上海复旦微电子集团股份有限公司 | 软件项目文档生成方法和软件项目文档生成器 |
CN105373384A (zh) * | 2015-11-13 | 2016-03-02 | 大唐终端技术有限公司 | 一种软件开发方法和装置 |
CN105373384B (zh) * | 2015-11-13 | 2018-07-31 | 大唐终端技术有限公司 | 一种软件开发方法和装置 |
CN108153523A (zh) * | 2016-12-06 | 2018-06-12 | 北京京东尚科信息技术有限公司 | 基于Java技术的个性化界面和内容实现的方法、装置及系统 |
CN110647326A (zh) * | 2019-09-20 | 2020-01-03 | 中国银行股份有限公司 | 基于NuGet程序包的软件复用方法、装置及系统 |
CN110647326B (zh) * | 2019-09-20 | 2023-10-24 | 中国银行股份有限公司 | 基于NuGet程序包的软件复用方法、装置及系统 |
CN111625379A (zh) * | 2020-06-02 | 2020-09-04 | 网易(杭州)网络有限公司 | 一种信息处理的方法、装置、电子设备和可读存储介质 |
CN112926060A (zh) * | 2021-04-13 | 2021-06-08 | 深圳开源互联网安全技术有限公司 | 一种检测.net项目组件及其漏洞的方法和装置 |
CN112905173A (zh) * | 2021-05-07 | 2021-06-04 | 南京沁恒微电子股份有限公司 | 一种基于Eclipse的工程复用实现方法及其集成开发环境 |
Also Published As
Publication number | Publication date |
---|---|
CN101763258B (zh) | 2013-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101763258B (zh) | 一种软件复用方法及系统 | |
CN101978366B (zh) | 可部署对象分层结构内的应用程序管理 | |
US8555248B2 (en) | Business object change management using release status codes | |
CN100458732C (zh) | 用于同步数据平台的多个实例的方法和系统 | |
CN101794226B (zh) | 一种适应多业务抽象层次的服务化软件构造方法和系统 | |
CN100550010C (zh) | 用于将应用程序与基于项的存储平台接口的系统和方法 | |
CN100570549C (zh) | 用于基于项目的存储平台中的数据建模的系统和方法 | |
EP2228726B1 (en) | A method and system for task modeling of mobile phone applications | |
US20070240154A1 (en) | System and method for software integration and factory deployment | |
CN106233252A (zh) | 用于定制软件的动态更新安装器 | |
US20100161627A1 (en) | Generic data object mapping agent | |
US20080109468A1 (en) | Method and apparatus for creating an offline service- oriented architecture based application from an online service-oriented architecture based application | |
CN101183379A (zh) | 用于检索数据的方法和系统 | |
CN104932926A (zh) | 智能操作系统平台中实现设备与驱动动态匹配的系统及方法 | |
CN108647265A (zh) | 基于多平台数据交互式系统 | |
CN103019718A (zh) | 在集中式源控制环境中使用分布式源控制 | |
US20090076872A1 (en) | Convergence Of Customer And Internal Assets | |
US20150081744A1 (en) | Metadata model repository | |
CN101416153A (zh) | 实现组织可由硬件/软件接口系统管理的信息单元的数字图象模式的系统和方法 | |
CN109523423B (zh) | 一种应用系统生成方法、装置、设备及存储介质 | |
CN101753619A (zh) | 用于扩展服务模型的方法和系统 | |
US20100161676A1 (en) | Lifecycle management and consistency checking of object models using application platform tools | |
CN110109893A (zh) | 数据建模和操作的方法和装置 | |
CN1716247B (zh) | 对可由硬件/软件接口系统进行信息管理的单元的对等同步化提供冲突处理的系统和方法 | |
CN101339506A (zh) | 一种实现软件产品资源与版本管理的装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C53 | Correction of patent of invention or patent application | ||
CB03 | Change of inventor or designer information |
Inventor after: Tang Lin Inventor before: Yin Jun |
|
COR | Change of bibliographic data |
Free format text: CORRECT: INVENTOR; FROM: YINJUN TO: TANG LIN |
|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |