软件工程方法论.docx
- 文档编号:25596163
- 上传时间:2023-06-10
- 格式:DOCX
- 页数:10
- 大小:24.04KB
软件工程方法论.docx
《软件工程方法论.docx》由会员分享,可在线阅读,更多相关《软件工程方法论.docx(10页珍藏版)》请在冰豆网上搜索。
软件工程方法论
注:
考生属哪种类别请划“y
(博士、在校硕士、工程硕士、师资硕士、同等学力、研究生班)
辽宁工程技术大学
研究生考试试卷
考试时间:
年月日
考试科目:
考生姓名:
评卷人:
考试分数:
注意事项
1、考前研究生将上述项目填写清楚
2、字迹要清楚,保持卷面清洁
3、试题、试卷一齐交监考老师
4、教师将试题、试卷、成绩单,一起送研究生学院;
专业课报所在院、
1、科学技术方法论到软件工程方法论
科学技术哲学属于哲学的重要分支学科,主要研究自然界的一般规律,科学技术活动的基本方法,科学技术及其发展中的哲学问题,科学技术与社会的相互作用等内容。
科学技术哲学的历史悠久,中国古代和古希腊时代的思想家就开始研究自然哲学方面的问题,随着科学技术的发展,科学技术方法论的研究开始出现。
在科学技术对科学影响日益明显的现代,科学技术与社会关系成为科学技术哲学研究的重点,科技哲学研究也日益受到重视。
马克思主义对科技哲学的发展有重要的贡献。
1.1、方法
方法是指人们为了达到某种目的,所遵循的程序、途径或所使用的方式、手段以及技巧的总和。
而对于我们计算机专业人员而言,在程序设计的过程中,方法就是一种算法或者完成某一功能的函数。
1.2、方法论
方法论指的是以方法作为研究对象,系统地研究方法的性质、条件、作用和
发生发展的规律。
刘院长讲课过程中,使我印象最为深刻的就是,强调定义的重要性。
老师课上所举出的例子是我们高中时期接触到的,本科期间又在高等数学中再次出现的概念,y=2x的导数dy/dx为什么是2。
所有人都知道答案,但是为什么是2,只知道使用公式得出结果就可以了吗?
正确的解答应该使用导数的定义,x的增量Ax在点x0的邻域内,lim_{△x—0}[2(x0+Ax)2x0]/△x=2极限存在且等于2(当然,这里),所以其导数是2。
其实导数应用在很多领域,包括我的研究方向,机器学习中的梯度下降算法,还有神经网络中反向传播误差过程中的链式求导法则,如果研究者对于基本的导数定义都没有熟练掌握,怎么会精通研究领域中的方法,更何谈改进创新呢。
1.3、科学技术方法论科学技术方法论就是指人们有计划、有目的地认识自然、探索未知、变革自然的手段和方式的理论体系。
总的来说,在本科和研究生阶段学校所开设的课程都是相关专业、相关研究方向的知识理论体系,我们学习的过程应该是在掌握了理论知识的基础上,将所学到的内容运用于实践,然后将实践后的经验总结成理论,不断反复的过程。
1.4、软件工程方法论
软件工程方法论指的是,在软件开发的过程中,必须遵循的普遍行为和规则。
软件工程方法论指导下的科研过程,分为如下五个步骤。
1)选题。
选题即问题定义,是科研的第一步,也是最关键的一步,极大地体现出论文的新颖程度,在此阶段需要查阅大量资料,深入了解国内外研究现状。
2)获取科学事实。
对应于软件开发周期,我认为是可行性分析和总体设计阶段。
对于我们数据挖掘方向的研究人员,应该包括收集数据集,以及对硬件环境,比如考虑选择多大内存的电脑,是否需要集群并行处理等。
3)思维加工。
此阶段需要对所提出的理论、公式进行推导和证明,并初步试验,详细设计到选用什么数据结构。
4)验证。
对应于软件测试,需要大量实验,完成黑盒、白盒测试等一系列测试。
5)建立理论体系。
如果实验结果得到了成功,就可以总结经验,完成论文。
总之,科学研究的过程与软件开发的过程相类似,都是可以定量表示,定性
分析的。
2、学科交叉与融合对软件工程方法的影响当今,几乎所有研究领域都会或多或少地用到数学知识,因为数学应用的普遍性,所以不会有人说其所研究的领域与数学专业是交叉学科。
虽然数学考试中的成绩不高,但我从小热爱数学,也是由于我参加了全国数学建模比赛,最近在看司守奎老师的《数学建模算法与程序》。
刘院长在讲课过程中提到过运载火箭为什么是三级火箭,这个问题是航空航天领域的研究者的专业问题,但也可以作为常识进行了解,司守奎老师的那本书的第十三章《微分方程建模》中,就有对运载火箭所建立的数学模型,还有完整的公式推导,最后分析原因,得出结论,其中需要考虑速度、质量以及经济等因素。
我的研究领域还包括自然语言处理,自然语言处理,就是一个交叉学科,既包括统计学,也包括语言语音学等。
总之,学科交叉与融合对软件工程方法必然会有积极地影响,科研的突破点往往是学科之间的交汇点、交叉点,并由此产生软件工程专业更多的研究方向。
3、软件与服务系统服务科学已经深入到社会生活的各个方面,融合了计算机科学、软件科学、运筹学、产业经济学、管理科学等诸多学科。
从软件角度研究服务系统的整体框架和知识体系,包括软件与服务系统概述、服务构件开发方法、服务战略、服务系统设计、服务创新、服务外包、服务系统的软件设计与实现、服务系统管理、服务系统中的IT管理和服务系统案例分析等。
4、记忆、知识、语言与人工智能
4.1、从一个悲剧故事谈起
黛博拉(Deborah)轻轻地推开房门,探头往里看。
克莱夫(Clive)发现进来的是妻子,脸上露出无限的喜悦。
他直奔门前,高喊「太好了」,并张开双臂紧紧地抱住黛博拉。
克莱夫一边和黛博拉亲吻,一边说「你来了,真让我吃惊」。
接着两人又开始拥抱,好像分别已久。
坐下来后,黛博拉用温柔的眼光看着克莱夫说「其实我今天早上也来过」,克莱夫摇摇头反驳道「不可能,这是我今天第一次见到你。
」这样的场景每天都在黛博拉和克莱夫之间重复上演。
克莱夫韦尔林(CliveWearing)是英国的一位音乐家。
他四十多岁的时候突然患上了病毒性脑炎,这是一种死亡率很高的疾病。
幸运的是他活了下来,不幸的是疾病给他留下了失忆症(amnesia。
过去发生的很多事情已不能记起,但他还认识妻子,却不认识女儿。
更严重的是他对当前发生的事情不能记忆到脑子里,几分钟后就会完全忘记。
他的行动没有任何问题,语言和思维似乎也正常,可以饮食、行走、说话、写字,甚至弹琴、唱歌,看上去和正常人一样。
但他就是长期记忆(longtermmemory)出了问题。
他感受到的世界和大家是一样的,但转过头去,刚发生的一切就会从脑海中消失,他所拥有的只是「瞬间到瞬间的意识」,没有过去可以联系,也没有未来可以展望。
克莱夫韦尔林用自己不幸的经历为我们揭示了长期记忆对我们的智能,乃至
我们的人生的重要意义。
4.2、记忆与智能人脑的记忆模型由中央处理器、寄存器、短期记忆和长期记忆组成。
视觉、听觉等传感器从外界得到输入,存放到寄存器中,在寄存器停留1~5秒。
如果人的注意力关注这些内容,就会将它们转移到短期记忆,在短期记忆停留30秒左右。
如果人有意将这些内容记住,就会将它们转移到长期记忆,半永久地留存在长期记忆里。
人们需要这些内容的时候,就从长期记忆中进行检索,并将它们转移到短期记忆,进行处理。
长期记忆的内容既有信息,也有知识。
简单地说,信息表示的是世界的事实,知识表示的是人们对世界的理解,两者之间并不一定有明确的界线。
人在长期记忆里存储信息和知识时,新的内容和已有的内容联系到一起,规模不断增大,这就是长期记忆的特点。
大脑中,负责向长期记忆读写的是边缘系统中的海马体(hippocampus)。
克莱夫韦尔林患失忆症,是因为海马体受到了损伤。
长期记忆实际上存在于大脑皮层(cerebralcortex).在大脑皮层,记忆意味着改变脑细胞之间的链接,构建新的链路,形成新的网络模式。
我们可以认为,现在的人工智能系统是没有长期记忆的。
无论是阿尔法狗,还是自动驾驶汽车,都是重复使用已经学习好的模型或者已经被人工定义好的模型,不具备不断获取信息和知识,并把新的信息与知识加入到系统中的机制。
假设人工智能系统也有意识的话,那么其所感受到的世界和克莱夫韦尔林是一样
的,那就是,只有瞬间到瞬间的意识
那么,意识是什么?
这是当今科学的最大疑团之一,众说纷纭,莫衷一是。
日裔美国物理学家加莱道雄(MichioKaku)给出了他的定义。
如果一个系统与外
部环境(包括生物、非生物、空间、时间)互动过程中,其内部状态随着环境的变化而变化,那么这个系统就拥有「意识」。
按照这个定义,温度计、花儿是有意识的系统,人工智能系统也是有意识的。
拥有意识的当前的人工系智能系统缺少的是长期记忆。
具有长期记忆将使人工智能系统演进到一个更高的阶段。
这应该是人工智能今后发展的方向。
4.3、智能问答系统未来人工智能技术不断发展,预计将会出现智能性的问答系统,系统包括语言处理模块、短期记忆、长期记忆、中央处理模块。
有大量的结构化的、非结构化的信息和知识作为输入,也有大量的问答语对作为训练数据。
系统能够自动获取信息与知识,掌握语言理解与生成能力,将信息和知识处理存储到长期记忆,理解用户用自然语言提的问题,利用记忆的信息与知识给出正确的答案。
在某种意义上,现在已经存在这种系统的原型,例如,互联网搜索引擎就可以看作是其简化版。
但是要真正构建人类的智能信息助手,还有许多难关要攻克,有许多课题要解决。
知识问答的本质问题是:
(1)语义分析,即将输入的自然语言的表示映射到内部的语义表示;
(2)知识表示,即将输入的信息知识转换为内部的语义表示。
最大的挑战来自语言的多义性和多样性,以及知识的模糊性。
语言具有多义性(ambiguity),也就是说一个表达可以表示不同的意思。
下面是语言学家查尔斯菲尔默(CharlesFillmore)给出的例子。
英语单词climb,其基本语义是四肢用力沿着一条轨迹向上移动,表示「向上爬」的意思。
所以如果用climb造句,大家一般会给出这样的句子「TheboyclimbedthetreeJ(男孩爬上了树)。
但是climb一词的语义会向不同方向扩展,可以说「Pricesareclimbingdaybyday」(物价每日飙升),这里climb就没有了四肢用力移动的意思。
也可以说「Heclimbedoutofasleepingbagj(他从睡袋中爬出),这里climb就没有了向上移动的意思。
语言的词汇都具有如下性质:
有一个核心的语义,对应一些典型说法,可以由一些特征表示。
但部分特征可以缺失,形成新的语义,产生新的说法。
语言中,除了词汇的多义性,还有句法的多义性。
同时语言也具有多样性(variability),也就是说多个表达可以表示同一个意思。
比如,「地球和太阳的距离」,「地球离太阳有多远?
」,「太阳和地球相隔有多少公里?
」等,都是同义表达。
人们的知识,特别是常识,具有模糊性(fuzziness)。
下面是人工智能研究的先驱者特里维诺格拉特(TerryWinograd)给出的例子。
英文中,bachelor是指未婚成年男性,即单身的意思。
看似是一个明确的概念,但是当我们判断现实中的具体情况时,就会发现我们对这个概念的认识是模糊的,比如,未婚父亲是否是bachelor?
假结婚的男子是否是bachelor?
过着花花公子生活的高中生是否是
bachelor?
大家并没有一致的意见。
4.4、神经符号处理近年,深度学习给自然语言处理带来了巨大变化,使机器翻译、对话等任务的性能有了大幅度的提升,成为领域的核心技术。
但是另一方面,深度学习用于自然语言处理的局限也显现出来。
面向未来,深度学习(神经处理)与传统符号处理的结合应该成为一个重要发展方向,神经符号处理(neuralsymbolicprocessing的新范式被越来越多的人所接受,其研究也取得初步进展。
深度学习用实数向量来表示语言,包括单词、句子、文章,向量表示又称为神经表示(neuralrepresentation。
)神经表示的优点在于其稳健性,可以更好地应对语言的多义性和多样性,以及语言数据中的噪音。
另一方面,传统的符号表示(symbolicrepresentation)的优点在于其可读性和可操作性。
语言是基于符号的,计算机擅长的是符号处理,用符号表示语言处理的结果是自然的选择。
神经符号处理旨在同时使用神经表示与符号表示来描述语言的语义,发挥两者的优势,更好地进行自然语言处理。
基于神经符号处理的智能问答系统也是由语言处理模块、短期记忆、长期记忆、中央处理模块组成。
语言处理模块又由编码器和解码器组成。
编码器将自然语言问题转换为内部的语义表示,存放在短期记忆中,包括符号表示和神经表示。
中央处理模块通过问题的语义表示,从长期记忆中找出相关的信息和知识。
长期记忆中的信息和知识也是基于符号表示和神经表示的。
找到相关的答案后,解码器把答案的语义表示转换为自然语言答案。
4.5、最新进展实现问答系统有三种方法,分别是基于分析的、检索的、生成的方法。
通常
是单轮对话,也可以是多轮对话。
这里考虑单轮的基于分析的问答系统。
4.5.1、传统的技术是语义分析(semanticparsing)。
基于人工定义的语法规则,对问句进行句法分析以及语义分析,得到内部语义表示——逻辑表达式。
语义分析需要人工定义句法,开发成本较高,可扩展性不好。
近年,基于神经符号处理的问答系统的研究有了很大突破。
可以从数据出发,完全端到端地构建问答系统。
不需要人工干预,只需要提供足够量的训练数据。
问答的准确率也有了一定的提升。
传统的语义分析技术被颠覆。
下面介绍几个有代表性的工作。
脸书(Facebook)的韦斯顿(Weston等人提出了记忆网络(memorynetworks)框架,可以用于如下场景的问答:
Johnisintheplayground.
Bobisintheoffice.
Johnpickedupthefootball.
Bobwenttothekitchen.
Q:
whereisthefootball?
A:
playground.记忆网络由神经网络和长期记忆组成。
长期记忆是一个矩阵,矩阵的每一个行向量是一个句子的语义表示。
阅读时,记忆网络可以把给定的句子转换成内部表示,存储到长期记忆中。
问答时,把问句也转换成内部表示,与长期记忆中每行的句子语义表示进行匹配,找到答案,并做回答。
4.5.2、谷歌DeepMind的格拉夫(Graves)等发明了可微分神经计算机(differentiableneuralcomputer)模型。
该模型由神经网络和外部记忆组成。
外部记忆是一个矩阵,可以表示复杂的数据结构。
神经网络负责对外部记忆进行读写,它有三种类型,拥有不同的注意力机制,表示三种不同的读写控制,对应哺乳动物中海马体的三种功能。
神经网络在数据中进行端到端的学习,学习的目标函数是可微分的函数。
可微分神经计算机模型被成功应用到了包括智能问答的多个任务中。
4.5.3、谷歌的尼拉康藤(Neelakantan等开发了神经编程器(neuralprogrammer)莫型,可以从关系数据库中寻找答案,自动回答自然语言问题。
模型整体是一个循环神经网络。
每一步都是基于问句的表示(神经表示)以及前一步的状态表示(神经表示),还包括计算操作的概率分布和列的概率分布,以及选择对数据库表的一个列来执行一个操作(符号表示)。
顺序执行这些操作,并找到答案。
操作表示对数据库列的逻辑或算数计算,如求和、大小比较。
学习时,整体目标函数是可微分的,用梯度下降法训练循环神经网络的参数。
4.5.4、谷歌的Liang等开发了神经符号机(neuralsymbolicmachines)模型。
神经
符号机可以从知识图谱三元组中找到答案,回答像「美国最大的城市是哪个?
」这样的问题。
模型是序列对序列(sequence-to-sequenee莫型,将问题的单词序列转换成命令的序列。
命令的序列是LISP语言2的程序,执行程序就可以找到答
案。
神经符号机的最大特点是序列对序列模型表示和使用程序执行的变量,用附加的键-变量记忆(key-variablememory)记录变量的值,其中键是神经表示,变量是符号表示。
模型的训练是基于强化学习(策略梯度法)的端到端的学习。
4.5.5、华为公司的吕正东等开发了神经查询器(neuralenquirer)、符号查询器(symbolicenquirer)和连接查询器(coupledenquirer)三个模型,用于自然语言的关系数据库查询。
例如,可以从奥林匹克运动会的数据库中寻找答案,回答「观众人数最多的奥运会的举办城市的面积有多大?
」这样的问题。
问答系统包括语言处理模块、短期记忆、长期记忆和查询器,语言处理模块又包括编码器和解码器。
查询器基于短期记忆的问题表示(神经表示)从长期记忆的数据库中(符号表示与神经表示)寻找答案。
符号查询器是一个循环神经网络,将问句的表示(神经表示)转换为查询操作(符号表示)的序列,执行操作序列就可以找到答案。
利用强化学习,具体的策略梯度法,可以端到端地学习此循环神经网络。
神经查询器是一组深度神经网络,将问句的表示(神经表示)多次映射到数据库的一个元素(符号表示),也就是答案,其中一个神经网络表示一次映射的模式。
利用深度学习,具体的梯度下降法,可以端到端地学习这些深度神经网络。
符号查询器执行效率高,学习效率不高;神经查询器学习效率高,执行效率不高。
连接查询器结合了两者的优点。
学习时首先训练神经查询器,然后以其结果训练符号查询器,问答时只使用符号查询器。
4.6、未来展望计算机最擅长的是计算和存储,其强大的计算能力已经在现实中展现出巨大的威力,但是其强大的存储能力并没有得到充分的发挥,通常存储的是数据,而不是信息和知识。
计算机还不能自动地对数据进行筛选和提炼,抽取信息和知识,并把它们关联起来,存储在长期记忆里,为人类服务。
可以预见,未来会有这样的智能信息和知识管理系统出现,它能够自动获取信息和知识,如对之进行有效的管理,能准确地回答各种问题,成为每一个人的智能助手。
人工智能技术,特别是神经符号处理技术,有望帮助我们实现这样的梦想。
期盼这一天的到来!
5、软件工程方法论对我研究领域的指导我的研究方向是数据挖掘和自然语言处理,主要研究的问题是二分类问题,而自然语言处理主要的任务就是处理文本文字这一种非结构化数据,软件工程方法论对我所研究的问题有重大指导意义。
软件工程方法论强调定义和条件,这在数据收集之后的数据清洗和特征提取阶段显得尤为重要。
我们都知道,分类问题是监督学习,在把数据输送到分类器之前,必须进行数据清洗,因为有很多特征,比如男和女,属于离散的字符型特征,我们需要将其转化为连续的数值型特征,比如将男和女进行编码,1表示男,0表示女。
这只是一个小例子,在科研、软件设计以及诸多技术领域,都需要有相应的方法论指导。
总之,软件工程方法论无论对科研,还是软件设计都有重大和深远的影响,学习和使用软件工程方法论具有深刻的理论和现实意义。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 方法论