欢迎来到加倍考研网! 北京 上海 广州 深圳 天津
微信二维码
在线客服 40004-98986
推荐适合你的在职研究生专业及院校
普通本科学校软件工程专业的同学是否应该考研,以及该如何准备而况若乎

普通本科学校软件工程专业的同学是否应该考研,以及该如何准备

首先,当前软件工程专业的就业情况还是不错的,相信随着工业互联网的发展,未来软件工程专业的就业前景依然比较广阔,当前选择软件工程专业也可以看成是顺应时代发展的选择。对于普通大学的本科生来说,如果未来想获得高附加值的工作岗位,考研是比较现实的选择之一,而且随着产业结构升级的推进,未来以研究生为代表的高端人才会有更多的发展渠道,未来研究生也会大量进入产业领域发展,从而为产业领域创新提供人才支撑。当前软件工程专业的考研竞争还是比较激烈的,从大的人才培养趋势来看,普通高校的本科生可以重点考虑一下专硕,未来专硕的人才培养规模会持续加大,这也会在一定程度上降低考研的难度。从考研的内容上来看,计算机相关专业(软件工程)专硕的初试难度往往也更低一些,这也会降低考研复习的难度。虽然当前研究生招生规模在不断扩大,但是计算机相关专业作为考研的热点专业,整体的竞争还是比较激烈的,因此一定要早做准备,同时为自己营造一个较好的复习氛围。在大一、大二期间应该重点关注数学和外语课程的学习,同时重视课堂学习时间,多与老师进行交流,以便于获得更多学习建议。在准备考研复习的过程中,也要重视科研实践能力的培养,这对于考研复试环节还是有较大帮助的,比如参加专业比赛就是不错的选择,一方面可以通过参加比赛来促进学习,另一方面也可以通过参加比赛来开阔眼界。我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。如果有互联网、大数据、人工智能等方面的问题,或者是考研方面的问题,都可以在评论区留言,或者私信我!

鬼整人

2019软件工程跨考计算机专业研究生,复试如何准备?这几点很重要

计算机科学与技术专业是一个软硬件都要学习的一大专业,如果本科是软件工程的话,对计算机硬件知识是不会涉及的,软件工程对应的就是平常所说的码农,主要是进行软件开发或者软件维护工作的,作为软件工程这个专业目前还是比较吃香的,应用范围比较广泛,薪酬较高,但由于其学习难度较大,很多本科生在选择考研的时候,可能会换专业,比如软工转计算机专业的话,复试该如何准备的问题,下面小编给大家简单的分析一下。软件工程与计算机专业在大部分的课程设置上基本相差不大,计算机要学的课程软件工程也一样不会少,软件工程在软件这一块的学习内容可能会更多一些,因为专业方向的原因,特别是数据处理、编程等课程会学得更深入,这也为学生未来更好的做好软件开发工作做准备,当然在本科阶段的学习也是比较笼统的,方向并不太明确,在很多双非一本高校,甚至可以说与计算机专业所学的内容区别不大。计算机专业则是软硬兼收的一个专业,所学专业课也根据学校的不同而有差异。有的学校会只学数电,有的专业会学模电和电路分析,硬件方面肯定也会涉及,一句话,计算机专业更注重的是对互联网等知识的整体的掌握,既有硬件的学习,也有软件的讲解,本科阶段所学也不是太专一,除非是实力较强的高校,比如北航、国科大等传统软件工程实力特别强的高校。作为软工出身,若初试分数还算说的过去,老师一般不会为难你,只要根据所报目标院校的要求准备就好了,另外可以向往届学长讨教,从而在准备面试的时候做到心中有数,至于单片机,这些硬件方面的知识大概率不会提问,那是电子信息工程方向导师会问的,结合你做过的项目来答就可以了。鉴于软工专业的方向,导师可能会问数据库和操作系统方面的问题,其实完全可以看一下往年和今年的初试、复试题目,好好复习一遍,很多题目都是导师从里面挑出来的,换汤不换药。总的来说,两个专业的课程差不多,所以复试问题都不会太大,大家对跨考计算机专业怎么看?

软件工程专业考研,什么时候开始准备为好?

