软件工程考点例题整理
软件工程考点总结

3.软件生存周期:
软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。
4.软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型
Hale Waihona Puke 5.软件的特征:(1)非常复杂(逻辑复杂,开发复杂)(2)成本高(3)风险大(4)维护困难
6. 什么是软件过程?它与软件工程方法学有何关系?
2.产生软件危机的原因
(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。
(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。
3.你在大作业中做了哪些工作,谈谈你对软件工程的认识.
软件工程 (Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业,农业,银行,航空,政府部门等。这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。
7.需求分析的基本任务是什么?
准确定义未来系统的目标,确定为了满足用户的需要系统必须做什么
8.需求分析的具体任务:(1) 确定对系统的综合要求---(功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求、约束、 逆向需求、将来可能提出的要求。)(2) 分析系统的数据要求(3)导出系统的逻辑模型(4)修正系统开发计划
北京理工大学22春“软件工程”《软件工程》期末考试高频考点版(带答案)试卷号:2

北京理工大学22春“软件工程”《软件工程》期末考试高频考点版(带答案)一.综合考核(共50题)1.用限定词来表示对象类之间受限关联的通常目的是________。
A.更准确地表示归纳关系B.更准确地表示组合关系C.增加关联阶数D.减少关联阶数参考答案:D2.下列属于用白盒技术设计测试用例的是_____。
A.错误推测B.逻辑覆盖C.等价类划分D.因果图参考答案:B3.瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。
()A.错误B.正确参考答案:A4.获取需求的困难和项目复杂带来的潜在风险属于________。
A.技术风险B.商业风险C.经济风险D.项目风险参考答案:D5.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-2.0,2.0],现从输入的角度考虑一组测试用例:-2.001,-2.0,2.0,2.001。
设计这组测试用例的方法是_________A.条件覆盖法B.等价分类法C.边界值分析法D.错误推测法参考答案:C6.CMM将软件过程的成熟度分为以下5个级别:初始级、可重复级、已定义级、已管理级和优化级。
()A.正确B.错误参考答案:A7.在结构化程序设计中要实现任何模块的单入口单出口。
一般不允许使用控制结构是______A.顺序B.无条件转移C.条件分支转移D.循环参考答案:B8.软件结构的复杂度与哪些因素有关?________A.模块扇入B.模块扇出C.控制路径D.输入/输出数参考答案:B9.软件测试是软件质量保证的主要手段之一,测试的费用已超过_____的30%以上。
因此,提高测试的有效性十分重要A.软件开发费用B.软件维护费用C.软件开发和维护费用D.软件研制费用参考答案:A10.下列各种图可用于动态建模的有()A.状态图B.类图C.序列图D.活动图参考答案:ACD11.软件设计的主要任务是()A.将分析阶段获得的需求说明转换为计算机中可实现的系统B.完成系统的数据结构和程序结构设计C.完成模块的编码和测试D.对模块内部的过程进行设计参考答案:ABD12.软件维护的步骤不包括______________。
软件工程考点

1、结构化程序设计主要强调的是程序易读性。
3、结构化程序流程图中一般包括三种基本结构(顺序循环选择)嵌套结构不属于基本结构。
4、按照软件工程的原则,模块的作用域和模块的控制域之间的关系是模块的作用域应在模块的控制域之内5、模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准是模块的内聚性和耦合性6、以下几种模块内聚类型中,内聚性最低的是偶然内聚 7、JACKSON方法是在软件开发过程中常用的方法,使用JACKSON方法时可以实现从数据结构导出程序结构9、软件测试方法中,黑盒测试方法和白盒测试方法是常用的方法,其中黑盒测试方法主要用于测试软件外部功能白盒测试主要用于测试程序内部逻辑10、软件调试技术包括回溯法调试。
11、为改正软件系统中潜藏的错误而进行的维护活动称为改正性维护12、在整个软件维护阶段所花费的全部工作中,所占比例最大的是完善性维护13、通过执行对象的操作改变该对象的属性,但它必须通过消息的传递14、软件文档是软件工程实施中的重要成分,它不仅是软件开发各阶段的重要依据,而且影响软件的可维护性15、软件的结构化设计(SD)方法中,一般分为总体设计和详细设计两阶段,其中总体设计主要是要建立软件结构16、Jackson设计方法是由英国的M.Jackson所提出的。
它是一种面向数据结构的软件设计方法17、与编程风格有关的因素不包括。
A源程序文档化B语句构造C输入输出D模块间耦合性18、源程序文档化要求在每个模块之前加序言性注释。
该注释内容不应有()。
A.模块的功能 B.语句的功能 C.模块的接口 D.开发历史19、效率是一个性能要求,因此应当在以下哪个阶段规定?需求分析20、软件测试的目的是尽可能多的发现软件系统中的错误21、确认测试任务是检查软件的功能与性能是否与需求规格说明书中确定的指标相符合23、在白盒技术测试用例的设计中,以下覆盖标准中发现错误能力最强的是条件组合覆盖24、在软件生存期的各个阶段中跨越时间最长的阶段是维护阶段 25、每个对象可用它自己的一组属性和它可以执行的一组操作来表现26、在确定类时,所有名词是候选的类27、类是比较理想的可重用软构件28、需求分析阶段的任务是确定软件系统的功能29、程序的三种基本控制结构是顺序、选择和重复31、软件部件的内部实现与外部可访问性的分离,是指软件的封装性32、单元测试是发现编码错误,集成测试是发现模块的接口错误,确认测试是为了发现功能错误,系统测试是为了发现性能、质量不合要求的错误。
软件工程复习知识点和例题

.1.软件危机的概念,内容,原因及消除的途径;概念:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
内容:软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护不断膨胀的已有软件。
具体地说,软件危机主要有以下一些典型表现:(1)对软件开发成本和进度的估计常常很不准确;(2)用户对“已完成的”软件系统不满意的现象经常发生;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的文档资料;(6)软件成本在计算机系统总成本中所占的比例逐年上升;(7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势;原因:在软件开发和维护的过程中存在这么多严重问题:一方面与软件本身的特点有关;另一方面也和软件开发与维护的方法不正确有关。
(1)软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。
(2)软件不同于一般程序,它的一个显著特点是规模庞大,而且程序复杂性将随着程序的规模的增加而呈指数上升。
(3)目前相当多的软件专业人员对软件开发和维护还有不少糊涂概念,在实践过程中或多或少地采用了错误的方法和技术,这可能是使软件问题发展成软件危机的主要原因。
(4)对用户要求没有完整准确的认识就匆忙着手编写程序是许多软件开发工程失败的主要原因之一。
2.软件工程的定义,基本原理;定义:软件工程是指导计算机软件开发和维护的一门工程学科。
基本原理:软件工程的7条基本原理:(1)用分阶段的生命周期计划严格管理(2)坚持进行阶段评审(3)实行严格的产品控制(4)采用现代程序设计技术(5)结果应能清楚地审查(6)开发小组的人员应该少而精(7)承认不断改进软件工程实践的必要性3.软降工程方法学的基本概念、内容;基本概念:把在软件生命周期全过程中使用的一整套开发和管理技术方法的集合成为软件工程方法学,也称为范型。
软件工程方法学包含3个要素:方法、工具和过程。
软件工程学试题及答案

软件工程学试题及答案一、单项选择题(每题2分,共10分)1. 软件工程的目的是()。
A. 提高软件的生产率B. 提高软件的运行效率C. 降低软件的生产成本D. 提高软件的可维护性答案:A2. 下列哪项不是软件需求分析的任务?()。
A. 确定软件的功能需求B. 确定软件的性能需求C. 确定软件的界面需求D. 确定软件的测试需求答案:D3. 软件生命周期中,()阶段是确定软件需求的阶段。
A. 需求分析B. 系统设计C. 编码D. 测试答案:A4. 软件测试的目的是()。
A. 证明软件是正确的B. 证明软件存在错误C. 发现软件中的错误D. 证明软件不存在错误答案:C5. 软件危机主要表现在()。
A. 软件成本B. 软件质量C. 软件进度D. 所有选项答案:D二、多项选择题(每题3分,共15分)1. 软件工程的基本原理包括()。
A. 用分阶段的生命周期计划严格管理B. 强调开发过程的迭代性质C. 采用合适的编程规范D. 强调软件工具的使用答案:ABD2. 软件需求分析的常用方法包括()。
A. 数据流图B. 用例图C. 状态转换图D. 流程图答案:ABC3. 软件测试的类型包括()。
A. 单元测试B. 集成测试C. 系统测试D. 验收测试答案:ABCD4. 软件维护的类型包括()。
A. 校正性维护B. 适应性维护C. 完善性维护D. 预防性维护答案:ABCD5. 软件工程中常用的设计模式包括()。
A. 单例模式B. 工厂模式C. 观察者模式D. 策略模式答案:ABCD三、简答题(每题5分,共20分)1. 简述软件工程中的模块化设计原则。
答案:模块化设计原则要求将系统分解成若干个模块,每个模块具有高内聚、低耦合的特点,以便于系统的开发、测试、维护和理解。
2. 描述软件需求分析的重要性。
答案:软件需求分析是软件开发过程中的关键步骤,它确保了开发团队对用户需求有清晰的理解,有助于避免开发出不符合用户需求的软件,减少返工和成本。
软件工程基础知识

软件工程基础知识考点指导考点 1 :软件工程和项目管理基础★★★考点点拨:本考点考查软件工程和软件生成周期的概念,常用的软件开发模型,以及软件开发项目管理基础知识。
【试题1】软件工程三要素是____________ 。
A)技术、方法和工具B)方法、工具和过程C)方法、对象和类D)过程、模型、方法答案:B 分析:软件工程三要素:方法、工具和过程。
软件工程方法为软件开发提供了“如何做” 的技术。
软件工具为软件工程方法提供了自动的或半自动的软件支撑环境。
软件工程过程定义了:方法使用的顺序、要求交付的文档资料、为保证质量和适应变化所需要的管理以及软件开发各个阶段完成的工作。
理论链接:软件工程概述1.软件危机软件危机是指计算机软件开发和维护过程中所遇到的一系列严重问题。
概括的说即为:能否满足对软件日益增长的需求?能否维护数量日益增长的现有软件?2.软件工程软件工程是一类求解软件的工程,它应用计算机科学、数学及管理科学等原理,借鉴传统工程的原则、方法,创建软件以达到提高质量、降低成本的目的。
其中,计算机科学、数学用于构造模型与算法,工程科学用于制定规、设计型、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。
软件工程是一门指导计算机软件开发和维护的工程学科。
软件工程准则可以概括为六条基本原理:(1 )用分阶段的生存周期计划严格管理;(2)坚持进行阶段评审;(3 )实行严格的产品控制;(4 )采用现代程序设计技术;(5)应能清楚地审查结果;(6 )合理安排软件开发小组的人员。
【试题2】软件开发的结构化生命周期方法将软件生命周期划分成__________________ 。
A )计划阶段、开发阶段、运行阶段B )计划阶段、编程阶段、测试阶段C)总体设计、详细设计、编程调试 D )需求分析、功能定义、系统设计答案:A【试题3】软件生命周期的最后的一个阶段是______________ 。
A)书写软件文档 B )软件维护C)稳定性测试D)书写详细用户说明答案:B理论链接:软件生存(生命)周期软件生存周期:软件的产生直到报废的生命周期。
软件工程例题

