软件工程导论复习资料解答

合集下载

《软件工程导论》参考答案

《软件工程导论》参考答案

参考答案(范村长下载的)第1章一、选择题1. D2. C3. B4. D5. B6. A7. D二、填空题1. 程序文档数据2. 抽象模块化信息隐蔽局部化一致性完备性可验证性3. 问题定义可行性研究需求分析4. 软件生命周期模型顺序性依赖性5. 制定计划风险分析实施工程客户评价6. 结构化分析结构化设计结构化程序设计数据流自顶向下,逐步求精功能的分解与抽象三、思考题1. 答:软件产品是一种无形的逻辑产品,是人们脑力劳动的结晶。

软件产品只能以程序、数据和文档的形式出现。

其存储介质是磁盘、磁带或光盘。

通过计算机的执行才能体现出来。

与硬件产品的制造不同,软件产品的成本主要花在研制上,而产品的制造实质上是所开发产品的拷贝。

软件产品不会像硬件产品一样磨损,但仍然需要维护,而且维护的成本很高。

软件产品的开发主要靠脑力劳动,所以产品研制的成本很高,很难像硬件产品那样实现工业化生产。

2. 答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

概括地说,软件危机包含下述两方面的问题:如何开发软件,以满足对软件的日益增长的需求;如何维护数量不断膨胀的软件。

具体来说,软件危机主要有以下一些典型表现。

对软件开发成本和进度的估计常常很不准确。

用户对所交付的软件系统不满意的现象时有发生。

软件产品的质量往往靠不住。

软件常常是不可维护的。

软件文档资料通常不完整、不合格。

软件的价格昂贵,软件成本在计算机系统总成本中所占的比例逐年上升。

软件开发生产率提高的速度,既跟不上硬件的发展速度,也远远跟不上日益增长的软件需求。

3. 答:软件工程的基本目标是在给定的成本、进度等条件下,开发出满足用户需求的软件产品。

简单来说,也就是要成功地建造一个大型软件系统。

软件项目的成功主要是要达到以下几个目标:付出较低的软件开发成本;达到用户所要求的软件功能;取得较好的软件性能;所开发的软件易于移植、可重用性好;需要较低的软件维护费用;能按时完成开发任务,及时交付使用;软件工程面临的主要问题是:软件费用、软件可靠性、软件维护、软件生产率和软件重用等。

软件工程导论复习题及答案

软件工程导论复习题及答案

的耦合度最低。一个模块内部的内聚种类中 D 内聚的内聚度最高, E 内聚的内聚度最低。
A:① 低内聚低耦合 ② 低内聚高耦合
③ 高内聚低耦合
④ 高内聚高耦合
B:① 数据 C:① 数据 D:① 偶然 E:① 偶然
② 非直接 ② 非直接 ② 逻辑 ② 逻辑
③ 控制 ③ 控制 ③ 功能 ③ 功能
④ 内容 ④ 内容 ④ 过程 ④ 过程
2). C :例如,一个模块把开关量作为参数传送给另一模块。
3). D :例如,一个模块把一个数值量作为参数传送给另一模块。
其中, E5 的耦合性最强。
A:① 强
② 适中
③弱
④ 不考虑
B~E:
① 公共耦合
② 数据耦合
③ 逻辑耦合
④ 外部耦合
⑤ 内容耦合
⑥ 控制耦合
6.软件设计中划分模块的一个准则是 A 。两个模块之间的耦合方式中, B 耦合的耦合度最高, C 耦合
② 关于系统的高层逻辑模型
③ 用户手册
④ 操作手册
B:① 程序流程图 C:① 程序流程图 D:① 程序流程图 E:① 程序流程图
② IPO 图 ② 数据流图 ② HIPO 图 ② 算法描述
③ 成本/效益分析 ③ HIPO 图 ③ 数据字典 ③ IPO 图
④ 数据字典 ④ 算法描述 ④ 成本/效益分析 ④ HIPO 图
思想是 E ,这是提高可维护性的重要措施。
A~C:(共有下列 15 个可选择的答案供选择)
① 记录
② 集合
③ 指针
④树
⑤图
⑥表
⑦ 顺序
⑧ 选择
⑨ 重复
⑩ 线性表
⑾ 键表
⑿ 列表
⒀ 数组
⒁栈

软件工程导论简答题整理版

软件工程导论简答题整理版

第一章4.什么是软件工程?它与软件工程方法学有何关系?软件过程是为了开发高质量的软件产品所需完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

软件过程定义了运用技术方法的顺序,应该交付的文档资料,为保证软件质量和协调软件变化必须采取的管理措施,以及标志完成了相应开发活动的里程碑。

软件过程是软件工程方法学的3个重要组成部分之一。

7.假设要求你开发一个软件,该软件的功能是把读入的浮点数开平方,所得到的结果应该精确到小数点后4位。

一旦实现并测试完之后,该产品将被抛弃。

你打算选用哪种软件生命周期模型?请说明你作出选择的理由。

答:对这个软件的需求很明确,实现开平方功能的算法也很成熟,因此,既无须通过原型来分析需求也无须用原型来验证设计方案。

此外,一旦实现并测试完之后,该产品将被抛弃,因此也无须使用有助于提高软件可维护性的增量模型或螺旋模型来开发该软件。

第三章一列火车最多有两个火车头。