由于目前就业形势的严峻和学历的贬值严重,很多学生都选择了考研这条路,这也使得近些年考研人数一直都在增加,考研的难度也是一年比一年大。对于很多考生来说,考研应该怎样准备以及从什么时候准备等,都是他们非常关心的问题。其实,考研从什么时候准备以及准备多长时间和怎样准备,都与个人的实际情况有很大关系。软件工程专业是一门发展快、实用性强的专业,当今是互联网的时代,生活越来越离不开网络,各类的软件也逐渐成为人们生活中的“必备”。各种手机软件改变了我们的出行、旅游、工作方式,改变了我们的生活方式,这背后都离不开软件工程专业。软件工程和其他专业一样,一般而言,大部分学生往往选择在大三第二学期开始复习(二月份左右),一直到考研初试结束的12月份。当然,有些同学可能基础好,英语等各方面实力都比较强,所以在十月份才开始准备都不吃,但也有一些同学,可能刚刚上大学就准备考研的同学,无论如何,每个人都是不一样的,大家在打算考研的时候,一定要按照自己的实际情况来决定自己应该什么时候开始备考。最后我想说,考研不是一蹴而就的事情,无论是软件工程还是其他专业,都需要认真备考,加油吧,考研党!

软件工程考研:专硕、学硕实力强校排名,2020考研党择校参考

软件工程20考研:专硕、学硕实力强校排名,2020考研党择校参考软件工程专业培养的方向就是程序员,在当前是一个比较热门的工科专业。软件工程专业热门的原因,一是因为毕业生的薪酬待遇高。软件工程专业毕业生平均薪酬水平排在各专业之首,一线城市的程序员,月薪过万的程序非常普遍。二是软件工程专业毕业生的社会需求量大。各个行业只要用到计算机,就会需求大量的软件技术人员,在软件设计开发、软件测试、软件维护等方面,都有较多的人才需求。但是软件工程专业的缺点是工作辛苦加班多,年龄在35岁以后要考虑转岗。学习软件工程专业,最重要的是兴趣和悟性,或者说是天赋。在程序员行业中,很多程序员大咖其实是跨专业来当的程序员。本人机械类专业,我在大学有一个同班同学,毕业后就是去做了程序员,而且做得非常好。这位同学在上学时非常喜欢计算机,对计算机达到痴迷的程度。我上大学的那个年代,386、486还是主流机型,个人电脑还是贵重物品。这位同学家庭条件一般,也没钱买个人的电脑,平时多是去学校的公用机房实践学习。毕业后直接去找的软件设计类的工作,后来又跳槽到世界著名的大企业,在北京混的相当不错。平时也经常在网络上看到,某跨专业的程序员,技术水平怎么高。其实细想一下也是,如果不是技术水平高,也不会跨专业来做程序员了。软件工程2020学硕考研择校可以参考上表,实际上软件工程也可以跨专业报考。如果你真的对程序设计感兴趣,再加上一定的悟性,一定能够学好做好。怕只怕学生对程序设计不感兴趣或兴趣不足,或者虽然兴趣浓厚但是悟性太低。学习软件工程专业,不要太在乎学校的层次,要在乎是学校所在的城市。,上表则是2020考研专硕院校排名软件行业发展速度快,知识更新快。偏远地区学校,对行业发展的最新动态反应不灵敏,有的知识已经更新三两年,偏远地区还没反应,甚至几年后都没反应,一本老教材用上十几年甚至几十年。如果学习的是陈旧的知识,很难跟上这个行业的发展速度。所以,学习软件工程专业,最好到一线城市沿海城市,要去IT行业发达、软件人才需求旺盛的地区学习,这样的地区容易接触实践,院校对市场的反应快,知识更新快。

满天飞

华南理工大学软件工程2022考研初试科目、备考经验、参考书

