CN104461503B - 动态组成软件界面的方法与系统 - Google Patents
动态组成软件界面的方法与系统 Download PDFInfo
- Publication number
- CN104461503B CN104461503B CN201410620897.8A CN201410620897A CN104461503B CN 104461503 B CN104461503 B CN 104461503B CN 201410620897 A CN201410620897 A CN 201410620897A CN 104461503 B CN104461503 B CN 104461503B
- Authority
- CN
- China
- Prior art keywords
- subprogram
- main program
- interface
- dynamic link
- link library
- 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.)
- Active
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供一种动态组成软件界面的方法与系统,确定主程序和子程序之间的接口,利用动态链接库对子程序进行封装,在主程序中以动态读取动态链接库的方式,读取子程序,并将子程序组合到主程序中。本发明动态组成软件界面的方法将程序分块为主程序和子程序,主程序与子程序之间通过接口来实现通信,用户直接与子程序交互来实现其功能,也可以与主程序交互来实现通用功能,之后以动态读取动态链接库的方式,将子程序与主程序组合,极大的提高开发效率,降低后期维护难度,另外,子程序用动态链接库封装后方便其他程序来调用,可扩张性强,且这样封装后生成独立文件,进一步便于后期的维护。
Description
技术领域
本发明涉及软件界面设计技术领域,特别是涉及动态组成软件界面的方法与系统。
背景技术
软件界面设计是指为了满足软件专业化标准化的需求而产生的对软件的使用界面进行美化优化规范化的设计分支。具体包括软件启动封面设计,软件框架设计,按钮设计,面板设计,菜单设计,标签设计,图标设计,滚动条及状态栏设计,安装过程设计,包装及商品化技术。
用户对软件项目的需求内容越来越丰富,软件项目的研发、设计人员需要设计更多内容,软件界面的动态组成也越来越复杂。
对此,目前软件项目设计人员采用一些界面设计工具在操作系统中对软件界面进行动态组成,其主要是利用软件界面设计工具的winform、wpf等制作界面的功能,但是这些功能较为基础,如果直接使用它来制作大型软件项目的界面会比较复杂,且不利于后期维护。
发明内容
基于此,有必要针对一般软件界面动态组成方法在组成大型软件项目的软件界面时,过程复杂且不便后期维护的问题,提供一种在组成大型软件项目的软件界面时,过程简单且便于后期维护的动态组成软件界面的方法与系统。
一种动态组成软件界面的方法,包括步骤:
确定主程序和子程序之间的接口;
利用动态链接库对所述子程序进行封装;
在所述主程序中以动态读取动态链接库的方式,读取所述子程序,并将所述子程序组合到所述主程序中。
一种动态组成软件界面的系统,包括:
接口确定模块,用于确定主程序和子程序之间的接口;
封装模块,用于利用动态链接库对所述子程序进行封装;
组合模块,用于在所述主程序中以动态读取动态链接库的方式,读取所述子程序,并将所述子程序组合到所述主程序中。
本发明动态组成软件界面的方法与系统,首先,确定主程序和子程序之间的接口,利用动态链接库对子程序进行封装,之后,在主程序中以动态读取动态链接库的方式,读取子程序,并将子程序组合到主程序中。本发明动态组成软件界面的方法将程序分块为主程序和子程序,主程序与子程序之间通过接口来实现通信,用户可以直接与子程序交互来实现其功能,也可以与主程序交互来实现通用功能,之后以动态读取动态链接库的方式,将子程序与主程序组合,极大的提高开发效率,降低后期维护难度,另外,子程序用动态链接库封装后方便其他程序来调用,可扩张性强,且这样封装后生成独立文件,进一步便于后期的维护。
附图说明
图1为本发明动态组成软件界面的方法第一个实施例的流程示意图;
图2为本发明动态组成软件界面的方法第二个实施例的流程示意图;
图3为本发明动态组成软件界面的系统第一个实施例的结构示意图;
图4为本发明动态组成软件界面的系统第二个实施例的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下根据附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施仅仅用以解释本发明,并不限定本发明。
如图1所示,一种动态组成软件界面的方法,包括步骤:
S100:确定主程序和子程序之间的接口。
在多人协作的软件项目中,由于软件项目的工程需求多样化(用户需求的多样化),那么我们在一个软件项目需要实现很多种功能。子程序实现主体功能,主程序只实现一些通用的功能,主程序与子程序之间通过接口来实现通信。用户通过可以直接与子程序交互来实现其功能,也可以与主程序交互来实现通用功能。因此,首先我们需要定好哪些功能是所有子程序都必须要执行的,从而得出需要哪些接口,强制要求所有子程序都实现该接口,而主程序将调用这些子程序实现的接口。例如,主程序点击切换语言按钮,子程序都应该相应的切换语言,所以需要一个切换语言的接口,可定义为SetLanguage(intnLanguageIndex)。
S200:利用动态链接库对所述子程序进行封装。
动态链接库(DLL,Dynamic Link Library),DLL是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个DLL中,该DLL包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL还有助于共享数据和资源。多个应用程序可同时访问内存中单个DLL副本的内容。DLL是一个包含可由多个程序同时使用的代码和数据的库。用动态链接库封装后方便其他程序来调用。且这样封装后生成一个*.dll的独立文件,方便以后的维护。
S300:在所述主程序中以动态读取动态链接库的方式,读取所述子程序,并将所述子程序组合到所述主程序中。
在启动主程序时,读取子程序库中所有的动态链接库,通过这些动态链接库生成其相应的界面添加到主程序的容纳框架中,实现子程序与主程序的组合。
本发明动态组成软件界面的方法,首先确定主程序和子程序之间的接口,利用动态链接库对子程序进行封装,在主程序中以动态读取动态链接库的方式,读取子程序,并将子程序组合到主程序中。本发明动态组成软件界面的方法将程序分块为主程序和子程序,主程序与子程序之间通过接口来实现通信,用户直接与子程序交互来实现其功能,也可以与主程序交互来实现通用功能,之后以动态读取动态链接库的方式,将子程序与主程序组合,极大的提高开发效率,降低后期维护难度,另外,子程序用动态链接库封装后方便其他程序来调用,可扩张性强,且这样封装后生成独立文件,进一步便于后期的维护。本发明动态组成软件界面的方法,非常适合多人协作创建程序,能够极大的提高开发效率,因为主要功能都在子程序中实现,所以维护和使用都很灵活。且由于是通过动态的方式组合程序,要进行程序的扩展也变得容易。
如图2所示,在其中一个实施例中,步骤S200具体包括步骤:
S220:利用动态链接库构建子程序界面及其功能,并定义子程序接口的功能。
非必要的,可以利用汇编语言或者界面开发工具(例如vs2010)制作一个界面程序,封装在动态链接库中,在该子程序中实现具体的一些功能。
S240:创建主程序,在主程序中创建框架来容纳所述子程序的界面,并调用所述子程序接口的功能。
主程序提供一个框架来容纳子程序的界面,可以根据需要来设计主程序的容纳框架,以常见的TabControl控件为例。在主程序上定义一个TabControl,然后要实现从dll中读取子程序界面的功能,定义一个函数void object GetChild(string strHeader)。GetChild方法会返回读取到的子程序界面,将该界面添加到TabControl中即可。
在其中一个实施例中,所述创建主程序,在主程序中创建框架来容纳子程序的界面,并调用所述子程序接口的功能具体为:
创建主程序,在主程序中创建框架来容纳子程序的界面,并通过界面开发工具调用所述子程序接口的功能。
界面开发工具可以为vs2010。通过界面开发工具调用所述子程序接口的功能可以提高主程序的创建效率。
在其中一个实施例中,所述在所述主程序中以动态读取动态链接库的方式,读取所述子程序,并将所述子程序组合到所述主程序中具体为:
在所述主程序中利用所述界面开发工具,以动态读取动态链接库的方式,读取所述子程序,并将所述子程序组合到所述主程序中。
界面开发工具可以为vs2010。利用所述界面开发工具,以动态读取动态链接库的方式,读取所述子程序,并将所述子程序组合到所述主程序中,一方面,可以提高子程序与主程序组合的效率,另一方面,标准化、有序性组合便于后期的维护与扩展。
如图2所示,在其中一个实施例中,步骤S100之前还有步骤:
S120:分析待设计的软件项目工程需求,划分主程序和子程序。
正如之前所述,软件项目工程需求是多样的,在这里,我们需要针对当前需要研究的软件项目进行工程需求分析,分析出其所需求的功能,再针对这些需求的功能区划分需要哪些主程序、需要哪些子程序来实现整个软件项目的功能,这样具有良好的灵活性,能够满足不用应用环境的需求。当然,若软件项目工程为已知项目,则主程序和子程序划分的相关数据可以直接从历史经验数据或者专家数据库中获取,这样可以提高软件开发效率。
如图3所示,一种动态组成软件界面的系统,包括:
接口确定模块100,用于确定主程序和子程序之间的接口;
封装模块200,用于利用动态链接库对所述子程序进行封装;
组合模块300,用于在所述主程序中以动态读取动态链接库的方式,读取所述子程序,并将所述子程序组合到所述主程序中。
本发明动态组成软件界面的系统,接口确定模块100确定主程序和子程序之间的接口,封装模块200利用动态链接库对子程序进行封装,组合模块300在主程序中以动态读取动态链接库的方式,读取子程序,并将子程序组合到主程序中。本发明动态组成软件界面的方法将程序分块为主程序和子程序,主程序与子程序之间通过接口来实现通信,用户直接与子程序交互来实现其功能,也可以与主程序交互来实现通用功能,之后以动态读取动态链接库的方式,将子程序与主程序组合,极大的提高开发效率,降低后期维护难度,另外,子程序用动态链接库封装后方便其他程序来调用,可扩张性强,且这样封装后生成独立文件,进一步便于后期的维护。本发明动态组成软件界面的系统,非常适合多人协作创建程序,能够极大的提高开发效率,因为主要功能都在子程序中实现,所以维护和使用都很灵活。且由于是通过动态的方式组合程序,要进行程序的扩展也变得容易。
如图4所示,在其中一个实施例中,封装模块200包括:
子程序处理单元220,用于利用动态链接库构建子程序界面及其功能,并定义子程序接口的功能;
主程序处理单元240,用于创建主程序,在主程序中创建框架来容纳所述子程序的界面,并调用所述子程序接口的功能。
在其中一个实施例中,主程序处理单元240具体用于:
创建主程序,在主程序中创建框架来容纳子程序的界面,并通过界面开发工具调用所述子程序接口的功能。
在其中一个实施例中,所述组合模块300具体用于:
在所述主程序中利用所述界面开发工具,以动态读取动态链接库的方式,读取所述子程序,并将所述子程序组合到所述主程序中。
如图4所示,在其中一个实施例中,所述动态组成软件界面的系统还包括:
划分模块400,用于分析待设计的软件项目工程需求,划分主程序和子程序。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (6)
1.一种动态组成软件界面的方法,其特征在于,包括步骤:
确定主程序和子程序之间的接口,所述主程序用于实现通用功能,所述子程序用于实现主体功能;
利用动态链接库对所述子程序进行封装;
在所述主程序中以动态读取动态链接库的方式,读取所述子程序,并将所述子程序组合到所述主程序中;
所述确定主程序和子程序之间的接口的步骤包括:
识别子程序必须执行功能,根据所述子程序必须执行功能,确定主程序和子程序之间的接口;
所述确定主程序和子程序之间的接口之前还有步骤:
分析待设计的软件项目工程需求,划分主程序和子程序;
所述利用动态链接库对子程序进行封装具体包括步骤:
利用动态链接库构建子程序界面及其功能,并定义子程序接口的功能;
创建主程序,根据预设需求在主程序中创建框架来容纳所述子程序的界面,并调用所述子程序接口的功能。
2.根据权利要求1所述的动态组成软件界面的方法,其特征在于,所述创建主程序,在主程序中创建框架来容纳子程序的界面,并调用所述子程序接口的功能具体为:
创建主程序,在主程序中创建框架来容纳子程序的界面,并通过界面开发工具调用所述子程序接口的功能。
3.根据权利要求2所述的动态组成软件界面的方法,其特征在于,所述在所述主程序中以动态读取动态链接库的方式,读取所述子程序,并将所述子程序组合到所述主程序中具体为:
在所述主程序中利用所述界面开发工具,以动态读取动态链接库的方式,读取所述子程序,并将所述子程序组合到所述主程序中。
4.一种动态组成软件界面的系统,其特征在于,包括:
划分模块,用于分析待设计的软件项目工程需求,划分主程序和子程序
接口确定模块,用于确定主程序和子程序之间的接口,所述主程序用于实现通用功能,所述子程序用于实现主体功能;
封装模块,用于利用动态链接库对所述子程序进行封装;
组合模块,用于在所述主程序中以动态读取动态链接库的方式,读取所述子程序,并将所述子程序组合到所述主程序中;
所述接口确定模块具体用于识别子程序必须执行功能,根据所述子程序必须执行功能,确定主程序和子程序之间的接口;
所述封装模块包括:
子程序处理单元,用于利用动态链接库构建子程序界面及其功能,并定义子程序接口的功能;
主程序处理单元,用于创建主程序,根据预设需求在主程序中创建框架来容纳所述子程序的界面,并调用所述子程序接口的功能。
5.根据权利要求4所述的动态组成软件界面的系统,其特征在于,主程序处理单元具体用于:
创建主程序,在主程序中创建框架来容纳子程序的界面,并通过界面开发工具调用所述子程序接口的功能。
6.根据权利要求5所述的动态组成软件界面的系统,其特征在于,所述组合模块具体用于:
在所述主程序中利用所述界面开发工具,以动态读取动态链接库的方式,读取所述子程序,并将所述子程序组合到所述主程序中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410620897.8A CN104461503B (zh) | 2014-11-06 | 2014-11-06 | 动态组成软件界面的方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410620897.8A CN104461503B (zh) | 2014-11-06 | 2014-11-06 | 动态组成软件界面的方法与系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104461503A CN104461503A (zh) | 2015-03-25 |
CN104461503B true CN104461503B (zh) | 2018-09-11 |
Family
ID=52907615
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410620897.8A Active CN104461503B (zh) | 2014-11-06 | 2014-11-06 | 动态组成软件界面的方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104461503B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI624783B (zh) * | 2015-09-17 | 2018-05-21 | 長茂科技股份有限公司 | 整合動態連結功能函式的行動裝置應用程式之建置系統及方法 |
CN106201499A (zh) * | 2016-07-05 | 2016-12-07 | 中国石油集团渤海钻探工程有限公司 | 一种软件框架实现方法及系统 |
CN107179791A (zh) * | 2017-05-11 | 2017-09-19 | 广东卓信环境科技股份有限公司 | 臭氧控制系统的程序开发方法 |
CN107945006A (zh) * | 2017-11-15 | 2018-04-20 | 深圳市买买提乐购金融服务有限公司 | 一种业务管理系统及方法 |
CN108595167A (zh) * | 2018-03-16 | 2018-09-28 | 深圳极智联合科技股份有限公司 | 一种基于SQL Server的程序管理方法和系统 |
CN111240773A (zh) * | 2018-11-28 | 2020-06-05 | 中国科学院沈阳自动化研究所 | 一种软件前端与后端连接方法 |
CN109669721B (zh) * | 2018-12-21 | 2022-04-01 | 上海翼控电子技术有限公司 | 一种可二次开发软件的方法 |
CN110148332B (zh) * | 2019-06-12 | 2021-12-21 | 大连海事大学 | 船舶主机遥控操作模拟训练系统 |
CN115140130A (zh) * | 2022-06-29 | 2022-10-04 | 卡斯柯信号有限公司 | 城市轨道交通信号系统维护终端集成方法 |
CN116431107B (zh) * | 2023-03-14 | 2023-12-29 | 芜湖市桀蒲网络科技有限公司 | 一种基于大数据的软件模块划分方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5911073A (en) * | 1997-12-23 | 1999-06-08 | Hewlett-Packard Company | Method and apparatus for dynamic process monitoring through an ancillary control code system |
CN101261582A (zh) * | 2008-04-29 | 2008-09-10 | 山东大学 | 多层协同软件开发结构 |
-
2014
- 2014-11-06 CN CN201410620897.8A patent/CN104461503B/zh active Active
Non-Patent Citations (1)
Title |
---|
在Delphi中实现窗体的DLL封装;何定华;《电脑知识与技术》;20100531;第6卷(第14期);第3636-3637页、第3648页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104461503A (zh) | 2015-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104461503B (zh) | 动态组成软件界面的方法与系统 | |
US8234623B2 (en) | System and method for using stream objects to perform stream processing in a text-based computing environment | |
US8769485B2 (en) | Data parallelism and parallel operations in stream processing | |
Faugere et al. | Marte: Also an uml profile for modeling aadl applications | |
Burke et al. | Concurrent Collections Programming Model. | |
EP2378413B1 (en) | Methods and systems to implement non-ABI conforming features across unseen interfaces | |
CN104657142A (zh) | 一种基于OSGi技术的CCFD系统 | |
KR20130117049A (ko) | Arinc 653 규격에 따른 항공 시스템 설정 방법 및 장치 | |
US8429394B1 (en) | Reconfigurable computing system that shares processing between a host processor and one or more reconfigurable hardware modules | |
CN107133502A (zh) | 一种应用程序的处理方法及装置 | |
CN110597498A (zh) | AADL模型精化方法及其支持的Ada可执行代码自动生成方法 | |
CN104965687A (zh) | 基于指令集生成的大数据处理方法及装置 | |
CN101706737A (zh) | 软硬件协同函数库的构造方法 | |
CN105005497A (zh) | 一种Java卡虚拟机中本地函数的调用方法及装置 | |
CN107391099B (zh) | 一种资源预处理方法及装置 | |
JP2004094951A (ja) | シミュレータをスピードアップするためのコンパイラ型コードの生成 | |
CN102262540A (zh) | 一种应用于autosar ecu配置的基础软件参数定义扩展方法 | |
Azadbakht et al. | Multi-threaded actors | |
Salcic et al. | Reflix: A processor core for reactive embedded applications | |
Oshana | Software engineering of embedded and real-time systems | |
CN115809051A (zh) | 一种基于定制高级c语言的可重构密码算法的解释器 | |
Nobakht et al. | Programming with actors in Java 8 | |
Saleh et al. | A concurrency control mechanism for C++ objects | |
Klaus et al. | Automatic generation of scheduled SystemC models of embedded systems from extended task graphs | |
Wang et al. | Automatic code generation for synchronous reactive communication |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |