软工重点的答案.doc

合集下载

《软件工程》各章课后习题答案

《软件工程》各章课后习题答案

《软件工程》各章课后习题答案软件工程是计算机科学与技术的一门重要学科,旨在研究和应用工程原则和方法来开发高质量的软件系统。

课程中的习题对于加深学生对软件工程理论和实践的理解至关重要。

下面是对《软件工程》各章课后习题的答案,希望能够帮助你更好地掌握软件工程的知识。

第一章:软件工程导论1. 软件工程的定义:答:软件工程是通过应用系统化、规范化和可量化的方法进行软件开发、运行和维护的学科。

2. 软件工程的目标:答:软件工程的目标是提高软件开发的质量、效率和可靠性,使得软件能够满足用户的需求和期望。

3. 软件生命周期模型:答:常见的软件生命周期模型包括瀑布模型、迭代模型、敏捷模型等。

每个模型都有其独特的特点和适用场景。

4. 软件过程模型:答:软件过程模型描述了软件开发过程中的一系列活动和阶段,常见的软件过程模型包括瀑布模型、迭代模型、敏捷模型等。

5. 软件工程的基本原则:答:常见的软件工程基本原则包括分阶段、逐步求精、持续集成、迭代开发、需求优先等。

第二章:软件项目管理1. 软件项目管理的定义:答:软件项目管理是指对软件开发过程中的资源、进度、质量等进行有效管理,以确保软件项目能够按时、按质地完成。

2. 软件项目管理的内容:答:软件项目管理包括项目计划、需求管理、项目进度管理、资源管理、风险管理等方面。

3. 软件项目管理的方法:答:常见的软件项目管理方法包括敏捷项目管理、水平项目管理、里程碑项目管理等。

4. 软件项目管理的工具:答:常用的软件项目管理工具包括甘特图、PERT/CPM网络图、项目管理软件等。

第三章:软件需求分析与规格说明1. 软件需求的定义:答:软件需求是指用户对软件系统的要求和期望,包括功能需求、性能需求、接口需求等方面。

2. 软件需求分析的方法:答:常用的软件需求分析方法包括面向对象分析法、数据流图法、用例分析法等。

3. 软件需求规格说明的格式:答:常见的软件需求规格说明的格式包括自然语言描述、结构化描述、图形描述等。

软件工程复习题及答案

软件工程复习题及答案

软件工程复习题及答案一、选择题软件工程复习题(一)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、开发完毕才见到产品B、及早提供全部完整的软件产品C、开发完毕后才见到工作软件D、及早提供工作软件7、若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。

设计这组测试用例的方法是()A、条件覆盖法B、等价分类法C、边界值分析法D、错误推测法8、软件详细设计主要采用的方法是()A、模块设计B、结构化设计C、PDL 语言D、结构化程序设计9、开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做 () A、.软件工程B、软件周期C、软件危机D、软件产生10、按软件生命周期方法设计软件的过程中,画数据流图属于下面哪个阶段的工作()A、需求分析B、概要设计C、详细设计D、软件维护11、在快速原型模型的开发过程中,仅作为需求说明的补充形式的原型是()A、探索型模型B、演化型模型C、实验型模型D、提交型模型12、程序设计语言的工程特性之一为()A、软件的可重用性B、数据结构的描述性C、抽象类型的描述性D、数据库的易操作性13、软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为 ()A、可用性B、可靠性C、正确性D、完整性14、模块设计中,最不希望的内聚是()A、功能内聚B、通信内聚C、过程内聚D、偶然内聚15、实施快速原型模型方法开发软件的关键在于()A、CASE 工具的支持B、如何开发演化型模型C、项目主管的支持D、开发人员的素质16、程序流程图(框图)中的箭头代表()。

软件工程问答题答案(仅供参考)(精品)

软件工程问答题答案(仅供参考)(精品)

软件工程问答题答案(仅供参考)(精品)软件工程问答题答案(仅供参考)(精品)软件工程是指通过计算机科学与工程学的原理、方法和工具来开发和维护软件的一门学科。

在软件工程领域,存在着许多关键问题和常见的问答题。

本文将为你提供一些常见软件工程问答题的答案,希望能够帮助你更好地理解和应用软件工程的知识。

1. 什么是软件需求工程?软件需求工程是软件工程中的一个重要领域,它关注的是对用户需求进行分析、规范和管理,以便于软件系统的开发和交付。

软件需求工程包括可行性研究、需求获取、需求分析、需求规格说明和需求验证等过程。

2. 请解释软件配置管理是什么?软件配置管理是指通过管理软件系统中的各种配置项和配置变更,以确保软件系统的正确、完整和可追踪。

它包括配置项识别、变更控制、版本控制、配置库管理等活动,旨在提高软件开发和维护过程的可控性和可靠性。

3. 请介绍软件测试的目的和重要性。

软件测试的目的是发现软件系统中的错误、缺陷和潜在问题,以便在软件交付之前进行修复和改进。

软件测试的重要性在于可以提高软件系统的质量和可靠性,降低软件使用过程中的风险和损失。

4. 什么是软件架构?软件架构是指软件系统的基本结构和组织方式。

它描述了软件系统中各个组件之间的关系和交互,以及软件系统的总体设计原则和理念。

软件架构可以帮助团队成员理解和沟通软件系统的设计和实现。

5. 请解释敏捷开发方法。

敏捷开发方法是一种以迭代、循环和适应性为核心的软件开发方法。

它强调团队合作、快速反馈和不断改进,在不断变化的需求环境下能够更加灵活地开发和交付高质量的软件系统。

6. 请介绍软件项目管理的过程和技术。

软件项目管理包括项目计划、项目组织、项目监控和项目交付等过程。

它涉及到时间管理、成本管理、风险管理、质量管理等技术和工具,以确保软件项目能够按时、按量和按质完成。

7. 请解释软件工程中的代码重构。

代码重构是指在不改变软件系统外部行为的前提下,通过对代码的重新组织和调整来改进软件系统的内部质量和可理解性。

软件工程考试题及答案

软件工程考试题及答案

软件工程考试题及答案一、单项选择题(每题2分,共20分)1. 软件工程的三要素不包括以下哪一项?A. 工具B. 方法C. 过程D. 环境答案:D2. 软件需求分析阶段的主要任务是确定软件的()。

A. 功能需求B. 性能需求C. 界面需求D. 所有选项答案:D3. 软件测试的目的是()。

A. 发现软件中的错误B. 证明软件是正确的C. 验证软件是否满足需求D. 所有选项答案:D4. 以下哪一项不是软件维护的类型?A. 纠错性维护B. 适应性维护C. 完善性维护D. 开发性维护答案:D5. 软件项目管理的主要目标是()。

A. 提高软件质量B. 控制成本C. 缩短开发周期D. 所有选项答案:D6. 瀑布模型的主要缺点是()。

A. 缺乏灵活性B. 难以适应需求变化C. 无法并行开发D. 所有选项答案:D7. 敏捷开发方法的核心理念是()。

A. 以文档为中心B. 以人为中心C. 以过程为中心D. 以工具为中心答案:B8. 软件配置管理的主要目的是()。

A. 确保软件的一致性B. 跟踪软件的变更C. 控制软件的版本D. 所有选项答案:D9. 以下哪一项不是软件工程的原则?A. 抽象B. 模块化C. 复用D. 随机性答案:D10. 软件工程的目标是()。

A. 开发高质量的软件B. 提高软件生产率C. 降低软件成本D. 所有选项答案:D二、多项选择题(每题3分,共15分)1. 软件需求分析阶段可能包括以下哪些活动?A. 需求收集B. 需求分析C. 需求规格说明D. 需求验证答案:ABCD2. 软件测试的类型包括以下哪些?A. 单元测试B. 集成测试C. 系统测试D. 验收测试答案:ABCD3. 软件维护的常见原因包括以下哪些?A. 适应环境变化B. 修正软件缺陷C. 提高软件性能D. 增加新功能答案:ABCD4. 软件项目管理的关键活动包括以下哪些?A. 项目规划B. 项目监控C. 项目沟通D. 风险管理答案:ABCD5. 软件工程中的常见开发模型包括以下哪些?A. 瀑布模型B. 螺旋模型C. 敏捷模型D. 增量模型答案:ABCD三、判断题(每题2分,共10分)1. 软件工程的目标是开发出零缺陷的软件。

(完整word版)软工复习题答案.doc

(完整word版)软工复习题答案.doc
客户号码
5位数字串(6)
位数字串(
18)
(2)设计测试用例见表A.2.
表A2测试用例表
测试数据
测试范围
期望结果
(1)()5323456
等价类(1)(5)(6)
有效
(2)(01)8093216
等价类(2)(5)(6)
有效
(3)(0871)3356789
等价类(4)(5)(6)
有效
(4)(067)5065432
A.简化.压缩的
C.彻底的
A)需求分析
B.详细的
D.深入的
.设计过程。
8.下面说法正确的是(C
)。
A.经过测试没有发现错误说明程序正确
B.测试的目标是为了证明程序没有错误
C.成功的测试是发现了迄今尚未发现的错误的测试
D.成功的测试收是没有发现错误的测试
9.面向对象的主要特征除对象唯一性、封装、继承外,还有(
A
)。
A.多态性B.完整性
C.可移植性D.兼容性
四、简述题(第1、2、4答案不确定,需自己去找找)
1:简述需求分析的过程。
回答一:
(1)问题识别
(2)分析与综合
(3)编制需求分析阶段的文档
(4)需求验证
建立软件原型)3(分析需求可行性)4(确认需求优先级)5(建立需求分析模型)
6(创建数据字典)回答二:
(3)特殊需求
说明此用例的特殊要求
(4)前置条件
说明此用例开始执行的前提条件,如参与者登陆成功等
(5)后置条件
说明此用例执行结束后,结果应传给什么参与者
8:简述如何识别分析类及应当注意的问题?
分析类包括实体类、边界类和控制类

高级软件工程往年重点及答案

高级软件工程往年重点及答案

Ch12:软件工程的5个方面?P2软件开发生命周期,软件建模语言,软件工程工具,软件项目计划和跟踪,软件过程管理。

其他比如软件的成本控制,软件系统的人员分配等。

3:遗留系统?P4,P15维护可以使软件系统不断完善,但会导致最初设计的体系结构最终瓦解,系统最终会变成一个遗留系统。

一个大型软件系统对一个组织非常重要,以至于组织会使用一切有效技术来支撑这个软件,这样的系统成为遗留系统。

遗留系统应该停止使用但却没有其他系统来代替。

可以转换,再重新分析业务之后,利用新技术重新开发。

必须对整个遗留系统进行审慎的分析,并结合具体情况考虑这项工程的复杂度、成本与预算,了解团队的重构与设计能力。

8:双向工程?P7,P8双向工程是在正向工程(从设计到编码)和逆向工程(从编码到设计)之间重复进行的活动。

程序设计是指”推敲代码“——写一系列指令让计算机执行一个特定的任务。

程序设计是一种技能,是实现双向工程的技术基础。

双向工程是为了解决不能仅仅靠编程解决的复杂问题而采用的方法。

软件工程,程序设计,复杂的问题需要软件工程,单靠程序无法解决复杂的问题。

9:软件工程中的模型?P8模型是对现实的抽样,是对现实的抽象表示。