招生院系:软件学院招生专业:083500 软件工程招生人数:35研究方向:01 软件工程理论与方法02 软件工程技术03 软件服务工程04 领域软件工程考试科目:① 101|思想政治理论 ② 201|英语一 ③ 301|数学一 ④ 408|计算机学科专业基础综合复试考核科目:963|程序设计(上机,限java、C、C#或C++语言)备考经验数学我是跟的张宇老师的视频课,但是刚开始我是自己把本科教材都过了一遍,自己不过的话,老师讲的时候会有听不懂的情况发生,建议刚开始把课本过一遍。跟着视频课看完之后,我用的是李永乐的复习全书,很全,而且讲解也很清晰。每个概念都要力求搞懂,搞明白,不要偷懒觉得自己知道就行了。有很多陷阱都是一些概念问题,所以不要忽视概念,定理的记忆和理解。书上的例题也要自己亲手算一算,只看的话马上就会忘得。线性代数我是看的李永乐的辅导讲义,配套还有一个视频课,一起看效果更佳。李永乐老师的线性代数应该不用多说了,讲的简单易懂。书上的例题也必须每道题都要会做,懂为什么要这么解,一般线代的题都是那几个讨论,例题我觉得足够了。卷子的话我是做了往年的真题,每天一套,按照考试时间来做,模拟考试氛围。模拟题做的是超越135,例题比较经典。专业课408知识点多且杂,个人建议复习时需要全面反复多遍,至少应该过完3遍,所以说408越早开始越好(当时我就是后期没时间,导致第三遍没有过完),当你过完3遍后你会觉得408也没有这么恐怖。我当时复习的顺序是数据结构、操作系统、计算机网络、计算机组成原理,当然你可以选择适合你的复习顺序。第一遍,最好结合课程以及配套辅导书,过完一小节或几小节后就开始做辅导书上的选择题,此时并不建议做后面的大题,因为大题涉及的知识点比较多可能你还没学到或学透,也无需死抠知识点,只需要了解408整体的知识框架。这一遍,建议在6月中旬前完成。第二遍,就可以做辅导书上的大题了,当然回顾之前的知识点也非常重要,此时你可能会接触到一些陌生的知识点,这时你可以翻阅各科目的配套教材或者通过考研文库查阅来获取相关解析。这一遍,建议在8月中旬完成。第三遍,主要是对所有知识点的回顾与总结,建议在9月中旬完成。过完三遍后你基本具备了通过目录就能想起这章大概有哪些重要知识点的能力,还可以补充看看《新祥旭考研华南理工大学软件工程辅导班讲义》。十月份就可以开始做真题与模拟题了,在此强调真题真的非常非常重要,真题的重复率还是挺高的,每年都会有相似的题目,建议把大部分的题目都给吃透。真题做完后(建议留最近3-4年用于模拟),注意总结,这非常重要!

第二号

软件工程|复习「16-20」组考题

黑色字体是原本的答案,蓝色字体是补充整理后的答案,如果有错的话,我也没办法了……复习「16-20,16-20,4,4」考题组一、名词解释16.路径覆盖路径覆盖要求设计足够多的测试用例,在白盒测试法中,覆盖程度最高的就是路径覆盖,因为其覆盖程序中所有可能的路径。在一个控制流图中,路径是由链组成,包含一串指令或语句,设计足够多的测试用例,执行所有可能穿过程序控制流程的路径,尽可能覆盖程序中的所有可能的路径。17.软件生存周期软件生存周期是指软件产品从考虑其概念开始到该软件产品交付使用,直至最终退役为止的整个过程,一般包括计划、分析、设计、实现、测试、集成、交付、维护等阶段。18.基线是一个软件配置管理的概念,它能够帮助我们在不严重阻碍合理变更的条件下控制变更,IEEE中这样定义基线:已经通过正式审评和批准的规格说明或产品,他可以作为进一步开发的基础,并且只有通过正式的变更控制规程才能修改它19.控制耦合当操作A调用操作B,并且向B传递了一个控制标记时,就会发生此种耦合控制耦合: 如果一个模块调用另一个模块时,传递的是控制变量(如开关、标志等),被调模块通过该控制变量的值有选择地执行块内某一功能。20.协作图协作图表示一组对象之间的动态协作关系,反映收发消息的对象的结构组织。协作图是动态图的另一种表现形式,强调参加交互的各对象结构的信息。协作图是一种类图,包含类元角色和关联角色,而不仅仅是类元和关联。协作图强调参加交互的各对象的组织。二、简答16.什么是CMM关键过程域,举例说明其含义。关键过程域是指一系列相互关联的操作活动,这些活动反映了一个软件组织改进过程时必须集中精力改进的几个方面。换句话说,关键过程域标识了达到某个成熟度等级时所必须满足的条件。如软件成熟度模型中第 4 级(管理级)有 2 个关键过程域,主要的任务是为软件过程和软件产品建立一种可以理解的定量的方式。关键过程域是定义成熟度等级的主要构造块,每一个关键过程域是一组相关的活动,通过它们的共同执行来达到一组目标。关键过程域标识了为达到一个成熟度级别而必须强调的问题。例如:CMM2级中的关键过程域"软件项目规划",涉及工作量估算,必要承诺的建立,以及工作执行计划的定义。17.影响软件成本的主要因素有哪些具体方面?软件的规模、复杂度、开发工具、开发人员的业务素质、软件工程管理水平及开发工作环境等。从系统软件生命周期构成的两阶段即开发阶段和维护阶段看,系统软件的成本由开发成本和维护成本构成。其中开发成本由软件开发成本、硬件成本和其他成本组成,包括了系统软件的分析/设计费用(含系统调研、需求分析、系统分析)、实施费用(含编程/测试、硬件购买与安装、系统软件购置、数据收集、人员培训)及系统切换等方面的费用;维护成本由运行费用(含人工费、材料费、固定资产折旧费、专有技术及技术资料购置费)、管理费(含审计费、系统服务费、行政管理费)及维护费(含纠错性维护费用及适应性维护费用)。 18.画数据流图原则是什么?(1)明确系统界面。 (2)自顶向下逐层扩展。(3)合理布局。(4)数据流图绘制过程,就是系统的逻辑模型的形成过程,必须始终与用户密切接触,详细讨论,不断修改,也要和其他系统建设者共同商讨一求一致意见。数据流图是一种最常用的结构化分析工具,它从数据传 递和加工角度,以图形的方式刻画系统内的数据运动情况。画数据流图的原则是:1)确定系统的输入和输出2)由外向里画系统的顶层数据流图3)自顶向下逐层分解,画出分层数据流图19.什么叫基本路径测试,如何确定基本路径?实际程序中路径是个很庞大的数字,所有路径覆盖是不现实的,测试中把路径数压缩在一定范围内,称为基本路径测试。在程序控制流图的基础上,通过分析控制构造的环路复杂性测度,导出基本可执行路径的基本集合。从一个程序的入口开始,执行所经历的各个语句的完整过程。在不能保证做到所有路径覆盖的前提下,需要对路径数量进行压缩,如果可以保证程序中每一个可执行的路径可以至少运行一次,则这种测试方法就是通常所说的基本路径测试方法如何确定基本路径:画出程序的控制流图计算环路复杂度,得到独立路径条数,条数为基本路径测试法所必须的测试用例数目的上界导出基本路径集,确定程序的独立路径根据3设计测试用例的输入数据和预期输出20.简述USE/CASE的作用。(原作答有问题)用例图由一组用例、参与者以及它们之间关系所组成。一个系统的用例图反映了整个系统提供的外部可见服务和工作范围。用例图的作用:(1)清晰表达用户的需求:由专门描述可被最终用户,分析人员和测试人员看到的系统行为的用例组成,分析人员使用用例图来描述用户的需求,与用户和设计人员交流,最终用户使用用例视图来理解要完成的系统的功能,确认是否符合自己的要求,测试人员根据用例图来验证实现后的系统是否符合用户的需求。用例图从一定程度上驱动了需求分析后各个阶段的开发工作。(2)很好描述系统需求:用例图还应注意清晰的定义系统边界,从执行者的角度来命名用例,避免与执行者的名字不一致,避免与执行者之间的关系太复杂等。用例可以很好的描述系统需求,但是有些场合用例来描述是不适合的,这就需要用来文档描述,——扩展————(图片来自网络)三、论述4.结合软件工程要素,论述面向对象方法的思想答:软件工程的方法(开发方法)、工具(支持方法的工具)、过程(管理过程)称为软件工程的三要素。方法支撑过程和工具;过程和工具促进方法学的研究。面向对象方法(Ohject--Oriented Method,OOM)是一种运用对象、类、消息传递、继承、封装、聚合、多态性等概念来构造软件系统的软件开发方法。它的优点是:所开发的程序是面向对象程序,直接描述客观世界的对象及其相互关系;具有模块性、继承性和类比性;可广泛支持对象的重用;十分有利于开发过程的质量控制;极大地减小了系统维护的复杂程度。缺点是:面对大型系统时,若缺乏整体系统设计划分,易造成系统结构不合理、各部分关系失调等问题;只能在现有业务基础上进行分类整理,较难从科学管理角度进行理顺和优化;需要一定的软件支持环境。因此,通过三要素的关系可以看出,面向对象方法决定了它需要一定的开发工具和严格合理的管理过程来支持,同时,在这两个条件得到满足的情况下,面向对象的方法将能够极大的方便、优化工程的开发以及管理维护。软件工程要素包含:方法(开发方法)、工具(支持方法的工具)、过程(管理过程)三要素。方法支撑过程和工具;过程和工具促进方法学的研究。面向对象(Object+oriented,简称OO)方法是以面向对象思想为指导进行系统开发的一类方法的总称。以对象为中心,以类和继承为构造机制来抽象现实世界,并构建相应的软件系统。面向对象方法包括面向对象分析、面向对象设计和面向对象程序语言。(1)面向对象分析(OOA)面向对象分析阶段是通过行为分析法认定对象及他们之间的关系。面向对象的分析模型通常使用UML的建模方法进行建模。常用的工具如:用例图、类图、顺序图、活动图(2)面向对象设计(OOD)是OO方法中一个中间过渡环节。主要作用是对OOA分析的结果作进一步的规范化整理,以便能够被OOP直接接受。即确定对象结构、属性、方法等内容,对之前的模型进行优化等。(3)面向对象编码(OOP)一种程序设计范型,同时也是一种程序开发的方法。对象指的是类的实例。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。面向对象方法遵循的基本原则有:(1)抽象:抽象是指从事物中舍弃个别的、非本质的特征,而抽取共同的本质特征的做法。(2)分类:按照某种原则划分出事物的类别,以便有助于认识复杂世界。在面向对象中分类就是把具有相同属性和方法的对象化为一类,用类作为这些对象的抽象描述。分类实际上是把抽象原则运用于对象描述时的一种表现形式。(3)封装:封装就是用对象把属性和和操纵这些属性的操作包装起来,形成一个独立的实体单元,体现了事物的相对独立性。另一个含义则是信息隐蔽,即外界不能直接存取对象的内部属性以及隐藏起来的内部操作,外界也不用知道对象操作的内部实现细节。(4)多态性 :多态性是指在具有继承关系的类层次结构中可以定义同名的操作或者属性,但是这些属性和操作具有不同的含义,即具有不同的数据类型或表现出不同的行为。面向对象方法对于面向对象方法的程序设计,其唯一组成是对象,对象之间的关系构成了程序的基本框架。由于对象是一个数据、功能统一的实体,故开发人员需要实现对象内部的数据结构与算法,不过显然实现难度比一个完整的程序要小很多。之后的关注点就是协调好对象之间的信息传递,使其能协同工作,发挥预期效果。面向对象方法采用自顶向下的设计思想,先设计父类,再设计子类,并继承父类的属性与方法,而对象则是在最后程序运行过程中动态生成。(不用答这么多,大体思路是这样)四、应用题4.设计一个简单的学生选课系统,系统能够注册符合要求的学生,学生注册以后就能选课。选课过程如下:(1)浏览限选课名列表,然后根据课程的任课教师、时间、地点和人数限制决定是否选课成功;(2)任课教师也可以根据情况,提供新的课程或修改过去课程的说明;(3)教务管理人员统一管理注册的情况,可以删除、修改学生、教师和课程的权限。要求:(1)请设计出功能模型,用用例(use-case)图表示(10分)。(2)请设计出对象模型,要求画出对象图,标出多重性、角色、限定词和关系(10分);(3)请设计出动态模型,要求画册出学生成功注册后选课的时序图(10分);