只有一个火车头时则位于列车最前面,若还有第二个火车头时,则第二个火车头位于列车最后面。

火车头既可能是内燃机车也可能是电器机车。

车厢分为硬座车厢、硬卧车厢和软卧车厢等3种。

硬座车厢在所有车厢的前面部分,软卧车厢在所有车厢的后面部分。

此外,在硬卧车厢和软卧车厢之间还有一节餐车。

答:jackson图善于描绘复杂事物的组成。

用jackson图描绘一列火车的构成的方法至少有两种,一种方法是把火车分为一个车头和两个车头两类,另一种方法是把后车头作为可选的。

图3.29给出了描绘一列火车的构成的jackson图。

用Jackson 图描绘一列火车的构成第四章3.假设有一个由5000行FORTRAN语句构成的程序(经编译后大约有25000条机器指令),你估计在对它进行测试期间将发生多少个错误?为什么?答:经验表明,在类似的程序中,单位长度里的错误数Er/Ir近似为常数。

美国的一些统计数字告诉我们,通常0.5ⅹ10-2 <= Er/Ir <= 2ⅹ10-2也就是说,在测试之前每1000条指令中大约有5-20个错误.假设在该程序的每1000条指令中大约有10个错误,则估计在对它进行测试期间将发现的错误数为25000ⅹ10/1000=250第五章3、某软件公司拟采取下述措施提高他们开发出的软件产品的可维护性。

软件工程导论课后习题解答

软件工程导论课后习题解答

第一章1-1 什么是软件危机?答:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

1-3 什么是软件工程?答:是指导计算机软件开发和维护的一门工程学科。

1-4 简述结构化范型和面向对象范型的要点,并分析它们的优缺点。

答:目前使用得最广泛的软件工程方法学有2种:传统方法学:也称为生命周期方法学或结构化范型。

优点:把软件生命周期划分成若干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。

缺点:当软件规模庞大时,或者对软件的需求是模糊的或会随着时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。

面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作;促进了软件重用。

1-5、根据历史数据可以做出如下的假设:对计算机存储容量的需求大致按下面公式描述的趋势逐年增加:M = 4080 e0.28(Y-1960)存储器的价格按下面公式描述的趋势逐年下降:P1 = 0.3×0.72Y-1974(美分/位)如果计算机字长为16位,则存储器价格下降的趋势为:P2 = 0.048×0.72Y-1974(美元/字)在上列公式中Y代表年份,M是存储容量(字数),P1和P2代表价格。

基于上述假设可以比较计算机硬件和软件成本的变化趋势。

要求计算:(1) 在1985年对计算机存储容量的需求估计是多少?如果字长为16位,这个存储器的价格是多少?(2) 假设在1985年一名程序员每天可开发出10条指令,程序员的平均工资是每月4000美元。

如果一条指令为一个字长,计算使存储器装满程序所需用的成本。

(3) 假设在1995年存储器字长为32位,一名程序员每天可开发出30条指令,程序员的月平均工资为6000美元,重复(1)、(2)题。

(1)在1985年对计算机存储容量的需求,估计是M= 4080 e0.28(1985-1960)= 4080 e7=4474263(字)如果字长为16位,则这个存储器的价格是P= 0.048 × 0.721995-1974× 73577679 = 5789(美元)(2)如果一条指令的长度为一个字,则使存储器装满程序共需4474263条指令。

软件工程导论复习题含答案

软件工程导论复习题含答案

软件工程习题集第1章概述(一)单项选择题1.“软件危机”产生的主要原因是( A )。

A.软件日益庞大B.开发方法不当C.开发人员编写程序能力差D.没有维护好软件2. 软件是一种( B )性工业产品。

A. 理论B. 知识(或逻辑)C. 消耗D. 体力3. 需求分析是在( B )进行的。

A. 用户B. 用户和分析设计人员之间C. 开发人员内部D. 使用和维护人员间4. 软件的主要结构和功能是在( A )阶段决定的。

A. 分析设计B. 编程C. 测试D. 维护5.软件是计算机系统中与硬件相互依存的另一部分,它的组成部分是( D )。

A.程序、数据 B.程序、文档 C.程序 D. 程序、数据、文档6.在软件工程时期,决定软件质量的主要因素是( A )A.管理水平 B.个人程序技术 C.小组技术水平 D.硬件的发展7. 在软件开发模型中,提出最早、应用最广泛的模型是( A )。

A. 瀑布模型B. 喷泉模型C. 增量模型D. 螺旋模型8.瀑布模型把软件生存周期划分为软件定义、软件开发与( C )三个阶段,而每一阶段又可分为若干更小的阶段。

A. 详细设计B. 可行性分析C. 运行及维护D. 测试与排错9. 计算机辅助软件工程,简称( D )。

A. SAB. SDC. SCD. CASE10. 软件危机是软件产业化过程中出现的一种现象,下述现象中:( C )是其主要表现。

①软件需要增长难以满足。

②软件开发成本提高。

③软件开发进度难以控制。

④软件质量不易保证。

A. ③和④B. ③和④C. 全部D. ①、②和③11 软件工程的出现主要是由于( C )。

A. 程序设计方法学的影响B. 其他工程科学影响C. 软件危机的出现D. 计算机的发展12、软件生成周期模型有多种,下列选项中,( C )不是软件生存周期模型。