抽象是软件工程中一种强有力的技术,通过把精力集中到问题的重要方面并忽略次要方面,来解决系统的复杂性问题。

有意义,因为程序设计的本身意图不是代码而是它所提供的功能,模型就能很好的体现出功能。

21:敏捷软件开发?P21强调软件开发是一种创造性的活动,它不仅仅依靠过程、工具、文档、计划和其他形式的规范,而更多地依靠人和团队合作。

敏捷开发的精神:1 个体和交互胜过过程和工具。

2可以工作的软件胜过面面俱到的文档。

3 客户合作胜过谈判。

4 相应变化胜过遵循计划。

Ch2:4:数据流平衡需求?P29父图中某加工的输入输出数据流应该同其子图的输入输出相同。

Ch3:6:项目管理,度量?P47,P51项目管理师工具、方法、项目设计技术和相关过程管理技术的集合。

软件工程答案整理.doc

软件工程答案整理.doc

填空1.软件测试的目的是尽可能多地发现软件中存在的错误,将测试结果作为纠错的依据。

2.测试阶段的基本任务是根据软件开发各阶段的和程序的,精心设计一组,利用这些实例执行,找出软件中潜在的各种和。

3.测试用例由和预期的两部分组成。

4.软件测试方法一般分为两大类:方法和方法。

5.动态测试通过发现错误。

根据的设计方法不同,动态测试又分为与两类。

6.静态测试采用和的手段对程序进行检测。

7.人工审查程序偏重于的检验,而软件审查除了审查还要对各阶段进行检验。

8.计算机辅助静态分析利用工具对测试程序进行分析。

9.黑盒法只在软件的处进行测试,依据说明书,检查程序是否满足要求。

10.白盒法必须考虑程序的和,以检查的细节为基础,对程序中尽可能多的逻辑路径进行。

11.白盒测试是测试,被测对象是,以程序的为基础设计测试用例。

12.逻辑覆盖是对程序内部有存在的逻辑结构设计测试用例,根据程序内部的逻辑覆盖程度又可分为、、、、和6种覆盖技术。

13.实际的逻辑覆盖测试中,一般以覆盖为主设计测试用例,然后再补充部分用例,以达到覆盖测试标准。

14.循环覆盖是对程序内部有存在的逻辑结构设计测试用例,它通过限制来测试。

15.基本路径测试是在程序基础上,通过分析控制构造的复杂性,导出集合,从而设计测试用例。

16.黑盒测试是测试,用黑盒技术设计测试用例有4种方法:、、和。

17.等价类划分从程序的说明,找出一个输入条件(通常是或),然后将每个输入条件划分成两个或多个。

18.边界值分析是将测试情况作为重点目标,选取正好等于、刚刚大于或刚刚小于的测试数据。

如果输入或输出域是一个有序集合,则应选取集合的元素和元素作为测试用例。

19.在测试程序时,根据经验或直觉推测程序中可能存在的各种错误,称为。

20.因果图的基本原理是通过画图,把用自然语言描述的转换为,最后为每一列设计一个测试用例。

21.测试的综合策略是在测试中,联合使用各种方法。

通常先用法设计基本的测试用例,再用法补充一些必要的测试用例。

(附答案)软件工程重点大题

(附答案)软件工程重点大题
4.结构化程序设计的特点是什么?为什么要采用结构化程序设计?
答:结构程序设计的概念最早是由E. W. Dijkstra提出来的,他指出:“可以从高级语言中取消GOTO语句,程序质量与程序中所包含的GOTO语句的数量成反比”。并指出结构程序设计并非简单的取消GOTO语句,而是创立一种新的程序设计思想、方法和风格,以显著提高软件生产率和质量。
●需求分析与规格说明(明确系统的规格和要求);
●设计(包括概要设计和详细设计,将系统分解为模块);
●编程(用程序语言实现每个模块,简单容易);
●测试(发现并改正错误,分为模块测试、集成测试和系统联调三级);
●运行维护(扩充功能、纠错等)。
5.如何画分层数据流图?有哪些基本原则?
答:总的原则是:至顶而下,逐层分解(画分层数据流图)。逐层分解的画法可以控制每一层的复杂度。
答:以集中式的仓库模型为例。其主要优点:
(1)数据由某个子系统产生,并且被存储到仓库中,以便为另外一些子系统共享;
(2)由于中央集中控制的缘故,共享数据能得到有效的管理,各子系统之间不需要通过复杂的机制来传递共享数据;
(3)一个子系统不必关心其他的子系统是怎么使用它产生的数据;
(4)所有的子系统都拥有一致的基于中央数据仓库的数据视图。如果新子系统也采用相同的规范,则将它集成于系统中是容易的。
模块是由边界元素限定的相邻的程序元素的序列,而且有一个总体标志符来代表它。
所谓模块化,即是将一个大任务分成若干个较小的任务,较小的任务又细分为更小的任务,直到更小的任务只能解决功能单一的任务为止,一个小任务称为一个模块。各个模块可以分别由不同的人编写和调试。把大任务逐步分解成小任务的过程可以称为是“自顶向下,逐步细化”的过程。
数据结构的复杂性。要根据不同语言构造数据结构类型的能力选取合适的语言。C++、Java这样的高级语言显然比汇编语言的表达能力要强。

软件工程考试题及答案

软件工程考试题及答案