皇女

软件工程专业的女生如果想从事教育岗位,大三之后如何准备考研

首先,对于软件工程专业的女生来说,如果未来要想进入教育领域发展,考研是比较现实的选择,而如果未来要想进入高等教育领域发展,往往还需要继续攻读博士研究生,虽然学习的周期会更长一些,但是女生从事教育岗位往往会获得更长的职业生命周期,岗位附加值也并不算低。软件工程专业考研的学习压力还是比较大的,如果从大三上学期开始准备,时间上还是够用的,如果自身的数学和外语基础比较好,还可以考虑提升一下目标学校的层次,当然在复习的初期并不需要急于确定目标学校,在进入大三下学期之后,可以根据自身的复习情况再确定最终的目标学校。在复习的过程中,要重视以下三件事:第一:制定合理的学习计划。计算机相关专业的考研内容通常都比较多,主要是专业课涉及到的内容比较多,而且难度也相对比较高,包括数据结构、操作系统、计算机网络和计算机组成原理等,这些课程往往都需要一个系统的学习规划。在复习的初期就应该保障每天有5个小时以上的有效复习时间,尽量把学习任务往前赶,这会为后续的复习留出足够的空间。第二:重视学习渠道的搭建。学习渠道和环境对于考研复习的效果会产生非常直接的影响,一方面要重视课堂的学习时间,尤其是考研初试所涉及到的专业课,另一方面还需要考虑如何获得更多的考研复习材料,如果能够得到专业老师的指导,会有更好的学习效果。第三:重视交流。在考研复习的过程中,除了要埋头苦学,还需要抬头交流,要多与专业人士交流,也要重视研究生教育的发展趋势,比如当前不同地区的研究生培养计划往往不同,一个合理的选择能够提升自己的上岸几率。我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。如果有互联网、大数据、人工智能等方面的问题,或者是考研方面的问题,都可以私信我!