A.螺旋模型B.增量模型C.功能模型D.瀑布模型(二)简答题1. 软件产品的特点是什么?2. 软件生产的发展经历了哪几个时代?各有何特征?3. 软件危机的概念、表现形式、产生原因、解决途径4. 简述主要的软件生存期模型(或软件开发模型)。

软件工程导论 复习资料

软件工程导论 复习资料

软件工程导论复习资料软件工程导论是计算机科学与技术专业的一门重要课程,它主要介绍了软件工程的基本概念和原理,帮助学生了解软件开发过程中的关键问题和解决方法。

本文将为大家提供一份软件工程导论的复习资料,希望能够帮助同学们更好地复习和掌握这门课程。

1. 软件工程概述1.1 软件工程定义软件工程是一门关于开发和维护大规模软件的学科,它涉及到软件开发的各个阶段和过程。

软件工程的目标是通过系统化和可量化的方法来开发、维护和管理软件,以提高软件的质量、效率和可靠性。

1.2 软件生命周期软件生命周期是软件开发过程中的一个重要概念,它包括需求分析、设计、编码、测试、部署和维护等阶段。

了解软件生命周期的各个阶段和活动,对于理解软件开发过程的全貌和整体把控至关重要。

1.3 软件工程方法学软件工程方法学是用于指导软件开发过程的一种方法体系,包括传统的瀑布模型、敏捷开发方法、迭代开发方法等。

通过学习不同的软件工程方法学,可以使软件开发过程更加有序、高效。

2. 需求工程2.1 需求定义和分类需求工程是软件开发过程中的第一个阶段,它主要涉及到需求的定义、分析和规范化等活动。

了解需求的定义和分类能够帮助我们更好地理解用户的需求,从而制定出更准确的软件需求规格说明书。

2.2 需求获取和分析需求获取是收集用户需求信息的过程,需求分析是将这些需求信息进行过滤、分类和分析的过程。

在需求获取和分析阶段,我们需要使用一些常见的工具和技术,例如面谈、问卷调查、用例图等。

2.3 需求规格说明书需求规格说明书是对系统需求进行详细描述和规范的文档,它包括功能需求、非功能需求、性能需求等内容。

编写清晰、准确的需求规格说明书是软件开发过程中的关键一步,它对于后续的设计和编码工作具有重要的指导作用。

3. 软件设计3.1 软件设计基础软件设计是将需求转化为软件结构的过程,它包括模块化设计、面向对象设计、数据结构设计等。

掌握软件设计的基础知识,能够帮助我们合理划分系统的功能模块,提高软件的可维护性和可扩展性。

《软件工程导论》课后习题详细答案

《软件工程导论》课后习题详细答案

《软件工程导论》课后习题答案第一章软件工程概论1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。

(2)软件产品的质量往往靠不住。

(3)一般软件很难维护。

(4)软件生产效率很低。

(5)软件开发成本越来越大。

(6)软件成本与开发进度难以估计。