软件工程考试题及答案一、选择题1. 下列哪个不是软件工程的基本原则?A. 持续集成B. 形式化表示C. 高内聚低耦合D. 可重用性答案:B. 形式化表示2. 软件的可靠性是指什么?A. 软件的正确性B. 软件的可维护性C. 软件的效率D. 软件的稳定性答案:D. 软件的稳定性3. 下列哪个不是软件测试的目标?A. 发现软件中的错误和缺陷B. 验证软件是否满足用户需求C. 评估软件的质量D. 在短时间内完成软件开发答案:D. 在短时间内完成软件开发二、判断题1. 软件工程是一门工程学科,其目标是通过系统化的、规范化的方法对软件进行开发、运行和维护。

答案:正确2. “高内聚低耦合”是软件工程中的重要原则,指的是模块之间的独立性和模块之间的依赖程度。

答案:正确3. 软件需求分析是软件开发过程中的最后一步,最终确定软件系统的功能和性能。

答案:错误三、简答题1. 什么是软件工程?答:软件工程是一门工程学科,通过系统化的、规范化的方法对软件进行开发、运行和维护。

它涉及软件开发的各个阶段,包括需求分析、设计、编码、测试和维护等,并注重管理和团队合作,以提高软件质量、降低开发成本和加快开发进度。

2. 软件测试的目的是什么?答:软件测试的目的是发现软件中的错误和缺陷,验证软件是否满足用户需求,并评估软件的质量。

通过测试,可以提高软件的可靠性和稳定性,减少软件在使用过程中的风险。

3. 请简述软件开发生命周期中的各个阶段。

答:软件开发生命周期包括需求分析、设计、编码、测试和维护等阶段。

- 需求分析阶段:确定软件系统的功能、性能和约束条件,明确用户需求。

- 设计阶段:根据需求分析结果设计软件系统的结构和模块,确定软件的整体框架。

- 编码阶段:根据设计阶段的文档编写程序代码,实现软件系统的各个功能。

- 测试阶段:对软件进行各种测试,包括单元测试、集成测试和系统测试,以发现错误和缺陷。

- 维护阶段:根据用户反馈和需求变化,对软件进行修复和更新,确保其持续稳定运行。

第3章 软件工程基础(习题答案).doc

第3章 软件工程基础(习题答案).doc

第3章习题答案3」什么是软件危机?为什么会岀现软件危机?解答:软件危机是指落后的软件生产方式无法满足开发复杂软件的需求,从而导致软件开发与维护过稈屮出现一系列严重的问题,主要表现在:(1)软件开发费用和进度估计不准。

(2)软件的正确性和可靠性难以保证。

(3)文档不全,导致软件维护难度加大。

总Z,可将软件危机归结为:成木、质量和生产率等问题。

到了20世纪50年代末和60年代初,随着计算机应用的普及,软件的规模和复杂度提高了,“家庭作功”式的方法已经无法适应软件的开发。

软件开发的周期变长、费用上涨,导致软件的生产效率下降、目标软件的正确性难于保证,即出现了“软件危机”。

3.2软件T程的概念是什么?软件T程的忖标和原则是什么?解答:软件工程是指导计算机软件开发和维护的一门学科。

软件工程从管理和技术两个方面,研究如何更好地开发和维护计算机软件,内容主要包括:软件开发技术和软件工程管理。

软件工程的日标是在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并且满足用户需求的软件产品。

软件工稈的原则,在软件开发各阶段,应遵循一些基木原则,包括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。

3.3什么是软件的生命周期?瀑布模型把软件生命周期划分成几个时期、几个阶段?每一个阶段的任务是什么?每个阶段产生的文档是什么?解答:软件从提出、开发、使用到退役的整个过稈称为软件生命周期,软件生命周期可划分为3个时期,共8个阶段,毎个阶段应完成的基本任务和产生的文档如下表所示。

时期阶段任务文档定义期(计划期)问题的定义理解用户要求,明确工作目标计划任务书可行性研究可行性方案分析需求分析软件系统的目标及应完成的任务需求规格说明书开发期概要设计(总体设计)(系统设计)系统逻辑设让,明确软件模块结构,及各模块间的调用关系软件概要设计说明书数据库/数据结构设计说明书集成测试计划详细设计系统的模块设计,对各模块进行功能说明,实现细节描述软件详细设计说明书编码编写程序代码程序、数据、详细注释测试和调试单元测试、集成测试测试大纲、方案,测试用例,测试结果维护期使用和维护运行和维护运行、修改记录3.4什么是结构化方法?结构化分析、结构化设计、结构化程序设计分别用在软件生命周期的哪一个阶段?解答:结构化开发方法是现有软件开发方法屮最成熟、应用最广泛的方法。

(完整word版)软件工程习题集+答案

(完整word版)软件工程习题集+答案

《软件工程》习题集目录一软件与软件工程 (1)二软件项目管理 (4)三需求分析 (7)四面向对象的需求分析 (10)五软件设计 (15)六程序设计语言和编码 (18)七软件测试 (20)八软件维护 (23)综合试卷一 (25)综合试卷二 (28)综合试卷三 (31)附参考答案: (34)一软件与软件工程参考答案 (34)二软件工程管理参考答案 (37)三需求分析参考答案 (39)四面向对象的需求分析参考答案 (43)五软件设计参考答案 (52)六程序设计语言和编码参考答案 (55)七软件测试参考答案 (59)八软件维护参考答案 (62)综合试卷一参考答案及评分标准 (65)综合试卷二参考答案及评分标准 (68)综合试卷三参考答案及评分标准 (71)一软件与软件工程一、选择题1.软件的主要特性是()A、无形性B、高成本C、包括程序和文档D、可独立构成计算机系统2.软件工程三要素是()A、技术、方法和工具B、方法、工具和过程C、方法、对象和类D、过程、模型、方法3.包含风险分析的软件工程模型是()A、螺旋模型B、瀑布模型C、增量模型D、喷泉模型4.软件工程的主要目标是()A、软件需求B、软件设计C、风险分析D、软件实现5.下列属于面向对象开发方法的是()A、BoochB、UMLC、CoadD、OMT6.软件危机的主要表现是()A、软件成本太高B、软件产品的质量低劣C、软件开发人员明显不足D、软件生产率低下7.软件开发方法的主要工作模型有()A、螺旋模型B、循环模型C、瀑布模型D、专家模型8.软件工程的目标有()A、易于维护B、低的开发成本C、高性能D、短的开发期9.软件工程学的目的和意义是()A、应用科学的方法和工程化的规范管理来指导软件开发。

