ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:23.73KB ,
资源ID:10729723      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10729723.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(软件工程简答题复习题带答案1111111506.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

软件工程简答题复习题带答案1111111506.docx

1、软件工程简答题复习题带答案1111111506第一章1,与计算机硬件相比,计算机软件有哪些特点?软件的特点如下。1)无法直接观察计算机软件的物理形态,只能通过观察它的实际运行情况来 了解它的功能、特性和质量等。2) 人们在分析、设计、开发、测试软件产品,以及在软件开发项目的管理过 程中,渗透了大量的脑力劳动。3) 不存在像硬件一样的磨损和老化现象,但存在着缺陷维护和技术更新的问 题。4) 软件的开发和运行必须依赖于特定的计算机系统环境5) 具有可复用性。3,什么是软件危机?什么原因导致了软件危机?软件危机的现象如下。1) 经费超出预算,项目一再拖延。2) 不重视需求,开发的软件不能满足用户的要

2、求,项目成功率低。3) 没有规范的软件工程方法,软件可维护性差、软件质量差、可靠性差。4) 开发工具落后,手工方式,开发效率低。所有导致软件危机的原因,都与软件本身的产品特点相关。1) 软件是一个复杂的逻辑产品。如果没有解决复杂问题的有效方法,以及软 件产品的结构、质量、可维护性得不到保障,开发与维护费用就会持续升 高。2) 软件产品不能实现大规模复用,这导致了软硬件生产效率的不同。3) 软件生产是脑力劳动,它看不见、摸不着,开发成本、开发周期等都无法 做到准确估算,生产过程不易控制。4) 软件成本主要是由研发成本构成;而硬件的生产成本主要是材料和制造成 本,分摊的研发成本很少,即软件研发过程

3、与硬件制造过程相比要复杂得 多。5,请简述软件工程研究的内容。软件工程研究的内容包括软件开发方法、软件开发模型、软件支持过程和软件 - .-a*- - mc.-.fz.- - . c.nc. -. . .n. . .-. c- - . . .aa. - . . .c;管理过程。软件开发方法的内容涵盖市场调研、正式立项、需求分析、项目策划、概要设 计、详细设计、编程、测试、试运行、产品发布、用户培训、产品复制、销售、实 施、系统维护、版本升级等。常用的软件开发模型有瀑布模型、迭代模型、增量模型和原型模型等。软件支持过程由所支持的 CASE工具组成,常用的CASE工具有Power Designer

4、 和 Rational Rose 等。7,请简述软件工程的目标、过程和原则。目标、过程和原则是一切工程的三维框架,这里是以工程的观点来看待软件开 发。1) 软件工程的目标:降低成本、及时交付高质量的软件产品(高质量、高效 率、高效益)。2) 实现目标的过程即完成产品加工的过程,包括:基本过程、支持过程和组 织过程。3) 进行过程应遵守的原则:原则就是过程中的轨道约束,包括:选取适宜的 开发范型、采用合适的设计方法、提供高质量的工程支持、重视开发过程 的管理。9,请简述现代软件工程与传统软件工程显著的区别和改进。1) 传统的软件工程是基于结构化的软件开发方法,而现代软件工程是以面向 对象技术为标

5、志。2) 不仅在编程技术上有很大的改进,而且在分析、设计等整个开发过程中, 采用面向对象的思维方式,更加完整、自然地反映客观世界。3) 采用架构技术,开发效率、产品质量得到了极大提高。4) 更注重团队开发和管理,融入更多、更新的管理理念和手段,如RUP模型、 XP模型、过程改进、能力成熟度模型、配置管理等。第二章1,如何理解软件生命周期的内在特征?软件产品的生命周期是指从设计该产品的构想开始,到软件需求的确定、软件 设计、软件实现、产品测试与验收、投入使用以及产品版本的不断更新,再到最终 该产品被市场淘汰的全过程。软件生命周期这个概念从时间的角度将软件的开发和维护的复杂过程分解为了 若干个阶段

6、,每个阶段都完成特定的相对独立的任务。由于每个阶段的任务相对于 总任务难度会大幅度降低,因此在资源外配、时间把握和项目管理上都会比较容易 控制。应该合理地划分软件生命周期的各个阶段,使各个阶段之间既相互区别又相 互联系,为每个阶段赋予特定的任务。3,当需求不能一次搞清楚,且系统需求比较复杂时应选用哪 种开发模型比较合?开发模型不是孤立或排斥的,它们之间需要相互借鉴和参考。螺旋模型是一种 综合性的模型,适和于较复杂的系统。5, XP 是一种什么样的模型?XP是现代版的增量模型,特点是客户参与、适应变化、测试驱动、以代码为核心。实行XP的条件如下。1) 企业具有较高的能力成熟度,具有团队开发环境和