四分

普通大学软件工程专业的大二学生,要想考研双一流大学该如何准备

首先,当前计算机、软件工程专业是考研的热点专业,虽然相关专业的研究生人才培养能力在不断提升,但是考生数量的提升速度更快,很多数学、物理、机械、土木、测绘等专业的同学也会跨考计算机相关专业,所以如果要考研一所双一流大学还是具有一定难度的。对于软件工程专业的大二同学来说,目前开始准备考研会有更充足的准备时间,可以从以下几个方面着手:第一:重视数学和英语。数学和英语的考研复习可以早一点开始展开,一方面这两门课程的内容比较多,需要一个长时间的积累过程,另一方面这两门课程也有一定的难度。要重视大二期间的课堂学习时间,积极与老师进行交流并明确自己的考研意愿,此时也会获得更多学习建议。第二:重视专业比赛。大二期间依然有时间来参加专业比赛,专业比赛的类型比较多,尽量选择与本专业关联度比较高的专业比赛,另外也可以重视一下数学建模大赛,参加这些比赛会为自己积累一定的实践经验,对于考研的复试会有比较积极的影响。第三:重视程序设计知识。程序设计知识对于考研初试和复试都有比较重要的影响,所以一定要重视编程知识的学习,在大二期间要重视C语言的学习,目前一部分学校在考研初试阶段也会考察C语言。另外,掌握C语言对于后续学习数据结构、操作系统等课程也有非常直接的影响。最后,对于普通二本大学的同学来说,要想考研双一流大学,除了要早做准备之外,还可以重点考虑一下专硕,从大的人才培养趋势来看,未来专硕的人才培养规模会进一步提升。我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。如果有互联网、大数据、人工智能等方面的问题,或者是考研方面的问题,都可以私信我!