B、克服软件危机。

C、作好软件开发的培训工作。

D、以较低的成本开发出高质量的软件。

二、判断题1.软件就是程序,编写软件就是编写程序。

2.瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。

(完整版)软件工程课后习题答案

(完整版)软件工程课后习题答案

第一章1.1什么是计算机软件?软件的特点是什么?计算机软件是指计算机系统中的程序及其文档软件的特点:●软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算。

●软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大。

●软件的使用没有硬件那样的机械磨损和老化问题。

1.2简述软件的分类,并举例说明1.系统软件系统软件居于计算机系统中最接近硬件的一层,其他软件一般都通过系统软件发挥作用。

例如:编译软件、操作系统。

2.支撑软件支撑软件是支撑软件的开发和维护的软件。

例如:数据库管理系统、网络软件、软件工具、软件开发环境。

3.应用软件应用软件是特定应用领域专用的软件。

例如:工程/科学计算机软件、嵌入式软件、产品线软件、Web应用软件、人工智能软件。

1.3简述软件语言的分类,并举例说明。

1.需求定义语言是用于书写软件需求定义的语言。

例如:PSL/PSA。

2.功能性语言是用于书写软件功能规约的语言,通常又称为功能规约语言。

例如:广谱语言、Z 语言。

3.设计性语言是用于书写软件设计规约的语言。

例如:PDL。

4.实现性语言也称为程序设计语言,是用于书写计算机程序的语言。

例如:C、java、PROLOG、FORTRAN、COBOL、Modula。

5.文档语言是用于书写软件文档的语言。

通常用自然语言或半形式化语言书写。

1.4什么是软件工程?软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。

软件工程借鉴传统工程的原则、方法,以提高质量、降低成本为目的。

1.5简述软件工程的基本原则。

软件工程原则包括围绕工程设计、工程支持和工程管理所提出的以下4条基本原则。

1.选取适宜的开发模型必须认识需求定义的易变性,采用适宜的开发模型,保证软件产品满足用户的要求。

2.采用合适的设计方法合适的设计方法有助于这些特征的实现,以达到软件工程的目标。

3.提供高质量的工程支撑软件工程项目的质量与开销直接取决于对软件工程所提供的支撑质量和效用。

《软件工程》-经典考试例题复习题,重点知识点(含答案)

《软件工程》-经典考试例题复习题,重点知识点(含答案)

1.某旅馆的电话服务如下:可以拨分机号和外线号码。

分机号是从7201至7299。

外线号码先拨9,然后是市话号码或长话号码。

长话号码是以区号和市话号码组成。

区号是从100到300中任意的数字串。

市话号码是以局号和分局号组成。

局号可以是455,466,888,552中任意一个号码。

分局号是任意长度为4的数字串。

要求:写出在数据字典中,电话号码的数据流条目的定义即组成。

电话号码=[分机号|外线号码]分机号=7201 (7299)外线号码=9+[市话号码|长话号码]长话号码=区号+市话号码区号=100 (300)市话号码=局号+分局号局号=[455|466|888|552]分局号=4{数字}4数字=[0|1|2|3|4|5|6|7|8|9]2.为以下程序流程图分别设计语句覆盖和判定覆盖测试用例,并标明程序执行路径。

(1)语句覆盖测试用例令x=2,y=0,z=4作为测试数据,程序执行路径为abcde。

(2)判定覆盖可以设计如下两组数据以满足判定覆盖:x=3,y=0,z=1(1分)(通过路径abce);x=2,y=1,z=2(1分)(通过路径acde)。

或者x=2,y=1,z=1;覆盖路径acdex=1,y=1,z=1;覆盖路径acex=3,y=0,z=1;覆盖路径abce(注意:本题也还可以有其他答案)3.请用判定表画出以下问题的行为逻辑。

人们往往根据天气情况决定出门时的行装。

天气可能下雨,也可能不下雨;下雨或不下雨天气可能变冷,也可能不变冷。

如果天气要下雨,出门时带上雨伞;如果天气变冷,4.对下列子程序进行调试:procedure example(y,z: real; var x: real)beginif (y>1) and (z=0) then x:=x/y;if (y=2) or (x>l) then x:=x+l;end.该子程序接受x, y, z的值,并将计算结果x的值返回给调用程序。

软件工程课后题答案大全(详细)

软件工程课后题答案大全(详细)

软件工程习题解答第一章概述1.软件产品的特性是什么?a.软件产品是一种逻辑产品。

b.软件产品的生产主是研制,软件产品的成本主要体现在软件的开发和研制上,软件开发完成后,复制就产生了大量软件产品。

c.软件产品不会用坏,不存在磨损、消耗问题。

d.软件产品的生产主要是脑力劳动,还未完全摆脱手工开发方式,而且碰分是"定做"的。

e.软件费用不断增加,成本相当昂贵。