7、配套的测试工具。2) 软件结构是开放的,增量可随意整合。3) 开发团队拥有 “系统隐喻 。7,请简述软件过程。软件过程就是软件产品的加工过程,其本质就是将“客观世界”映射(虚拟) 到“计算机世界”,即从抽象到具体的逐步细化过程。系统分析就是对客观世界的 抽象,中间要经过分析模型、设计模型的逐步细化(具体化),最终的具体结果就 是计算机世界里的代码。9 ,请简述 CMM 的作用。1) CMM 是评价软件组织开发能力(水平)的参考模型,是一种认证标准,认 可软件工程达到的程度(如同评定职称的条件)2) CMM 是软件组织提升自身能力、 走向成熟的参照系。 它提供了走向成熟的 阶梯目标,但并不提供走

8、向目标的方法。3)CMM 等级的提高依靠软件过程改进。4)CMM 既是评估软件能力成熟度的模型, 也起到了促进软件企业按照该模型 设置的级别和关键过程域不断改进自己的软件过程的作用。11 ,假设你要开发一个软件,它的功能是把 73624.9385 这个 数开平方,所得到的结果应该精确到小数点后 4 位。一旦实现 并测试完之后,该产品将被抛弃。你打算选用哪种软件生命周 期模型?请说明你做出这样选择的理由。对这个软件的需求很明确,实现开平方功能的算法也很成熟。因此,既无须通 过原型模型来分析需求也无须用原型模型来验证设计方案。此外,一旦实现并测试 完之后,该产品将被地弃,因此也无须使用有助于提高软

9、件可维护性的增量模型或 螺旋模型来开发该软件。综上所述,为了开发这个简单的软件,使用大多数人所熟悉的瀑布模型就可以 了。第五章1,在选择编程语言时,通常要考虑哪些因素?1)待开发系统的应用领域,即项目的应用范围。2)用户的要求。3)软件开发人员的喜好和能力。4)系统的可移植性要求。5)算法和数据结构的复杂性。3 ,什么是调试?什么是测试?二者有何区别?调试( debug )指的是对模块的调试,是程序员交付可运行的代码模块所必须 经历的工作。软件测试( test )有如下特点。1)软件测试的目的是发现程序中的错误,是为了证明程序有错,而不是证明程序无错2)不仅仅是测试程序,还应该对开发过程中所有

10、的产品进行测试, 包括文档, 其目的是为了尽早地、尽可能多地发现并排除软件中潜在的错误。二者的区别如图5.2所示。霸 试岌现锚溟找出错谋的忡覺、推障请逞以已知盖件汗始,谊用预先畫缈酗,养片扌:可知強内部条件肝捲 琳星一戕 不町预见曲蕴立的精啊在払f解牧杵设卄的長件 卜主矚山程序作五评们稱试和谓试的5,请简述静态测试和动态测试的区别。按照执行测试时是否需要运行程序,软件测试可以划分为静态测试和动态测试。静态测试以人工测试为主,通过测试人员认真阅读文档和代码,仔细分析其正 确性、一致性及逻辑结构的正确性,从而找出软件产品中的错误或缺陷。静态测试 对自动化工具的依赖性较小,通过人脑的思考和逻辑判断来

11、查找错误,因而可以更 好地发挥人的主观能动性。与静态测试不同的是,动态测试需要通过实际运行被测程序来发现问题。测试 人员可以输入一系列的测试用例,通过观察测试用例的输出结果是否与预期相符来 检验系统内潜在的问题或缺陷。7,软件测试的目的是什么?测试的目的如下1) 测试是一个为了发现程序中的错误为目的的程序执行过程。2) 个好的测试用例是能最大限度地找到迄今为止尚未发现的错误。3) 成功的测试是能发现了那些尚未发现的错误。9,什么是白盒测试?有哪些常用的白盒测试方法?白盒测试主要针对于程序内部逻辑和数据流程的测试,因此白盒测试的测试用 例设计需要了解程序的内部逻辑。常用的白盒测试方法主要有逻辑覆

12、盖法、基本路 径测试法。11,软件测试应该划分几个阶段?各个阶段应重点测试的内容 是什么?软件测试总的来说可分为单元测试、集成测试、系统测试、验收测试。每个阶 段又分为确定测试计划,测试设计,设计测试用例,实施测试,进行测试报告 5个步骤。1)单元测试是对软件中的基本组成单位进行的测试,如一个模块、一个过程等。 它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软 件基本组成单位的正确性。2)集成测试是软件系统集成过程中所进行的测试,其主要目的是检查软件单位之 间的接口是否正确。3)系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确 性和性能等满足其规约所指定

