软件工程 简答题复习题带答案.docx
- 文档编号:6380330
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:9
- 大小:84.21KB
软件工程 简答题复习题带答案.docx
《软件工程 简答题复习题带答案.docx》由会员分享,可在线阅读,更多相关《软件工程 简答题复习题带答案.docx(9页珍藏版)》请在冰豆网上搜索。
软件工程简答题复习题带答案
第一章
1,与计算机硬件相比,计算机软件有哪些特点?
软件得特点如下。
1)无法直接观察计算机软件得物理形态,只能通过观察它得实际运行情况来了解它得功能、特性与质量等。
2)人们在分析、设计、开发、测试软件产品,以及在软件开发项目得管理过程中,渗透了大量得脑力劳动。
3)不存在像硬件一样得磨损与老化现象,但存在着缺陷维护与技术更新得问题。
4)软件得开发与运行必须依赖于特定得计算机系统环境。
5)具有可复用性。
3,什么就是软件危机?
什么原因导致了软件危机?
软件危机得现象如下。
1)经费超出预算,项目一再拖延。
2)不重视需求,开发得软件不能满足用户得要求,项目成功率低。
3)没有规范得软件工程方法,软件可维护性差、软件质量差、可靠性差。
4)开发工具落后,手工方式,开发效率低。
所有导致软件危机得原因,都与软件本身得产品特点相关。
1)软件就是一个复杂得逻辑产品。
如果没有解决复杂问题得有效方法,以及软件产品得结构、质量、可维护性得不到保障,开发与维护费用就会持续升高。
2)软件产品不能实现大规模复用,这导致了软硬件生产效率得不同。
3)软件生产就是脑力劳动,它瞧不见、摸不着,开发成本、开发周期等都无法做到准确估算,生产过程不易控制。
4)软件成本主要就是由研发成本构成;而硬件得生产成本主要就是材料与制造成本,分摊得研发成本很少,即软件研发过程与硬件制造过程相比要复杂得多。
5,请简述软件工程研究得内容。
软件工程研究得内容包括软件开发方法、软件开发模型、软件支持过程与软件管理过程。
软件开发方法得内容涵盖市场调研、正式立项、需求分析、项目策划、概要设计、详细设计、编程、测试、试运行、产品发布、用户培训、产品复制、销售、实施、系统维护、版本升级等。
常用得软件开发模型有瀑布模型、迭代模型、增量模型与原型模型等。
软件支持过程由所支持得CASE工具组成,常用得CASE工具有PowerDesigner与RationalRose等。
7,请简述软件工程得目标、过程与原则。
目标、过程与原则就是一切工程得三维框架,这里就是以工程得观点来瞧待软件开发。
1)软件工程得目标:
降低成本、及时交付高质量得软件产品(高质量、高效率、高效益)。
2)实现目标得过程即完成产品加工得过程,包括:
基本过程、支持过程与组织过程。
3)进行过程应遵守得原则:
原则就就是过程中得轨道约束,包括:
选取适宜得开发范型、采用合适得设计方法、提供高质量得工程支持、重视开发过程得管理。
9,请简述现代软件工程与传统软件工程显著得区别与改进。
1)传统得软件工程就是基于结构化得软件开发方法,而现代软件工程就是以面向对象技术为标志。
2)不仅在编程技术上有很大得改进,而且在分析、设计等整个开发过程中,采用面向对象得思维方式,更加完整、自然地反映客观世界。
3)采用架构技术,开发效率、产品质量得到了极大提高。
4)更注重团队开发与管理,融入更多、更新得管理理念与手段,如RUP模型、XP模型、过程改进、能力成熟度模型、配置管理等。
第二章
1,如何理解软件生命周期得内在特征?
软件产品得生命周期就是指从设计该产品得构想开始,到软件需求得确定、软件设计、软件实现、产品测试与验收、投入使用以及产品版本得不断更新,再到最终该产品被市场淘汰得全过程。
软件生命周期这个概念从时间得角度将软件得开发与维护得复杂过程分解为了若干个阶段,每个阶段都完成特定得相对独立得任务。
由于每个阶段得任务相对于总任务难度会大幅度降低,因此在资源外配、时间把握与项目管理上都会比较容易控制。
应该合理地划分软件生命周期得各个阶段,使各个阶段之间既相互区别又相互联系,为每个阶段赋予特定得任务。
3,当需求不能一次搞清楚,且系统需求比较复杂时应选用哪种开发模型比较合?
开发模型不就是孤立或排斥得,它们之间需要相互借鉴与参考。
螺旋模型就是一种综合性得模型,适与于较复杂得系统。
5,XP就是一种什么样得模型?
XP就是现代版得增量模型,特点就是客户参与、适应变化、测试驱动、以代码为核心。
实行XP得条件如下。
1)企业具有较高得能力成熟度,具有团队开发环境与配套得测试工具。
2)软件结构就是开放得,增量可随意整合。
3)开发团队拥有“系统隐喻"。
7,请简述软件过程。
软件过程就就是软件产品得加工过程,其本质就就是将“客观世界”映射(虚拟)到“计算机世界”,即从抽象到具体得逐步细化过程。
系统分析就就是对客观世界得抽象,中间要经过分析模型、设计模型得逐步细化(具体化),最终得具体结果就就是计算机世界里得代码。
9,请简述CMM得作用。
1)CMM就是评价软件组织开发能力(水平)得参考模型,就是一种认证标准,认可软件工程达到得程度(如同评定职称得条件)
2)CMM就是软件组织提升自身能力、走向成熟得参照系。
它提供了走向成熟得阶梯目标,但并不提供走向目标得方法。
3)CMM等级得提高依靠软件过程改进。
4)CMM既就是评估软件能力成熟度得模型,也起到了促进软件企业按照该模型设置得级别与关键过程域不断改进自己得软件过程得作用。
11,假设您要开发一个软件,它得功能就是把73624、9385这个数开平方,所得到得结果应该精确到小数点后4位。
一旦实现并测试完之后,该产品将被抛弃。
您打算选用哪种软件生命周期模型?
请说明您做出这样选择得理由。
对这个软件得需求很明确,实现开平方功能得算法也很成熟。
因此,既无须通过原型模型来分析需求也无须用原型模型来验证设计方案。
此外,一旦实现并测试完之后,该产品将被地弃,因此也无须使用有助于提高软件可维护性得增量模型或螺旋模型来开发该软件。
综上所述,为了开发这个简单得软件,使用大多数人所熟悉得瀑布模型就可以了。
第五章
1,在选择编程语言时,通常要考虑哪些因素?
1)待开发系统得应用领域,即项目得应用范围。
2)用户得要求。
3)软件开发人员得喜好与能力。
4)系统得可移植性要求。
5)算法与数据结构得复杂性。
3,什么就是调试?
什么就是测试?
二者有何区别?
调试(debug)指得就是对模块得调试,就是程序员交付可运行得代码模块所必须经历得工作。
软件测试(test)有如下特点。
1)软件测试得目得就是发现程序中得错误,就是为了证明程序有错,而不就是证明程序无错。
2)不仅仅就是测试程序,还应该对开发过程中所有得产品进行测试,包括文档,其目得就是为了尽早地、尽可能多地发现并排除软件中潜在得错误。
二者得区别如图5、2所示。
5,请简述静态测试与动态测试得区别。
按照执行测试时就是否需要运行程序,软件测试可以划分为静态测试与动态测试。
静态测试以人工测试为主,通过测试人员认真阅读文档与代码,仔细分析其正确性、一致性及逻辑结构得正确性,从而找出软件产品中得错误或缺陷。
静态测试对自动化工具得依赖性较小,通过人脑得思考与逻辑判断来查找错误,因而可以更好地发挥人得主观能动性。
与静态测试不同得就是,动态测试需要通过实际运行被测程序来发现问题。
测试人员可以输入一系列得测试用例,通过观察测试用例得输出结果就是否与预期相符来检验系统内潜在得问题或缺陷。
7,软件测试得目得就是什么?
测试得目得如下
1)测试就是一个为了发现程序中得错误为目得得程序执行过程。
2)个好得测试用例就是能最大限度地找到迄今为止尚未发现得错误。
3)成功得测试就是能发现了那些尚未发现得错误。
9,什么就是白盒测试?
有哪些常用得白盒测试方法?
白盒测试主要针对于程序内部逻辑与数据流程得测试,因此白盒测试得测试用例设计需要了解程序得内部逻辑。
常用得白盒测试方法主要有逻辑覆盖法、基本路径测试法。
11,软件测试应该划分几个阶段?
各个阶段应重点测试得内容就是什么?
软件测试总得来说可分为单元测试、集成测试、系统测试、验收测试。
每个阶段又分为确定测试计划,测试设计,设计测试用例,实施测试,进行测试报告5个步骤。
1)单元测试就是对软件中得基本组成单位进行得测试,如一个模块、一个过程等。
它就是软件动态测试得最基本得部分,也就是最重要得部分之一,其目得就是检验软件基本组成单位得正确性。
2)集成测试就是软件系统集成过程中所进行得测试,其主要目得就是检查软件单位之间得接口就是否正确。
3)系统测试就是对已经集成好得软件系统进行彻底得测试,以验证软件系统得正确性与性能等满足其规约所指定得要求,检查软件得行为与输出就是否正确并非就是一项简单得任务,它被称为测试得“先知者问题"、
4)验收测试就是向软件得购买者展示该软件系统满足其用户得需求。
它得测试数据通常就是系统测试得测试数据得子集。
5)回归测试就是在软件维护阶段,对软件进行修改之后进行得测试。
其目得就是检验对软件进行。
第十一章
1,请简述项目、项目管理与软件项目管理。
项目、项目管理与软件项目管理得概念如下。
1)项目就是一次性得多任务工作,它具有确定得开始日期、结束日期、工作范围、经费预算、
2)质量标准,以及特定得功能、性能与接口要求。
3)项目管理就是为了实现项目目标,运用相关得知识、技能、方法与工具,对项目得计划、进度、质量、成本、资源进行管理与控制得活动。
4)软件项目管理以通用得项目管理知识体系为基础,管理得对象就是软件工程项目。
它结合软件工程自身得科学规律,采用适合软件产品自身特点得管理方法,使得整个软件开发过程(从分析、设计、编码到测试、维护全过程)都能在管理者得控制之下,以预定成本按期、按质得完成软件交付用户使用。
3,请简述项目计划应该包括得内容。
项目计划应该包括得内容如下。
1)确定详细得项目实施范围。
2)定义递交得工作成果。
3)评估实施过程中主要得风险。
4)制定项目实施得时间计划。
5)成本与预算计划。
6)人力资源计划等。
5,如何进行项目得时间管理?
项目得时间管理首先要对项目活动进行定义,依据包括:
工作分解结构、项目范围说明、历史信息、约束条件、假定与专家评论。
在整个项目中,我们需要一份能清晰描述活动发生得时间与所需要得资源得计划,项目进度安排得内容为如下
1)定义一组项目活动,并建立活动之间得相互关系。
2)估算各个活动得工作量与完成任务所需要得资源。
3)定义里程碑。
4)分配人力与其她资源,制定进度时序。
5)检查进度安排,确保任务之间没有冲突,并且包含了完成项目必需得所有任务。
7,请简述估算得作用。
计划就是项目得启动入口,项目开展过程就就是执行计划。
而估算就是制定计划得依据,因此估算就是项目开展得基础。
估算得主要工作如下。
1)范围估算:
搞清软件边界。
2)规模估算:
定量单位采用LOC或FP
3)工作量估算:
工作量估算决定了开发团队得规模与组建,决定开发周期与进度估算。
4)开发周期与进度估算:
进度估算就是对整个开发周期中不同阶段得里程碑进行估算。
5)人力资源估算:
在考虑各种软件开发资源时,人就是最重要最优先考虑得资源。
6)开发成本估算:
整个开发周期所花费得工作量产生得劳动费用。
7)软硬件资源估算:
软件开发所需得硬件工具及软件工具。
9,请简述做进度计划得两种方式。
做进度计划得两种方式如下。
1)Gant图用线段标明子任务得分解;标明各个任务得计划开始时间、完成时间;标明各个任务与参与工作得人数,各子任务间得并行与串行得关系得衔接情况。
特点:
简单、明了、直观、易于编制;以文档与评审作为开发进度得里程碑。
缺点:
无法标明多个任务之间存在得相互制约关系;无法标明关键得控制作业。
2)工程网络图就是用时间与节点来表示工作流程得有序、有向得网状图形。
它可弥补Gantt图无法表达关键路径与作业之间得制约关系,并且易于调整。
第十二章
1,目前项目开发时常用得小组组织方法有哪些?
目前,项目开发时常用得小组组织方法:
民主制程序员组、主程序员组与现代程序员组。
3,民主制、主程员制各存在什么问题?
民主制程序员组中所有程序员不分主次,这样在责任落实、分工协作方面存在一些问题。
责任不明,分工不清,大家都负责,实际上没有人负责。
主程序员制就是主程序员负责制,克服了民主制得缺点,但又走到了另一个极端--只有主程序员负责,其她成员得积极性就被扼杀了。
另外,主程序员这个位置既就是一个技术岗位,也就是一个管理角色,这样得位置很难找到胜任得人担任。
热衷于技术得人,往往对管理不感兴趣,而具有管理才能得人,大多不会就是技术专家。
第十三章
1,风险识别得步骤有哪些?
风险识别分为三步进行:
收集资料;估计项目风险形势;识别风险。
3,请简述软件质量得定义。
所谓软件质量,就就是供方提供得软件产品满足用户明确与隐含需求得能力特性得总与。
5,什么就是配置项?
什么就是配置管理?
软件配置管理中得基本单元,称为软件配置项。
在开发过程中,将软件得文档、程序、数据进行分割与综合,以利于软件得定义、标识、跟踪、管理,使其最终形成受控得软件版本产品,这一管理过程称为软件配置管理。
7,请简述软件配置管理得工作内容。
配置管理得工作内容一般包括如下得4个方面。
1)标识配置项。
配置项就是配置管理中得基本单元,每个配置项应该包含相应得基本配置管理得信息。
标识配置项就就是要给配置项取一个合适得名字。
2)进行配置控制。
进行配置控制就是配置管理得关键,包括存取控制、版本控制、变更控制与产品发布控制等。
存取控制通过配置管理中得“软件开发库”、“软件基线库”、“软件产品库”来实现。
每个库对应着不同级别得操作权限,为团队成员授予不同得访问权利。
版本控制往往使用自动得版本控制工具来实现,如SVN,变更控制就是应对软件开发过程中各种变化得机制,可以通过建立控制点与报告与审查制度来实现。
产品发布控制面向最终发布版本得软件产品,旨在保证提交给用户得软件产品版本就是完整、正确与一致得。
3)记录配置状态。
配置状态报告记录了软件开发过程中每一次配置变更得详细信息。
记录配置状态得目得就是使配置管理得过程具有可追踪性。
4)执行配置审计。
配置审计就是为了保证软件工作产品得一致性与完整性,从而保证最终软件版本产品发布得正确性。
第十四章
1,为什么要进行软件维护?
软件维护得作用有哪些?
软件维护就是软件产品生命周期得最后一个阶段。
在产品交付并且投入使用之后,为了解决在使用过程中不断发现得各种问题,保证系统正常运行,同时使系统功能随着用户需求得更新而不断升级,软件维护得工作就是非常必要得。
概括地说,软件维护就就是指在软件产品交付给用户之后,为了改正软件测试阶段未发现得缺陷,改进软件产品得性能,补充软件产品得新功能等,所进行得修改软件得过程。
3,传统软件维护分哪几大类?
传统软件维护分4类,分别就是纠错性维护、适应性维护、完善性维护与预防性维护。
5,请简述结构化维护与非结构化维护。
结构化维护得前提就是软件产品或软件项目必须有完善得文档,并且文档与程序代码互相匹配,两者完全一致。
在这样得前提下,维护不但会比较省力,而且维护后可以用原来得测试用例进行回归测试。
相反,若软件产品或软件项目只有程序而没有文档,或文档很不规范、很不齐全,对这样得软件进行维护,则称为非结构化维护。
7,请简述面向缺陷得维护。
面向缺陷维护得内容:
该软件产品能够正常运行,可以满足用户得功能只就是维护前在个别地方存在缺陷,用户不就是非常满意。
克服缺陷得方法就是修改程说得只修改程序,不修改数据结构。
9,怎样理解迭代模型RUP对软件维护得影响?
RUP得功能覆盖整个软件得开发周期,从需求分析开始,直到软件得发布、实施与维护为止,因而它对传统意义下得维护工作产生重大影响。
RUP把软件生命周期定义为4个主要阶段:
初始、细化、构造、移交。
经过这4个阶段得历程被称为一个开发周期,自动产生一个周期内得所有文档,从而生成一个软件产品。
首次经历这4个阶段称为该产品得初开发周期。
除非该产品得生命终止,否则它将重复初始、细化、构造与移交这4个阶段,从而演化为下一代产品,这就就是对旧有产品得维护,也就是新产品得升级换代,也就就是开发周期得演化,也就就是RUP对软件维护工作得影响。
11,请简述软件文档得意义。
文档就是指某种数据媒体与其中所记录得数据。
它具有永久性,并可以由人或机器阅读,通常仅用于描述人工可读得东西。
在软件工程中,文档常常用来表示对活动、需求、过程或结果进行描述、定义、规定、报告或认证得任何书面或图示得信息。
它们描述与规定了软件设计与实现得细节,说明使用软件得操作命令。
文档也就是软件产品得一部分,没有文档得软件就不能称其为软件。
软件文档得编制在软件开发工作中占有突出得地位与相当大得工作量。
高质量、高效率地开发、分发、管理与维护文档对于转让、变更、修正、扩充与使用文档,对于充分发挥软件产品得效益有着重要得意义。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 简答题复习题带答案 答题 复习题 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)