(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。

2.为什么会产生软件危机?(1)开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。

造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。

(2)软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。

(3)尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。

3.怎样克服软件危机?(1)充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。

在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。

(2)推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。

(3)根据不同的应用领域,开发更好的软件工具并使用这些工具。

将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。

总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。

4.构成软件项目的最终产品:应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。

5.什么是软件生存周期?软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。

软件工程导论 期末复习题及答案

软件工程导论 期末复习题及答案

软件工程导论期末复习题及答案正确答案:C.研究软件系统的开发过程和方法软件工程的主要目标是提高软件的质量,包括可靠性、可用性、可维护性和可重用性等。

同时,软件工程也致力于降低软件开发和维护的成本,提高软件的生产率。

因此,以上选项都是正确的。

A.人员B.方法C.工具D.程序正确答案:D.程序软件工程的三个基本要素是人员、方法和工具。

其中,人员是指参与软件开发和维护的人员,包括项目经理、系统分析师、程序员、测试人员等;方法是开发软件所采用的方法,包括面向对象方法、面向过程方法等;工具是指支持软件开发和维护的工具,包括编译器、调试器、测试工具等。

程序是软件开发的结果之一,不属于软件工程的三个基本要素。

D.软件从测试到发布的整个过程正确答案:A.软件从开发到维护的整个过程软件生命周期是指软件从开发到维护的整个过程,包括需求分析、设计、编码、测试、发布、维护和退役等阶段。

因此,选项A是正确的答案。

选项B、C、D都只描述了软件生命周期的部分阶段,不完整。

A.需求分析B.编码C.测试D.维护正确答案:D.维护软件开发过程中的活动包括需求分析、设计、编码、测试等阶段,而维护是软件使用过程中的一个阶段,不属于软件开发过程中的活动。

因此,选项D是正确的答案。

在软件工程中,以下哪个选项最接近于“用户故事”的定义?答案:A.一种用于描述用户需求的文档。

用户故事是软件开发中的一种重要工具,它用于收集、整理和描述用户需求,以便更好地理解和满足用户的需求。

以下哪个选项是面向对象编程(OOP)中的基本概念?答案:B.类。

在面向对象编程中,类是一种抽象数据类型,它定义了一个对象的结构,包括属性(状态)和方法(行为)。

在软件开发中,以下哪个阶段最可能涉及到代码重构?答案:C.编码阶段。

代码重构是在编码阶段进行的一项活动,它通常涉及到修改和优化代码的结构和实现方式,以提高代码的可读性、可维护性和效率。

答案:A. Git。

版本控制是软件开发中的一项重要工具,用于跟踪和管理代码的变更。

软件工程导论复习资料

软件工程导论复习资料

软件工程导论复习资料第一章软件工程导论一、软件工程是指导计算机软件开发和维护的一门工程学科二、件工程的七条基本原则:1. 用分阶段的生命周期计划严格管理2. 坚持进行阶段评审3. 实行严格的产品控制4. 采用现代程序设计技术5. 结果应能清楚地审查6. 开发小组的人员应该少而精7. 承认不断改进软件工程实践的必要性三、软件工程方法学包含3个要素:方法、工具和过程。

方法是完成软件开发的各项任务的技术方法,回答“怎样做”的问题;工具是为运用方法而提供的自动的或半自动的软件工程支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

四、软件一程方法学:传统方法学、面向对象方法学五、软件生命周期:软件定义、软件开发和运行维护(也称为软件维护)3个时期组成1软件定义主要任务:问题定义、可行性研究和需求分析2开发时期主要任务:总体设计,详细设计,编码和单元测试,综合测试3维护时期主要任务:通过各种维护性活动使系统持久地满足用户的需求,通常有四类维护:改正性维护,也就是诊断和改正在使用过程中发现的软件错误;适应性维护,即修改软件以适应环境的变化;完善性维护,即根据用户的需求改进若扩充软件使它更完善;预防性维护,即修改软件,为将来的维护活动预先做准备//①问题定义阶段必须回答的关键问题是:“要解决的问题是什么?”②可行性研究~:对于上一个阶段所确定的问题有行得能的解决办法吗?③需求分析:确定目标系统必须具备哪些工能④总体设计:概括地说,应该怎样实现目标系统?⑤详细设计:应该怎样具体地实现这个系统呢?⑥编码和单元测试:写出正确的容易理解、容易维护的程序模块⑦综合测试:通过各种类型测(及相应的调试)使软件达到预定的要求,最基本的测试是集成测试和验收测试,集成测试是根据设计的软件结构,把经过单元测试检验的模块按某种选定的策略装配起来,在装配过程中对程序进行必要的测试;验收测试则是按照规格说明的规定,由用户对目标系统验收六、软件过程的各种模型:瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型第二章可行性研究一、可行性研究的任务分析几种主要的可能解法的利弊,从而判断原定的系统规模和目标是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度二、可行性(1) 技术可行性使用现有的技术能实现这个系统吗?(2) 经济可行性这个系统的经济效益能超过它的开发成本吗?(3) 操作可行性系统的操作方式在这个用户组织内行得通吗?三、可行性研究过程1. 复查系统规模和目标、2. 研究目前正在使用的系统3. 导出新系统的高层逻辑模型、4. 进一步定义问题5. 导出和评价供选择的解法、6. 推荐行动方针7. 草拟开发计划、8. 书写文档提交审查四、系统流程图:是概括地描绘物理系统的传统工具。

软件工程导论简答题整理版

软件工程导论简答题整理版

软件工程导论简答题整理版1. 什么是软件工程?软件工程是指通过系统性的、可量化的方法,对软件的开发、运行和维护进行管理,以提高软件质量和效率的学科。

2. 为什么需要软件工程?软件工程的出现是为了解决传统的软件开发方式中存在的问题,例如项目延期、质量低下和开发成本高等。

通过软件工程的方法和原则,可以规范开发过程,提高开发效率和质量。

3. 软件生命周期是什么?软件生命周期是指从软件开发开始到废弃的整个过程。

它包括需求分析、设计、编码、测试、部署和维护等阶段。

4. 什么是软件需求?软件需求是对软件系统功能、性能和其他特性的描述和规定。

它包括用户需求、系统需求和软件需求规格说明等。

5. 如何进行软件需求分析?软件需求分析是指对软件需求进行细化和明确,以便于后续的设计和开发工作。

可以通过访谈用户、观察业务流程和收集用户反馈等方式进行需求分析。

6. 什么是软件设计?软件设计是指根据软件需求,定义软件系统的结构、组件和接口等,以满足需求的功能和质量要求。

7. 软件设计有哪些原则?软件设计应遵循高内聚、低耦合、模块化、可重用、可维护等原则。

同时,还需要考虑软件的可靠性、可扩展性和性能等因素。

8. 软件测试的目的是什么?软件测试的目的是评估软件系统的质量和功能是否符合需求规格。

通过测试可以发现软件中的错误和缺陷,并促使其修复,以提高系统的稳定性和可靠性。

9. 软件测试方法有哪些?常见的软件测试方法包括黑盒测试、白盒测试和灰盒测试。

黑盒测试关注输入和输出,不关心内部实现;白盒测试关注程序内部结构和代码逻辑;灰盒测试结合了黑盒测试和白盒测试的思想。

10. 什么是软件配置管理?软件配置管理是指对软件配置项进行控制和管理,保证软件系统的可控性和可维护性。

它包括配置项的标识、变更控制、版本管理和发布管理等。

11. 什么是软件项目管理?软件项目管理是指对软件项目进行计划、组织、指导和控制,以达到项目的目标和要求。

它包括进度管理、质量管理、风险管理和团队管理等方面。

软件工程导论课后复习题答案

软件工程导论课后复习题答案

第一章一、什么是软件危机?它有哪些典型表现?为什么会出现软件危机?软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。

它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。

软件危机的典型表现:(1) 对软件开发成本和进度的估计常常很不准确。

常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。

而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。

这些都降低了开发商的信誉,引起用户不满。

(2) 用户对已完成的软件不满意的现象时有发生。

(3) 软件产品的质量往往是靠不住的。

(4) 软件常常是不可维护的。

(5) 软件通常没有适当的文档资料。

文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。

(6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。

(7) 开发生产率提高的速度远跟不上计算机应用普及的需求。

软件危机出现的原因:(1) 来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。

(2) 软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。

(3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。

二、什么是软件工程?它有哪些本质特征?怎样用软件工程消除软件危机?1993年IEEE的定义:软件工程是:①把系统的、规的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。

软件工程的本质特征:(1) 软件工程关注于大型程序(软件系统)的构造(2) 软件工程的中心课题是分解问题,控制复杂性(3) 软件是经常变化的,开发过程中必须考虑软件将来可能的变化(4) 开发软件的效率非常重要,因此,软件工程的一个重要课题就是,寻求开发与维护软件的更好更有效的方法和工具(5) 和谐地合作是开发软件的关键(6) 软件必须有效地支持它的用户(7) 在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人(完成一些工作)消除软件危机的途径:(1) 对计算机软件有一个正确的认识(软件≠程序)(2) 必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目(3) 推广使用在实践中总结出来的开发软件的成功技术和方法(4) 开发和使用更好的软件工具三、简述结构化型和面向对象型的要点,并分析他们的优缺点。

软件工程导论简答题

软件工程导论简答题

1.软件工程旳七条基本原理是什么?答:软件工程旳七条基本原理是:用分阶段旳是旳生存周期计划严格管理;坚持进行阶段评审;严格实行旳产品控制;采用现代程序技术;成果应能清晰地审查;开发小组旳组员应当少而精;承认不停改善软件工程旳必要性。

2.良好旳编码风格应具有哪些条件?答:应具有如下条件:(1)使用原则旳控制构造;(2)有限制地使用GOTO语句;(3)源程序旳文档化(应具有如下内容)①故意义旳变量名称——“匈牙利命名规则”。

②合适旳注释——“注释规范”。

③原则旳书写格式:——用分层缩进旳写法显示嵌套构造旳层次(锯齿形风格);——在注释段旳周围加上边框;——在注释段与程序段、以及不一样程序段之间插入空行;——每行只写一条语句;——书写体现式时,合适使用空格或圆括号等作隔离符。

(4)满足运行工程学旳输入输出风格。

3.简述文档在软件工程中旳作用。

答:(1) 提高软件开发过程旳能见度(2) 提高开发效率(3) 作为开发人员阶段工作成果和结束标志(4) 记录开发过程旳有关信息便于使用与维护;(5) 提供软件运行、维护和培训有关资料;(6) 便于顾客理解软件功能、性能。

4.可行性研究包括哪几方面旳内容?答:(1)经济可行性:与否有经济效益,多长时间可以收回成本;(2)技术可行性:既有技术能否实现本系统,既有技术人员能否胜任,开发系统旳资源能否满足;(3)运行可行性:系统操作在顾客内部行得通吗?(4)法律可行性:新系统开发与否会侵犯他人、集体或国家利益,与否违反国家法律。

5.构造化旳需求分析描述工具有哪些?答:有数据流图(DFD)、数据字典(DD)、鉴定表、鉴定树、构造化语言(PDL)、层次方框图、Warnier图、IPO图、控制流图(CFD)、控制阐明(CSPEC)、状态转换图(STD)和实体—关系图(E—R)等。

6.一般面向对象分析建模旳工具(图形)有哪些?答:用例图、类/对象图、对象关系图、实体—关系图(E—R)、事件轨迹图(时序图)和状态转换图(STD)等7.UML统一建模语言有哪几种图形?用例图、类图、对象图、构件(组件)图、布署(配置)图、状态图、活动图、次序(时序)图、合作(协作)图等九种图。

软件工程导论复习题及答案详解

软件工程导论复习题及答案详解

第一章一、名称解释1.软件2.文档3.软件工程4.软件生存周期5.软件工程过程6.软件生存周期模型7.软件开发方法8.软件工具二、填空题1.构成一个完整计算机系统的两部分是硬件与________。

2.程序设计时代的生产方式是________。

3.软件工程涉及到几个学科,它是一门_____学科。

4.软件开发划分的各阶段任务尽可能独立,同一阶段任务性质尽可能________。

5.将软件生存周期各个活动规定为依线性顺序联接的若干阶段的模型是________模型。

6.喷泉模型是一种以用户需求为动力,以_______为驱动的模型。

7.结构化方法是一种面向数据流的开发方法。

由结构化分析、_______、结构化程序设计构成。

8.软件工程研究的主要内容是软件开发管理和_______两个方面。

9.软件工具是支持软件开发人员的开发和维护活动而使用的________。

10.一个软件项目的开发中,要采用一种生存周期模型,要按照某种________,使用相应的工具来进行。

三、选择题1.软件是一种( )产品。

A.物质B.逻辑C.有形D.消耗2.软件产品的开发主要是( )。

A.复制B.再生产C.拷贝D.研制3.个体手工劳动生产方式的时代是( )。

A.程序设计B.软件生产自动化C.程序系统D.软件工程4.与计算机科学的理论研究不同,软件工程是一门( )学科。

A.理论性B.原理性C.工程性D.心理性5.软件重用的单位是( )。

A.软件模块B.性能C.系统D.功能6.软件开发费用只占整个软件系统费用的( )。

A.1/2B.1/3C.1/4D.2/37.软件开发中大约要付出( )%的工作量进行测试和排错。

A.20B.30C.40D.508.准确地解决“软件系统必须做什么”是( )阶段的任务。

A.可行性研究B.需求分析C.详细设计D.编码9.软件生存周期中最长的是( )阶段。

A.需求分析B.概要设计C.测试D.维护四、简答题1.软件产品的特性是什么?2.软件生产有几个阶段?各有何特征?3.什么是软件危机?产生的原因是什么?4.软件工程的性质、目标和内容是什么?5.软件工程面临的问题是什么?6.软件工程过程有哪些过程?7.软件生存周期有哪几个阶段?8.软件生存周期模型有哪些主要模型?9.有哪些主要软件开发方法?参考答案二填空题1.软件 2.个体手工劳动3.综合性交叉 4.相同5.瀑布 6.对象7.结构化设计8.软件开发技术9.软件10.开发方法三、选择题1.B 2.D 3.A 4.C5.A 6.B 7.C 8.B 9.D第二章一、名称解释1.可行性研究2.技术可行性3.经济可行性4.社会可行性5.货币时间价值6.投资回收期7.纯收入8.系统流程图二、填空题1.可行性研究的目的是用最小的代价,在尽可能短的时间内,确定________。

软件工程导论知识点总结(整理)

软件工程导论知识点总结(整理)

《软件工程导论》课后习题答案第一章软件工程概论1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。

(2)软件产品的质量往往靠不住。

(3)一般软件很难维护。

(4)软件生产效率很低。

(5)软件开发成本越来越大。

(6)软件成本与开发进度难以估计。

(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。

2.为什么会产生软件危机?(1)开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。

造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。

(2)软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。

(3)尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。

3.怎样克服软件危机?(1)充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。

在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。

(2)推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。

(3)根据不同的应用领域,开发更好的软件工具并使用这些工具。

将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。

总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。

4.构成软件项目的最终产品:应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。

5.什么是软件生存周期?软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。

《软件工程导论》课后习题详细答案

《软件工程导论》课后习题详细答案

数字零=0 3位数字=3{数字}3 8位数字=非零数字+7位数字 7位数字=7{数字}7 数字=[0|1|2|3|4|5|6|7|8|9] 6. 可行性研究报告的主要内容? 可行性分析的结果是可行性研究报告,内容包括:(1) 系统概述:说明开发的系统名称,提出单位 和开发单位。 (2) 可行性研究的前提:系统目标; 要求; 约束和限制; 可行性研究的基本准则等。 (3) 对 现有系统的分析:处理流程,图示说明现有系统的处理流程和数据流程;现有系统存在的问题。 (4) 系统 需求:主要功能;主要性能及其要求;操作要求;信息要求;限制性要求。(5) 建议系统:系统目标;处理 流程;系统结构,功能,性能;系统技术可行性;投资和效益分析;操作可行性;法律可行性。(6) 其它可 选方案:与国内外同类型方案的比较; 提出一两个可行性方案供论证和探讨。 (7) 制定下一阶段的预算。 (8) 结论性意见:由用户方、设计方和投资方共同签署意见。 第三章 需求分析 习题答案 //3至3个数字
M 4080e 0.28(19851960) 4080e 7 4,474,263(字)
P 0.048 0.7219851974 4474263
5, 789(美元)
(2)如果一条指令的长度为一个字,则使存储器装满程序共需4474263条指令。 在1985年一名程序员每天可开发出10条指令,如果每月有20个工作日,则每人每月可开发出10×20条指 令。 为了开发出4474263条指令以装满存储器,需要的工作量是:
M 4080e 0.28(19951960)
73,577,679(字)
如果一条指令为一个字长,则为使存储器装满程序共需73,577,679条指令。
7,127(美元)

软件工程导论知识点总结(整理)(word文档物超所值)

软件工程导论知识点总结(整理)(word文档物超所值)

《软件工程导论》课后习题答案第一章软件工程概论1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

这些问题表现在以下几个方面: (1)用户对开发出的软件很难满意。

(2)软件产品的质量往往靠不住。

(3)一般软件很难维护。

(4)软件生产效率很低。

(5)软件开发成本越来越大。

(6)软件成本与开发进度难以估计。

(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。

2.为什么会产生软件危机? (1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。

造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。

(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。

(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。

3.怎样克服软件危机? (1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。

在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。

(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。

(3) 根据不同的应用领域,开发更好的软件工具并使用这些工具。

将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。

总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。

4.构成软件项目的最终产品: 应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。

5.什么是软件生存周期? 软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件工程导论复习题汇总一、选择题1.软件重用的单位是A。

A.软件模块B.功能C.系统D.语句2.软件生存周期借用了 D 中产品生存周期的概念。

A.计算机科学B.需求C.数学D.工程3.项目开发计划是 D 文档。

A.技术性B.管理性C.设计D.需求分析4.在结构化分析(SA)中, C 与数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分。

A.模块图B.E-R图C.数据字典D.程序流程图5.为了提高模块的独立性,模块之间最好是A 。

A.数据耦合B.控制耦合C.公共耦合D.内容耦合6.对一个开始是模糊的模块进行处理过程分解时,下面说法错误的是 D 。

A.用顺序方式对过程分解,确定各部分的执行顺序B.用选择方式对过程分解,确定某个部分的执行条件C.用循环方式对过程分解,确定某个部分进行重复的开始和结束的条件D.对处理过程仍然模糊的部分反复使用循环方式对过程进行分解7.软件测试的关键问题是A 。

A.如何选择测试用例B.如何采用综合策略C.如何验证程序的正确性D.如何组织软件评审8.软件生存期的 D 工作与软件的可维护性有密切的关系。

A.详细设计阶段B.编码阶段C.测试阶段D.每个阶段9.增量模型属于一种 B 模型。

A.整体开发B.非整体开发C.较早产生工作软件D.灵活性差10.下列说法正确的是 D 。

A.动态模型指出发生了什么B.对象模型确定什么时候发生C.功能模型确定发生的客体D.动态模型描述的系统属性是触发事件、事件序列、状态、事件与状态的组织11.用类库这种机制和结构来实现 D 中的信息共享。

A.同一应用B.不同应用C.同一个类D.不同类12.为了确保每个开发过程的质量,防止把软件差错传递到下一个过程必须进行 C 。

A.软件维护B.软件测试C.质量检验D.软件容错13.基线可以作为一个检查点,在开发过程中,当采用的基线发生错误时,我们可以知道所处的位置,返回到 A 和最恰当的基线上。

A.最近B.最远C.最长D.最短14.软件开发环境是由软件开发工具和环境集成机制构成的,其中环境集成机制为 A 和软件开发、维护和管理提供统一的支持。

A.工具集成B.工程环境C.软件系统D.环境集成15.在下列文档中,属于需求分析阶段的文档是 D 。

A.软件设计说明书B.项目开发计戈C.可行性分析报告D.需求规格说明书16.属性是个体对象的性质,属性通常用修饰性的 C 来表示。

A.形容词B.动词词组C.名词词组D.副词17.详细设计与概要设计衔接的图形工具是 B 。

A.DFD图B.软件结构图C.程序流程图D.PAD图18.按照软件配置管理的原始指导思想,受控制的对象应是 C 。

A.软件元素B.软件项目C.软件配置项D.软件过程19.软件工程是一门 D 学科。

A.原理性B.理论性C.心理性D.工程性20.软件产品的生产主要是脑力劳动,软件产品的成本主要体现在软件的 C 。

A.复制B.开发方式C.开发和研制D.磨损和消耗21.使用简单、应用广泛、技术成熟的开发方法是 A 。

A.结构化方法B.Jackson方法C.面向对象的开发方法D.VDM22. B 适合于大型软件的开发,它吸收了软件工程“演化和用户对每个周期出现的风险有所了解,从而作出相应的反应。

A.瀑布模型B.螺旋模型C.喷泉模型D.基于知识的模型23.在SA方法的需求描述工具中, A 描述系统的分解,即描述系统由哪几部分组成,各部分之间有什么联系等等。

A.数据流图B.数据字典C.结构化语言D.判定表和判定树24.为了提高模块的独立性,模块内部最好是 D 。

A.逻辑内聚B.通信内聚C.顺序内聚D.功能内聚25.功能性注释嵌入在源程序内部,它是用来说明 A 。

A.程序段或语句的功能B.模块的接口C.数据的名称和用途D.模块的功能26.下列不属于黑盒测试的技术是 C 。

A.等价类划分B.错误推测C.基本路径测试D.因果图27.软件维护时因重新定义局部或全局的常量,重新定义记录或文件格式而导致软件错误,这种维护副作用被称之为 B 副作用。

A.编码B.数据C.文档D.控制28.用于整个开发阶段,及早提交一个原型系统的是 C 原型。

A.探索型B.实验型C.演化型D.渐增型29.下列说法错误的是 D 。

A.面向对象设计是把分析阶段得到的需求,转变成符合成本和质量要求的、抽象的系统实现方案的过程。

B.从面向对象分析到面向对象设计,是一个逐渐扩充模型的过程。

C.面向对象设计就是用面向对象的观点建立求解域模型的过程。

D.面向对象分析和面向对象设计在实际的软件开发过程中二者的界限是明显的。

30.通过执行对象的操作可改变该对象的属性,但它必须通过D 传递。

A.操作B.信息C.方法D.消息31.功能模型的描述工具是 C 。

A.结构图B.状态图C.数据流图D.流程图32.人们常借用硬件可靠性的定量度量方法来度量软件的可靠性与可用性。

其中MTTF是 D 。

A.失效间隔时间B.平均失效间隔时间C.失效等待时间D.平均失效等待时间33.软件工程管理是对软件项目的开发管理。

具体地说,就是对整个软件 A 的一切活动进行管理。

A.生存期B.开发C.制定计划D.项目34.在下列工具与环境中 D 属于较早期的CASE。

A.集成的CASE环境B.基于信息库CASEC.人工智能CASE D.结构的基于图形的CASE35.软件测试中,白盒法是通过分析程序的 B 来设计测试用的。

A.应用范围B.内部逻辑C.功能D.输入数据36.详细设计的结果基本决定了最终程序的 B 。

A.代码的规模B.质量C.可维护性D.运行速度37.结构化程序设计方法在软件开发中用于 B 。

A.测试用例设计B.详细设计C.概要设计D.编码38.在下列工具与环境中 D 属于较早期的CASE。

A.基于信息工程的CASE B.人工智能CASEC.集成CASE环境D.交互编程环境39.软件复杂性主要体现在 B 。

A.数据的复杂性B.程序的复杂性C.控制的复杂性D.问题的复杂性40.McCall软件质量度量模型属于面向软件产品操作的 C 。

A.可靠性B.可重用性C.适应性D.互操作性41.面向对象的特征之一是 C 。

A.对象的唯一性B.抽象C.封装性D.共享性42.用于设计阶段,考核实现方案是否可行的是 C 原型。

A.探索型B.演化型C.实验型D.增量型43.生产性维护活动包括 A 。

A.修改设计B.理解设计C.解释数据结构D.理解功能44.随着软硬件环境变化而修改软件的过程是 B 。

A.校正性维护B.适应性维护C.完善性维护D.预防性维护45.软件测试方法中的静态测试方法之一为 A 。

A.计算机辅助静态分析B.黑盒法C.因果图D.路径覆盖46.在白盒法技术测试用例的设计中 A 是最弱的覆盖标准。

A.语句B.路径C.条件组合D.判定47.软件测试技术包括 D 。

A.错误推断B.集成测试C.回溯法D.边界值分析48.为了提高软件的可维护性,在编码阶段应注意C 。

A.保存测试用例和数据B.提高模块的独立性C.文档的副作用D.养成好的程序设计风格49.结构化程序设计方法提供的工作方式为 B 的组织形式。

A.程序员组B.主程序员组B.分析员组D.管理人员组50.详细设计与概要设计衔接的图形工具是 B 。

A.DFD图B.SC图C.PAD图D.程序流程图51.软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是 C 。

A、硬件环境B、软件开发的环境C、软件开发工具和软件开发的环境D、开发人员的素质52.在下面的软件开发方法中,哪一个对软件设计和开发人员的开发要求最高 B 。

A、结构化方法B、原型化方法C、面向对象的方法D、控制流方法53.软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为A 。

A、瀑布模型B、对象模型C、螺旋模型D、层次模型54.对于分层的DFD,父图与子图的平衡指子图的输入、输出数据流同父图相应加工的输入、输出数据流 A 。

A.必须一致B.数目必须相等C.名字必须相同D.数目必须不等55.软件需求分析阶段的工作,可以分为四个方面:对问题的识别.分析与综合.编写需求分析文档以及 C 。

A. 软件的总结B. 需求分析评审C. 阶段性报告D. 以上答案都不正确56.结构化分析(SA)方法将欲开发的软件系统分解为若干基本加工,并对加工进行说明,下述是常用的说明工具,其中便于对加工出现的组合条件的说明工具是 A 。

a.结构化语言;b.判定树;c.判定表。

A. b和cB. a,b和cC. a和cD. a和b57.为了提高模块的独立性,模块内部最好是C 。

A.逻辑内聚B.时间内聚C.功能内聚D.通信内聚58.面向数据流的设计方法把( D )映射成软件结构。

A、数据流B、模块化C、控制结构D、信息流59.数据流图是常用的进行软件需求分析的图形工具,其基本图形符号是 C 。

A. 输入.输出.外部实体和加工B. 变换.加工.数据流和存储C. 加工.数据流.数据存储和外部实体D. 变换.数据存储.加工和数据流60.软件结构使用的图形工具,一般采用 A 图。

A.DFDB.PADC.SCD.ER61.软件测试可能发现软件中的____B_,但不能证明软件_。

A.所有错误、没有错误B.错误、没有错误C.逻辑错误、没有错误D.设计错误、没有错误62. 软件维护时,对测试阶段未发现的错误进行测试、诊断、定位、纠错,直至修改的回归测试过程称为A 。

A.改正性维护B.适应性维护C.完善性维护D.预防性维护63. 软件维护工作的最主要部分是__C_。

A.校正性维护B.适应性维护C.完善性维护D.预防性维护64. 可被用于与其实现功能相关的其他应用问题的程序称为 A 。

A.可重用性B.可移植性C.可互操作性D.通信共用性65.任何项目都必须精心做好项目管理工作,最常用的计划管理工具是__D___。

A.数据流程图B.程序结构图C.因果图D.PERT图66. 面向对象分析阶段建立的三个模型中,核心的模型是___C__模型。

A.功能B.动态C.对象D.分析67. 汽车有一个发动机。

汽车和发动机之间的关系是B关系。

A.一般具体B.整体成员C.分类关系D.is a68. 通过执行对象的操作改变对象的属性,但它必须通过_B____的传递。

A、接口B、消息C、信息D、操作69. 面向对象的主要特征除对象唯一性、封装、继承外,还有__A__。

A、多态性B、完整性C、可移植性D、兼容70.动态模型的描述工具是____C_。

A.对象图B.结构图C.状态图D.设计图71.作坊式小团体合作生产方式的时代是___C时代。

A.程序设计B.软件生产自动化C.程序系统D.软件工程72.软件需求分析阶段的工作,可以分为以下4个方面:对问题的识别、分析与综合、编写需求分析文档以及( C )。

相关文档
最新文档