CN109240658A - 一种基于神经网络的软件架构选择的方法及装置 - Google Patents
一种基于神经网络的软件架构选择的方法及装置 Download PDFInfo
- Publication number
- CN109240658A CN109240658A CN201811062701.2A CN201811062701A CN109240658A CN 109240658 A CN109240658 A CN 109240658A CN 201811062701 A CN201811062701 A CN 201811062701A CN 109240658 A CN109240658 A CN 109240658A
- Authority
- CN
- China
- Prior art keywords
- neural network
- software architecture
- network model
- selection
- project
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于神经网络的软件架构选择的方法,包括:根据多种待选的选择软件架构的方法建立选择软件架构的神经网络模型;将指定时间段内执行过的项目数据输入所述神经网络模型进行训练;将新项目的特征参数输入训练好的神经网络模型,由所述神经网络模型选择出满足预置指标的软件架构。本发明还提供一种基于神经网络的软件架构选择的装置。本方案可以根据项目的特点和需求,利用神经网络模型帮助软件架构师推荐和选择较为合适软件框架。
Description
技术领域
本发明涉及机器学习技术领域,尤指一种基于神经网络的软件架构选择的方法及装置。
背景技术
机器学习研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习需要经过数据选择,分析,特征选择,算法设计,训练,验证,测试,发布线上推理应用一系列过程。深度学习是机器学习中的一个分支。
软件架构是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。软件架构描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地描述组件之间的通讯。
在现有的技术中,软件架构的选择全部是依据软件架构师及一些较为资深的软件设计者自己的经验和主观判断来人为的选择。现有的选择方式的缺陷在于每个架构师的项目背景、知识结构以及个人喜好不同,从而在选择架构时,带有极强的主观性,有时选择的架构并不是最优架构,且不同的架构师的知识和之前积累的项目的组织过程资产并不能共享和充分利用。
发明内容
为了解决上述技术问题,本发明提供了一种基于神经网络的软件架构选择的方法及装置,以实现自动选择软件架构。
为了达到本发明目的,本发明提供了一种基于神经网络的软件架构选择的方法,包括:
根据多种待选的选择软件架构的方法建立选择软件架构的神经网络模型;
将指定时间段内执行过的项目数据输入所述神经网络模型进行训练;
将新项目的特征参数输入训练好的神经网络模型,由所述神经网络模型选择出满足预置指标的软件架构。
进一步地,所述将指定时间段内执行过的项目数据输入所述神经网络模型进行训练后,还包括:
保存训练好的神经网络模型及相关参数。
进一步地,所述项目数据包括以下的一项或多项:
项目类型、项目需求特点、项目研发周期、项目采用的软件架构。
进一步地,如待选的选择软件架构的方法有n种,则所述神经网络模型包括:三个全连接隐藏层,以sigmoid为激活函数,n个节点输出层、若干个节点的输入层。
一种基于神经网络的软件架构选择的装置,其中,包括:
建立模块,用于根据多种待选的选择软件架构的方法建立选择软件架构的神经网络模型;
训练模块,用于将指定时间段内执行过的项目数据输入所述神经网络模型进行训练;
选择模块,用于将新项目的特征参数输入训练好的神经网络模型,由所述神经网络模型选择出满足预置指标的软件架构。
进一步地,所述装置还包括:
存储模块,用于保存训练好的神经网络模型及相关参数。
进一步地,所述项目数据包括以下的一项或多项:
项目类型、项目需求特点、项目研发周期、项目采用的软件架构。
进一步地,如待选的选择软件架构的方法有n种,则所述神经网络模型包括:三个全连接隐藏层,以sigmoid为激活函数,n个节点输出层、若干个节点的输入层。
一种基于神经网络的软件架构选择的装置,包括处理器和计算机可读存储介质,所述计算机可读存储介质中存储有指令,其中,当所述指令被所述处理器执行时,实现上述基于神经网络的软件架构选择的方法。
本发明实施例的方案可以根据项目的特点和需求,利用神经网络模型帮助软件架构师推荐和选择较为合适软件框架,可以容易的从已往的项目中汲取信息,从而进一步优化模型,从而使模型可以更好的选择架构。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本发明实施例的一种基于神经网络的软件架构选择的方法的流程图;
图2为本发明应用示例的一种基于神经网络的软件架构选择的方法的流程图;
图3为神经网络的全连接层的示意图;
图4为本发明实施例的一种基于神经网络的软件架构选择的装置的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1为本发明实施例的一种基于神经网络的软件架构选择的方法的流程图,如图1所示,本实施例的方法包括:
步骤101、根据多种待选的选择软件架构的方法建立选择软件架构的神经网络模型;
步骤102、将指定时间段内执行过的项目数据输入所述神经网络模型进行训练;
步骤103、将新项目的特征参数输入训练好的神经网络模型,由所述神经网络模型选择出满足预置指标的软件架构。
正如软件本身有其要达成的目标一样,软件架构设计也要达到一定的目标。一般来说,软件架构设计要达到如下目标:1.可靠性,2.安全性,3.可伸缩行,4.可定制化,5.可拓展性,6.可维护性,7.可测试性,8.用户体验等。同时目前业界有很多的开源软件架构框架,例如dubbo,ServiceComb,Tars等。每种框架主要的特征与面向的场景各不相同。
而深度学习的过程一般需要经历数据的准备,数据分析,特征选择,数据集拆分,模型的设计,模型训练(其中,又涉及到训练环境的准备,训练任务的提交和监控),模型的评估,模型上线的过程。
本发明实施例提出了这种基于神经网络的软件架构选择的方法,可以根据项目的特点和需求,利用神经网络模型帮助软件架构师推荐和选择较为合适软件框架。可以容易的从已往的项目中汲取信息,从而进一步优化模型,从而使模型可以更好的选择架构。
图2为本发明一应用示例的一种基于神经网络的软件架构选择的方法的流程图,如图2所示,本示例的方法包括以下步骤:
步骤201、将公司已经进行过的项目数据进行分析整理;
所述项目数据中包含以下的一项或多项:项目类型、项目需求特点、项目研发周期、以及项目采用的软件架构等信息。
步骤202、根据多种待选的选择软件架构的方法建立选择软件架构的神经网络模型;
假设待选的软件架构方法为n种,那么建立一个具有三个全连接隐藏层,以sigmoid为激活函数,n个节点输出层、若干个节点的输入层的神经网络模型。
如图3所示,是一个神经网络的全连接层。在全连接层之后,会再连接到一个softmax层。Softmax对应连接到输出层。其中输出层神经元的个数为待选的网络架构的个数。例如有10个待选网络架构。那么最终输出一个包含10个值且10个值的总和为1的向量,表示对应的概率。其中最大的概率则代表为自动选取的网络架构。
其中,神经网络模型的指标可以包括:1.可靠性的要求(例如99.5%的可靠性),2.项目的开发时间要求(例如3个月内或10个月内),3.可拓展的最大规模(如可拓展至1000节点)。以上仅是示例,实际应用中,可以根据需要,设置其它的指标要求。
步骤203、使用步骤201中准备的项目数据对步骤202中的神经网络模型进行训练。
步骤204、当训练完成后,自动保存训练好的神经网络模型及参数等。
神经网络的隐藏层的每一个神经元都一个参数值。初始情况下,参数值为随机值。随着训练过程的进行,参数值放生变化,最终会生成可以拟合问题的一组参数值。
步骤205、提交新项目的相关特征参数给神经网络模型,由神经网络模型自动选择推荐出适合的软件架构。
新项目的相关特征参数例如:要求项目的工作量是20个人月,要求服务响应时间小于10ms等。
图4为本发明实施例的一种基于神经网络的软件架构选择的装置的示意图,如图4所示,本实施例的装置300包括:
建立模块301,用于根据多种待选的选择软件架构的方法建立选择软件架构的神经网络模型;
训练模块302,用于将指定时间段内执行过的项目数据输入所述神经网络模型进行训练;
选择模块303,用于将新项目的特征参数输入训练好的神经网络模型,由所述神经网络模型选择出满足预置指标的软件架构。
本发明实施例提出了这种基于神经网络的软件架构选择的装置,可以根据项目的特点和需求,利用神经网络模型帮助软件架构师推荐和选择较为合适软件框架。
在一实施例中,所述装置300还可以包括:
存储模块304,用于保存训练好的神经网络模型及相关参数。
其中,所述项目数据可以包括以下的一项或多项:
项目类型、项目需求特点、项目研发周期、项目采用的软件架构。
如待选的选择软件架构的方法有n种,则所述神经网络模型包括:三个全连接隐藏层,以sigmoid为激活函数,n个节点输出层、若干个节点的输入层。
使用本实施例的方案可以从积累组织过程资产中提取特征,用积累的经验协助软件架构师进行软件架构的选择,方便软件架构师开展工作。
本发明实施例还提供一种基于神经网络的软件架构选择的装置,包括处理器和计算机可读存储介质,所述计算机可读存储介质中存储有指令,其中,当所述指令被所述处理器执行时,实现上述基于神经网络的软件架构选择的的方法。
本发明实施例还提供了一种计算机可读存储介质,其存储有计算机可执行指令,所述计算机可执行指令被执行时实现所述基于神经网络的软件架构选择的方法。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
Claims (9)
1.一种基于神经网络的软件架构选择的方法,其特征在于,包括:
根据多种待选的选择软件架构的方法建立选择软件架构的神经网络模型;
将指定时间段内执行过的项目数据输入所述神经网络模型进行训练;
将新项目的特征参数输入训练好的神经网络模型,由所述神经网络模型选择出满足预置指标的软件架构。
2.根据权利要求1所述的方法,其特征在于,所述将指定时间段内执行过的项目数据输入所述神经网络模型进行训练后,还包括:
保存训练好的神经网络模型及相关参数。
3.根据权利要求1所述的方法,其特征在于,所述项目数据包括以下的一项或多项:
项目类型、项目需求特点、项目研发周期、项目采用的软件架构。
4.根据权利要求1所述的方法,其特征在于,
如待选的选择软件架构的方法有n种,则所述神经网络模型包括:三个全连接隐藏层,以sigmoid为激活函数,n个节点输出层、若干个节点的输入层。
5.一种基于神经网络的软件架构选择的装置,其特征在于,包括:
建立模块,用于根据多种待选的选择软件架构的方法建立选择软件架构的神经网络模型;
训练模块,用于将指定时间段内执行过的项目数据输入所述神经网络模型进行训练;
选择模块,用于将新项目的特征参数输入训练好的神经网络模型,由所述神经网络模型选择出满足预置指标的软件架构。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
存储模块,用于保存训练好的神经网络模型及相关参数。
7.根据权利要求5所述的装置,其特征在于,所述项目数据包括以下的一项或多项:
项目类型、项目需求特点、项目研发周期、项目采用的软件架构。
8.根据权利要求5所述的装置,其特征在于,
如待选的选择软件架构的方法有n种,则所述神经网络模型包括:三个全连接隐藏层,以sigmoid为激活函数,n个节点输出层、若干个节点的输入层。
9.一种基于神经网络的软件架构选择的装置,包括处理器和计算机可读存储介质,所述计算机可读存储介质中存储有指令,其特征在于,当所述指令被所述处理器执行时,实现上述基于神经网络的软件架构选择的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811062701.2A CN109240658A (zh) | 2018-09-12 | 2018-09-12 | 一种基于神经网络的软件架构选择的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811062701.2A CN109240658A (zh) | 2018-09-12 | 2018-09-12 | 一种基于神经网络的软件架构选择的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109240658A true CN109240658A (zh) | 2019-01-18 |
Family
ID=65067706
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811062701.2A Withdrawn CN109240658A (zh) | 2018-09-12 | 2018-09-12 | 一种基于神经网络的软件架构选择的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109240658A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109933306A (zh) * | 2019-02-11 | 2019-06-25 | 山东大学 | 混合计算框架生成、数据处理方法、装置及混合计算框架 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010025236A1 (en) * | 2000-03-09 | 2001-09-27 | America Petrus Hubertus Maria | Method for developing complex systems |
CN101551747A (zh) * | 2009-04-09 | 2009-10-07 | 怯肇乾 | Arm系列微处理器的软件体系架构工具 |
CN101782976A (zh) * | 2010-01-15 | 2010-07-21 | 南京邮电大学 | 一种云计算环境下机器学习自动选择方法 |
CN106528428A (zh) * | 2016-11-24 | 2017-03-22 | 中山大学 | 一种软件易变性预测模型的构建方法 |
-
2018
- 2018-09-12 CN CN201811062701.2A patent/CN109240658A/zh not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010025236A1 (en) * | 2000-03-09 | 2001-09-27 | America Petrus Hubertus Maria | Method for developing complex systems |
CN101551747A (zh) * | 2009-04-09 | 2009-10-07 | 怯肇乾 | Arm系列微处理器的软件体系架构工具 |
CN101782976A (zh) * | 2010-01-15 | 2010-07-21 | 南京邮电大学 | 一种云计算环境下机器学习自动选择方法 |
CN106528428A (zh) * | 2016-11-24 | 2017-03-22 | 中山大学 | 一种软件易变性预测模型的构建方法 |
Non-Patent Citations (2)
Title |
---|
朱磊: ""基于BP神经网络的软件可靠性模型选择研究"", 《中国优秀博硕士学位论文全文数据库 (硕士)信息科技辑》 * |
琼斯 JONESC: "《软件工程最佳实践》", 31 January 2014 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109933306A (zh) * | 2019-02-11 | 2019-06-25 | 山东大学 | 混合计算框架生成、数据处理方法、装置及混合计算框架 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111223106B (zh) | 全自动人像蒙版抠图方法及系统 | |
US20210065058A1 (en) | Method, apparatus, device and readable medium for transfer learning in machine learning | |
CN108614865B (zh) | 基于深度强化学习的个性化学习推荐方法 | |
US20150161539A1 (en) | Decision support system for project managers and associated method | |
CN110705690B (zh) | 基于生成模型和元学习优化方法的连续学习方法及系统 | |
CN110428046A (zh) | 神经网络结构的获取方法及装置、存储介质 | |
CN102819769A (zh) | 一种基于集成化建模的个性化学习资源优化方法 | |
US20200302293A1 (en) | Methods and systems for field development decision optimization | |
EP3786851A1 (en) | Method and apparatus for providing recommendations for completion of an engineering project | |
CN111143223A (zh) | 一种服务器压力测试方法及装置 | |
US20200133451A1 (en) | Techniques for analyzing the proficiency of users of software applications | |
CN108255059B (zh) | 一种基于模拟器训练的机器人控制方法 | |
CN109743286A (zh) | 一种基于图卷积神经网络的ip类型标记方法及设备 | |
CN114072809A (zh) | 经由神经架构搜索的小且快速的视频处理网络 | |
Caro et al. | Multi-level pedagogical model for the personalization of pedagogical strategies in intelligent tutoring systems | |
CN110288878A (zh) | 自适应学习方法及装置 | |
CN109344968A (zh) | 一种神经网络的超参数处理的方法及装置 | |
Sciarrone et al. | Learning analytics models: A brief review | |
CN111160562A (zh) | 基于元学习优化方法的连续学习方法及装置 | |
CN109240658A (zh) | 一种基于神经网络的软件架构选择的方法及装置 | |
CN110796594B (zh) | 一种图像生成方法、装置及设备 | |
Barve et al. | A cloud-based immersive learning environment for distributed systems algorithms | |
García-Magariño et al. | FTS-SOCI: An agent-based framework for simulating teaching strategies with evolutions of sociograms | |
CN109117946A (zh) | 神经网络计算处理模型 | |
JP2022063864A (ja) | 機械学習を自動化するための装置及び機械学習自動化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20190118 |