2.软件产品有几个阶段?各有何特征?阶段 A.程序设计时代(1946-1956) B.程序系统时代(1956-1968) C.软件工程时代(1968-今)生产方式个体手工劳动作坊式小集团合作生产工程化的生产工具机器语言、汇编高级语言数据库、开发工具、开发环境、网络、分布式、面向对象技术开发方法追求编和技巧,追求程序运行效率个人技巧,开始提出结构化方法硬件特征价格贵、存储容量小、运行可靠性差速度、容量、工作可靠性有明显提高,价格降低,销售有爆炸性增长向超高速、大容量、微型化以及网络化方软件特征只有程序、程序设计概念,不重视程序设计方法程序员数量猛增,已意识到软件开发的重要性,开发技术没有新的突破,大量软件开发的需求已提出,开发人员的素质和工程兵的开发技术不适应规模大、结构复杂的软件开发,产生了尖锐矛盾,导致软件危机的产生开发技术有很大进步,但未能获得突破性进展,软件价格不断上升,没有完全摆脱软件危机3.什么是软件危机?其产生的原因是什么?软件危机:软件发展第二阶段的末期,由于计算机硬件技术的进步。

一些复杂的、大型的软件开发项目提出来了,但,软件开发技术的进步一直未能满足发展的要求。

在软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。

主要表现在以下几个方面:a.经费预算经常突破,完成时间一再拖延。

b.开发的软件不通满足用户要求。

c.开发的软件可维护性差。

d. 开发的软件可靠性差。

软件危机产生的原因是由于软件产品本身的特点以及开发软件的方式、方法、技术和人员引起的:a.软件的规模越来越大,结构越来越复杂。

(完整word版)软工题第六章

(完整word版)软工题第六章

第六章习题一、选择题1.对象是面向对象范型的(.A.)。

每个对象可用它自己的一组(.B.)和它可以执行的一组(.C.)来表征。

应用执行对象的(.C.)可以改变该对象的(.B.)。

它的应用必须通过(.D.)的传递。

可以认为, 这种(.D.)的传递大致等价于过程性范型中的函数调用。

某些语言提供了特殊功能, 允许对象引用自己。

若一个对象没有显式地被引用, 则可让该对象(.E.)。

供选择的答案:A..基本单.. .最小单..最大单位. ..语法单位..C..行为. .功能...操作. ..数据..属性D..接口...消. .信息. ..操作..过程E..撤消...歇. .缺省. ..隐式引用..引用自己2.在面向对象软件开发过程中特别重视复用。

软件构件应独立于当初开发它们的应用而存在。

在以后的应用开发中, 可以调整这些独立构件以适应新问题的需要。

因此, 应使得类成为一个( A )的单元。

这样就有一个( B )生存期问题。

( B )生存期有自己的步骤, 与任一特定应用的开发( C )。

按照这些步骤, 可以完整地描述一个基本( D )。

而不仅仅考虑当前正在开发的系统。

系统开发的各个阶段都可能会标识新的类。

随着各个新类的标识, ( B )生存期引导开发工作逐个阶段循序渐进。

在设计与实现类时, 应尽可能利用既存类提供为当前应用所需要的功能, 利用既存类的三个可能途径是:( E )复用既存类;对既存类进行( F )以得到满足要求的类;重新开始进行开发。

供选择的答案:A..可复. . .可测. ..可适用..可靠B..应. ..寿. ..类..软.C..相. ..密切相关..负相关..无关D..概. ..实体..事件..事情E.F..修改. ..更. ..照原样..演化3 从分析到设计的过程流如图所示。

一旦已经开发完成一个合理完整的( A )模型后, 就要着手( B )的设计。

这需要描述( B )的特征, 以准确表达待实现的用户需求, 以及实现需求所必须的支持环境。

软件工程试题题库含答案

软件工程试题题库含答案

软件工程试题题库含答案一、软件开发过程1. 软件工程的定义是什么?答:软件工程是一门学科,研究并应用以系统化的方法开发和维护软件的原则、概念、方法和工具。

2. 请列举并解释软件开发过程的基本活动。

答:软件开发过程包括以下基本活动:- 需求分析与说明:收集和分析用户需求,并将其明确、清晰地记录下来。

- 软件设计:将需求转化为软件架构和设计规范,确定技术方案和实施计划。

- 编码和单元测试:根据设计规范进行编码,并进行单元测试以确保代码的正确性。

- 综合与测试:将各个模块进行综合,进行系统级测试以验证软件的正确性和稳定性。

- 软件发布与维护:发布软件版本,并对软件进行后续的维护和更新。

3. 请解释敏捷开发方法的基本原则。

答:敏捷开发方法的基本原则包括: - 个体和互动高于流程和工具:注重团队成员的沟通和合作,更加关注人与人之间的交互。

- 可工作的软件高于详尽的文档:重视软件的实际可用性和功能,减少过多的文档记录。

- 客户合作高于合同协商:与客户保持紧密的合作,及时获取反馈并调整软件开发进程。

- 相应变化高于遵循计划:灵活应对需求变化,允许在开发过程中根据实际需要进行调整。

二、需求工程1. 需求工程的目的是什么?答:需求工程的目的是准确、清晰地确定、分析和记录用户对软件系统的需求。

2. 请解释需求工程的关键活动。

答:需求工程的关键活动包括以下几项: - 需求获取:通过与用户交流和研究,确定用户的需求,并进行系统化的收集。

- 需求分析:对收集到的需求进行分析,确定需求的可行性和优先级,并拆解出软件需求规格说明。

- 需求规格说明:编写清晰、明确的需求规格文档,对软件需求进行详细描述和说明。

- 需求验证:与用户进行需求验证,确保需求规格与用户的期望一致,并能够满足用户的需求。

3. 请解释用户需求和系统需求的区别。

答:用户需求是用户对软件系统的需求和期望,通常表达为用户对系统功能和性能的描述。

而系统需求是对用户需求的进一步细化和明确化,包括对系统功能、性能、界面、输入输出等方面的具体要求。

软工重点

软工重点