穿越爱

软件工程专业2021年参加考研,现在开始准备是否有点早

首先,软件工程专业是当前的考研热点专业之一,整体的考研竞争是比较激烈的,所以越早准备越好。软件工程专业虽然就业情况一直比较好,但是随着IT(互联网)行业的结构升级,大型科技公司对于研发型人才的需求量也越来越大,这在很大程度上推动了研究生人才的薪资待遇不断提升,所以目前不少IT行业的职场人(尤其是初级技术人员),也希望通过考研来提升自身的岗位级别,这进一步加剧了软件工程专业考研的竞争。软件工程专业在考研复习的初期,需要根据自身的知识基础和学习能力选择目标高校,初期可以多选择几所不同层次的高校,然后抓紧制定复习计划。由于数学和外语需要一个长时间的学习和积累过程,所以这两门课程可以率先复习,而且在考试前最好能够完成三轮以上的复习。软件工程专业的专业课考试有三大特点,其一是考试科目多,不少重点大学在初试和复试阶段几乎会考察所有的专业课,通常至少涉及到7门以上,所以整体的复习压力是比较大的;其二是考试难度大,往年不少考生都反映考试时间不够用;其三是更注重实践能力考察,不少重点高校在复试期间会安排上机考试。所以,对于软件工程专业的学生来说,如果想考进学科实力比较强的大学,一定要早做准备且注重提升自身的复习效率。软件工程专业在考研时需要重点关注一下考研方向,目前大数据、云计算、物联网、人工智能等方向都是不错的选择,在选择具体方向的时候,也需要结合目标高校的实际情况,尽量选择目标高校的优势学科。我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。如果有互联网、大数据、人工智能等方面的问题,或者是考研方面的问题,都可以在评论区留言,或者私信我!

解之也悲

软件工程|复习「56-60」组考题