13、的要求,检查软件的行为和输出是否正确并非是 一项简单的任务,它被称为测试的 “先知者问题 .4)验收测试是向软件的购买者展示该软件系统满足其用户的需求。它的测试数据 通常是系统测试的测试数据的子集。5)回归测试是在软件维护阶段,对软件进行修改之后进行的测试。其目的是检验 对软件进行。第十一章1 , 请简述项目、项目管理和软件项目管理。项目、项目管理和软件项目管理的概念如下。1)项目是一次性的多任务工作,它具有确定的开始日期、结束日期、工作范围、 经费预算、2)质量标准,以及特定的功能、性能和接口要求。3)项目管理是为了实现项目目标,运用相关的知识、技能、方法与工具,对项目 的计划、进度、质量、

14、成本、资源进行管理和控制的活动。4)软件项目管理以通用的项目管理知识体系为基础, 管理的对象是软件工程项目 它结合软件工程自身的科学规律,采用适合软件产品自身特点的管理方法,使 得整个软件开发过程(从分析、设计、编码到测试、维护全过程)都能在管理 者的控制之下,以预定成本按期、按质的完成软件交付用户使用。3,请简述项目计划应该包括的内容。项目计划应该包括的内容如下1)确定详细的项目实施范围。2)定义递交的工作成果。3)评估实施过程中主要的风险。4)制定项目实施的时间计划。5)成本和预算计划。6)人力资源计划等。5,如何进行项目的时间管理? 项目的时间管理首先要对项目活动进行定义,依据包括:工作

15、分解结构、项目 范围说明、历史信息、约束条件、假定和专家评论。在整个项目中,我们需要一份能清晰描述活动发生的时间和所需要的资源的计 划,项目进度安排的内容为如下1)定义一组项目活动,并建立活动之间的相互关系。2)估算各个活动的工作量和完成任务所需要的资源。3)定义里程碑。4)分配人力和其他资源,制定进度时序。5)检查进度安排,确保任务之间没有冲突, 并且包含了完成项目必需的所有任务7,请简述估算的作用。 计划是项目的启动入口,项目开展过程就是执行计划。而估算是制定计划的依 据,因此估算是项目开展的基础。估算的主要工作如下。1)范围估算 :搞清软件边界。2)规模估算:定量单位采用LOC或FP3)

16、工作量估算 :工作量估算决定了开发团队的规模和组建,决定开发周期和进度 估算。4)开发周期与进度估算 :进度估算是对整个开发周期中不同阶段的里程碑进行估 算。5)人力资源估算 :在考虑各种软件开发资源时,人是最重要最优先考虑的资源。6)开发成本估算 :整个开发周期所花费的工作量产生的劳动费用。7)软硬件资源估算 :软件开发所需的硬件工具及软件工具。9,请简述做进度计划的两种方式。做进度计划的两种方式如下。1) Gant 图用线段标明子任务的分解;标明各个任务的计划开始时间、完成时间; 标明各个任务与参与工作的人数, 各子任务间的并行和串行的关系的衔接情况。 特点:简单、明了、直观、易于编制;以

17、文档与评审作为开发进度的里程碑。 缺点:无法标明多个任务之间存在的相互制约关系; 无法标明关键的控制作业。2) 工程网络图是用时间和节点来表示工作流程的有序、有向的网状图形。它可弥补Gantt图无法表达关键路径和作业之间的制约关系,并且易于调整。第十二章1 , 目前项目开发时常用的小组组织方法有哪些?目前,项目开发时常用的小组组织方法:民主制程序员组、主程序员组和现代 程序员组。3,民主制、主程员制各存在什么问题?民主制程序员组中所有程序员不分主次,这样在责任落实、分工协作方面存在 一些问题。责任不明,分工不清,大家都负责,实际上没有人负责。主程序员制是主程序员负责制,克服了民主制的缺点,但又

18、走到了另一个极端 - 只有主程序员负责,其他成员的积极性就被扼杀了。另外,主程序员这个位置既 是一个技术岗位,也是一个管理角色,这样的位置很难找到胜任的人担任。热衷于 技术的人,往往对管理不感兴趣,而具有管理才能的人,大多不会是技术专家。第十三章1,风险识别的步骤有哪些?风险识别分为三步进行:收集资料;估计项目风险形势;识别风险。3 ,请简述软件质量的定义。所谓软件质量,就是供方提供的软件产品满足用户明确和隐含需求的能力特性的总和5, 什么是配置项?什么是配置管理? 软件配置管理中的基本单元,称为软件配置项。 在开发过程中,将软件的文档、程序、数据进行分割与综合,以利于软件的定义、标识、跟踪、

