《2022年软件工程问答对应 .pdf》由会员分享,可在线阅读,更多相关《2022年软件工程问答对应 .pdf(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、.word 格式 , , 专业 .专注. 软件工程概论1.软件的特点是什么?1) 软件是逻辑实体;具有抽象性 ;软件的形态不可见; 必须通过观察、分析、思考、 判断来了解其功能、性能和其它特性。2) 软件是人脑思维的产物,其生产过程与硬件不同。 开发过程的质量控制及软件产品保护问题。3) 软件的开发和运行受计算机系统限制。 软件移植问题 。4) 软件的开发技术落后,手工开发方式仍占统治地位。 开发效率低 。2.2006 年发布的国家分类标准是什么?独立式 ,组合式 ,集成式 ,嵌入式 。3.软件危机的表现有哪些?1) 对开发成本和进度的估算偏差太大2) 没有适当的文档3) 软件成本比重上升4)
2、 质量很不可靠5) 供不应求6) 用户很不满意4.产生软件危机的原因是什么?1) 客观 :软件本身特点1逻辑部件 2规模庞大名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 23 页 - - - - - - - - - .word 格式 , , 专业 .专注. 2) 主观 :不正确的开发方法忽视需求分析“ 软件开发 = 程序编写 ” 的错误观念轻视软件维护5.什么是软件工程三要素? 1) 方法 :为软件开发提供了“ 如何做 ” 的技术 。2) 工具 :为软件工程方法提供了支
3、撑环境。3) 过程 :定义了方法使用的顺序、要交付的文档资料、为保证质量和适应变化所需要的管理 、 软件开发各个阶段完成的里程碑。6.软件工程的基本目标是什么? 1) 付出较低的开发成本2) 达到要求的软件功能3) 取得较好的软件性能4) 开发的软件易于移植5) 需要较低的维护费用6) 能按时完成开发工作,及时交付使用7.软件工程的基本原则是什么?1) 抽象 2) 信息隐蔽3) 模块化 4) 局部化 5) 确定性 6) 一致性 7) 完备性 8) 可验证性8.软件工程的基本原理是什么?名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - -
4、- 名师精心整理 - - - - - - - 第 2 页,共 23 页 - - - - - - - - - .word 格式 , , 专业 .专注. 1)用分阶段的生命周期严格管理;2) 坚持进行阶段评审;3) 实行严格的产品控制;4) 采用现代程序设计技术;5) 结果应能清楚地审查;6) 开发小组人员应少而精;7) 承认不断改进软件工程实践的必要性。9.瀑布模型有什么特点?1.里程碑或基线驱动,或者说文档驱动;2.过程逆转性很差, 或者说不可逆转。10.说明生命周期的划分?一个软件从定义、开发 、使用和维护 ,直到最终被废弃,所经历的生存过程称为软件生存期或叫生命期。生命期的划分 :定义阶段
5、 :制定计划需求分析和定义开发阶段 :软件设计程序编写软件测试维护阶段 :运行 /维护11.列出软件生存期的几个主要模型?1)瀑布模型2)原型模型3)螺旋模型4)增量模型5)构件组装模型名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 23 页 - - - - - - - - - .word 格式 , , 专业 .专注. 6)统一过程模型7)第四代技术12.论述瀑布模型软件开发方法的基本过程?13.增量模型有什么特点?任务或功能模块驱动,可以分阶段提交产品;有多个任务单,这
6、些多个任务单的集合, 构成项目的一个总任务书(总用户需求报告)。14.几种主要的软件开发方法?面向过程的方法面向数据的方法面向对象的方法需求分析运行维护测试编码设计计划维护阶段开发阶段定义阶段名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 23 页 - - - - - - - - - .word 格式 , , 专业 .专注. 15.软件工程中的 “ 五个面向 ”?1) 面向流程分析 、2) 面向数据设计3) 面向对象实现4) 面向功能测试5) 面向过程管理名师资料总结 -
7、 - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 23 页 - - - - - - - - - .word 格式 , , 专业 .专注. 软件策划1.可行性分析的目的?用最小的代价在尽可能短的时间内确定问题是否能够解决。2.可行性分析最为敏感的方面是什么? 1)经济可行性这个系统的经济效益能超过它的开发成本吗?2)技术可行性现有技术能否实现该系统?技术冒险的各种因素?例如有关的技术是否已进步到足以支持该系统?技术人员的熟练程度?硬、软件资源是否按期得到?名师资料总结 - - -精品资料欢迎
8、下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 23 页 - - - - - - - - - .word 格式 , , 专业 .专注. 3)操作可行性系统的操作方式在这个用户组织内行得通吗?4)法律可行性开发的软件项目是否侵犯他人的利益,是否违反法律,并由此承担法律责任 。3.可行性研究的步骤有哪些? 1)复查系统规模和目标(系统调研 )2)研究目前正在使用的系统(系统分析 )3)导出新系统的高层逻辑模型(系统分析 )4)重新定义问题 (模型评审 )5)导出和评价可供选择的解决方案6)推荐一个方案并说明理由
9、7)推荐行动方针8)书写文档提交审查4.软件计划的步骤有哪些? 1)估计软件的规模及所需的资源2)制定时间表3)鉴别和评估风险4)约定与限制条件5.软件计划书的内容有哪些? 1) 软件范围 2) 环境资源 3) 进度安排 4) 成本 /效益分析名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 23 页 - - - - - - - - - .word 格式 , , 专业 .专注. 6.甘特图有哪些优点和缺点?优点 : 它具有简单 、 醒目和便于编制等特点。能够动态反映软件项目
10、开发进展的情况。缺点 :难以反映多个任务之间存在的复杂的逻辑关系。7.什么是网络计划法的关键事件与关键路径?关键事件 :最早完成时间与最迟完成时间相等的事件。关键路径 :关键事件联结的各个活动所组成的路线。8.常用的成本估算方法有哪些? (1)基于代码行的成本估算方法(2)任务分解成本估算(3)经验统计估算模型:参数方程动态多变量参数模型COCOMO 模型 (constructive Cost Model)自动估算工具名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 23
11、页 - - - - - - - - - .word 格式 , , 专业 .专注. 9.软件成本估算包括哪些内容? 工作产品规模估计工作量及成本估计关键资源的量化估计10. 项目活动和项目约定计划指的是什么? 活动指开发活动和管理活动; 约定指各种规范、标准 、规则 ;1) 规范是对过程和行为的约束;2) 标准是对产品的约束;3) 规则或规程是对操作的约束。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 23 页 - - - - - - - - - .word 格式 , ,
12、 专业 .专注. 需求分析1.需求获取为什么难?1)用户需求具有动态性(不稳定性 )。2)用户需求具有模糊性(不准确性 )。3)对需求达成一致的艰难性。4)管理体制 、机构设置处在变革中。5)软件书籍没有将需求分析讲清楚。6)分析方法和分析工具问题。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 23 页 - - - - - - - - - .word 格式 , , 专业 .专注. 2.需求分析的重点业务模型 、.功能模型 、性能模型 、接口模型3.需求分析的 9项任务
13、1)画出目标系统的组织机构模型。2)画出目标系统业务操作流程图。3)画出目标系统的数据流图。4)列出目标系统的功能点列表,即功能模型 。5)列出系统的性能点列表, 即性能模型 。6)列出目标系统的接口列表,即接口模型 。7)确定目标系统的运行环境,即环境模型 。8)目标系统的界面约定,即界面模型 。9)分析与评估开发工期、费用 、进度 、风险等 。4.需求分析的过程1.问题识别 、2.分析与综合 、3.编制需求文档 、4.需求分析评审。5.获取需求的常用方法1)访谈 :正式的和非正式的访谈2)问卷调查 :问卷调查即把需要调查的内容制成表格交给用户填写。该方法对需要调查大量人员的意见时, 十分有
14、效 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 23 页 - - - - - - - - - .word 格式 , , 专业 .专注. 3)情景分析 :情景分析就是对目标系统解决某个具体问题的方法和结果,给出可能的情景描述 ,以获知用户的具体需求。4)实地考察 /收集资料 :开调查会参加业务实践5)构造原型6.需求分析的原则1) 解决逻辑问题: 需求分析是对问题的识别和说明,要回答 “ 做什么 ”, 而不是 “ 怎么做 ”。(2)以运行环境为基础: 需求分析工作应
15、以具体的运行环境为基础,实事求是 。(3)用户参与的原则:需求分析工作是系统分析人员同用户不断交互的过程。(4)构造高质量的需求规格说明:需求规格说明是需求分析工作重要的完成标志。7.需求分析的基本要求1)理解问题的数据域和功能域2)自顶向下 、逐层分解3)给出系统的逻辑视图和物理视图8.常见的需求分析方法有哪些?1) 面向数据流的分析方法2) 面向功能的分析方法名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 23 页 - - - - - - - - - .word 格
16、式 , , 专业 .专注. 3) 面向数据的 Jackson 方法4) 面向对象的分析方法名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 23 页 - - - - - - - - - .word 格式 , , 专业 .专注. 软件设计1.软件设计的具体任务包括哪些内容?1)制定规范2)结构设计3)处理方式结构设计4)数据结构及数据库设计5)可靠性设计 (质量设计 )6)编写软件设计文档7)设计审查和复审8)详细设计2.什么是数据的保护性设计?1) 防卫性设计 :在软件设
17、计中就插入自动检错,报错和纠错的功能名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 23 页 - - - - - - - - - .word 格式 , , 专业 .专注. 2) 一致性设计 : 在并发处理过程中使用封锁和解除封锁机制保持数据不被破坏3) 冗余性设计3.软件设计的目标是什么?软件设计的最终目标是要取得最佳方案。 即:节省开发费用、降低资源消耗、缩短开发时间 、能够赢得较高的生产效率、较高的可靠性和可维护性的方案。并且使开发软件满足以下特点:(1)功能 、性
18、能都符合指定的要求;(2)软件是可维护的,可方便地进行修改;(3) 除了代码 ,还有一套配置齐全的文档。4.模块具有哪些基本属性? “ 模块 ”, 又称 “ 组件 ”。 一般有四个基本属性l 1) 功能 :描述该模块做什么?2) 逻辑 :描述模块内部怎么做?3) 状态 :模块使用时的环境和条件。4) 接口 :指模块的输入与输出。5.什么是耦合 ? 什么是内聚 ?如何增强模块的独立性?1) 耦合 :各模块之间的互相连接的紧密程度。模块之间的连接越紧密,联系越多 ,耦合性就越高 ,而其独立性就越弱。2) 内聚 :模块内各功能元素彼此结合的紧密程度。一个模块内部各个元素之间的联系名师资料总结 - -
19、 -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 23 页 - - - - - - - - - .word 格式 , , 专业 .专注. 越紧密 ,则它的内聚性就越高,相对地 ,它与其它模块之间的耦合性就会减低,而模块独立性就越强。3) 增强模块独立性的方法是:高内聚 、 低耦合6.模块化的特征有哪些?1) 抽象 :用层次的方式构造和分析复杂系统。2) 逐步求精 :帮助开发人员把精力集中在与当前开发阶段最相关的那些问题上。3) 信息隐蔽 :如果一个模块内包含的信息(过程和数据 ) 不允许外部
20、的模块访问的话,其它模块不能对其访问。4) 局部化 :把一些关系密切的软件元素物理地放得彼此靠近。7.影响耦合度的因素有哪些?1) 连接方式的类型。2) 接口的复杂性 。3) 传送的信息流的类型。4) 耦合的时间 。8.降低耦合度的方法有哪些?1) 对于需要了解的内容,若是隐含的 , 应改为明显的 ,以便更容易理解;2) 连接的方式尽量标准化,不要直接引用 ;3) 减少公共区 ,将公共区划分为若干个逻辑子区;4) 输入输出应局限在少量模块,不要分散在全系统;5) 延迟耦合时间 。9.软件结构设计优化的准则是什么?名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - -
21、- - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 23 页 - - - - - - - - - .word 格式 , , 专业 .专注. 1) 划分模块时 ,尽量做到高内聚、低耦合 ,保持模块相对独立性。模块划分的准则:“ 将相关的各部分放在一起,无关的东西不要放在一起。”2) 模块的大小要适中。3) 模块的接口要简单、清晰 、含义明确 ,便于理解 ,易于实现 、易于测试和维护。4) 一个模块的作用范围应在其控制范围之内,且判定所在的模块,应与受其影响的模块在层次上尽量靠近。5) 软件结构的深度、宽度 、扇入 、扇出应适当 。6) 力求设计单入口和单出
22、口的模块,避免 “ 病态连接 ”, 以防止内容耦合。7) 设计功能可预测模块的划分,应防止功能过分局限。10.结构化设计的优点是什么?( 问题 PPT上无此问 ,自己选择 )1) 减少设计复杂性。将大化小 ,使复杂问题简单化。2) 结构独立 。将程序划分成多个相对独立的模块。3) 模块功能单一化,可使软件设计获得最大的益处。4) 易于进行软件修改。5) 易于开发和维护。6) 加强了代码的可重用性。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 23 页 - - - -
23、- - - - - .word 格式 , , 专业 .专注. 代码设计1.代码设计的主要原则是什么?1)使用语言中的顺序、选择 、重复等有限的基本控制结构表示程序逻辑;2)选用的控制结构只准许有一个入口和一个出口;3)程序语句组成容易识别的块,每块只有一个入口和一个出口;4)复杂结构应该用基本控制结构进行组合嵌套来实现2.编程规范包括哪些内容?名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 23 页 - - - - - - - - - .word 格式 , , 专业 .
24、专注. 1)命题规范2)界面规范3)提示及帮助信息规范4)热键定义等3.良好的代码设计风格包括哪些内容?1)规范化的程序内部文档2)数据结构的详细说明3)清晰的语句结构4)遵守编程规范4.代码语句设计应遵从哪些原则?1)在一行内只写一条语句2)程序编写清晰性第一3)程序要能直截了当地说明程序员的用意4)清晰第一 ,效率第二5)先保证程序正确,再要求提高速度6)避免使用临时变量而使可读性下降7)让编译程序做简单的优化8)尽可能使用库函数和构件9)避免不必要的转移:尽量不用 GO TO 语句10)尽量采用三种基本的控制结构编写程序名师资料总结 - - -精品资料欢迎下载 - - - - - - -
25、 - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 23 页 - - - - - - - - - .word 格式 , , 专业 .专注. 5.I/O 代码设计的原则是什么?1)输入数据要检验2)检查输入项的各种重要组合的合理性3)输入的步骤和操作尽可能简单4)应允许使用自由格式输入数据5)应允许缺省值6)批数据输入时 ,使用输入结束标志7)交互式输入时 ,屏幕上使用提示符明确提示输入的请求8)保持输入格式与输入语句要求的一致性9)输出加注释软件测试1.软件测试的原则?1)软件测试应当尽早和不断地进行。2)程序员应避免检查自己的程序。3)设
26、计测试即应包括合理的、还应包括不合理的输入条件。4)经验表明 ,测试后程序中残存的错误数目与该程序中已发现的错误数目成正比。5)妥善保存测试计划,测试用例 , 出错统计和最终分析报告,为维护提供方便。(a-j 是软件工程课件第八章P6的)a)所有的测试都应追溯到用户需求。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 23 页 - - - - - - - - - .word 格式 , , 专业 .专注. b)软件测试必须基于“ 质量第一 ” 的思想去开展各项工作c)测试
27、计划应该在测试工作真正开始前的较长时间内就进行。d)将Pareto 原则应用于软件测试。e)测试应从 “ 小规模 ” 开始 ,逐步转向 “ 大规模 ”。f)测试用例是设计出来的,不是写出来的 。g)穷举测试是不可能的h)为了达到最佳效果,应该由独立的第三方来构造测试。i)不充分的测试是不负责任的;过分的测试也是一种不负责任的表现j)重视文档 。2.软件测试的最初定义? 最初定义 :软件测试是为了发现错误而执行程序的过程。3.软件测试的经典定义? 经典定义 :测试是程序的执行过程,目的在于发现错误;一个好的测试在于能发现至今未发现的错误;一个成功的测试是发现了至今未发现的错误的测试。4.测试的目
28、的 ?1)以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。2)能够证明软件的功能和性能与需求说明相符合。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 23 页 - - - - - - - - - .word 格式 , , 专业 .专注. 3)测试结果数据为可靠性分析提供了依据。4)测试不能表明软件中不存在错误,它只能说明软件中存在错误。5.黑盒测试的优点?1)对于较大的代码单元来说,黑盒测试比白盒测试效率要高;2)测试人员不需要了解实现的细节,包括特定的编程
29、语言;3)从用户的角度进行测试,容易被理解和接受;4)有助于暴露任何规格不一致或有歧义的问题;6.黑盒测试的缺点?1)要测试每个可能的输入流几乎是不可能的;2)会有很多程序路径没有被测试到;3)不能直接针对特定程序段测试, 因此可能隐藏更多的问题。7.白盒测试的优点?1)迫使测试人员去仔细思考软件的实现;2)可以检测代码中的每条分支和路径;3)揭示隐藏在代码中的错误;4)对代码的测试比较彻底。8.白盒测试的缺点?成本高 ;忽略了从用户角度考虑的测试问题;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 23 页 - - - - - - - - - .word 格式 , , 专业 .专注. 9.测试报告包括哪些内容?1)测试任务描述2)测试环境说明3)功能测试描述4)性能测试描述5)确认性测试描述6)测试总结名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 23 页,共 23 页 - - - - - - - - -