黑色字体为原本答案,蓝色字体修改补充了复习题组「56-60/56-60/12/12」一、名词解释56.集成测试根据软件设计规定的软件体系结构,把已测试过的模块组装起来,在组装时,检查程序结构组装的正确性。集成测试是在单元测试的基础上,把软件单元按照软件概要设计规格说明的规格要求,组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求。集成测试包括BigBang、自顶向下、自底向上、核心系统集成、高频集成。57.团队软件过程团队软件过程是为开发软件产品的开发团队提供指导,TSP的早期实践侧重于帮助开发团队改善其质量和生产率,以使其更好的满足成本及进度的目标。加上PSP帮助高绩效的工程师在一个团队中工作,来开发有质量保证的软件产品,生产安全的软件产品,改进组织中的过程管理。58.项目计划评审技术计划评审技术就是工程项目当作一种系统,用网络图或者表格或者矩阵来表示各项具体工作的先后顺序和相互关系,以时间为中心,找出从开工到完工所需要时间的最长路线,并围绕关键路线对对系统进行统筹规划,合理安排以及对各项工作的完成进度进行严密的控制,以达到用最少的时间和资源消耗来完成系统预定目标的一种计划与控制方法。PERT是利用网络分析制定计划以及对计划予以评价的技术。它能协调整个计划的各道工序,合理安排人力、物力、时间、资金,加速计划的完成。在现代计划的编制和分析手段上,PERT被广泛的使用,是现代化管理的重要手段和方法。59.内聚内聚是模块功能强度(一个模块内部各个元素彼此结合的紧密程度)的度量。内聚是指一个模块的内部功能相互关联的紧密程度,执行某个特定的任务或相关任务组的模块是具有高内聚性的,而没有核心功能只是将大量功能凑到一起的模块具有低内聚性。60.主动对象主动对象内部包含一个线程,可以自动完成动作或改变状态。主动对象是内部拥有自己的控制线程的对象。二、简答题56.为什么要进行阶段评审?评审项目的状态,并确定项目是否应该进入下一阶段。项目的资源状况(人力、资金)项目的风险状况项目的技术进展项目的规模里程碑状态(进度)软件的质量保证工作不能等到编码阶段结束之后再加以实施,其理由为:第一,大部分错误始于编码之前;第二,错误的发现与修改时间越晚,需要付出的代价就越高。因此,本原则意味着,在软件开发的每个阶段应该进行严格的评审,以便尽早发现软件开发过程中的错误。57.软件维护分几类,每类的内容是什么?软件维护在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。维护的分类 (1)改正性维护:在软件交付使用后,因开发时测试的不彻底、不完全,必然会有部分隐藏的错误遗留到运行阶段。这些隐藏下来的错误在某些特定的使用环境下就会暴露出来。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程就叫做改正性维护 。(2)适应性维护:在使用过程中,外部环境(新的硬、软件配置)数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化 。(3)完善性维护:在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为满求了足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。(4)预防性维护:采用先进的软件采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编制和测试。58.什么叫模块化,为什么要划分模块?指解决一个复杂问题时自顶向下逐层把系统划分成若干模块的过程第一,把一个系统分解成各个不同的子模块,不同的开发者专注于对其中某一模块的开发,一方面实现了劳动的分工,另一方面也提高了自由软件开发的效率。第二,对于开发者而言,基于模块化的自由软件开发具有更大的吸引力,其在参与开发过程中可以得到更高的期望收益。第三,在非模块化的软件开发过程中,存在着严重的“搭便车”现象,当一个开发者选择参与开发,其余的开发者就会选择“搭便车”,最终会导致软件的供给不足;在基于模块化的开发过程中,所有的开发者都更倾向于参与开发不同的模块,从而实现整个系统的开发。模块化就是有组织地把一个大文件拆成独立并互相依赖的多个小模块。模块内部有许多私有属性,只向外暴露一部分公开的接口(如可以修改私有属性的方法等),模块化是一种处理复杂系统分解为更好的可管理模块的方式。为什么要划分模块:1.高内聚低耦合,有利于团队作战,当项目很复杂的时候,将项目划分为子模块分给不同的人开发,最后再组合在一起,这样可以降低模块与模块之间的依赖关系体现低耦合,模块又有特定功能体现高内聚。2.可重用,方便维护,模块的特点就是有特定功能,当两个项目都需要某种功能的时候,我们定义一个特定的模块来实现该功能,这样只需要在两个项目中都引入这个模块就能够实现该功能,不需要书写重复性的代码;并且当需求变更该功能需要改变的时候,我们直接修改该模块,这样就能够修改所有项目的功能,维护起来很方便。3、通过 exports 暴露接口。这意味着不需要命名空间了,更不需要全局变量。这是一种彻底的命名冲突解决方案。4、通过 require 引入依赖。**这可以让依赖内置,开发者只需关心当前模块的依赖,其他事情 Sea.js/ Require.js 都会自动处理好59.比较在组装测试中,自顶向下与自底向上、深度优先与宽度优先的优缺点。自顶向下优点:<1>较早地验证主要的控制和判断点。<2>可以首先实现和验证一个完整的软件功能,增强信心;<3>减少了测试驱动程序开发和维护的费用<4>可以和开发设计工作一起并行执行集成测试,能够灵活的适应目标环境;<5>容易进行故障隔离和错误定位。缺点:桩模块的开发和维护费用大。自底向上优点<1>减少了桩模块的工作量;<2>容易对错误进行定位。缺点<1>直到最后一个模块加进去之后才能看到整个系统的框架;<2>只有到测试过程的后期才能发现时序问题和资源竞争问题;<3>驱动模块的设计工作量大;<4>不能被及时发现高层模块设计上的错误。自底向上的组装测试方案是工程实践中最常用的测试方法。相关技术也较为成熟。它的优点很明显:管理方便、测试人员能较好地锁定软件故障所在位置。但它对于某些开发模式不适用,如使用XP开发方法,它会要求测试人员在全部软件单元实现之前完成核心软件部件的组装测试。尽管如此,自底向上的组装测试方法仍不失为一个可供参考的组装测试方案。自顶向下集成的优点在于能尽早地对程序的主要控制和决策机制进行检验,因此较早地发现错误。缺点是在测试较高层模块时,低层处理采用桩模块替代,不能反映真实情况,重要数据不能及时回送到上层模块,因此测试并不充分。自底向上集成方法不用桩模块,测试用例的设计亦相对简单,但缺点是程序最后一个模块加入时才具有整体形象。它与自顶向综合测试方法优缺点正好相反。60.简述RUP(Rational Unified Process)的基本内容RUP(Rational Unified Process,统一软件开发过程,统一软件过程)是一个面向对象且基于网络的程序开发方法论。统一软件开发过程)是一个面向对象且基于网络的程序开发方法论。内容:迭代式开发、管理需求、体系结构、可视化建模、验证软件质量、控制软件变更RUP是风险驱动的、基于Use Case技术的、以架构为中心的、迭代的、可配置的软件开发流程。我们可以针对RUP所规定出的流程,进行客户化定制,定制出适合自己祖师的使用的软件流程。RUP是一个流程定义平台,是一个流程框架。内容:迭代式开发、管理需求、体系结构、可视化建模、验证软件质量、控制软件变更三、论述题12.论述软件测试与软件质量的关系软件质量是指软件产品的特性可以满足用户的功能、性能需求的能力。软件过程是人们通常所说的软件生命周期中的活动,一般包括软件需求分析、软件设计、软件编码、软件测试、交付、安装和软件维护。随着软件过程的开始,软件质量也逐渐建立起来。软件过程的优劣决定了软件质量的高低,好的过程是高效高质量的前提。人员和过程是决定软件质量的关键因素。高质量的人员和好的过程应该得到好的产品。软件系统的开发包括一系列生产活动,其中由人带来的错误因素非常多,错误可能出现在程序的最初需求分析阶段,设计目标可能是错误的或描述不完整,也可能在后期的设计和开发阶段,因为人员之间的交流不够,交流上有误解或者根本不进行交流,所以尽管人们在开发软件的过程中使用了许多保证软件质量的方法和技术,单开发出的软件中还会隐藏许多错误和缺陷。可见,只有通过严格的软件测试,才能很好的提高软件质量,而软件质量并不是依靠软件测试来保证的,软件的质量要靠不断的提高技术水平和改进软件开发过程来保证,软件测试只是一种有效的提高软件质量的技术手段,而不是软件质量的安全网。软件测试能够找出软件缺陷,确保软件产品满足需求。但是测试不是质量保证,二者并不等同。测试可以查找错误并进行修改,从而提高软件产品的质量。软件测试避免错误以求高质量,并且还有其他方面的措施以保证质量问题,如软件质量保证。正规的软件测试系统主要包括:制定测试计划、测试设计、实施测试、建立和更新测试文档。而软件质量保证的工作主要为:制定软件质量要求、组织正式度量、软件测试管理、对软件的变更进行控制、对软件质量进行度量、对软件质量情况及时记录和报告。软件质量保证的职能是向管理层提供正确的可行信息,从而促进和辅助设计流程的改进。软件质量保证的职能还包括监督测试流程,这样测试工作就可以被客观地审查和评估,同时也有助于测试流程的改进。二者的不同之处在于软件质量保证工作侧重对软件开发流程中的各个过程进行管理与控制,杜绝软件缺陷的产生。而测试则是对已产生的软件缺陷进行修复。四、应用题12.某网站开发新的邮件系统供用户使用,现需要做系统测试。请以“输入正确的用户邮件地址和错误的密码”为例,完成如下的测试用例中(1)、(2)、(3)和(4)部分。测试用例:l 测试目标:( 1 )(5分);l 测试环境:Windows XP 操作系统和浏览器IE8;l 输入数据:( 2 )(5分);l 步骤:( 3 )(15分);l 期望结果( 4 )(5分)。l 测试目标:(检验客户输入正确邮箱地址和错误密码时候会出现的现象)(5分);l 测试环境:Windows XP 操作系统和浏览器IE8;l 输入数据:(用户名,密码)(5分);l 步骤:(①输入正确用户邮件地址②输入错误密码③提交观察结果)(15分);l 期望结果(系统反馈输入密码错误提示,不会进入邮箱)(5分)。