19、管理,使其最终形成受控的软件版本产品,这一管理过程称为软 件配置管理。7,请简述软件配置管理的工作内容。配置管理的工作内容一般包括如下的 4个方面。1) 标识配置项。 配置项是配置管理中的基本单元,每个配置项应该包含相应的基 本配置管理的信息。标识配置项就是要给配置项取一个合适的名字。2) 进行配置控制。 进行配置控制是配置管理的关键,包括存取控制、版本控制、 变更控制和产品发布控制等。 存取控制通过配置管理中的 “软件开发库” 、“软 件基线库”、“软件产品库”来实现。每个库对应着不同级别的操作权限,为 团队成员授予不同的访问权利。 版本控制往往使用自动的版本控制工具来实现, 如SVN,变更

20、控制是应对软件开发过程中各种变化的机制,可以通过建立控制 点和报告与审查制度来实现。产品发布控制面向最终发布版本的软件产品,旨 在保证提交给用户的软件产品版本是完整、正确和一致的。3)记录配置状态。 配置状态报告记录了软件开发过程中每一次配置变更的详细信 息。记录配置状态的目的是使配置管理的过程具有可追踪性。4)执行配置审计。 配置审计是为了保证软件工作产品的一致性和完整性,从而保 证最终软件版本产品发布的正确性。第十四章1,为什么要进行软件维护?软件维护的作用有哪些?软件维护是软件产品生命周期的最后一个阶段。 在产品交付并且投入使用之后,为了解决在使用过程中不断发现的各种问题,保证系统正常运

21、行,同时使系统功能 随着用户需求的更新而不断升级,软件维护的工作是非常必要的。概括地说,软件 维护就是指在软件产品交付给用户之后,为了改正软件测试阶段未发现的缺陷,改进软件产品的性能,补充软件产品的新功能等,所进行的修改软件的过程。3,传统软件维护分哪几大类?传统软件维护分 4类,分别是 纠错性维护 、适应性维护 、完善性维护 和预防性 维护。5,请简述结构化维护和非结构化维护。 结构化维护的前提是软件产品或软件项目必须有完善的文档,并且文档与程序 代码互相匹配,两者完全一致。在这样的前提下,维护不但会比较省力,而且维护 后可以用原来的测试用例进行回归测试。相反,若软件产品或软件项目只有程序而

22、没有文档,或文档很不规范、很不齐 全,对这样的软件进行维护,则称为非结构化维护。7,请简述面向缺陷的维护。面向缺陷维护的内容:该软件产品能够正常运行,可以满足用户的功能只是维 护前在个别地方存在缺陷,用户不是非常满意。克服缺陷的方法是修改程说的只修 改程序,不修改数据结构。9,怎样理解迭代模型 RUP 对软件维护的影响?RUP的功能覆盖整个软件的开发周期,从需求分析开始,直到软件的发布、实 施和维护为止,因而它对传统意义下的维护工作产生重大影响。RUP把软件生命周期定义为4个主要阶段:初始、细化、构造、移交。经过这 4 个阶段的历程被称为一个开发周期,自动产生一个周期内的所有文档,从而生成一

23、个软件产品。首次经历这 4个阶段称为该产品的初开发周期。除非该产品的生命终 止,否则它将重复初始、细化、构造和移交这 4个阶段,从而演化为下一代产品, 这就是对旧有产品的维护,也是新产品的升级换代,也就是开发周期的演化,也就 是RUP对软件维护工作的影响。11 ,请简述软件文档的意义。 文档是指某种数据媒体和其中所记录的数据。它具有永久性,并可以由人或机器阅 读,通常仅用于描述人工可读的东西。在软件工程中,文档常常用来表示对活动、 需求、过程或结果进行描述、定义、规定、报告或认证的任何书面或图示的信息。 它们描述和规定了软件设计和实现的细节,说明使用软件的操作命令。文档也是软 件产品的一部分,没有文档的软件就不能称其为软件。软件文档的编制在软件开发 工作中占有突出的地位和相当大的工作量。高质量、高效率地开发、分发、管理和 维护文档对于转让、变更、修正、扩充和使用文档,对于充分发挥软件产品的效益 有着重要的意义。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1