CN103810100A - 一种软件进化趋势分析系统及方法 - Google Patents
一种软件进化趋势分析系统及方法 Download PDFInfo
- Publication number
- CN103810100A CN103810100A CN201410056525.7A CN201410056525A CN103810100A CN 103810100 A CN103810100 A CN 103810100A CN 201410056525 A CN201410056525 A CN 201410056525A CN 103810100 A CN103810100 A CN 103810100A
- Authority
- CN
- China
- Prior art keywords
- software
- evolution
- trend
- analyzed
- data
- 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.)
- Pending
Links
Images
Abstract
本发明公开了一种软件进化趋势分析系统及方法,其中分析系统包括:软件版本数据获取模块,其用于获取并输出待分析软件的各个版本的可用版本数据;软件进化趋势分析模块,其用于接收软件版本数据获取模块输出的待分析软件的可用版本数据,并根据可用版本数据利用相应的分析工具得到待分析软件的进化趋势数据,以为软件的版本管理提供数据依据。本发明能够对待分析软件的进化趋势进行系统、有效地分析得到进化趋势数据,从而为用户进行软件版本管理提供数据依据,还能够根据分析出的待分析软件的进化趋势数据绘制出相应的进化曲线,从而向用户形象地呈现待分析软件的进化趋势,方便用户对软件的管理。
Description
本申请为申请号201310630388.9、申请日2013年12月02日、发明名称“一种软件复杂度分析系统及方法”的分案申请。
技术领域
本发明涉及软件分析技术领域,具体地说,涉及一种软件进化趋势分析系统及方法。
背景技术
自由和开源软件是由分布在各地的软件开发小组协同开发,其具有管理方法独特、包含的软件数目及软件版本众多等特点。随着软件版本的更新,软件中包含的文件数目、源代码行数以及软件的复杂度等软件版本数据都随之变动,而软件版本数据的变化会对软件的稳定性产生影响,同时也为软件的管理带来问题。
而目前尚没有对开源软件进化趋势进行系统分析的方便可以用的系统,这使得对于软件的管理和风险评估方面存在不足,影响了开源软件的发展。
基于上述情况,亟需一种软件进化趋势分析系统。
发明内容
为解决上述问题,本发明提供了一种软件进化趋势分析系统,所述系统包括:
软件版本数据获取模块,其用于获取并输出待分析软件的各个版本的可用版本数据;
软件进化趋势分析模块,其用于接收所述软件版本数据获取模块输出的所述待分析软件的可用版本数据,并对所述可用版本数据进行分析得到所述待分析软件的进化趋势数据,为软件的版本管理提供数据依据。
根据本发明的一个实施例,所述软件版本数据获取模块包括:
软件版本数据存储单元,其用于存储待分析软件的各个版本的数据;
软件版本数据收集单元,其用于从所述软件版本数据存储单元存储中提取待分析软件的各个版本的可用版本数据。
根据本发明的一个实施例,所述软件版本数据存储单元包括软件版本管理库和/或FTP服务器。
根据本发明的一个实施例,所述软件版本数据获取模块还包括可选软件及版本区间显示单元,用于显示待分析软件的可用版本区间。
根据本发明的一个实施例,所述系统还包括存储模块,其用于存储所述软件进化趋势分析模块产生的所述待分析软件的进化趋势数据。
根据本发明的一个实施例,所述系统还包括软件进化趋势图形绘制模块,其用于根据所述进化趋势数据绘制相应图形,所述软件进化趋势图形绘制模块包括以下所列项中的至少一项:
软件文件数进化曲线绘制单元、软件源代码行数进化曲线绘制单元、软件文件数与源代码行数关系曲线绘制单元、软件圈复杂度进化曲线绘制单元。
根据本发明的一个实施例,所述系统还包括进化趋势显示模块,其用于显示所述进化趋势图形绘制单元绘制出的图形。
本发明还提供了一种软件进化趋势分析方法,所述方法包括以下步骤:
软件版本数据获取步骤,针对待分析的软件获取待分析软件的可用版本数据;
软件进化趋势分析步骤,对所述待分析软件的可用版本数据进行分析,得到所述待分析软件的进化趋势数据。
根据本发明的一个实施例,所述方法还包括:
进化趋势图形绘制步骤,根据所述待分析软件的进化趋势数据绘制相应的软件进化趋势图形。
根据本发明的一个实施例,
所述待分析软件的可用版本数据包括以下所列项中的至少一项:
待分析软件可用版本的文件数、源代码行数、复杂度;
在所述进化趋势图形绘制步骤中:
根据待分析软件的文件数的进化趋势数据绘制待分析软件的文件数进化趋势曲线;和/或,
根据待分析软件的源代码行数的进化趋势数据绘制待分析软件的源代码行数进化趋势曲线;和/或,
根据待分析软件的文件数和源代码行数的进化趋势数据绘制待分析软件的文件数与源代码行数的关系曲线;和/或
根据待分析软件的复杂度的进化趋势数据绘制待分析软件的复杂度进化趋势曲线。
本发明提供的软件进化趋势分析系统能够对待分析软件的进化趋势进行系统、有效地分析,从而得到进化趋势数据,来为用户进行软件版本管理提供数据依据,还能够根据分析出的待分析软件的进化趋势数据绘制出相应的进化趋势曲线,以向用户形象地呈现待分析软件的进化趋势,方便用户对软件的管理。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要的附图做简单的介绍:
图1是根据本发明的软件进化趋势分析系统一个实施例的结构图;
图2是根据本发明的软件进化趋势分析方法一个实施例的流程图。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
为了更好的对大型开源软件进行管理,本发明基于瘦客户端结构提出了一种软件进化趋势分析系统,图1示出了本实施例中该软件进化趋势分析系统的结构图。
如图1所示,本实施例中,软件进化趋势分析系统包括软件版本数据获取模块101和软件进化趋势分析模块102。
软件版本数据获取模块101用于获取待分析软件的各个版本的可用版本数据。如图1所示,本实施例中,软件版本数据获取模块101包括软件版本数据存储单元101a、软件版本数据收集单元101b和可选软件及版本区间显示单元101c。软件版本数据存储单元101a用于存储待分析软件的各个版本的数据;可选软件及版本区间显示单元101c用于显示待分析软件的可用版本区间,以供用户选取待分析软件及其版本区间;软件版本数据收集单元101b连接在软件版本数据存储单元101a和可选软件及版本区间显示单元101c之间,用户根据可选软件及版本区间显示单元101c显示的内容选取待分析的软件及其版本区间,软件版本数据收集单元101b根据用户所选取的待分析软件及其版本区间,从软件版本数据存储单元101a中获取待分析软件在所选版本区间内的各个版本的可用版本数据,以用于该待分析软件的进化趋势分析。
本实施例中,软件版本数据存储单元101a为软件版本管理库,可选软件及版本区间显示单元101c为浏览器。用户通过在浏览器中选取待分析软件及其用于进行进化趋势分析的版本区间,软件版本数据收集单元101b利用WinCVS等数据收集工具从软件版本管理库中提取出待分析软件的可用版本数据。
需要说明的是,在本发明的其他实施例中,软件版本数据存储单元101a还可以为FTP服务器,此时软件版本数据获取模块101中的软件版本数据收集单元101b将利用SmartFTP等数据收集工具提取待分析软件的可用版本数据,同时软件版本数据获取模块101还可以根据其内部结构单元的不同通过其他合理方式获取软件的可用版本数据,本发明不限于此。
如图1所示,软件进化趋势分析模块102与软件版本数据收集单元101b连接,用于接收软件版本数据收集单元101b输出的待分析软件的可用版本数据,并利用相应的分析工具对可用版本数据进行分析,得到待分析软件的进化趋势数据,为软件的版本管理提供数据依据。
本实施中,待分析软件的进化趋势数据包括待分析软件的文件数、源代码行数和圈复杂度,其中文件数能够宏观地反应出软件的进化趋势,源代码行数和圈复杂度能够精确度地反映出软件的进化和软件的算法复杂度趋势。需要说明的是,在根据本发明的其他实施例中,待分析软件的进化趋势数据还可以包括其它合理数据,本发明不限于此。
本实施例中,软件进化趋势分析模块102中采用分析工具Sloccount对软件的源代码行数进行分析,采用CCCC分析工具对软件的圈复杂度进行分析,采用SoftChange对软件包含的文件数进行分析,分别得到软件的源代码行数进化趋势数据、圈复杂度进化趋势数据、文件数进化趋势数据以及文件数与源代码行数关系数据,从而为软件的版本管理提供数据依据。
为了满足快速处理大量数据的要求,本实施例中,软件进化趋势分析系统还包括存储模块103,其与软件进化趋势分析模块102连接,用于存储软件进化趋势分析模块102得到的软件进化趋势数据。其中,存储模块103优选的为数据库。
为了向用户形象地呈现出软件进化趋势的分析结果,如图1所示,本实施例中,软件复杂度分析系统还包括软件进化趋势图形绘制模块104,其能够访问存储器103以获取软件进化趋势数据,并根据该数据绘制出相应的用于反应软件进化趋势的图形,但本发明不限于此,软件进化趋势图形绘制模块104还可以通过其他合理地连接方式来获得软件进化趋势分析结果。
本实施例中,软件进化趋势图形绘制模块104包括软件文件数进化曲线绘制单元104a、软件源代码行数进化曲线绘制单元104b、软件各个子系统源代码行数进化曲线绘制单元104c、软件文件数与源代码行数关系曲线绘制单元104d、软件圈复杂度进化曲线绘制单元104e,其用于分别根据软件文件数进化趋势数据、软件源代码行数进化趋势数据、文件数与源代码行数关系数据和圈复杂度进化趋势数据绘制相应的图形。
需要说明的是,在本发明的其它实施例中,软件进化趋势图形绘制模块104还可以包含其它合理的图形绘制单元,本发明不限于此。
如图1所示,为了使用户用户能够直观地看到待分析软件的进化趋势,本实施例中,软件进化趋势分析系统还包括显示模块105,其与软件进化趋势图形绘制模块104连接,用于显示软件进化趋势图形绘制模块104绘制出的相应图形。其中,显示模块105也可以为浏览器,但本发明不限于此。
本发明提供的软件进化趋势分析系统能够对待分析软件的进化趋势进行系统、有效地分析得到进化趋势数据,为用户进行软件版本管理提供数据依据,还能够根据分析出的待分析软件的进化趋势数据绘制出相应的进化曲线,以向用户形象地呈现待分析软件的进化趋势,方便用户地管理。
本发明还提供了一种软件进化趋势分析方法,图2示出了本实施例中该方法的流程图。
如图2所示,在步骤S201中,获取待分析软件的各个版本的可用版本数据。本实施例中,待分析软件的各个版本的数据存储在软件版本管理库中,根据用户选取的待分析软件及其版本数据,采用WinCVS等数据收集工具收集并提取出待分析软件各个版本的可用版本数据。
在步骤S202中,对步骤S201获取的分析软件的可用版本数据进行分析,得到待分析软件的进化趋势数据。本实施例中,待分析软件的可用版本数据包括待分析软件可用版本的文件数、源代码行数、复杂度等,在步骤S202中,采用SoftChange对软件包含的文件数进行分析,采用分析工具Sloccount对软件的源代码行数进行分析,采用CCCC分析工具对软件的圈复杂度进行分析,分别得到待分析软件的文件数进化趋势数据、源代码行数进化趋势数据、各个子系统的源代码行数进化趋势数据、文件数与源代码行数关系数据和圈复杂度进化趋势数据。
为了满足快速处理大量数据的要求,本实施例中,软件进化趋势分析方法还包括数据存储步骤,在步骤S203中将步骤S202中得到的软件进化趋势数据进行存储,其优选地存储在数据库中。
为了向用户形象地呈现出软件进化趋势的分析结果,本实施例中,还包括进化趋势图形绘制步骤,如图2所示,在步骤S204中根据所述待分析软件的进化趋势数据绘制相应的软件进化趋势图形。
本实施例中,在步骤S204中,根据待分析软件的文件数进化趋势数据绘制文件数进化曲线,根据源代码行数进化趋势数据和各个子系统的源代码行数进化趋势数据绘制待分析软件的源代码行数进化曲线,根据文件数与源代码行数关系数据绘制待分析软件的文件数与源代码行数的关系曲线,根据圈复杂度进化趋势数据绘制待分析软件的圈复杂度进化曲线。
最后,在步骤S205中,将步骤S204中绘制出的曲线进行显示,以帮助用户进行软件的版本管理。
本发明提供的软件进化趋势分析方法方便、可用,能够对待分析软件的进化趋势进行可靠地分析,从而为软件的版本管理提供数据依据。
虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (10)
1.一种软件进化趋势分析系统,其特征在于,所述系统包括:
软件版本数据获取模块,其用于获取并输出待分析软件的各个版本的可用版本数据;
软件进化趋势分析模块,其用于接收所述软件版本数据获取模块输出的所述待分析软件的可用版本数据,并对所述可用版本数据进行分析得到所述待分析软件的进化趋势数据,为软件的版本管理提供数据依据。
2.如权利要求1所述的系统,其特征在于,所述软件版本数据获取模块包括:
软件版本数据存储单元,其用于存储待分析软件的各个版本的数据;
软件版本数据收集单元,其用于从所述软件版本数据存储单元存储中提取待分析软件的各个版本的可用版本数据。
3.如权利要求2所述的系统,其特征在于,所述软件版本数据存储单元包括软件版本管理库和/或FTP服务器。
4.如权利要求2或3所述的系统,其特征在于,所述软件版本数据获取模块还包括可选软件及版本区间显示单元,其用于显示待分析软件的可用版本区间。
5.如权利要求1所述的系统,其特征在于,所述系统还包括存储模块,其用于存储所述软件进化趋势分析模块产生的所述待分析软件的进化趋势数据。
6.如权利要求1所述的系统,其特征在于,所述系统还包括软件进化趋势图形绘制模块,其用于根据所述进化趋势数据绘制相应图形,所述软件进化趋势图形绘制模块包括以下所列项中的至少一项:
软件文件数进化曲线绘制单元、软件源代码行数进化曲线绘制单元、软件文件数与源代码行数关系曲线绘制单元、软件圈复杂度进化曲线绘制单元。
7.如权利要求6所述的系统,其特征在于,所述系统还包括进化趋势显示模块,其用于显示所述进化趋势图形绘制单元绘制出的图形。
8.一种软件进化趋势分析方法,其特征在于,所述方法包括以下步骤:
软件版本数据获取步骤,针对待分析的软件获取待分析软件的可用版本数据;
软件进化趋势分析步骤,对所述待分析软件的可用版本数据进行分析,得到所述待分析软件的进化趋势数据。
9.如权利要求8所述的方法,其特征在于,所述方法还包括:
进化趋势图形绘制步骤,根据所述待分析软件的进化趋势数据绘制相应的软件进化趋势图形。
10.如权利要求9所述的方法,其特征在于,
所述待分析软件的可用版本数据包括以下所列项中的至少一项:
待分析软件可用版本的文件数、源代码行数、复杂度;
在所述进化趋势图形绘制步骤中:
根据待分析软件的文件数的进化趋势数据绘制待分析软件的文件数进化趋势曲线;和/或,
根据待分析软件的源代码行数的进化趋势数据绘制待分析软件的源代码行数进化趋势曲线;和/或,
根据待分析软件的文件数和源代码行数的进化趋势数据绘制待分析软件的文件数与源代码行数的关系曲线;和/或
根据待分析软件的复杂度的进化趋势数据绘制待分析软件的复杂度进化趋势曲线。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410056525.7A CN103810100A (zh) | 2013-12-02 | 2013-12-02 | 一种软件进化趋势分析系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410056525.7A CN103810100A (zh) | 2013-12-02 | 2013-12-02 | 一种软件进化趋势分析系统及方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310630388.9A Division CN103605607B (zh) | 2013-12-02 | 2013-12-02 | 一种软件复杂度分析系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103810100A true CN103810100A (zh) | 2014-05-21 |
Family
ID=50706896
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410056525.7A Pending CN103810100A (zh) | 2013-12-02 | 2013-12-02 | 一种软件进化趋势分析系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103810100A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239396A (zh) * | 2017-05-11 | 2017-10-10 | 东南大学 | 一种基于代码圈复杂度度量的软件演化评估方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5581797A (en) * | 1993-10-22 | 1996-12-03 | Lucent Technologies Inc. | Method and apparatus for displaying hierarchical information of a large software system |
US20040027375A1 (en) * | 2000-06-12 | 2004-02-12 | Ricus Ellis | System for controlling a display of the user interface of a software application |
CN1885258A (zh) * | 2005-06-20 | 2006-12-27 | 中兴通讯股份有限公司 | 一种多软件版本集中管理和使用的系统及方法 |
CN1971556A (zh) * | 2005-11-26 | 2007-05-30 | 华为技术有限公司 | 在后台管理系统中实现数据库升级的系统和方法 |
CN101145127A (zh) * | 2006-09-12 | 2008-03-19 | 中兴通讯股份有限公司 | 一种基于设备的软件测试自动化系统及其方法 |
CN101631037A (zh) * | 2008-07-18 | 2010-01-20 | 中兴通讯股份有限公司 | 一种网元软件的远程升级装置及方法 |
-
2013
- 2013-12-02 CN CN201410056525.7A patent/CN103810100A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5581797A (en) * | 1993-10-22 | 1996-12-03 | Lucent Technologies Inc. | Method and apparatus for displaying hierarchical information of a large software system |
US20040027375A1 (en) * | 2000-06-12 | 2004-02-12 | Ricus Ellis | System for controlling a display of the user interface of a software application |
CN1885258A (zh) * | 2005-06-20 | 2006-12-27 | 中兴通讯股份有限公司 | 一种多软件版本集中管理和使用的系统及方法 |
CN1971556A (zh) * | 2005-11-26 | 2007-05-30 | 华为技术有限公司 | 在后台管理系统中实现数据库升级的系统和方法 |
CN101145127A (zh) * | 2006-09-12 | 2008-03-19 | 中兴通讯股份有限公司 | 一种基于设备的软件测试自动化系统及其方法 |
CN101631037A (zh) * | 2008-07-18 | 2010-01-20 | 中兴通讯股份有限公司 | 一种网元软件的远程升级装置及方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239396A (zh) * | 2017-05-11 | 2017-10-10 | 东南大学 | 一种基于代码圈复杂度度量的软件演化评估方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106951228A (zh) | 版本迭代中差异的处理方法和装置 | |
WO2013076736A3 (en) | A method and system for consolidating a plurality of heterogeneous storage systems in a data center | |
CN101739390A (zh) | 基于技术设计文档的数据转换 | |
CN104820697A (zh) | 一种医疗数据挖掘方法及系统 | |
CN106557351A (zh) | 嵌入式应用程序的数据处理方法及装置 | |
CN104809246A (zh) | 充电数据的处理方法及装置 | |
CN103605607B (zh) | 一种软件复杂度分析系统及方法 | |
CN104598570A (zh) | 资源的抓取方法及装置 | |
CN107480435A (zh) | 一种应用于临床数据的自动搜索机器学习系统及方法 | |
CN112307097A (zh) | 数据资产管理方法及装置 | |
CN102063470B (zh) | 一种适用于无线传感器网络的节点实时数据解析方法 | |
CN103235757B (zh) | 基于自动化造数对输入域测试对象进行测试的装置和方法 | |
CN103810100A (zh) | 一种软件进化趋势分析系统及方法 | |
CN104714983B (zh) | 分布式索引的生成方法及装置 | |
CN103150445B (zh) | 一种matlab模型变量的剖析方法及装置 | |
CN104750812A (zh) | 一种基于网页标签分析的数据自动采集方法 | |
CN108182217A (zh) | 一种基于移动互联网的app开发系统及发布方法 | |
CN103824161A (zh) | 一种云计算可专利技术导航系统及方法 | |
CN103325079A (zh) | 多用途心理学行为量表录入系统 | |
US20130159327A1 (en) | Apparatus and method for visualizing data | |
CN103856466A (zh) | 一种可自动配置协议的采集终端装置 | |
CN103268357A (zh) | 提供空气质量数据的方法和设备 | |
CN102854875B (zh) | 一种汽车空调控制器测试方法及系统 | |
KR101777073B1 (ko) | 테이블에 기반하여 대용량 데이터 처리를 구현하는 방법 및 장치 | |
CN101546348A (zh) | 基于物理建模语言的模型库图标显示方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140521 |
|
RJ01 | Rejection of invention patent application after publication |