软工重点一.题型选择(10个/2分)判断(10个/1分)简答(8个/5分)设计(2个/10分)论述(1个/10分)二.复习范围:第一,二,三,五,六,七,八章看书上。

三.必考题(看作业和PPT)1.软件生命周期的各个阶段1软件定义期:问题定义,可行性研究,需求分许2软件开发期:系统设计(总体设计,详细设计)系统实现(编码和单元测试,综合测试)3软件维护期2.CMM(本次考试或补考)CMM是一种用于评价软件承包能力以改善软件质量的方法,侧重于软件开发过程的管理及工程能力的提高与评估。

分为五个等级:一级为初始级,二级为可重复级,三级为已定义级,四级为已管理级,五级为优化级3.软件危机?怎么解决?软件危机(软件总是超出预算,落后于进度表,而且不可靠;在计算机软件的开发和维护过程中锁遇到的一系列严重问题;)解决方法:对软件有一个正确认识;做好前期的需求分析;开发过程有统一、规范方法论的指导;文档资料齐全了;重视人与人的交流;重视测试工作;重视软件的维护。

4.软件各模型?优缺点?瀑布模型(A:强迫开发人员采用规范方法,严格规定了每个阶段必须提交的文档,要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证B:产品交付之前,用户只能通过文档了解产品,过分依赖书面的规格说明书)快速原型模型(A节约软件开发成本)增量模型(A软件开发可以较好地适应变化,降低开发风险 B 需要具备开放式的体系结构;软件过程的控制失去整体性)螺旋模型(A降低了风险;有助于把软件质量作为软件开发的重要目标;维护与开发无本质区别B只使用于内部的大规模软件开发;只适用于大规模软件项目;软件开发人员要擅长寻找、分析可能的风险,否则会带来更大风险)喷泉模型(A支持工具丰富,自动化程度高B对开发组长和人员要求较高)5.数据字典,流图(看PPT)(流图:作为交流信息的工具;作为系统分析设计的工具;辅助物理系统的设计)6.需求分析看一下,总体设计,模块独立性部分考耦合和内聚。

软工重点的答案

软工重点的答案

1.1什么是软件工程?构成软件工程的主要要素是什么?影响软件工程技术进步的动力是什么?①将系统的、规范的、可量化的方法应用于软件开发、运行、维护的过程②包括①中的方法的研究五要素:人、过程、项目、方法和工具、软件制品(红色字为方法学)硬件能力、软件技术、社会需求和科学技术水平1.2阐述软件的正确性、可用性、可靠性、有效性、安全性、可维护性、可移植性和可复用性的概念,并指明这些概念的重要性。

正确性,软件满足需求规约和用户目标的程度可用性,学习和使用软件的难易程度,包括操作软件、为软件输入数据、解释软件输出结果等。

可靠性软件完成预期功能,成功运行的概率有效性软件系统利用计算机的时间资源和空间资源完成系统功能的能力1.10阐述通用软件开发过程的五项活动,分析通用软件开发过程的优点。

通用软件过程模型用“沟通、策划、建模、构建、部署” 5项活动构建软件过程模型。

在软件项目管理等普适性活动的支持下进行软件开发,增强了软件的开发能力、突出了软件工程特色,具有较大的灵活性和适应性。

2.4研究图2.1(课本60,61页)所示的面对对象的迭代式软件开发过程,描述在立项,初始,细化,构造和移交阶段分别可能使用哪些UML图形机制,为什么?初始阶段用例图描述软件需求活动图表示业务处理过程交互图表示用例内部实现过程细化阶段包图、构件图和部署图表示软件体系结构构造阶段类图交互图活动图状态图构件图表示软件详细设计模型移交阶段部署图3.1以下陈述哪些是有效的用户需求?请说明理由。

答案:⑴目标软件应该用java语言实现。

⑵软件系统必须在5秒内响应并处理外部事件⑶目标软件应该由一些特定的模块构成。

⑷当目标软件与用户交互时,必须使用某些特定的菜单和对话框。

其中⑵,⑶,⑷项是用户的有效需求。

⑵是用户对系统性能的需求;⑶是用户对系统功能的需求;⑷是用户对系统使用界面的需求。

而⑴是程序设计对计算机语言的需求,应该由系统设计人员提出,所以不是用户的有效需求。

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

1.1
什么是软件工程?构成软件工程的主要要素是什么?影响软件工程技术进步的动力是什么?
①将系统的、规范的、可量化的方法应用于软件开发、运行、维护的过程
②包括①中的方法的研究
五要素:人、过程、项目、方法和工具、软件制品(红色字为方法学)
硬件能力、软件技术、社会需求和科学技术水平
1.2
阐述软件的正确性、可用性、可靠性、有效性、安全性、可维护性、可移植性和可复用性的概念,并指明这些概念的重要性。

正确性,软件满足需求规约和用户目标的程度
可用性,学习和使用软件的难易程度,包括操作软件、为软件输入数据、解释软件
输出结果等。

可靠性软件完成预期功能,成功运行的概率
有效性软件系统利用计算机的时间资源和空间资源完成系统功能的能力
1.10
阐述通用软件开发过程的五项活动,分析通用软件开发过程的优点。

通用软件过程模型用“沟通、策划、建模、构建、部署” 5项活动构建软件过程模型。

在软件项目管理等普适性活动的支持下进行软件开发,增强了软件的开发能力、突出了软件工程特色,具有较大的灵活性和适应性。

2.4
研究图2.1(课本60,61页)所示的面对对象的迭代式软件开发过程,描述在立项,初始,细化,构造和移交阶段分别可能使用哪些UML图形机制,为什么?
初始阶段
用例图描述软件需求
活动图表示业务处理过程
交互图表示用例内部实现过程
细化阶段
包图、构件图和部署图表示软件体系结构
构造阶段
类图交互图活动图状态图构件图
表示软件详细设计模型
移交阶段
部署图
3.1
以下陈述哪些是有效的用户需求?请说明理由。