解答:分析前面的题,得出几个相关的参数: 投资:20万元 每年节省:9.6万元 年利率:5% 软件生命期:5年 (1)货币的时间价值 现在的投资在5年后的价值:20*1.055 每年节省的钱在软件生命期结束时的时间价值:
9.6*1.054+9.6*1.053+9.6*1.052+9.6*1.05+9.6
(4)加工单元条目
加工名称:填写报名单; 加工编号:1.1; 简述:将考生的相关信息填入报名表; 输入数据流:报名单; 输出数据流:填写后的报名单;
15
加工名称:生成有效报名单; 加工编号:1.2; 简述:检查、更正学生填写表单并汇总; 输入数据流:填写后的报名单; 输出数据流:考生信息; 加工逻辑:检查每一项数据是否合理,是则按报 名顺序统一编号输入考生信息库,否则重写
17
加工说明:
BEGIN IF 笔试成绩>60 THEN IF 上机成绩>60 THEN BEGIN 成绩标记为0; 考生成绩=(笔试成绩+上机成绩)/2; END ELSE 成绩标记为1 ELSE 成绩标记为2; END
18
加工名称:生成成绩单; 加工编号:5; 简述:根据考生成绩生成成绩单; 输入数据流:考生成绩; 输出数据流:成绩单; 加工逻辑:如果考生成绩>60,Z则生成成绩单;
16
加工名称:笔试考试阅卷; 加工编号:4.4; 简述:批阅考生笔试试卷并给出成绩; 输入数据流:填写后的笔试试卷、笔试答案; 输出数据流:笔试成绩; 加工逻辑:核对每一道题的考生答案与标准答案, 并给出成绩,最后汇总成笔试成绩;
加工名称:汇总考试成绩; 加工编号:4.5; 简述:根据笔试成绩与上机成绩计算出考试总成绩; 输入数据流:笔试成绩、上机成绩; 输出数据流:考试成绩; 加工逻辑:如果两门考试均通过,则成绩为两者对半;
《软件工程》经典考试例题复习题,重点知识点(含答案)

