软件工程简答题总结复习题带包括答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章
1,与计算机硬件对比,计算机软件有哪些特色?
软件的特色以下。
1)没法直接察看计算机软件的物理形态,只好经过察看它的实质运转状况来认
识它的功能、特征和质量等。
2)人们在剖析、设计、开发、测试软件产品,以及在软件开发项目的管理过
程中,浸透了大批的脑力劳动。
3)不存在像硬件同样的磨损和老化现象,但存在着缺点保护和技术更新的问
题。
4)软件的开发和运转一定依靠于特定的计算机系统环境。
5)拥有可复用性。
3,什么是软件危机?什么原由致使了软件危机?
软件危机的现象以下。
1)经费高出估量,项目再三迟延。
2)不重视需求,开发的软件不可以知足用户的要求,项目成功率低。
3)没有规范的软件工程方法,软件可保护性差、软件质量差、靠谱性差。
4)开发工具落伍,手工方式,开发效率低。
全部致使软件危机的原由,都与软件自己的产品特色有关。
1)软件是一个复杂的逻辑产品。
假如没有解决复杂问题的有效方法,以及软件
产品的结构、质量、可保护性得不到保障,开发与保护花费就会连续高升。
2)软件产品不可以实现大规模复用,这致使了软硬件生产效率的不一样。
3)软件生产是脑力劳动,它看不见、摸不着,开发成本、开发周期等都没法做
到正确估量,生产过程不易控制。
4)软件成本主假如由研发成本构成;而硬件的生产成本主假如资料和制造成
本,分摊的研发成本极少,即软件研发过程与硬件制造过程对比要复杂得
多。
5,请简述软件工程研究的内容。
软件工程研究的内容包含软件开发方法、软件开发模型、软件支持过程和软件
管理过程。
软件开发方法的内容涵盖市场调研、正式立项、需求剖析、项目策划、纲要设
计、详尽设计、编程、测试、试运转、产品公布、用户培训、产品复制、销售、实
施、系统保护、版本升级等。
常用的软件开发模型有瀑布模型、迭代模型、增量模型和原型模型等。
软件支持过程由所支持的CASE工具构成,常用的 CASE工拥有 Power Designer 和Rational Rose 等。
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,请简述软件文档的意义。
文档是指某种数据媒体和此中所记录的数据。
它拥有永远性,并能够由人或机
器阅读,往常仅用于描绘人工可读的东西。
在软件工程中,文档经常用来表示对活
动、需求、过程或结果进行描绘、定义、规定、报告或认证的任何书面或图示的信
息。
它们描绘和规定了软件设计和实现的细节,说明使用软件的操作命令。
文档也
是软件产品的一部分,没有文档的软件就不可以称其为软件。
软件文档的编制在软件
软件工程简答题总结复习题带包括答案
11 / 11 -
开发工作中据有突出的地位和相当大的工作量。
高质量、高效率地开发、散发、管
理和保护文档关于转让、更改、修正、扩大和使用文档,关于充足发挥软件产品的
效益有侧重要的意义。
11。