答案:
⑴目标软件应该用java语言实现。

⑵软件系统必须在5秒内响应并处理外部事件
⑶目标软件应该由一些特定的模块构成。

⑷当目标软件与用户交互时,必须使用某些特定的菜单和对话框。

其中⑵,⑶,⑷项是用户的有效需求。

⑵是用户对系统性能的需求;⑶是用户对系统功能的需求;
⑷是用户对系统使用界面的需求。

而⑴是程序设计对计算机语言的需求,应该由系统设计人员提出,所以不是用户的有效需求。

3.2
下述语句哪些属于不精确的用户需求?对不精确的需求描述,给出相应的需求分析对策。

答案:
⑴系统应表现出良好的响应速度。

⑵系统必须用菜单驱动。

⑶在数据录入画面,应该有25个按钮。

⑷系统运行时占用的内存不得超过128KB。

⑸电梯应平稳运行
⑹即使系统崩溃,也不能损坏用户数据。

其中⑴,⑸,⑹是不精确的用户需求。

⑴应该指出:哪个功能要有速度响应要求,具体的数据是什么?⑸平稳运行的具体定义是什么?例如上升时具体要求抖动的参数不大于多少等等;⑹没有说明应该采取什么具体措施保护数据。

P74 3.1
构成需求工程过程的工作流
需求工程策划--需求获取--需求分析--需求规范化--需求验证--总结
用例驱动的需求获取过程(主要步骤)
1.定义软件问题
2.创建框架用例
3.精化用例
4.评审用例模型
需求分析的任务
需求分析的任务是在需求获取阶段的输出制品的基础上,获得对软件需求更深入、更完整的理解,并且将软件需求表示为面向软件设计人员、易于修改和维护的分析模型
用例驱动的需求分析过程的主要活动(P134)
(1)需求优先级分析
(2)用例分析
(3)分析模型评审
(4)为辅助需求分析而构建快速原型
P134
6.9软件设计应遵循哪些原则
抽象与逐步求精
强内聚及松耦合
信息隐藏及关注点分离
P172 6.4
构成软件设计过程的工作流
设计策划--体系结构设计--人机交互设计--详细设计--设计整合与验证--总结
P190 193
用户界面设计过程的主要活动P227
1.用户分析,任务分析及建模
2.概念设计
3.界面流设计
4.界面精化
详细设计过程的主要活动P239
1.用例设计
2.子系统设计
3.构件设计
4.类设计
5.数据模型设计
6.设计整合与验证
9.3 在面向对象的设计模型中,如何检查类图与顺序图之间的一致性?
首先把类图和顺序图形式化为本体,然后将规则法中定义的一致性规则转换为本体操作,通过在转换得到的本体上实施这些操作实现一致性检查。

12.3简述软件测试的任务和原则
任务
检查软件是否满足需求规约,并在软件制品交付前尽可能发现软件中潜伏的缺陷,减轻交付后软件改正性维护的开销。

原则
1.测试是一个持续进行的过程,而不是一个阶段。

2.测试一定有计划,受控制,并提供足够的时间和资源
3.测试应当分优先级
4.测试应当有重点
5.测试不是为了证明程序的正确性,而是为了证明不能工作
6.测试是不可能穷尽的,当测试充分性满足时就可以停止测试
7.测试是开发的朋友,不是开发的敌人
8.测试人员应公正地测试,如实地记录和报告缺陷
9.测试自动化能解决一部分问题,但不是全部。

10.测试不能仅仅包括功能性验证,还应包括性能、可靠性、可维护性和安全性等方面的验证
12.5何谓测试用例?一般包括哪些内容?
为测试设计的输入数据称为测试用例。

生成输入数据、程序执行条件、测试步骤和预期的输出
12.22“确认测试”应由谁完成,软件开发人员还是软件用户?说明理由。

答案:“确认测试”应由软件用户来完成,“确认测试”的目的是测试系统是否达到用户对功能的需求,性能的需求以及使用的需求,所以,“确认测试”应该主要由用户来完成。

12.24α测试与β测试有何差别?
答案:α测试是系统开发者进行的测试,用户不参与,主要是进行系统各项技术性能的测试;β测试是用户的测试,通常开发人员不在场,主要是对系统使用功能的测试。

α测试是指软件开发公司组织内部人员模拟各类用户行为对即将面市的软件制品进行测试,试图发现缺陷并改正。

β测试是指软件开发公司组织各方面的典型用户在日常工作中实际使用β版本,并要求用户报告异常情况,提出批评意见。

软件维护的分类
纠错性维护、完善性维护、适应性维护、预防性维护
13.7为何要进行软件逆向工程
在软件开发过程中使用逆向工程,因有全部开发文档和开发环境的支持,速度快、效率高,软件制品的质量能得到很好的保障。

13.8软件重构可能包括哪几个层次的工作
文档重构、重组、逆向工程、再工程。

试述用户界面设计应考虑的因素。

答:(1)可实用性。

要求使用简单,用户界面中所用术语的标准化和一致性,具有help功能。

快速的系统响应和低的系统成本,具有容错能力。

(2)灵活性。

考虑用户的特点,能力,知识水平;提供不同的系统响应时间,提供根据用户需求制定和修改界面,
(3)界面的复杂性与可靠性
14.画图题
类图,状态图,用例图,顺序图。

15.基本路径测试
步骤:标号--合并--画图--计算基本路径条数--分析
建立程序流图--确定基本路径集合--为基本路径设计测试用例。

相关文档
最新文档