1.某旅馆的电话服务如下:可以拨分机号和外线号码。
分机号是从7201至7299。
外线号码先拨9,然后是市话号码或长话号码。
长话号码是以区号和市话号码组成。
区号是从100到300中任意的数字串。
市话号码是以局号和分局号组成。
局号可以是455,466,888,552中任意一个号码。
分局号是任意长度为4的数字串。
要求:写出在数据字典中,电话号码的数据流条目的定义即组成。
电话号码=[分机号|外线号码]分机号=7201 (7299)外线号码=9+[市话号码|长话号码]长话号码=区号+市话号码区号=100 (300)市话号码=局号+分局号局号=[455|466|888|552]分局号=4{数字}4数字=[0|1|2|3|4|5|6|7|8|9]2.为以下程序流程图分别设计语句覆盖和判定覆盖测试用例,并标明程序执行路径。
(1)语句覆盖测试用例令x=2,y=0,z=4作为测试数据,程序执行路径为abcde。
(2)判定覆盖可以设计如下两组数据以满足判定覆盖:x=3,y=0,z=1(1分)(通过路径abce);x=2,y=1,z=2(1分)(通过路径acde)。
或者x=2,y=1,z=1;覆盖路径acdex=1,y=1,z=1;覆盖路径acex=3,y=0,z=1;覆盖路径abce(注意:本题也还可以有其他答案)3.请用判定表画出以下问题的行为逻辑。
人们往往根据天气情况决定出门时的行装。
天气可能下雨,也可能不下雨;下雨或不下雨天气可能变冷,也可能不变冷。
如果天气要下雨,出门时带上雨伞;如果天气变冷,4.对下列子程序进行调试:procedure example(y,z: real; var x: real)beginif (y>1) and (z=0) then x:=x/y;if (y=2) or (x>l) then x:=x+l;end.该子程序接受x, y, z的值,并将计算结果x的值返回给调用程序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程考点例题整理
1. 软件需求工程
1.1 需求获取
1.1.1 请简要介绍需求获取的主要方法。
需求获取是软件需求工程的第一步,其目标是收集、分析和验证用户和系统对软件的需求。
主要的需求获取方法包括:
•面向用户的方法:例如面谈、问卷调查、观察、场景分析等。
•面向系统的方法:例如文档分析、数据分析、原型开发等。
•面向过程的方法:例如原型、模型、用例等。
1.1.2 请用一个例子说明需求获取方法的应用。
例如,在一个新的电商平台项目中,为了了解用户的需求,可以采用面谈的方法。
软件工程师可以与用户进行交流,了解他们对于电商平台的期望和需求。
通过面谈,工程师可以获得用户对于购物流程、支付方式、商品分类等方面的需求,进而将其作为软件开发的参考依据。
1.2 需求分析与建模
1.2.1 什么是需求分析与建模?请简要描述其目的和步骤。
需求分析与建模是将需求进行详细分析并通过适当的模型进行描述的过程。
其目的是确定软件的功能、性能、约束等方面的需求,为软件设计与开发提供准确的参考。
需求分析与建模的步骤包括需求的可行性分析、需求的详细化、需求的验证以及需求的文档化。
1.2.2 请简要介绍几种常用的需求建模方法。
•用例图:用例图是描述系统功能和外部参与者之间交互的模型,用于表示系统的功能需求和参与者的角色与活动。
•静态建模:静态建模通过类图和对象图描述系统的静态结构,包括系统中的类、对象、关系等。
•行为建模:行为建模通过活动图、状态图、时序图等描述系统的动态行为,包括系统的业务流程、状态转换、消息传递等。
2. 软件设计
2.1 面向对象设计
2.1.1 什么是面向对象设计?请简要描述其基本原则。
面向对象设计是一种软件设计方法,将问题领域中的实体抽象成类,通过类之间的关系和交互来描述问题的解决方案。
面向对象设计的基本原则包括: - 单一职责原则:一个类应该只有一个变化的
原因。
- 开放封闭原则:软件实体(类、模块、函数等)应该对扩展开放,对修改
封闭。
- 里氏替换原则:子类可以替换父类并且既无需知道父类的实现细节,也不
会破坏原有的系统行为。
- 接口隔离原则:使用多个专门的接口,而不是使用单一
的总接口。
- 依赖倒置原则:高层模块不依赖于低层模块,而是依赖于抽象接口。
2.1.2 请用一个例子解释面向对象设计的概念。
例如,在一个图书馆管理系统中,可以定义以下几个类:图书馆、图书、读者。
•图书馆类:包含图书馆的名称、地址等属性,以及管理图书和读者的方法。
•图书类:包含图书的编号、名称、作者等属性,以及借书和还书的方法。
•读者类:包含读者的姓名、借阅图书的记录等属性,以及借书和还书的方法。
通过定义这些类以及它们之间的关系,可以实现图书馆管理系统对图书与读者的借还操作的管理。
2.2 软件架构设计
2.2.1 什么是软件架构设计?请简要描述其目的和关键考虑因素。
软件架构设计定义了软件系统的整体结构和组成方式,确定了软件系统中各个组件之间的关系和交互方式。
其目的是保证软件系统的结构清晰、分工明确,满足系统需求和质量属性的要求。
软件架构设计的关键考虑因素包括系统的功能需求、性能要求、可维护性、可扩展性等。
2.2.2 请简要介绍几种常用的软件架构风格。
•面向对象架构:基于面向对象设计思想,以对象、类、继承、封装等概念为基础构建系统的架构。
常见的面向对象架构风格包括MVC、MVVM等。
•分层架构:将系统划分为多个层次,每个层次有不同的功能和责任。
常见的分层架构包括三层架构和四层架构等。
•服务导向架构:将系统划分为多个服务,每个服务为一个独立的功能单元,通过服务之间的通信实现系统的功能需求。
常见的服务导向架构包括SOA、微服务架构等。
3. 软件测试与维护
3.1 软件测试
3.1.1 什么是软件测试?请简要描述其目的和基本原则。
软件测试是一种通过运行软件系统,以发现错误、缺陷和漏洞的方法。
其目的是提高软件系统的质量,保证软件系统可以按照预期的方式运行。
软件测试的基本原则包括完整性、独立性、可重复性和效率。
3.1.2 请简要介绍几种常用的软件测试方法。
•黑盒测试:测试人员仅根据软件的需求规格说明书,不考虑内部实现细节来设计测试用例,主要关注功能正确性和接口是否符合要求。
•白盒测试:测试人员根据软件的内部实现细节来设计测试用例,主要关注程序代码执行的正确性、逻辑覆盖等。
•灰盒测试:综合了黑盒测试和白盒测试的特点,将需求规格和内部实现结合起来进行测试。
•单元测试:对软件系统中的最小可测试单元进行测试,例如函数、方法等。
•集成测试:将多个单元组合测试以验证它们之间的交互和集成是否正确。
•系统测试:针对整个软件系统进行测试,验证软件系统是否能够满足需求。
3.2 软件维护
3.2.1 什么是软件维护?请简要描述其分类和目的。
软件维护是在软件系统交付使用后,对软件系统进行修正、改进和适应新环境的过程。
根据维护任务的性质,软件维护可分为四类:纠错性维护、适应性维护、完善性维护和预防性维护。
软件维护的目的是提高软件系统的可用性和可维护性,保证软件系统能够持续稳定运行,并适应不断变化的需求和环境。
3.2.2 请说明软件维护的几种策略。
•瀑布模型:采用传统的开发过程,将软件维护作为开发模型的最后一个阶段进行。
•增量模型:将软件维护作为多个增量的一部分进行,每个增量都包含新功能的开发和旧功能的维护。
•混合模型:结合瀑布模型和增量模型的特点,根据具体情况进行灵活选择。
总结
本文对软件工程的若干考点进行了介绍和整理,包括软件需求工程、软件设计、软件测试与维护等方面的内容。
通过了解这些考点,可以对软件工程的基本知识有一个系统的了解,并在实际的软件开发过程中具备一定的参考和指导作用。
软件工程是一门综合性强的学科,需要理论和实践相结合,持续学习和实践将有助于提升软件工程能力和水平。