软件并行开发方法及装置与流程

文档序号:28633612发布日期:2022-01-26 15:56阅读:213来源:国知局
软件并行开发方法及装置与流程

1.本发明涉及自动程序设计技术领域,尤其是涉及一种软件并行开发方法及装置。


背景技术:

2.本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
3.现有的软件开发技术,将代码放入clearcase(cc)、visual sourcesafe(vss)、subversion(svn)等配置管理工具进行管理,所开发代码的可追溯性得到了保障,但由于串行开发,开发人员的复用率较低,对客户需求不能及时响应,且由于人员复用率低造成用人成本升高。


技术实现要素:

4.本发明提供了一种软件并行开发方法及装置,可以用于实现软件的并行开发,以便快速响应客户需求,提高开发人员复用率,降低用人成本。
5.第一方面,本发明实施例提供了一种软件并行开发方法,该方法包括:
6.利用多个开发分支并行生成软件开发信息;
7.当目标开发分支的软件开发信息达到第一预设状态时,将所述目标开发分支的软件开发信息发送至集成分支;
8.利用所述集成分支将所述目标开发分支的软件开发信息发送至除所述目标开发分支以外的其他开发分支;
9.当所述目标开发分支的软件开发信息达到第二预设状态时,利用所述集成分支将所述目标开发分支的软件开发信息发送至主分支。
10.第二方面,本发明实施例还提供一种软件并行开发装置,该装置包括:
11.开发模块,用于利用多个开发分支并行生成软件开发信息;
12.第一交付模块,用于当目标开发分支的软件开发信息达到第一预设状态时,将所述目标开发分支的软件开发信息发送至集成分支;
13.推送模块,用于利用所述集成分支将所述目标开发分支的软件开发信息发送至除所述目标开发分支以外的其他开发分支;
14.第二交付模块,用于当所述目标开发分支的软件开发信息达到第二预设状态时,利用所述集成分支将所述目标开发分支的软件开发信息发送至主分支。
15.第三方面,本发明实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述软件并行开发方法。
16.第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述软件并行开发方法的计算机程序。
17.本发明实施例带来了以下有益效果:本发明实施例提供了一种软件并行开发方
案,该方案包括:利用多个开发分支并行生成软件开发信息;当目标开发分支的软件开发信息达到第一预设状态时,将目标开发分支的软件开发信息发送至集成分支;利用集成分支将目标开发分支的软件开发信息发送至除目标开发分支以外的其他开发分支;当目标开发分支的软件开发信息达到第二预设状态时,利用集成分支将目标开发分支的软件开发信息发送至主分支。本发明实施例利用多个开发分支实现软件并行开发,开发人员可以兼顾新需求的开发和解决目标开发分支的软件开发信息达到第一预设状态这一过程中的软件缺陷,开发人员工作饱和度高,可快速响应客户需求,提高开发人员复用率,降低用人成本。
18.本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
19.为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
20.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
21.图1为本发明实施例提供的软件并行开发方法流程图;
22.图2为本发明实施例提供的分支建立流程示意图;
23.图3为本发明实施例提供的追平策略原理示意图;
24.图4为本发明实施例提供的一种软件并行开发装置结构框图;
25.图5为本发明实施例提供的另一种软件并行开发装置结构框图;
26.图6为本发明实施例提供的电子设备结构框图。
具体实施方式
27.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
28.目前,在现代软件项目开发过程中经常出现多项目并行开发同一个产品的情况,在sit(system integration testing,系统集成测试)、uat(user acceptance test,用户验收测试)阶段都会长期处于并行阶段,应当采用怎样的管理策略既可以提高开发效率又能保证并行开发中的质量,避免代码混乱是本发明需要解决的技术问题。
29.基于配置管理工具clearcase,本发明实施例提供一种软件并行开发方法及装置,该方法适合于并行开发的代码管理,可保证多个并行项目/批次的有序开发。
30.该方法可适用于所负责产品为100-200人开发的大规模产品,整体实施为按批次滚动开发,单一批次内涉及多个项目进行代码新增或修改,单一批次内产品代码需要进行版本变化情况的追踪,既何时何人更改了文件的什么内容。除了记录版本变更外,批次间还
存在代码关联,批次间虽然有时间间隔但仍存在并行期,各批次sit及uat在不同的环境开展测试,产品投产时按批次串行投产。开发期间,为保证批次间独立性,避免前序不稳定代码影响后续批次代码,采用各批次使用独立开发分支进行开发,待前序批次代码稳定后对后续批次进行代码追平、环境追平,下发追平版本开展追平测试。保证各批次相对独立及前后一致。
31.为便于对本实施例进行理解,首先对本发明实施例所公开的一种软件并行开发方法进行详细介绍。
32.首先,对涉及的术语进行说明。
33.基线:基线是软件文档或源码(或其它产出物)的一个稳定版本,它是进一步开发的基础
34.配置库:存储软件产品代码的地方
35.基线变更:软件文档或代码基于的稳定版本调整到一个新的稳定版本。
36.分支:代码存储或配置管理单元。
37.clearcase(cc):是一种配置管理工具,由rational公司开发,是开发小组用来跟踪、管理软件开发过程各个工件的配置管理系统。
38.subversion(svn)是一个自由开源的基于cvs版本之上开发的一款版本控件系统。
39.追平:批次间版本的同步,先投产批次的内容会同步到后投产的批次。
40.本发明实施例提供了一种软件并行开发方法,参见图1所示的一种软件并行开发方法流程图,该方法包括以下步骤:
41.步骤s102,利用多个开发分支并行生成软件开发信息。
42.在本发明实施例中,开发分支可以用于产生及存储软件开发信息。软件开发信息包括代码等数据。多个开发分支可以并行工作,提升软件开发效率。
43.步骤s104,当目标开发分支的软件开发信息达到第一预设状态时,将目标开发分支的软件开发信息发送至集成分支。
44.在本发明实施例中,目标开发分支可以是多个开发分支中的任一个开发分支。第一预设状态可以根据实际需求进行选择,本发明实施例对此不作具体限定。通过第一预设状态控制目标开发分支的软件开发信息的交付时间,进而将目标开发分支的软件开发信息发送至集成分支。
45.步骤s106,利用集成分支将目标开发分支的软件开发信息发送至除目标开发分支以外的其他开发分支。
46.在本发明实施例中,集成分支可以用于实现前序批次向后序批次的追平,在集成分支下建立并行的多个开发分支。集成分支可以将目标开发分支的软件开发信息推送给其它开发分支,例如,集成分支下包括第一分支、第二分支和第三分支,目标开发分支为第一分支,第一分支的软件开发信息发送至集成分支后,集成分支将第一分支的软件开发信息分别推送至第二分支和第三分支,以便第二分支和第三分支实现开发基线的变更。
47.步骤s108,当目标开发分支的软件开发信息达到第二预设状态时,利用集成分支将目标开发分支的软件开发信息发送至主分支。
48.在本发明实施例中,集成分支建立在主分支之下。主分支可以用于存储已投产的软件信息,因此,主分支与现有生产保持一致。第二预设状态可以根据实际需求进行选择,
本发明实施例对此不作具体限定。在本发明实施例中,利用集成分支将目标开发分支的软件开发信息发送至主分支,以便主分支对其下建立的各个分支进行开发基线变更。
49.本发明实施例提供了一种软件并行开发方案,该方案包括:利用多个开发分支并行生成软件开发信息;当目标开发分支的软件开发信息达到第一预设状态时,将目标开发分支的软件开发信息发送至集成分支;利用集成分支将目标开发分支的软件开发信息发送至除目标开发分支以外的其他开发分支;当目标开发分支的软件开发信息达到第二预设状态时,利用集成分支将目标开发分支的软件开发信息发送至主分支。本发明实施例利用多个开发分支实现软件并行开发,开发人员可以兼顾新需求的开发和解决目标开发分支的软件开发信息达到第一预设状态这一过程中的软件缺陷,开发人员工作饱和度高,可快速响应客户需求,提高开发人员复用率,降低用人成本。
50.在一个实施例中,还可以执行如下步骤:
51.利用维护分支获取修改信息;当修改信息达到第三预设状态时,将修改信息发送至主分支;利用主分支将修改信息发送至集成分支;利用集成分支将修改信息分别发送至多个开发分支。
52.在本发明实施例中,修改信息可以用于生产缺陷的修复。第三预设状态可以根据实际需求进行选择,本发明实施例对此不作具体限定。例如,第三预设状态可以是修改信息处于已投产的状态。利用维护分支将修改的代码发送至主分支,主分支对集成分支进行开发基线变更,集成分支对各个开发分支进行基线变更。
53.在一个实施例中,第一预设状态为目标开发分支的软件开发信息完成目标阶段测试。
54.在本发明实施例中,完成目标阶段测试可以是完成uat测试。
55.在一个实施例中,第二预设状态为目标开发分支的软件开发信息已投产。
56.下面以一个具体实施例对该方法的实施过程进行说明。该方法实施时包括分支建立和追平策略两部分。技术人员需要分析确定在批次并行情况下开发分支策略,追平策略以及对应的管理要求和管理手段,策略应满足多批次并行要求,批次间代码应具备可以独立性及项目间关联代码能及时同步,同时,还需要避免代码的相互混淆。本发明最重要的是如何建立开发分支以及开发分支之间的追平时间及追平方式的确定是比较重要的。
57.参见图2所示的分支建立流程示意图,分支建立基于clearcase ucm模式,首先建立主分支,主分支与现有生产保持一致。主分支下建立生产维护分支和beta分支,维护分支保持与现有生产环境版本一致,负责生产缺陷的修复,beta分支用于实现前序批次向后序批次的追平,在beta分支下建立并行的各开发分支。各批次的开发均在开发分支独立进行。
58.参见图3所示的追平策略原理示意图,当分支1开发完成,版本基本稳定后,将分支1代码向beta分支进行交付,再从beta分支对后序分支2和分支3进行推送,完成后序分支开发基线的变更。开发1分支投产后,beta分支交付代码至主分支,主分支对维护分支进行开发基线变更。
59.当出现生产缺陷时在生产维护分支进行修改,修改完成投产后,生产维护分支交付修改的代码至主分支,主分支对beta分支进行开发基线变更,beta分支对开发1,2,3分支进行基线变更。
60.需要说明的是,开发分支的交付和基线变更可能会进行多次。当进行交付或基线
变更时,有可能会产生代码的冲突,此时需要手工记录合并冲突代码清单,交由开发人员进行人工核对,对追平有问题的进行修改并将修改后的代码提交至clearcase。
61.另外需要说明的是,上述实施过程中,beta分支可以作为集成分支,生产维护分支可以作为维护分支。
62.在上述方案实施过程中,开发分支建立策略确定了整个开发的并行模式,是整个并行管理的基础,并行开发的代码放在不同的分支上,开发人员在不同的分支上按批次进行开发动作。追平策略包括追平的时间点,追平方式及追平后的验证等,当一个批次开发完成,代码稳定后,即可开始实施追平。管理要求是对开发流策略和追平策略的正常实施的保障,保证整个方案正确执行。
63.该方案中由于采用了多分支方式,当分支1进入uat后,按原有模式,则开发人员主要工作内容为解决uat阶段产生的缺陷,其生产效率较开发阶段有所下降,但采用多分支并行的情况,开发人员既可以进行新需求的开发,兼顾解决uat阶段缺陷,开发人员工作饱和度高,生产效率上升。产品新功能上线速度提高,对用户需求响应快。而通过批次间各分支的交付、基线变更,保证了产品功能的延续性,也防止了因并行开发造成的版本混乱,提升了最终产品的质量。
64.该方案还可以增加对于异常情况的管理,包括:交付和变更基线时的核对过程。任务回退情况处理。特殊情况下分支的建立和追平。
65.本发明提供了一种软件并行开发方法及装置,该方法利用多个开发分支实现软件并行开发,开发人员可以兼顾新需求的开发和解决目标开发分支的软件开发信息达到第一预设状态这一过程中的软件缺陷,开发人员工作饱和度高,可快速响应客户需求,提高开发人员复用率,降低用人成本。
66.本发明实施例中还提供了一种软件并行开发装置,如下面的实施例所述。由于该装置解决问题的原理与软件并行开发方法相似,因此该装置的实施可以参见软件并行开发方法的实施,重复之处不再赘述。参见图4所示的一种软件并行开发装置结构框图,该装置包括:
67.开发模块41,用于利用多个开发分支并行生成软件开发信息;第一交付模块42,用于当目标开发分支的软件开发信息达到第一预设状态时,将目标开发分支的软件开发信息发送至集成分支;推送模块43,用于利用集成分支将目标开发分支的软件开发信息发送至除目标开发分支以外的其他开发分支;第二交付模块44,用于当目标开发分支的软件开发信息达到第二预设状态时,利用集成分支将目标开发分支的软件开发信息发送至主分支。
68.参见图5所示的另一种软件并行开发装置结构框图,在一个实施例中,该装置还包括维护模块45,用于:利用维护分支获取修改信息;当修改信息达到第三预设状态时,将修改信息发送至主分支;利用主分支将修改信息发送至集成分支;利用集成分支将修改信息分别发送至多个开发分支。
69.在一个实施例中,第一预设状态为目标开发分支的软件开发信息完成目标阶段测试。
70.在一个实施例中,第二预设状态为目标开发分支的软件开发信息已投产。
71.基于同一发明构思,本发明实施例中还提供了一种用于实现上述软件并行开发方法中的全部或部分内容的电子设备实施例。该电子设备具体包含有如下内容:
72.处理器(processor)、存储器(memory)、通信接口(communications interface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述通信接口用于实现相关设备之间的信息传输;该电子设备可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该电子设备可以参照实施例用于实现上述软件并行开发方法的实施例及用于实现上述软件并行开发装置的实施例进行实施,其内容被合并于此,重复之处不再赘述。
73.图6为本发明实施例中提供的一种电子设备的系统组成结构示意图。如图6所示,该电子设备70可以包括处理器701和存储器702;存储器702耦合到处理器701。值得注意的是,该图6是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
74.在一个实施例中,软件并行开发方法实现的功能可以被集成到处理器701中。其中,处理器701可以被配置为进行如下控制:
75.利用多个开发分支并行生成软件开发信息;当目标开发分支的软件开发信息达到第一预设状态时,将目标开发分支的软件开发信息发送至集成分支;利用集成分支将目标开发分支的软件开发信息发送至除目标开发分支以外的其他开发分支;当目标开发分支的软件开发信息达到第二预设状态时,利用集成分支将目标开发分支的软件开发信息发送至主分支。
76.由上可知,本发明的实施例中提供的电子设备,本发明利用多个开发分支实现软件并行开发,开发人员可以兼顾新需求的开发和解决目标开发分支的软件开发信息达到第一预设状态这一过程中的软件缺陷,可快速响应客户需求,提高开发人员复用率,降低用人成本。
77.在另一个实施例中,软件并行开发装置可以与处理器701分开配置,例如可以将软件并行开发装置配置为与处理器701连接的芯片,通过处理器的控制来实现软件并行开发方法的功能。
78.如图6所示,该电子设备70还可以包括:通信模块703、输入单元704、音频处理单元705、显示器706、电源707。值得注意的是,电子设备70也并不是必须要包括图6中所示的所有部件;此外,电子设备70还可以包括图6中没有示出的部件,可以参考现有技术。
79.如图6所示,处理器701有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该处理器701接收输入并控制电子设备70的各个部件的操作。
80.其中,存储器702,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且处理器701可执行该存储器702存储的该程序,以实现信息存储或处理等。
81.输入单元704向处理器701提供输入。该输入单元704例如为按键或触摸输入装置。电源707用于向电子设备70提供电力。显示器706用于进行图像和文字等显示对象的显示。该显示器例如可为lcd显示器,但并不限于此。
82.该存储器702可以是固态存储器,例如,只读存储器(rom)、随机存取存储器(ram)、sim卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为eprom等。存储器702还可以是某种其它类型的装置。
存储器702包括缓冲存储器7021(有时被称为缓冲器)。存储器702可以包括应用/功能存储部7022,该应用/功能存储部7022用于存储应用程序和功能程序或用于通过处理器701执行电子设备70的操作的流程。
83.存储器702还可以包括数据存储部7023,该数据存储部7023用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器702的驱动程序存储部7024可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
84.通信模块703即为经由天线708发送和接收信号的发送机/接收机。通信模块(发送机/接收机)703耦合到处理器701,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
85.基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块703,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)703还经由音频处理单元705耦合到扬声器709和麦克风710,以经由扬声器709提供音频输出,并接收来自麦克风710的音频输入,从而实现通常的电信功能。音频处理单元705可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理单元705还耦合到处理器701,从而使得可以通过麦克风710能够在本机上录音,且使得可以通过扬声器709来播放本机上存储的声音。
86.本发明的实施例中还提供了一种用于实现上述实施例中软件并行开发方法中全部步骤的一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的软件并行开发方法的全部步骤,例如,该处理器执行该计算机程序时实现下述步骤:
87.利用多个开发分支并行生成软件开发信息;当目标开发分支的软件开发信息达到第一预设状态时,将目标开发分支的软件开发信息发送至集成分支;利用集成分支将目标开发分支的软件开发信息发送至除目标开发分支以外的其他开发分支;当目标开发分支的软件开发信息达到第二预设状态时,利用集成分支将目标开发分支的软件开发信息发送至主分支。
88.由上可知,本发明的实施例中提供的计算机可读存储介质,利用多个开发分支实现软件并行开发,开发人员可以兼顾新需求的开发和解决目标开发分支的软件开发信息达到第一预设状态这一过程中的软件缺陷,可快速响应客户需求,提高开发人员复用率,降低用人成本。
89.虽然本发明提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
90.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
91.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
92.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
93.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
94.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
95.在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
96.除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
97.需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。本发明并不局限于任何单一的方面,也不局限于任何单一的实施例,也不局限于这些方面和/或实施例的任意组合和/或置换。可单独使用本发明的每个方面和/或实施例,或者与一个或更多其他方面和/或其他实施例结合使用。
98.最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使
相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1