武汉大学2013级本科软件工程试卷
软件工程试卷及答案(多套)
软件工程试题及答案第一局部选择题一、单项选择题每题1分,共20分。
〔在每题的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内〕1.在以下工具与环境中〔〕属于较早期的CASE。
A.基于信息工程CASE B.人工智能CASEC.结构的基于图形CASE D.集成的CASE环境2.Putnam本钱估算模型是一个〔〕模型。
A.静态单变量B.动态单变量C.静态多变量D.动态多变量3.在McCall软件质量度量模型中,〔〕属于面向软件产品修改。
A.可靠性B.可重用性C.适应性D.可移植性4.ISO的软件质量评价模型由3层组成,其中用于评价设计质量的准那么是〔〕A.SQIC B.SQMC C.SQRC D.SQDC5.软件复杂性度量的参数包括〔〕A.效率B.规模C.完整性D.容错性6.对象实现了数据和操作的结合,使数据和操作〔〕于对象的统一体中。
A.结合B.隐藏C.封装D.抽象7.软件调试技术包括〔〕A.边界值分析B.演绎法C.循环覆盖D.集成测试8.瀑布模型的存在问题是〔〕A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求9.软件测试方法中的静态测试方法之一为〔〕A.计算机辅助静态分析B.黑盒法C.路径覆盖D.边界值分析10.软件生命周期中所花费用最多的阶段是〔〕A.详细设计B.软件编码C.软件测试D.软件维护11.第一个表达结构化编程思想的程序设计语言是〔〕A.FORTRAN语言B.Pascal语言C.C语言D.PL/1语言12.程序的三种根本控制结构是〔〕A.过程、子程序和分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移13.在详细设计阶段,经常采用的工具有〔〕A.PAD B.SA C.SC D.DFD14.详细设计的结果根本决定了最终程序的〔〕A.代码的规模B.运行速度C.质量D.可维护性15.需求分析中开发人员要从用户那里了解〔〕A.软件做什么B.用户使用界面C.输入的信息D.软件的规模16.结构化程序设计主要强调的是〔〕A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序易读性17.IDEF。
《软件工程》期末考试参考题及答案
得分评卷人一、填空题(每空1分,共20分)1.软件生存周期一般可分为__问题定义__、可行性研究、_需求分析_____、设计编码、__测试________、运行与维护阶段。
2.按软件的功能进行划分,软件可以划分为系统软件、支撑软件和应用软件。
3.可行性研究主要集中在以下四个方面经济可行性、技术可行性、法律可行性和抉择。
4.用户界面的可使用性是用户界面设计最重要的也是最基本的目标。
5.常见的软件概要设计方法有3大类:以数据流图为基础构造模块结构的___结构化设计方法_________,以数据结构为基础构造模块的__jackson方法__________,以对象、类、继承和通信为基础的__面向对象设计方法__________。
6.__数据流图________和__数据字典___共同构成系统的逻辑模型。
7.软件测试的方法有__分析方法________和___非分析方法_______(即黑盒法)。
8.单元测试一般以___白盒_____________测试为主,___黑盒______测试为辅。
9.成本估计方法主要有__自底向上估计________、_自顶向下估计_________和算法模型估计三种类型。
得分评卷人二、单项选择题(每小题2分,共10分)1.下列哪个阶段不属于软件生存周期的三大阶段(C)。
A、计划阶段B、开发阶段C、编码阶段D、维护阶段2.需求分析是(A)。
3.?A、软件开发工作的基础?????????B、软件生存周期的开始4.?C、由系统分析员单独完成的?????D、由用户自己单独完成的5.原型化方法是软件开发中一类常用的方法,它与结构化方法相比较,更需要(B)。
6.?A、明确的需求定义???????????????B、完整的生命周期7.?C、较长的开发时间???????????????D、熟练的开发人员8.软件维护时,对测试阶段未发现的错误进行测试、诊断、定位、纠错,直至修改的回归测试过程称为(A)。
最新2013年软件工程期末试卷(自己整理的-很完整的)
1、瀑布模型把軟件生命周期劃分為八個階段:問題の定義、可行性研究、軟件需求分析、系統總體設計、詳細設計、編碼、測試和運行、維護。
八個階段又可歸納為三個大の階段:計劃階段、開發階段和(C)。
A、詳細計劃B、可行性分析C、運行階段D、測試與排錯2、從結構化の瀑布模型看,在它の生命周期中の八個階段中,下面の幾個選項中哪個環節出錯,對軟件の影響最大(C)。
A、詳細設計階段B、概要設計階段C、需求分析階段D、測試和運行階段3、在結構化の瀑布模型中,哪一個階段定義の標准將成為軟件測試中の系統測試階段の目標(A)。
A、需求分析階段B、詳細設計階段C、概要設計階段D、可行性研究階段4、軟件工程の出現主要是由於(C)。
A.程序設計方法學の影響B.其它工程科學の影響C.軟件危機の出現D.計算機の發展5、軟件工程方法學の目の是:使軟件生產規範化和工程化,而軟件工程方法得以實施の主要保證是(C)A、硬件環境B、軟件開發の環境C、軟件開發工具和軟件開發の環境D、開發人員の素質6、軟件開發常使用の兩種基本方法是結構化和原型化方法,在實際の應用中,它們之間の關系表現為(B)A、相互排斥B、相互補充C、獨立使用D、交替使用7、UML是軟件開發中の一個重要工具,它主要應用於哪種軟件開發方法(C)A、基於瀑布模型の結構化方法B、基於需求動態定義の原型化方法C、基於對象の面向對象の方法D、基於數據の數據流開發方法8、在下面の軟件開發方法中,哪一個對軟件設計和開發人員の開發要求最高(B)A、結構化方法B、原型化方法C、面向對象の方法D、控制流方法9、結構化分析方法是一種預先嚴格定義需求の方法,它在實施時強調の是分析對象の(B)A、控制流B、數據流C、程序流D、指令流10、軟件開發の結構化生命周期方法將軟件生命周期劃分成(A)A、計劃階段、開發階段、運行階段B、計劃階段、編程階段、測試階段C、總體設計、詳細設計、編程調試D、需求分析、功能定義、系統設計11、軟件開發中常采用の結構化生命周期方法,由於其特征而一般稱其為(A)A、瀑布模型B、對象模型C、螺旋模型D、層次模型12、軟件開發の瀑布模型,一般都將開發過程劃分為:分析、設計、編碼和測試等階段,一般認為可能占用人員最多の階段是(C)A、分析階段B、設計階段C、編碼階段D、測試階段三.判斷1.軟件の開發與運行經常受到硬件の限制和制約。
2013软件工程试题及参考答案)
《软件工程》试题(第1套)第一部分选择题一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.经济可行性研究的范围包括(C)A.资源有效性 B.管理制度 C.效益分析 D.开发风险2.结构化设计方法在软件开发中用于(A)。
A、概要设计B、详细设计C、程序设计D、测试用例设计3.程序的三种基本控制结构是( B )A.过程、子程序和分程序 B.顺序、选择和重复C.递归、堆栈和队列 D.调用、返回和转移4.软件测试中,白盒法是通过分析程序的( B )来设计测试用例的。
A、应用范围B、内部逻辑C、功能D、输入数据5.软件维护费用高的主要原因是( C )。
A、人员少B、人员多C、生产率低D、生产率高6.软件质量必须在(D)加以保证。
A、开发之前B、开发之后C、可行性研究过程中D、设计与实现过程中7.确认测试主要涉及的文档是( A )。
A、需求规格说明书B、概要设计说明书C、详细设计说明书D、源程序8.模块的内聚性最高的是( D )A.逻辑内聚B.时间内聚C.偶然内聚D.功能内聚9.软件开发过程中,抽取和整理用户需求并建立问题域精确模型的过程叫( D )A.生存期 B.面向对象设计 C.面向对象程序设计 D.面向对象分析10.原型化方法是用户和设计者之间执行的一种交互构成,适用于( A )系统。
A.需求不确定性高的 B.需求确定的C.管理信息D.实时11、 CMM提供了一个框架,将软件过程改进的进化步骤组织成5个成熟度等级。
除第1级外,每个等级都包含了实现该成熟度等级目标的若干( B )。
A 关键实践B 关键过程域C 软件过程能力D 软件过程12、( A )是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。
A 软件过程B 软件工具C 质量保证D 软件工程13.下列关于瀑布模型的描述正确的是( D )。
武汉大学2013级本科软件工程试卷
武汉大学计算机学院2014-2015学年度第二学期 2013级《软件工程》期末考试试卷(A卷)专业:________________________ 姓名:______________ 学号:__________________₪₪₪₪₪₪₪₪₪₪注意:请将所有答案均写在答题纸上,并标明题号₪₪₪₪₪₪₪₪₪₪一.选择(单选)填空题(共30分,第1-28题为每小题1分;第29题为2分)软件生产的复杂性和高代价,使大型软件的生产出现危机,下述都是软件危机的主要表现,除了 1. 。
产生软件危机的原因主要有 2. 。
为解决软件危机,人们提出了软件工程的方法,即用工程化的原则指导软件的生产、维护和管理,以达到 3. 的目标。
1. (A)生产成本过高(B)开发进度难以控制(C)质量难以保证(D)硬件发展滞后,使软件产品的性能达不到用户要求2. (A)不重视需求,需求获取困难(B)开发过程的管理困难(C)生产过程缺乏科学的方法和工具(D)以上都是3. (A)节省开发成本(B)缩短开发周期(C)提高软件质量(D)经济地开发出高质量软件产品为便于进行有效地软件开发和管理,项目开发一般采用特定的软件过程模型。
瀑布模型是利用 4. 方法控制开发过程复杂性的软件过程模型,它适用于 5. 的项目。
而 6. 模型的优势在于快速完善和确定用户需求,从而降低了由于需求问题带来的软件开发风险,是一种实用的开发技术。
4. (A)项目划分(B)阶段划分(C)团队划分(D)成本划分5. (A)需求难以获取(B)需求经常变动(C)需求比较熟悉(D)风险很大6. (A)原型(B)增量(C)迭代(D)喷泉可行性研究是 7. 阶段的重要步骤,其目的是 8. 。
它的主要任务有 9. 。
为此,通常需要计算投资回收期,它是指 10. 。
7. (A)软件定义(B)软件计划(C)需求分析(D)软件管理8. (A)证明软件开发项目可行(B)证明软件开发项目不可行(C)确定软件开发项目要不要做(D)深入调研项目的用户需求9. (A)成本—效益分析(B)资源分析和风险分析(C)分析比较各种解决方案(D)以上都是10.(A)项目投资开始到停止投资的时间区间(B)项目开始到产生经济效益的时间区间(C)项目开始到完成所需的时间(D)项目的累计经济效益等于投资额所需的时间结构化分析(SA)、结构化设计(SD)、Jackson方法,都是传统的软件开发过程中常用的方法。
软件工程期末试卷10套(带答案)
软件工程期末试卷10套(带答案)软件工程期末试题(一)单项选择题1.瀑布模型的存在问题是(B)A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求2.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(C)A.软件工程B.软件周期C.软件危机D.软件产生3.数据耦合、公共耦合、标记耦合、控制耦合的耦合性从低到高的顺序是(B)A.数据、公共、标记、控制B.数据、标记、控制、公共C.控制、数据、标记、公共D.控制、数据、公共、标记4.在SD方法中全面指导模块划分的最重要的原则是(D)A.程序模块化B.模块高内聚C.模块低耦合D.模块独立性5.软件测试的目的是(B)。
A.评价软件的质量B.发现软件的错误C.找出软件的所有错误D.证明软件是正确的6.在设计测试用例时,(A)是用得最多的一种黑盒测试方法。
A.等价类划分B.边界值分析C.因果图D.判定表7.需求分析最终结果是产生(B)。
A.项目开发计划B.需求规格说明书C.设计说明书D.可行性分析报告8.Jackson图中,模块框之间若有直线连接,表示它们之间存在(B)。
A.调用关系B.组成关系C.链接关系D.顺序执行关系9.软件详细设计的主要任务是确定每个模块的(C)。
A.功能B.外部接口C.算法和使用的数据结构D.编程10.为了提高软件的可维护性,在编码阶段应注意(D)A.保存测试用例和数据B.提高模块的独立性C.文档的副作用D.养成好的程序设计风格11.设年利率为i,现存入p元,若计复利,n年后可得钱数为(B)A.p﹡(1+i﹡n) B.p﹡(i+1)nC.p﹡(1+i)﹡n D.p﹡(i+n)12.在考察系统的一些涉及时序和改变的状态时,要用动态模型来表示。
动态模型着重于系统的控制逻辑,它包括两个图:一个是事件追踪图,另一个是(A)。
A.状态图B.数据流图C.系统结构图D.时序图13.对象实现了数据和操作的结合,使数据和操作(C)于对象的统一体中。
《软件工程》试卷参考答案
考试试卷课程名称:软件工程一、选择题1、软件是一种实体。
A.有形的C.虚拟的答案:D 2、在一个用面向对象编程语言实现的软件系统中,当一个对象内的一个方法被激活,则称之为向该对象发送-A.命令B.代码C.消息D.数据答案:C 3、在整个软件过程中,哪个阶段花费最长的时间和最多的成本?A.分析B.设计C.实现D.维护答案:D 4、是语义上相连的、由边界符号界定的、由一个聚合标识符标识的一系列程序语句。
A.for 循环B.模块C.if 语句D.文件答案:B 5、好的软件设计,模块应该是。
A.低内聚、高耦合B.低内聚、低耦合C.r¾内聚、低耦合D.高内聚、高耦合答案:C6、针对下面这个用例图,哪个说法是错误的?B.物理 D.逻辑A.学生能够与系统中的用例A交互。
B.用例A的成功执行必须包括用例B的成功执行。
C.如果用例A执行,用例C也必须执行。
D,用例C可能不被激活。
答案:C7、顺序图与协作图都是图。
A.交互B.状态C.协作D.顺序答案:C8、以下关于软件系统中的实体的说法,哪个是正确的?A.实体类必须有属性。
B.实体类必须是实实在在的物理实体。
C.实体类不与逻辑类和边界类打交道。
D,用例图中的参与者是系统的外部,所以参与者肯定不能成为软件系统内部的实体类。
答案:A9、以下哪个是自顶向下实现与集成的缺点?A.逻辑模块得不到充分的测试。
B.操作模块得不到充分的测试。
C.主要设计错误发现的晚。
D.故障隔离。
答案:B10、软件测试oA.谁都能做,不需要计划和技术B.对于高水平的软件开发团队来说是不需要的,或可有可无的C.是紧接在实现阶段后面的一个阶段D.包括可执行测试和非执行测试答案:D11、使软件系统适应新的操作系统而做的维护是维护。
A.纠错性维护B.完善性维护C.适应性维护D.哪个也不是答案:C128、以下哪个软件生命周期模型是最好的?A.瀑布模型B.快速原型模型C,增量模型D.不能简单地比较优劣,要具体情况具体分析答案:D13、多态与动态绑定是所特有的。
软件工程本科期末考试试卷.doc(含5篇)
软件工程本科期末考试试卷.doc(含5篇)第一篇:软件工程本科期末考试试卷.doc一:选择题1.中级结构成本模型COCOMO是一个()。
A 静态单变量模型B 动态单变量模型C 静态多变量模型D 动态多变量模型2.在软件质量模型中,()属于面向软件产品操作的质量因素。
A可用性B 可维护性C适应性D 互操作性3.面向对象的开发方法中,()将是面向对象技术领域内占主导地位的标准建模语言。
ABooch 方法B Coad 方法CUML语言D OMT 方法4.瀑布模型本质上是一种()。
A线性顺序模型B 顺序迭代模型C线性迭代模型D 及早见产品模型5.在快速原型模型的开发过程中,仅作为需求说明的补充形式的原型是()。
A探索型模型B 演化型模型C实验型模型D 提交型模型6.软件可维护性的特性中相互矛盾的是()。
A可修改性和可理解性B 可测试性和可理解性C效率和可修改性D 可理解性和可读性7.软件维护产生的副作用,是指()。
A开发时的错误B隐含的错误 C 因修改软件而造成的错误D 运行时误操作8.用黑盒技术设计测试用例的方法之一为()。
A因果图B逻辑覆盖C错误推测D人工检测9.需求分析阶段的任务是确定()A 软件开发方法B.软件开发工具 C 软件开发费用D 软件系统功能10.Ada语言是在Pascal语言基础上开发出来的,适用于()项目的应用领域。
A科学工程计算B数据库应用C实时处理D人工智能11.程序设计语言的工程特性之一为()。
A软件的可重用性B数据结构的描述性C抽象类型的描述性D数据库的易操作性12.软件详细设计的主要任务是确定每个模块的()。
A算法和使用的数据结构B外部接口C功能D编程13.PAD图为()提供了有力的工具。
A系统分析B软件的自动化生成C自动分析数据D测试软件14.软件结构图的形态特征能反映程序重用率的是()A深度B宽度C扇入D扇出15.在大型数据处理系统的功能分析与设计中,数据库的概念设计对应于系统开发的()。
大学本科软件工程期末试题及答案
⼤学本科软件⼯程期末试题及答案软件⼯程期末考试试题及参考答案⼀、单向选择题1、软件的发展经历了(D)个发展阶段。
A.⼀B.⼆C.三D.四2、需求分析的任务不包括(B)。
A.问题分析B.系统设计C.需求描述D.需求评审。
3、⼀个软件的宽度是指其控制的(C)。
A.模块数B.层数C.跨度D.厚度4、当模块中包含复杂的条件组合,只有(A)能够清晰地表达出各种动作之间的对应关系。
A.判定表和判定树B.盒图C.流程图D.关系图5、以下不属于逻辑覆盖的是(D)A.语句覆盖B.判定覆盖C.条件覆盖D.基本路径6、为适应软件运⾏环境的变化⽽修改软件的活动称为(B)A.纠错性维护B.适应性维护C.改善性维护D.预防性维护⼆、填空题1.软件可靠性是指在给定的时间间隔内,程序成功运⾏的(概率)2.⾼级语⾔:独⽴于机器,⾯向过程或⾯向(对象)3.软件项⽬管理的范围主要集中于3个P上,即:People⼈员、Problem问题和(过程)4.⼈机界⾯的风格第⼀代界⾯是命令和(询问)⽅式5.由于维护或在维护过程中其他⼀些不期望的⾏为引⼊的错误称为维护的(副作⽤)6.在公式V(G)= E –N + 2中:E为程序图G中边的总数;N为程序图中结点的总数。
V(G)⼜称为图G的环形(复杂度)7.任何⼀个基于计算机系统都可以⽤输⼊-处理-输出(IPO)图来描述,它将该系统转换成⼀个信息变换模型8.为提⾼可交互性⼀般对所有可能造成损害的⽤户操作动作,应坚持要求⽤户(确认),例如,提问“你确实要删除…?”9.⽂档是⼀种数据媒体和其上所记录的(数据)三、判断题(每⼩题2分,共24分,错误打X、正确打√)1.⽤户对软件需求的描述不精确,往往是产⽣软件危机的原因之⼀。
(√)2.⽬前,软件项⽬的进度安排的两种⽐较常⽤的⽅法是程序评估与审查技术(PERT)和关键路径法(CPM)。
(√)3.⼀个好的开发⼈员应具备的素质和能⼒包括善于与周围⼈员团结协作,建⽴良好的⼈际关系,善于听取别⼈的意见。
软件工程试题题库含答案
软件工程试题题库含答案一、软件开发过程1. 软件工程的定义是什么?答:软件工程是一门学科,研究并应用以系统化的方法开发和维护软件的原则、概念、方法和工具。
2. 请列举并解释软件开发过程的基本活动。
答:软件开发过程包括以下基本活动:- 需求分析与说明:收集和分析用户需求,并将其明确、清晰地记录下来。
- 软件设计:将需求转化为软件架构和设计规范,确定技术方案和实施计划。
- 编码和单元测试:根据设计规范进行编码,并进行单元测试以确保代码的正确性。
- 综合与测试:将各个模块进行综合,进行系统级测试以验证软件的正确性和稳定性。
- 软件发布与维护:发布软件版本,并对软件进行后续的维护和更新。
3. 请解释敏捷开发方法的基本原则。
答:敏捷开发方法的基本原则包括: - 个体和互动高于流程和工具:注重团队成员的沟通和合作,更加关注人与人之间的交互。
- 可工作的软件高于详尽的文档:重视软件的实际可用性和功能,减少过多的文档记录。
- 客户合作高于合同协商:与客户保持紧密的合作,及时获取反馈并调整软件开发进程。
- 相应变化高于遵循计划:灵活应对需求变化,允许在开发过程中根据实际需要进行调整。
二、需求工程1. 需求工程的目的是什么?答:需求工程的目的是准确、清晰地确定、分析和记录用户对软件系统的需求。
2. 请解释需求工程的关键活动。
答:需求工程的关键活动包括以下几项: - 需求获取:通过与用户交流和研究,确定用户的需求,并进行系统化的收集。
- 需求分析:对收集到的需求进行分析,确定需求的可行性和优先级,并拆解出软件需求规格说明。
- 需求规格说明:编写清晰、明确的需求规格文档,对软件需求进行详细描述和说明。
- 需求验证:与用户进行需求验证,确保需求规格与用户的期望一致,并能够满足用户的需求。
3. 请解释用户需求和系统需求的区别。
答:用户需求是用户对软件系统的需求和期望,通常表达为用户对系统功能和性能的描述。
而系统需求是对用户需求的进一步细化和明确化,包括对系统功能、性能、界面、输入输出等方面的具体要求。
《软件工程》练习题答案
《软件工程》练习题一答案一、单选题1.C 2.A 3.C 4.D 5.B6.C 7.C 8.C 9.D 10.D11.D 12.A 13.B 14.A 15.A16.A 17.D 18.A 19.D 20.B21.A 22.C 23.C 24.A 25.C26.C 27.B 28.C 29.B 30.C31.A 32.D 33.C 34.B 35.C36.A 37.B 38.C 39.C 40.D41.B 42.D 43.B 44.A 45.D46.C 47.B 48.D 49.D 50.B51.A二、填空题1.软件配置管理2.容错功能3.11 4.模块5.F/(1+(n*i))6.管理技术7.软件工具软件开发环境8.数据字典DD9.可测试性10.父图子图11.数据结构12.防错程序设计13.空间14.可行性研究15.需求16.需求建模技术17.层数18.经济19.概率20.过程21.IPO 22.资源23.数学24.重复25.模块数26.系统约束27.从属28.软件工程29.复杂30.外部31.风险估算32.文档33.数据源34.动态多变量35.数据流图36.三种基本控制结构37.事务分析设计38.功能39.用户组织的管理模式及规范40.符号表示习惯41.不可再分解的42..软件需求明确43.累计经济效益(折合成现在值)44.硬件/操作系统45.差别估算法三、判断题1.错2.对3.对4.错5.错6.错7.对四、名词解释1.软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。
2.数据字典是用来定义数据流图中的各个成分的具体含义的。
它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。
3.内聚性是模块独立性的衡量标准之一,它是指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。
4.JSP方法是面向数据结构的设计方法,其定义了一组以数据结构为指导的映射过程,它根据输入、输出的数据结构,按一定的规则映射成软件的过程描述,即程序结构。
软件工程试题及答案(较详细)
软件工程试题及答案(较详细)软件工程试题及答案 (较详细)一、简答题1. 什么是软件工程?软件工程是一门综合应用计算机科学与工程学、管理学等知识的学科,它致力于开发和维护高质量的软件系统。
它包括需求分析、设计、编码、测试和维护等各个阶段,以确保软件项目能够按时交付、高效运行,并满足用户需求。
2. 请解释什么是软件生命周期?软件生命周期是指软件从构思、开发、使用到废弃的整个过程。
它包括需求分析、设计、编码、测试、部署和维护等多个阶段。
软件生命周期管理的目标是确保软件产品按时、按质量要求交付,并提供后续的支持与维护。
3. 请解释什么是需求工程?需求工程是软件工程中的一个重要阶段,它主要涉及对用户需求的调研、分析、规划和文档化。
通过需求工程,开发人员能够更好地理解用户需求,并将其转化为具体的软件需求规格说明书,为后续的设计和开发提供基础。
4. 什么是软件设计模式?软件设计模式是一套在软件设计过程中重复出现的解决方案。
它们被广泛接受,并被认为是开发高质量、可维护和可扩展软件的有效方法。
常见的软件设计模式包括单例模式、工厂模式、观察者模式等。
二、分析题1. 请说明面向对象和面向过程的编程范式的区别。
面向对象编程(OOP)和面向过程编程(POP)是两种不同的编程范式。
面向过程编程更侧重于任务的步骤和流程,它将问题分解为多个步骤,通过一系列函数或过程的调用来完成任务。
面向过程编程更加注重解决问题的步骤和执行过程。
面向对象编程更注重数据和对象的定义和封装,它将问题看作是一组对象的交互。
面向对象编程通过定义类、创建对象以及对象之间的协作来解决问题。
2. 什么是软件架构?软件架构是指软件系统的基本结构和组织方式。
它定义了软件系统中各个组件的职责、交互方式和部署方式。
常见的软件架构模式包括分层架构、客户端-服务器架构、微服务架构等。
3. 解释软件测试中的黑盒测试和白盒测试。
黑盒测试是一种测试方法,它基于对软件系统的功能需求进行测试,而不考虑内部的实现细节。
2013软件工程期末试卷答案(自己整理的-很有用的)
2013软件工程期末试卷答案(自己整理的-很有用的)1.软件简单的说就是程序和相关的数据及文档T单项选择题1. 以下不是软件危机的典型表现的是:(D )。
A. 对软件开发成本和进度的估计常常很不准确B. 用户对已完成的”软件系统不满意的现象经常发生C. 软件产品的质量往往靠不住D. 采用面向对象方法开发软件3. 下列哪个不是软件工程方法学中的要素(C )。
A. 方法B.工具C.程序 4. 下列模块的独立性的耦合方式中,最好的是(C )A. 公共耦合B.控制耦合 C .数据耦合 5. 概要设计中,开发人员要解决的最重要的冋题是(D )A. 要让软件做什么 C.要求软件工作效率怎样 6. 为了提高模块的独立性,模块内部最好是 A. 逻辑内聚B.时间内聚 7. 程序的三种基本控制结构的共同特点是 A.不能嵌套使用C.只能一个入口和一个出口B. 要给该软件提供哪些信息D.要让该软件模块具有何种结构(C ) oC. 功能内聚D.通信内聚(C ) o B. 只能用来写简单程序 D. 已经用硬件实现8. 以下说法错误的是()。
AA.面向对象分析与面向对象设计的定义没有明显区别B. 从面向对象分析到面向对象设计,是一个逐渐扩充模型的过程C. 在实际的软件开发过程中,面向对象分析与面向对象设计的界限是模糊的D. 面向对象分析和面向对象设计活动是一个多次反复迭代的过程11. 为适应软硬件环境变化而修改软件的过程是( B ) oA.校正性维护B.适应性维护C. 完善性维护D.预防性维护12. 在UML 的各类图中,(A )图是描述软件功能的。
A 用例图B 类图C 活动图D 顺序图 13. ( D )不属于00三要素A.对象B.继承C.封装D.多态软件工程试题一9. 软件测试过程中的确认测试主要是为了发现A.需求分析B.概要设计10. 在面向对象的高层设计体系结构中,(的部分A.人机交互界面B.问题论域C. A )阶段的错误。
2013年最新的《软件工程》试题及参考答案
《软件工程》试题(第1套)第一部分选择题一、单项选择题(本大题共20小题,每小题1分,共20分)二、在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.详细设计的结果基本决定了最终程序的( C )A.代码的规模B.运行速度C.质量 D.可维护性2需求分析中开发人员要从用户那里了解( A )A.软件做什么B.用户使用界面 C.输入的信息D.软件的规模3.构化程序设计主要强调的是( D )A.程序的规模 B. 程序的效率 C.程序设计语言的先进性D.程序易读性4.通常发现系统需求说明书中的错误的测试步骤是( C )A.模块测试B.子系统测试C.验收测试D.平行运行5.根据程序流程图划分的模块通常是( D )A时间内聚的 B逻辑内聚的C顺序内聚的D过程内聚的6.维护活动必须应用于( B )A 软件文档 B整个软件配置C可执行代码 D数据7.软件测试中根据测试用例设计的方法的不同可分为黑盒测试和白盒测试两种,它们( D )A.前者属于静态测试,后者属于动态测试B.前者属于动态测试,后者属于静态测试C.都属于静态测试D. 都属于动态测试8.维护中,因误删除一个标识符而引起的错误是( C )副作用。
A.文档B.数据C.编码D.设计9.因计算机硬件和软件环境的变化而作出的修改软件的过程称为( B )A.教正性维护B.适应性维护C.完善性维护D.预防性维护10.下列文档与维护人员有关的有( C )A.软件需求说明书B.项目开发计划C.概要设计说明书D.操作手册12.可行性研究实质上是进行了一次( A )A大大压缩简化了的系统分析和设计过程 B详尽的系统分析和设计过程C彻底的系统设计过程 D深入的需求分析13.在详细设计阶段,经常采用的工具有( A )A.PAD B.SA C.SC D.DFD14. 协作图反映收发消息的对象的结构组织,它与( D )是同构的。
(完整版)软件工程考试题(含答案)
软件工程考试题简答题1、什么叫软件?软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合2、什么叫软件危机?软件危机包含哪两点?软件危机产生的原因是什么?软件危机是指在计算机软件开发与维护过程中所遇到的一系列严重问题。
包括两点:(1)如何开发软件,以满足对软件日益增长的需求;(2)如何维护数量不断膨胀的已有软件。
软件开发和维护过程中存在的许多严重问题,一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。
具体表现如下:(1)软件是逻辑部件而不是物理部件.(2)软件的规模越来越大,复杂性越来越大。
(3)轻视需求分析的重要性,轻视软件维护的错误观点和方法.3、什么叫软件工程?1968年在第一届NATO会议上的早期定义:“建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法”。
1993年IEEE的定义: “①软件工程是:把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②进而研究①实现的途径” .我们国家最近定义:软件工程是指导计算机软件开发和维护的工程学科。
它采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
4、两种软件工程方法学开发软件时要建立哪些模型?软件工程方法学包括:传统方法学和面向对象方法学。
常用的开发模型有:瀑布模型(需求稳定,而且可以预先指定)原型模型(需求模糊或者随时间变化)增量模型(分析员先作出需求分析和概要设计,用户参与逐步完善)螺旋模型(将瀑布模型与原型化模型结合起来,并加入了风险分析)喷泉模型(使开发过程具有迭代性和无间隙性)5、软件过程模型有哪些?简述它们的特点。
过程模型分为五大类:1。
管理过程模型。
2.瀑布模型(又称为生命周期模型)。
3。
增量过程模型:包括增量模型,,RAD模型。
软件工程考试试题和答案
软件工程考试试题和答案一、单项选择题1. 软件工程的三要素是()。
A. 工具、方法、过程B. 方法、工具、环境C. 方法、过程、工具D. 过程、工具、环境答案:C2. 软件需求分析阶段的工作不包括()。
A. 需求获取B. 需求分析C. 需求规格说明D. 软件设计答案:D3. 软件测试的目的是()。
A. 证明软件是正确的B. 发现软件中的错误C. 证明软件是无错误的D. 证明软件存在错误答案:B4. 在软件维护中,最频繁的活动是()。
A. 校正性维护B. 适应性维护C. 完善性维护D. 预防性维护答案:A5. 软件项目管理的主要任务不包括()。
A. 进度管理B. 质量管理C. 配置管理D. 软件设计答案:D二、多项选择题1. 软件工程的基本原理包括()。
A. 抽象B. 模块化C. 信息隐蔽D. 逐步求精答案:ABCD2. 软件需求分析的任务包括()。
A. 需求获取B. 需求分析C. 需求规格说明D. 需求验证答案:ABCD3. 软件测试的方法包括()。
A. 黑盒测试B. 白盒测试C. 灰盒测试D. 静态测试答案:ABCD4. 软件维护的类型包括()。
A. 校正性维护B. 适应性维护C. 完善性维护D. 预防性维护答案:ABCD5. 软件项目管理的内容主要包括()。
A. 进度管理B. 质量管理C. 成本管理D. 人员管理答案:ABCD三、判断题1. 软件工程的目标是提高软件的生产率和质量。
()答案:正确2. 软件需求分析阶段不需要进行需求验证。
()答案:错误3. 软件测试可以证明软件是无错误的。
()答案:错误4. 软件维护只包括校正性维护。
()答案:错误5. 软件项目管理不需要进行质量管理。
()答案:错误四、简答题1. 简述软件工程的特点。
答:软件工程的特点包括:(1)软件工程强调系统的、规范的、可度量的方法学;(2)软件工程是面向过程的;(3)软件工程是面向质量的;(4)软件工程是面向经济的;(5)软件工程是面向人的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
武汉大学计算机学院2014-2015学年度第二学期 2013级《软件工程》期末考试试卷(A卷)专业:________________________ 姓名:______________ 学号:__________________₪₪₪₪₪₪₪₪₪₪注意:请将所有答案均写在答题纸上,并标明题号₪₪₪₪₪₪₪₪₪₪一.选择(单选)填空题(共30分,第1-28题为每小题1分;第29题为2分)软件生产的复杂性和高代价,使大型软件的生产出现危机,下述都是软件危机的主要表现,除了 1. 。
产生软件危机的原因主要有 2. 。
为解决软件危机,人们提出了软件工程的方法,即用工程化的原则指导软件的生产、维护和管理,以达到 3. 的目标。
1. (A)生产成本过高(B)开发进度难以控制(C)质量难以保证(D)硬件发展滞后,使软件产品的性能达不到用户要求2. (A)不重视需求,需求获取困难(B)开发过程的管理困难(C)生产过程缺乏科学的方法和工具(D)以上都是3. (A)节省开发成本(B)缩短开发周期(C)提高软件质量(D)经济地开发出高质量软件产品为便于进行有效地软件开发和管理,项目开发一般采用特定的软件过程模型。
瀑布模型是利用 4. 方法控制开发过程复杂性的软件过程模型,它适用于 5. 的项目。
而 6. 模型的优势在于快速完善和确定用户需求,从而降低了由于需求问题带来的软件开发风险,是一种实用的开发技术。
4. (A)项目划分(B)阶段划分(C)团队划分(D)成本划分5. (A)需求难以获取(B)需求经常变动(C)需求比较熟悉(D)风险很大6. (A)原型(B)增量(C)迭代(D)喷泉可行性研究是 7. 阶段的重要步骤,其目的是 8. 。
它的主要任务有 9. 。
为此,通常需要计算投资回收期,它是指 10. 。
7. (A)软件定义(B)软件计划(C)需求分析(D)软件管理8. (A)证明软件开发项目可行(B)证明软件开发项目不可行(C)确定软件开发项目要不要做(D)深入调研项目的用户需求9. (A)成本—效益分析(B)资源分析和风险分析(C)分析比较各种解决方案(D)以上都是10.(A)项目投资开始到停止投资的时间区间(B)项目开始到产生经济效益的时间区间(C)项目开始到完成所需的时间(D)项目的累计经济效益等于投资额所需的时间结构化分析(SA)、结构化设计(SD)、Jackson方法,都是传统的软件开发过程中常用的方法。
其中,SA实现 11. ,得到 12. 图;SD实现 13. ,得到 14. 图;而Jackson 方法实现 15. ,得到 16. 图。
SD主要依据 17. 的类型,选用不同的映射规则进行设计。
从抽象层次看, 18. 方法的抽象层次最低,主要用在详细设计阶段简化数据处理部分的设计。
11.13和15.(A)从数据结构导出程序结构(B)从数据流图导出初始软件结构(C)从数据流导出系统功能描述(D)从模块结构导出程序结构12.14.和16. (A)程序流程图(B)数据流图(C)软件结构(D)Jackson17. (A)控制流(B)数据流(C)变换流(D)事务流18. (A)SA (B)SD (C)Jackson (D)OO下列对于两个模块的关系描述中,模块独立性最高的是 19. ,最低的是 20. 。
19.和20. (A)两个模块间有调用关系,通过参数传递数据值(B)两个模块间没有调用关系,共享数据库中的同一个表(C)两个模块间有调用关系,通过参数传递标志量/开关值(D)两个模块间没有调用关系,通过GOTO语句转换控制流测试是软件开发的重要步骤。
21. 是最基本的测试环节,一般采用白盒法针对模块的逻辑结构设计测试用例进行测试; 22 主要考察模块间的接口及各模块间的关系,以黑盒法为主设计测试用例; 23. 主要依据需求分析确定的验收标准以用户为主进行测试;而 24. 则是将软件与硬件、外设等其它系统结合起来,对计算机系统进行一系列的测试。
21.22.23.和24. (A)系统测试(B)确认测试(C)单元测试(D)集成测试下列关于面向对象方法,说法正确的是 25. 。
25. (A)面向对象开发方法是利用面向对象程序设计语言进行的软件开发方法(B)Jacobson的OOSE方法建立的AM模型中包括实体对象、界面对象和用例对象(C)正方形、四边形和多边形三者是泛化关系(D)面向对象方法采用继承性实现软构件的重用,传统结构化方法无法实现重用软件管理是一项复杂而艰巨的任务,它是对 26. 阶段一切活动的管理。
软件 27. 的作用是有效地、定量地进行软件管理,从而把握软件工程过程的实际情况和它所产生的产品质量。
巡回秩数V(G)用来评价软件的 28. ,下图程序的巡回秩数为 29. 。
26. (A)需求分析(B)软件开发(C)系统设计(D)软件生存期各27. (A)度量(B)风险分析(C)测试(D)进度安排28. (A)可靠性(B)复杂性(C)安全性(D)可维护性29. (A)5 (B)6(C)7 (D)8二.简答题(共18分,每小题6分。
下列5小题中任选3小题作答,标明题号)1.人们常常认为:“软件工程让我们炮制大量的无用的文档,从而使软件开发进度延缓”。
这个观点对吗?为什么?2.Dijkstra曾经说:“Program testing can be used to show the presence of bugs, but never to show their absence!”。
试从测试的目标及作用的角度,谈谈你对这段话的理解。
3.分别采用等价类划分和边界值分析法,为int getNumDaysInYear (int year)设计测试用例。
4.假设你的任务是对一个已有的软件做重大修改,而且只允许你从下列文档中选取两份作为修改维护的依据,请问你会选择哪两份文档?为什么?① 概要设计说明书② 详细设计说明书(用某种过程设计工具描述的)③ 源程序清单(带有适当的注解)5.Brooks在《人月神话》中写道:“Adding manpower to a late software project makes it later.”你同意他的观点吗?试说明理由。
三.分析综述题(共12分。
下列2小题中任选1小题作答,标明题号)分析下列事实和说法,并回答问题:20世纪80年代之前,将结构化方法用于许多中小规模的软件项目开发获得了极大成功。
但之后人们发现,随着软件复杂性的增大,当人们把它应用于大型软件产品的开发和维护时却很少取得成功。
面向对象方法在20世纪60年代首次提出,到了90年代,已成为人们开发软件时首选的软件工程方法。
尤其在开发和维护大型软件产品时,其优势非常明显。
1.“分而治之”和抽象是人们在求解复杂问题时经常采用的思维方式,是控制复杂性的重要手段。
对比结构化方法和面向对象方法在系统分解和组织方式上的本质差异,分析产生上述现象的原因。
(6分+6分)有人说:“软件结构的好坏直接关系到系统的可维护性。
”2.你同意这个说法吗?(2分)请分别谈谈采用结构化方法或面向对象方法进行软件开发,一个好的软件结构应具备哪些特征?(5分+5分)四.应用题(共40分)假设你负责为某高校开发一个网上选课系统,实现网上在线处理选课/退课等事务,并打印各种课程表和统计表。
该网上选课系统应具有以下功能:身份验证:系统包括学生、教师和教务管理员三类用户,可利用学号/工号和密码登录系统,并维护个人信息(修改密码)。
查询:登录成功后,学生可以查询开课信息(如本学期的开课计划、课程详细信息、专业课信息、选修课信息、已选课信息等);教师可以查询所开设课程的选课情况(如选课人数、学生名单等)。
选课:学生在线选课。
系统根据选课规则进行合法性检查(如学生每学期选课学分不能超过25学分、避免上课时间冲突、重复选课、不能超过选课人数上限等),验证通过的选课成功,修改系统的选课情况表F5;错误则提示修改。
退课:学生在线退课。
系统根据退课规则进行合法性检查(如上课3周后不能退课,必修课不能退课等),验证通过的退课,修改选课情况表F5;错误则提示修改。
维护基础信息:教务管理员负责维护系统基础信息,对学生信息F1、教师信息F2和课程信息F3、开课信息F4等进行增删改和查询等操作。
统计:教务管理员查看系统生成的各类统计报表,如各院系、专业、课程的选修情况等。
打印:根据已选课程信息,学生可以打印出自己的学生课程表。
根据授课课程信息,教师可以打印出自己的教师课程表。
教务管理员可以打印各种统计报表等。
以下列出了(部分)系统关键数据的数据字典的相关内容:F1 学生信息表 =学生学号+姓名+所属院系编号+专业号+密码。
F2 教师信息表 =教师工号+姓名+所属院系编号+密码。
F3 课程信息表 =课程编号+名称+课程详细介绍。
F4 开课信息表 =课程编号+专业号+学分+限选性质+教师编号+最大选课人数+教室号F5 选课情况表 =课程编号+学生学号。
试按要求(结构化SA/SD方法或面向对象方法)进行系统分析和设计,并完成以下各题(要求写明必要的步骤):1.试用SA方法进行系统分析,并根据给出的网上选课系统的0层数据流图(如图1所示),作出求精细化后的数据流图。
(12分)2.试根据求出的数据流图,用SD方法设计系统的软件结构,并画出层次图。
(10分)3.试采用Jacobson的OOSE方法进行需求分析,给出该系统的use case图。
(10分)4.图2是用PAD图表示的该系统某模块的详细设计结果,现对它进行白盒测试。
若采用判定—条件覆盖法进行测试,则应选用下列那组测试用例?请写出分析过程(8分)。
组号测试用例①x = 1, y = 11 x = 4, y = 7②x = 2, y = 1 x = 3, y = 3③x = 3, y = 4 x = 1, y = 9④x = 4, y = 5x = 2, y = 6图2. 某模块的PAD图STARTz:= x * yz:= x+ y。