软件工程期末复习

软件工程期末复习
软件工程期末复习

小题的答案是老师给的,简答题是我做的答案,仅供参考,如发现有错误请指出,谢谢,预祝大家考个好成绩。

1、可行性研究一般可以从经济可行性、技术可行性、运行可行性、法律可行性和开发可行性等方面来研究。

2、为了便于对照检查,测试用例应由输入数据和预期的输出结果两部分组成。

3、在结构化分析中,用于描述加工逻辑的主要工具有三种,即:结构化语言、判定表、判定树。

4、面向对象的软件工程方法包括面向对象的分析、面向对象的设计、面向对象的实现、面向对象的测试和面向对象的软件维护等主要内容。

5、组成UML的三种基本建筑块是事物、关系和图。

6、面向对象方法是一种以数据或信息为主线,把数据和处理相结合的方法。

7、软件测试中,白盒方法是通过分析程序的内部来设计测试用例的方法。白盒测试又称为结构测试。黑盒测试又称为功能测试,是在程序接口进行的测试。

8、详细设计又叫模块设计,其内容包括:算法、局部数据结构、接口细节和输入、输出数据等。

9、软件的面向数据流的设计方法,利用其定义的映射方法可以把数据流图变换成软件结构,在映射中,一般将数据流图分为变换型和事务型两种。

10、在用面向对象方法开发软件时,对象模型始终是最重要、最基本、最核心的,为建立动态模型和功能模型提供实质性的框架。

11、通过面向对象分析建立起来的动态模型是面向对象设计过程中分析并发性的重要依据。

12、在采用面向对象方法分析软件系统时,复杂问题的对象模型通常由五个层次组成:主题层,类与对象层,结构层,属性层,服务层。

13、面向对象的软件设计过程可以细分为系统设计和对象设计过程。

14、大多数系统的面向对象设计模型,在逻辑上都由四大部分组成,它们分别是问题域子系统,人机交互子系统,任务管理子系统,数据管理子系统。

15、面向对象方法学可以用以下方程来概况:面向对象方法学=对象+类+继承+通过消息的通信。

1.软件工作只到软件交付使用为止。×

2.在进行需求分析时需同时考虑维护问题。√

3.软件维护就是改正软件中的错误。×

4.软件开发的主要任务是写程序。×

5.模块独立要求高耦合低内聚。×

6.模块化程序设计中,模块越小,模块化的优点越明显。一般来说模块的大小都在10行以下。×

7.发现错误多的程序模块,残留在模块中的错误也多。√

8.程序设计风格指导原则提出,尽量多用临时变量。×

9.用黑盒法测试时,测试用例是根据程序内部逻辑设计的。×

10.为加快软件维护作业的进度,应尽可能增加维护人员数目。×

11.质量保证是为了保证产品和服务充分满足消费者要求的质量而进行的有计划、有组织的活动。√

12.结构化分析是面向数据流进行需求分析的方法。√

13.测试只能证明程序有错误,不能证明程序没有错误。√

14完成测试后,为了缩短源程序长度应删除程序中的注解。×

15.语句覆盖的的含义是使被测试程序中的每个语句都至少被执行一次。√

16.判定覆盖不一定包含条件覆盖,但是条件覆盖一定包含判定覆盖。×

17.面向对象测试的总目标与传统软件测试的目标相同,也是用最小的工作量发现最多的错误。√

18.虽然好的人机交互部分不可能挽救一个功能很差的软件, 但性能很差的人机交互部分将使一个功能很强的产品变的不可接受。√

19.PAD图设置了五种基本的控制结构,还允许递归调用。×

20.面向对象软件需求分析中问题陈述应阐述“要干什么”,而不是“如何做”,是对需求的陈述,而不是解决问题的方法。√

21.通常,面向对象设计仅需要从实现角度对问题域模型作一些补充或修改,主要是增添、合并或分解类与对象、属性及服务,调整继承关系等。×

22.面向对象设计是扩充、完善和细化面向对象分析模型的过程。√

1、软件是计算机系统中与硬件相互依存的部分,它包括(B)、( E)及( F )完整集合。其中,( 1 )是按事先设计的功能和性能要求执行的指令序列,( 2 )是使程序能够正确操纵信息的数据结构,( 3 )是与程序开发、维护和使用有关的图文材料。

1~3: A、软件 B、程序 C、代码 D、图表 E、数据 F、文档

2、软件工程是采用( A )的概念、原理、技术和方法指导计算机( A )的工程学科。把经过时间考验而证明正确的( A )和当前能够得到的最好的( D )结合起来。

1: A、工程 B、程序 C、体系结构

2: A、软件开发和维护 B、程序设计

C、系统工程开发

D、软件开发

3: A、管理技术 B、开发工具

C、开发环境

D、技术方法

4: A、管理技术 B、开发工具

C、开发环境

D、技术方法

3、软件工程中描述软件生存周期的瀑布模型一般包括问题定义、可行性研究、( A )、设计、编码、测试、维护等几个阶段。

A、需求分析

B、需求调查

C、可行性分析

D、问题定义

4、进行需求分析可使用多种工具,但( C )是不适用的。

A、数据流图

B、判定表

C、PAD图

D、数据词典

5、对象是面向对象开发模式的( A ),是一组( D )和它可以执行的一组( C )的封装体,应用执行对象的( 3 )可以改变该对象的( 2 )。

1: A、基本单位 B、最小单位 C、最大单位 D、语法单位

2: A、行为 B、功能 C、操作 D、属性

3: A、行为 B、功能 C、操作 D、属性

6、软件设计阶段在管理上又可以分成( C )和( F )两个步骤。

A、方案设计

B、代码设计

C、概要设计

D、数据设计

E、运行设计

F、详细设计

G、故障处理设计 H、软件体系结构设计

7、在完成软件概要设计,并编写相关文档之后应当组织对概要设计工作的评审。评审的内容包括:

分析该软件的系统结构、子系统结构,确认该软件设计是否覆盖了所有已确定的软件需求,软件每一成分是否可( C )到某一项需求;分析软件各部分之间的联系,确认该软件的内部接口与外部接口是否已经明确定义;模块是否满足( B )和( C )的要求;模块( A )是否在其( D )之内。

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、控制范围

8、需求规格说明书在软件开发中具有重要的作用,但其作用不应当包括( C )。

A、用户和开发人员对软件要“做什么”的共同理解

B、软件验收的依据

C、软件可行性分析的依据

D、软件设计的依据

9、为了高质量地开发软件项目,在软件结构设计时必须遵循( C )的原则,( B )建立软件系统的模块结构,并且应根据( C )评价系统模块划分的质量。此外在模块设计时,应从五种基本的( D )出发,利用它们组合成一个模块的程序块结构。要求每个( A )的结构是单入口和单出口。

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、通信块

10、在软件的需求分析中,分析员要从用户那里解决的最重要的问题是( A )。

A、要让软件做什么

B、要给该软件提供哪些信息

C、要求软件工作效率如何

D、要让软件具有什么样的结构

11、软件需求分析的任务不包括( C )。

A、问题分析

B、信息域分析

C、结构化程序分析

D、确定逻辑模型

12、软件生命周期中所用花费最多的阶段是( D )

A.详细设计 B.软件编码 C.软件测试 D.软件维护

13、使用白盒测试时,确定测试数据应根据(A )和指定的覆盖标准。

A、程序的内部逻辑

B、程序的复杂程度

C、使用说明书

D、程序的功能

14、软件的集成测试最好由( D)承担,以提高集成测试的效果。

A、该软件的设计人员

B、该软件的编程人员

C、该软件开发组的负责人

D、不属于该软件开发组的软件设计人员

15、结构化程序设计采用的三种基本控制结构是( C ),它们的共同点是( D ),结构化程序设计的一种基本方法是( D)。

1: A. 顺序、分支、选择 B. 选择、循环、重复

C. 顺序、选择、重复

D. 输入、变换、输出

2: A、不能嵌套使用B、只能用来写简单的程序

C、已经用硬件实现

D、只有一个入口和一个出口

3: A、筛选法 B、递归法 C、归纳法 D、逐步求精法

16、在软件设计中详细描述处理过程常用的三种工具是( D )。

A. SA,SD,SP

B. 程序流程图,IPO,PAD

C. SA,SC,SD

D. 图形,表格,语言

17、下面(B )不是结构化软件开发技术自身固有的缺点。

A. 用这种技术设计出的系统结构常常是不稳定的

B. 软件开发周期太长

C. 用这种技术设计出的系统较难修改和扩充

D. 用这种技术设计出的系统可重用性较差

18、某次程序调试没有出现预计的结果,下列( B )不可能是导致出错的原因。

A、变量没有初始化

B、编写的语句书写格式不规范

C、循环控制出错

D、代码输入有误

19、结构化分析方法使用(A )与( E )来描述,在结构化分析方法中,用以表达系统内部数据的运动情况的工具有( A )。

A. 数据流图

B. 程序流图

C. 控制流图

D. 系统结构图

E.数据字典

F. PAD图

20、OMT是一种对象建模技术,它定义了三种模型,它们分别是( A )模型,( C )模型,和( B )模型。其中,( 1 )模型描述了系统中对象的静态结构,以及对象之间的联系;( 2 )模型描述系统中与时间和操作顺序有关的系统特征,表示瞬时的行为上的系统的“控制”特征,通常可用状态图来表示;( 3 )模型描述了与值的变换有关的系统特征,通常可用数据流图来表示。

1: A、对象 B、功能 C、ER D、静态

2: A、控制 B、时序 C、动态 D、实时

3: A、对象 B、功能 C、变换 D、计算

21、下列关于程序效率的描述错误的是( C )。

A、提高程序的执行速度可以提高程序的效率

B、降低程序占用的存储空间可以提高程序的效率

C、源程序的效率与详细设计阶段确定的算法的效率无关

D、好的程序设计可以提高效率

22、软件调试技术包括( B )

A.边界值分析 B.演绎法 C.循环覆盖 D.集成测试

1.简述面向对象的程序方法学的基本原则和要点。

答:基本原则:尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能地接近人类认识世界解决问题的方法与过程,也就是使描述问题的问题空间/问题域与实现解法的解空间/求解域在结构上尽可能一致。

要点:对象:面向对象开发模式的基本成份,是系统中描述客观事物的一个实体。

类:具有相同特征(属性)和行为(操作)的对象的集合

继承:类与类之间可能具有一般化和特殊化关系。

消息通信:一个对象与另一个对象之间传递的信息,要求某个对象执行类中定义的某个操作。

2.简要叙述面向对象软件开发方法的基本思想与利用该方法开发软件的过程。

答:尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能地接近人类认识世界解决问题的方法与过程,也就是使描述问题的问题空间/问题域与实现解法的解空间/求解域在结构上尽可能一致。

面向对象分析OOA,面向对象设计OOD,面向对象编程OOP,面向对象测试OOT,面向对象软件维护OOSM。

3.简述OMT对象模型技术中三种模型的作用。

答:①对象模型:描述系统的静态结构,包括构成系统的类和对象,它们的属性、操作及它们之间的关系。

②动态模型:应考察在任何时刻对象及其联系的改变;着重描述系统与时间相关的动态行为,即系统的控制逻

辑。

③功能模型:表明通过计算,从输入数据能得到什么样的输出数据,不考虑计算按什么时序执行,说明从外部

输入,通过内部操作和存储,直到外部输出,整个的数据流情况。

4.简述UML统一建模语言中各类视图/图的作用。

答:用例视图:描述系统应该具备的功能,从外部用户角度出发,观察到的系统功能的抽象表示。

逻辑视图:设计视图,描述系统内部静态结构和动态协作关系。

实现视图:组件视图,描述系统的实现模块及其依赖关系,由一些独立的构件和文件组成。

并发视图:进程视图,描述系统的并发执行情况,包括资源的有效利用、异步事件的处理等。

配置视图:部署视图,描述系统的物理架构,显示硬件拓扑结构的节点,涉及系统工程。

①用例图:描述系统的静态使用情况,它定义了系统的功能需求,是外部可见的系统功能单元。展现了一组用

例、参与者及它们之间的关系。

②类图:展示类以及类之间的关系,显示系统中各个类的静态结构。说明系统的静态结构视图,支持系统的功

能需求。

③对象图:说明类的实例的数据结构和静态快照,即在某一时刻、一组对象的状态及其关系。展示了一组对象

及对象之间的关系。

④时序图:按时间顺序对控制流建模,表示用例中的行为顺序。展现了完成某项行为的一组对象和对象间传递

的消息的时间顺序。

⑤协作图:描述系统的行为如何由系统的各成分合作实现,着重于协作对象的交互和链接。展现了对象及其之

间的链接,还展示了链接的对象如何发送消息。

⑥状态图:展示了一个特定对象的所有可能状态以及由于各种事件的发生而引起的状态间的转移。描述了一个

状态机,说明系统的动态视图;

⑦活动图:用于对系统的动态行为建模,描述需要做的活动、执行这些活动的顺序以及工作流。反映系统中从

一个活动到另一个活动的控制流程,本质上是一种“面向对象的流程图”

⑧构件图:展现了一组构件之间的组织和依赖,用于对源代码、可执行的发布、物理数据库等的建模。是系统

实现视图的静态图形表示,一个构件图表示系统实现视图的一部分。

⑨部署图:展现了运行时处理节点以及其中构件的配置,每一节点代表一个计算单元。描述系统硬件的物理拓

扑结构,以及在此结构上执行的软件。说明系统部署的静态环境视图,即说明分布、交付和安装的物理系统。

5.简要叙述量度模块独立性的七种内聚/耦合的含义。

答:内聚:

功能内聚:一个模块中各个部分都是完成某一具体功能必不可少的组成部分。

信息内聚:信息内聚模块完成多个功能,各个功能都在同一数据结构上操作,每一项功能有一个唯一的入口点。

通信内聚:如果一个模块内各功能部分都使用了相同的输入数据,或产生相同的输出数据,则称为通信内聚模块。

过程内聚:模块内各处理成分相关,且必须以特定次序执行

时间内聚:又称经典内聚,多为多功能模块,模块各功能的执行与时间有关,要求所有功能必须在同一时间段内执行。

逻辑内聚:这种模块把几种相关的功能组合在一起,每次被调用时,由传送给模块的判定参数确定该模块应执行哪一种功能。

巧合内聚:当几个模块恰好有一段相同的代码,将它们抽取出来形成单独的模块。

耦合:

非直接耦合:两个模块之间没有直接关系,它们之间的联系完全通过主模块的控制和调用实现。

数据耦合:一个模块访问另一个模块时,彼此间通过简单数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息。

标记耦合:一组模块通过参数表传递记录信息,该记录是某一数据结构的子结构,不是简单变量。

控制耦合:一个模块通过传送开关、标志、名字等控制参数,明显地控制选择另一模块的功能。

外部耦合:一组模块都访问同一全局简单变量,而不是通过参数表来传递信息,称为外部耦合。

公共耦合:一组模块都访问同一个公共数据环境,它们之间存在着错综复杂的联系。

内容耦合:一个模块直接访问另一个模块的内部;一个模块通过非正常入口转入另一个模块;两个模块有一部分程序代码重叠;一个模块有多个入口。

6.简要叙述软件设计优化时的启发式原则。

答:。①改进软件结构提高模块独立性②模块规模应该适中③力争降低接口的复杂程度④设计单入口单出口的模块⑤模块功能可测性⑥深度、宽度、扇出和扇入适当⑦模块的作用范围应在控制范围之内

7.简要叙述软件工程生命周期中各个阶段所产生的文档的内容。

答:①可行性研究报告:说明软件项目的实现在经济上、技术上、使用上和法律上的可行性;对为合理地达到开发目标可供选择的各种可能的实现方案加以评述;说明并论证所选定实施方案的理由。

②项目开发计划:为项目实施方案制定出的具体计划,包括:各部分工作的负责人员;开发的进度;开发经费

的概算;所需的软硬件资源等。

项目开发计划提供给管理部门,作为开发阶段评审的基础。

③软件需求说明书:也称“软件规格说明书”,对所开发软件的功能、性能、用户界面和运行环境等作出详细

说明。是用户与开发人员双方对软件需求取得共同理解的基础上达成的协议,也是实施开发工作的基础。

④数据要求说明书:该说明书给出数据逻辑描述和数据采集的各项要求;为生成和维护软件系统的数据文件作

好准备。

⑤概要设计说明书:概要设计阶段的成果,为详细设计奠定基础:系统的功能分配和模块划分;

程序的总体结构;数据结构设计;输入输出及接口设计;运行设计;出错处理设计等。

⑥详细设计说明书:着重描述每一个模块如何实现;包括实现算法、程序流程等。

⑦用户手册:详细描述软件的功能、性能和用户界面;使用户了解如何使用该软件。

⑧操作手册:为操作人员提供软件各种运行情况的有关知识;特别是操作方法细节的描述。

⑨测试计划:针对单元测试、组装测试和确认测试,需要为组织测试制定计划,包括:测试的内容、条件;进

度安排;人员安排;测试用例的选取原则;测试结果允许的偏差范围等。

⑩测试分析报告:测试工作完成以后,应当提交测试计划执行情况的说明;对测试结果加以分析,并提出测试的结论性意见。

11.开发进度月报:是软件人员按月度向管理部门提交的项目进展情况的报告,包括:进度计划与实际执行情

况的比较;阶段成果;遇到的问题和解决的办法;下个月的打算等

12.项目开发总结报告:项目开发完成后,应与项目实施计划对照,总结实际执行的情况,如进度、成果、资

源利用、成本和投入的人力等。此外,还需对开发工作做出评价,总结经验和教训。

13.维护修改建议:软件产品投入运行后,可能有修改、更正等问题;应对存在的问题、修改的考虑以及修改

影响的估计等作详细的描述,写成维护修改建议,提交审批。

其余部分重点:1.软件测试中的白盒测试,有6种逻辑覆盖。

2.软件工程测试中的基本路径测试

3.数据流图:可能是买票系统,图书馆系统,选课系统

4.程序流程图

5.其他自己认为重点的仔细看一下。

软件工程期末复习知识点整理

复习整理 、绪论 1. 软件的定义 软件是能够完成预定功能和性能的可执行的计算机程序,包括使程序正常执行所需要的数据,以及有关描述程序操作和使用的文档。(软件=程序+文档) 2.软件工程的定义 是指导计算机软件开发和维护的一门工程学科;采用工程化的原理与方法对软件进行计划、开发和维护;把证明正 确的管理技术和最好技术综合运用到软件开发中;研究经济地开发岀高质量的软件方法和技术;研究有效维护软件 的方法和技术。 3.软件危机的概念,及出现的原因 软件开发技术的进步未能满足发展的要求。在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。 产生原因: ⑴软件规模越来越大,结构越来越复杂 ⑵软件开发管理困难而复杂。 ⑶软件开发费用不断增加。 ⑷软件开发技术落后。 ⑸生产方式落后,仍采用手工方式。 ⑹开发工具落后,生产率提高缓慢。 4.三种编程范型的特点 (1)过程式编程范型:把程序理解为一组被动的数据和一组能动的过程所构成;程序=数据结构 +算法;着眼于程序的过程和基本控制结构,粒度最小 (2)面向对象编程范型:数据及其操作被封装在对象中;程序=对象+消息;着眼于程序中的对 象,粒度比较大 (3)基于构件技术的编程范型:构件是通用的、可复用的对象类;程序=构件+架构;眼于适合 整个领域的类对象,粒度最大 二、软件生存周期与软件过程 1、软件生存周期的定义,把生存周期划分为若干阶段的目的是什么,有哪几个主要活动 定义:一个软件从开始立项起,到废弃不用止,统称为软件的生存周期 目的:软件生存周期划分为计划、开发和运行3个时期;把整个生存周期划分为较小的阶段, 给每个阶段赋予确定而有限的任务,就能够化简每一步的工作内容,使因为软件规模而增长而大大增加了软件复杂性变得较易控制和管理。 主要活动:需求分析、软件分析、软件设计、编码、软件测试、运行维护( P19) 2、软件生命周期划分为哪几个阶段 软件生命周期分为三个时期八个阶段: 软件定义:问题定义、可行性研究; 软件开发:需求分析、概要设计、详细设计、编码、测试; 软件运行:软件维护

《软件工程》期末复习题1

考试时间: 16周周一5,6节 考试地点: 二教419 406 408 考试题型: 选择题:20分 简答题:30分 应用题:50分 各章内容及题型总结: 第1,2章本章的主要题型是选择题和简答题。 1. 软件危机的主要表现是什么?答:“已完成”的软件不满足用户的需求;开发进度不能保障;软件开发成本难以准确估算;软件产品的质量没有保证。 2. 软件工程的定义?答:软件工程是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理方法和先进软件开发技术结合起来,运用到软件开发和维护过程中,来解决软件危机。 IEEE的定义:软件工程是①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中,②对①中所选方法的研究。 3. 软件工程研究的主要内容是什么?答:软件开发技术和软件开发管理两个方面。软件开发技术方面主要研究软件开发方法、软件开发过程、软件开发工具和环境。软件开发管理方面主要研究软件工程管理学、软件工程经济学、软件工程心理学。 4. 软件工程的7条基本原理是什么?答:①用分阶段的生命周期计划严格管理②坚持进行阶段评审③实行严格的产品控制④采用现代程序设计技术⑤结果应能清楚地审查⑥开发小组的人员应该少而精⑦承认不断改进软件工程实践的必要性。 5. 什么是软件生命周期?答:指一个软件从提出开发要求开始到该软件报废为止的整个时期。通常将软件的生命周期划分为可行性研究、需求分析、设计、编码、测试、集成、维护阶段。 6. 软件过程的定义?答:软件开发过程、活动和任务的结构框架。它能够清晰、直观地表达软件开发全过程,明确规定要完成的主要活动和任务。 7. 你能举出几个典型的软件过程模型吗?答:主要有瀑布模型、演化模型、喷泉模型、螺旋模型、智能模型。模型的选择是基于软件的特点和应用领域。 8. 目前,主流的软件开发方法有哪些?答:结构化方法和面向对象方法。 9. 软件工程师职业道德规范的8组关键词是什么?1999年由ACM/IEEE-CS软件工程师道德规范和职业实践(SEEPP)联合工作组制订了《软件工程师职业道德规范》,规范含有8组由关键词命名的准则:公众、客户和雇主、产品、判断、管理、专业、同行、自身。 10. 职业化软件工程师要注意的十大问题是什么?答:①高质量地完成任务②遵守行业标准,不能肆意按照自己的想象来发挥③积极帮助他人④版权意识敏感⑤严格遵守计划⑥公私分明⑦注意知识更新⑧善于沟通⑨遵守职业规则⑩诚实和正直。 第3章本章的题型主要是选择题。 1. 可行性研究的目的是什么?答:用最小的代价在尽可能短的时间内确定问题是否能够解决。 2. 可行性研究的四大要素是:经济上可行,技术可行,法律允许、社会环境可行。 3. 可行性研究的实质:是要进行一次简化了的系统分析和设计过程。首先要分析和澄清问题定义,导出系统的逻辑模型,探索若可供选择的方案,对每种方案仔细研究它的可行性。推荐一个较好的解决方案和一个初步的计划。 第4,5章本章的题型有选择题。 2. 什么是需求工程?需求工程是指应用有效的技术和方法进行需求分析,确定客户需求,帮助分析人员理解问题,定义目标系统的外部特征的一门学科。需求工程中的主要活动有:需求获取、需求分析、需求规格说明、需求验证和需求变更管理。

软件工程期末试卷(A卷)

《软件工程》期末试卷(A卷) 一.单项选择题(每小题1分,共22分) 1.对象实现了数据和操作的结合,使数据和操作( C )于对象的统一体中。 A.结合B.隐藏C.封装D.抽象 2.软件生命周期中所花费用最多的阶段是( D )。 A.详细设计B.软件编码C.软件测试D.软件维护 3.需求分析中开发人员要从用户那里了解( A )。 A.软件做什么B.用户使用界面 C.输入的信息D.软件的规模 4.测试的关键问题是( D )。 A.如何组织对软件的评审B.如何验证程序的正确性 C.如何采用综合策略D.如何选择测试用例 5.( D )是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。 A.软件过程B.软件测试 C.软件生命周期D.软件工程方法学 6.( A )意味着一个操作在不同的类中可以有不同的实现方式。 A.多态性B.多继承C.类的可复用D.信息隐藏 7.单元测试的测试用例主要根据( D )的结果来设计。 A.需求分析B.源程序C.概要设计D.详细设计 8.随着软硬件环境变化而修改软件的过程是( B )。 A.校正性维护B.适应性维护 C.完善性维护D.预防性维护 9.在白盒测试技术测试用例的设计中,( A )是最弱的覆盖标准。 A.语句覆盖B.路径覆盖 C.条件组合覆盖D.判定覆盖 10.结构化程序设计的一种基本方法是( C )。 A.筛选法B.迭代法 C.逐步求精法D.递归法11.不适合作为科学工程计算的程序设计语言是( D )。 A.Pascal B.C C.Fortran D.Prolog 12.只有单重继承的类层次结构是( C )层次结构。 A.网状型B.星型 C.树型D.环型 13.面向对象的开发方法中,( C )将是面向对象技术领域内占主导地位的标准建模语言。 A.Booch方法B.Coad方法C.UML语言D.OMT方法 14.瀑布模型本质上是一种( A )。 A.线性顺序模型B.顺序迭代模型 C.线性迭代模型D.及早见产品模型 15.软件维护产生的副作用,是指( C )。 A.开发时的错误B.隐含的错误 C.因修改软件而造成的错误D.运行时误操作 16.软件详细设计的主要任务是确定每个模块的( A )。 A.算法和使用的数据结构B.外部接口 C.功能D.编程 17.软件结构图的形态特征能反映程序重用率的是( C )。 A.深度B.宽度C.扇入D.扇出 18.为了提高模块的独立性,模块内部最好是( C )。 A.逻辑内聚B.时间内聚 C.功能内聚D.通信内聚 19.软件结构图中,模块框之间若有直线连接,表示它们之间存在( A )。 A.调用关系B.组成关系 C.链接关系D.顺序执行关系 20.“软件危机”是指( C )。 A.计算机病毒的出现 B.利用计算机进行经济犯罪活动 C.软件开发和维护中出现的一系列问题 D.人们过分迷恋计算机系统 21.具有风险分析的软件生命周期模型是( C )。 A.瀑布模型 B.喷泉模型 C.螺旋模型 D.增量模型 22.数据流图(DFD)中的每个数据处理至少需要( D )。 A.一个输入数据流 B.一个输出数据流 C.一个输入或者输出数据流 D.一个输入数据流和一个输出流

南京信息工程大学滨江学院李振宏《软件工程》期末复习 个考点完整版

选择20题,每题1分;填空10题,每题1分;简答5题,每题8分;设计题3题,每题10分(流程图的设计、流图设计和环形复杂度的计算、语句覆盖和判定覆盖测试用例的设计)。 1.详细设计中,过程设计的工具,N-S图,PAD图及判定表和判定树各有何特点和适用情况?(第六章) (1)盒图(N-S图): 一种不允许违背结构程序设计精神的图形工具,又称为N-S图。它有下述特点: ①功能域(作用域)明确,可以从盒图上一眼就看出来。 ②盒图没有箭头,因此不允许随意转移控制。 ③很容易确定局部和全程数据的作用域。 ④很容易表现嵌套关系,也可以表示模块的层次结构。 适用:对大部分设计均有适用性,常用于软件工程详细设计中,提供一种结构化的方式,便于思考和解决问题。 (2)PAD图: PAD是问题分析图(problem analysis diagram) ,它用二维树形结构的图来表示程序的控制流。PAD图的主要优点如下: ①使用PAD符号设计的程序必然是结构化程序。 ② PAD图所描绘的程序结构十分清晰。最左面的竖线是程序的主线,即第一层结构。随着程序层次的增加,PAD图逐渐向右延伸。每增加一个层次,图形向右扩展一条竖线。图中竖线的总条数就是程序的层次数。 ③PAD图表现的程序逻辑,易读、易懂、易记。程序从图中最左竖线上端的结点开始执行,自上而下,从左向右顺序执行,遍历所有结点。 ④容易将PAD图转换成高级语言源程序,这种转换可用软件工具自动完成。 ⑤既可表示程序逻辑,也可描绘数据结构。 ⑥支持自顶向下、逐步求精方法的使用。 适用:为FORTTAN,COBOL,PASCAL等每种常用的高级程序设计语言提供了一套相应的图形符号。 开始时可以定义一个抽象的程序,随着设计的深入,使用def符号逐步增加细节,直至完成详细设计,如图6.6所示。 (3)判定表(P127有例子): 适于表示复杂的条件组合与应做的动作之间的对应关系。特点是: ①能够间接而又无歧义的描述处理故意则。 ②并不适用于作为一种通用的设计工具。 ③一张判定表由以下四部分组成:左上部列出所有条件,左下部是所有可能的动作,右

软件工程 期末复习笔记

软件工程期末复习笔记 胡丹 一.基本概念 1.什么是软件工程? 答:见作业 2.什么是参与者,角色? 答:所有参与到软件项目中的人员称为参与者。把项目或系统的一组职责称为角色。一个角色与一组任务联系在一起,且被派给一个参与者。一个参与者能充当多个角色。 3.系统和模型。系统指内部关联部分的集合。模型指系统的任何抽象。 4.软件工程开发活动:开发活动通过构造和验证应用域模型或系统模型处理复杂性问题,开发活动包括:需求获取、分析、系统设计、对象设计、实现、测试。 二.基本概念(2) 1.系统开发的主要内容集中在系统的3个不同模型上: 功能模型,在MUL中,使用用例图表示功能模型,以从用户观点描述系统功能。 对象模型,在MUL中,使用类图表示对象模型,使用对象、属性、关联和操作来描述系统的结构。 动态模型,在UML中,使用交互图、状态图和活动图表示动态模型,以描述系统的内部行为。 2.用例模型(功能模型) 2.1用例模型=用例文档+用例图 2.2用例间的关系:用例之间的关系关联(association )、包含(include)、扩展(extend)和泛化(generalization)这几种关系。 关系关联(association ):通信1.表示参与者用例之间进行通信。 2.不同的参与者可以访问相同的用例。 包含(include):把它所包含的用例行为作为自身行为的一部分。 扩展(extend):扩展用例被定义为基础用例的增量扩展。 基础用例提供扩展点以添加新的行为。 扩展用例提供插入片段以插入到基础用例的扩展点上泛化(generalization):继承 2.3 用例文档包括的内容:1.用例名。2.范围。 3.级别。 4.主要参与者。 5.涉众及其关注点。 6.前臵条件 7.后臵条件 8.主事件流 9.备用事件流。 3.类图(对象模型) 3.1类是面向对象系统组织结构的核心。对一组具有相同属性、操作、关系和语义的对象的抽象。包括名称部分(Name)、属性部分(Attribute)和操作部分(Operation)。

北方工业大学软件工程期末复习题(含答案)

北方工业大学 《软件工程》课程期末复习题(答案) A 卷 2014年春季学期 开课学院:信息工程学院 考试方式:闭卷 考试时间:120 分钟 班级 姓名 学号 一.简要回答下列各问题(共40分,每个小题5分) (1) 阐述软件工程的定义。 答: ● 是指导计算机软件开发和维护的一门工程学科; ● 采用工程的概念、原理、技术和方法来开发和维护软件; ● 把证明正确的管理技术和最好技术综合运用到软件开发中; ● 研究经济地开发出高质量的软件方法和技术; ● 研究有效维护软件的方法和技术。 (2) 简述软件危机的原因。 答: ● 缺乏软件开发的经验和有关软件开发数据的积累,使得开发计划很难制定。 ● 软件人员与用户的交流存在障碍,使得获取的需求不充分或存在错误 。 ● 软件开发过程不规范。如,没有真正了解用户的需求就开始编程序。 ● 随着软件规模的增大,其复杂性往往会呈指数级升高。需要很多人分工协作, 不仅涉及技术问题,更重要的是必须有科学严格的管理。 ● 缺少有效的软件评测手段,提交用户的软件质量不能完全保证。 订 线 装

(3) 画出软件生存周期的瀑布模型的示意图,并简单评述其优缺点。 (4) 画出软件生存周期的增量模型的示意图,并简述其优点。 优点: ●可强迫开发人员采用规范化的方法。 ●严格地规定了每个阶段必须提交的文档。 ●要求每个阶段交出的所有产品都必须是经过验证 的。 缺点 ●由于瀑布模型几乎完全依赖于书面的规格说明,很 可能导致最终开发出的软件产品不能真正满足用户 的需要。如果需求规格说明与用户需求之间有差异, 就会发生这种情况。 ●瀑布模型只适用于项目开始时需求已确定的情况。 1-2 瀑布模型示意图 ●能在较短时间内向用户提交可完成一些有用的工作产 品,即从第1个构件交付之日起,用户就能做一些有用 的工作。 ●逐步增加产品的功能可以使用户有较充裕的时间学习和 适应新产品,从而减少一个全新的软件可能给用户组织 带来的冲击。 ●项目失败的风险较低,虽然在某些增量构件中可能遇到 一些问题,但其他增量构件将能够成功地交付给客户。 ●优先级最高的服务首先交付,然后再将其他增量构件逐 次集成进来。因此,最重要的系统服务将接受最多的测 试。

软件工程期末考试参考试题

软件工程期末考试参考试题 一、填空题 1、软件生存周期一般可分为问题定义、可行性研究、需求分析、设计编码、测试、运 行与维护阶段。 2、按软件的功能进行划分,软件可以划分为系统软件、支撑软件和应用软件。 3、可行性研究主要集中在以下四个方面经济可行性、技术可行性、法律可行性和抉择。 4、用户界面的可使用性是用户界面设计最重要的也是最基本的目标。 5、常见的软件概要设计方法有3大类:以数据流图为基础构造模块结构的结构化设计 方(SD),以数据结构为基础构造模块的Jackson方法,以对象、类、继承和通信为基础的面向对象设计方法(OOD)。 6、数据流图和数据字典共同构成系统的逻辑模型。 7、软件测试的方法有分析方法和非分析方法(即黑盒法)。 8、单元测试一般以白盒测试为主,黑盒测试为辅。 9、成本估计方法主要有自底向上估计、自顶向下估计和算法模型估计三种类型。 10. 文档(document)—一种数据媒体和其上所记录的(数据)。 11 机器语言、汇编语言:依赖于机器,面向(机器) 12. 软件有效性(efficiency),指软件系统的时间和(空间)效率。 13. 软件定义过程可通过软件系统的(可行性研究)和需求分析两个阶段来完成。 14. 软件定义的基本任务是确定软件系统的工程(需求),也就是要搞清“做什么”。 15. 为了使用户需求逐步精细化、完全化、一致化,通常采用(需求建模技术)。 16. 一个软件的深度是指其控制的(层数)。 17. 以详细设计说明书为输入,将该输入用某种程序设计语言翻译成计算机可以理解并 最终可运行的代码的过程叫(编码)过程。 18. 软件维护是软件生命周期的(最后)一个阶段 19. 软件工程由(方法)、工具和过程三部分组成,称软件工程的三要素。 20. 基于计算机系统的软件要素中的软部件由程序、数据和(文档)组成。 21. 数据流图就是用来刻画数据流和转换的信息系统建模技术。它用简单的图形记号分 别表示数据流、转换、(数据源)以及外部实体。 22. 被继承的类我们称之为基类(父类),在基类的基础上新建立的类我们称之为派生 类子类。 23. 流程图也称为程序框图是最常用的一种表示法,它有顺序、分支和(循环)三个基 本控制构件。 24. 机器语言和汇编语言,也称为(低级)语言。 25. 软件测试是执行程序发现并排除程序中潜伏的(错误)的过程。 26. 软件可维护性,是指软件产品交付使用后,在实现改正潜伏的错误、改进性能等属性、适应环境变化等方面工作的(难易)程度。 27. 软件可理解性,指系统具有清晰的结构,能直接反映问题的(需求)。 28 在实体-关系图简称E-R图中,数据对象实体用长方形、关系用(菱形)、属性用椭 圆表示。 29. 建立数据流模型要遵循的原则包括:每个加工至少应有一个输入数据流以反映被处 理数据的来源和一个(输出)数据流来反映加工的结果 30. 从工程管理的角度软件设计可分为概要设计和(详细)设计两大步骤。

软件工程期末复习

软件工程期末复习 一、选择题 1、软件工程的研究者将软件开发和维护过程概括为(c)大活动。 A.5 B.7 C.8 D.3 2、(a)是职业软件工程师的必要条件。 A.自律、善于沟通、具有一定的软件技能 B.编程速度快 C.熟悉众多的软件环境 D.语言天赋 3、计算机病毒是指(b)。 A.计算机系统的漏洞 B. 一组自我复制和自动执行的具有 破坏能力的代码 C.一种细菌 D. 程序中的BUG 4、软件需求具有(d)。 A.主观性 B.不确定性 C.多变性 D.以上全部 5、描述软件需求通常不用哪个工具(c)。 A.数据流程图 B.数据字典 C.模块结构图 D.E-R图 6、软件结构图中没有(d)元素。 A.模块 B.调用参数 C.返回结果 D.判断 7、程序流程图与数据流程图的关系(a)。 A.不确定 B.数据流程图可以转换成程序流程图 C.数据调用关系 D.程序流程图可以转换成数据流程图 8、包含关系用于构造多个用例(b)。 A. 关系 B.共性的部分 C.角色 D.特殊活动 9、如果说用例F被用例T扩展,意思是(a)。 A.F是一个一般用例,T是一个特殊用例 B.F是一个特殊用户,T是一个一般用例 C.都是一般用例 D.都是特殊用例 10、用(c)对需要长久保存的信息进行建模。 A.实体类 B.数据库表 C.E-R图 D.对象类 11、美国卡内基﹒梅隆大学制定的SW-CMM是(c)。 A.软件工作规范 B.软件工作流描述 C.软件成熟度模型 D.软件描述的一般方法 12、螺旋模型是一种将(d)结合起来的软件开发模型。 A.原型化模型和增量模型 B.风险判断和瀑布模型 C.瀑布模型和原型化模型 D.瀑布模型和增量模型 13可行性研究的四大要素是(a)。 A.经济、技术、法律和社会环境 B.经济、技术、开发组织能力和领导者水平 C.经济、技术、计算机硬件环境和网络带宽 D.经济、技术、软件开发工具和人员的稳定性 14、软件调研报告是在(b)提交的。 A. 可行性分析之前 B. 需求分析之前 C.签合同之前 D. 设计的时候 15、系统流程图的主要作用(a). A.描述系统的物理模型 B.业务流程 C.系统处理过程 D. 数据处理过程 16、PDL是一种(d)语言。 A.低级程序设计语言 B.建模语言 C.高级程序设计语言 D.过程设计语言 17、结构化设计方法划分模块的原则是(c)。 A.模块扇出小于5 B.模块扇入小于5 C.低耦合,高内聚 D.模块深度小于7 18、配置视图体现了系统的实现环境,反映系统的(b)。 A. 逻辑架构 B. 物理架构 C.组成结构 D.体系结构 19、角色可以有四种类型:系统的使用者,硬件设备,外部系统和(d)。 A.数据库 B.接口 C.对象 D. 时间 20、功能模型用于表达系统的需求,为软件的进一步分析和设计打下基础。在面向对象方法中,由(c )实现。 A. 场景描述 B.活动图和场景描述 C. 用例图和场景描述 D.交互图和场景描述 21、下面的哪个选项不是软件工程的宗旨(b)。 A.开发满足用户需求的软件 B.研究算法 C.及时交付软 件 D.生产无故障软件 22、针对需求不确定的软件开发,比较好的模型是(a)。 A. 快速原型化模型 B. 瀑布模型 C.软件成熟度模型 D.系统化模型 23、可行性分析研究的费用大约是项目总经费的(b)。 A.2% B.6% C.20% D.5‰ 24、业务需求描述的是(d)。 A.功能需求 B.用户需求 C.用户的具体业务流程 D.软件的目标、规模和范围 25、一个数据流程图中的图形符号有且仅有(c)种。 A.3 B.5 C.4 D.7 26、非直接耦合的模块独立性最强,(a)的模块独立性最弱。A.内容耦合 B.数据耦合 C.控制耦合 D.外部耦合 27、信息隐藏的核心内容是(c)。 A.把数据都放在公共的区域B.数据不能被其他模块访问 C.一个模块的内部信息不允许其他模块直接访问 D.把信息加密,只能让有密钥的模块访问 28、面向过程的方法最关心的是(a),而过程实施的对象是作为过程参数传递的。 A.参数 B.主体 C.过程 D.数据结构 29、(c)用于描述系统的功能集。 A. 组件视图 B.逻辑视图 C. 用例视图 D.对象视图 30、用(d)模型建立系统组织结构。 A.组织 B.CMM C.数据 D.静态 31、对象模型描述现实世界中实体的对象以及它们之间的关系,表示目标系统的静态数据结构。在面向对象方法中,由(b)实现。 A.顺序图 B.类图 C.状态图 D.组件图 32、如果对象之间的耦合是通过(a)来实现的,则这种耦合就是交互耦合。 A.消息机制 B.参数 C.方法 D.公共数据区 33、定义类的属性类型时尽量使用已有类型,太多自定义类型会降低系统的(c)指标。 A.有效性 B.安全性 C. 可维护性 D. 开发效率 34、在设计测试用例时,应该包括(d)测试用例。 A. 可能产生无效输出的输入情况 B.无效的和不期望的输入情况 C.有效的和期望的输入情况 D.上面所有情况 35、(b)属于功能测试方法。 A.等价类划分和判定覆盖 B.边值分析和等价类划分 C.边值分析和判定覆盖 D.判定覆盖和回归测试 36、一个软件项目大约(a)的工作量在开发阶段,()的工作量在维护阶段。 A.30%,70% B. 70%,30% C. 30%,30% D. 70%,70% 37、软件项目管理的内容不包括(b)。 A.人员的组织与管理 B. 技术和算法 C.软件配置管理 D.软件开发进度计划 38、通俗的说,软件项目管理中常说的基线是(d)。 A.管理的基本思路 B. 一种软件开发的基本策略 C.基本的技术路线 D. 通过正式复审的文档 39、科学计算领域一般选择(b)语言。 A.HTML B.C C.汇编语言 D.XML 40对于嵌套的循环和分支程序,层次不要超过(c)层。 A.1 B.2 C.3 D.5 41、在分析模型内表示协调、顺序、事务处理以及控制其他对象的类是(a)。 A.控制类 B.组件类 C.主函数 D.事务类 42、继承耦合是(b)之间的一种关联形式,设计时应该适当使用这种耦合。 A. 虚类与实体类 B. 一般化类与特殊化类 C.控制类与界面类 D.数据类与处理类 43、构架设计的主要目的是(d),这项工作由经验丰富的构架设计师主持完成。 A.类图 B.确定系统数据结构 C.处理流程 D. 确定系统总体结构 44、测试用例是一组(a)。 A.测试用的输入数据以及对应的预期结果 B.测试驱动程序 C.测试数据 D.测试程序及数据 45、由于面向对象中的继承和消息机制,使得软件测试(b)。 A.更加简单 B.更加复杂 C.没变 D.不确定 46、软件维护过程中产生的副作用,一般是由(b)引起的。 A.算法说明 B.修改程序 C.优先级 D.环境要求 47、项目计划活动的主要任务是(d)。 A.估算项目的进度 B.分配工作量 C.计划资源使用 D.以上全部 48、如果程序代码的(c)好,则调试的成本就可以大幅度降低。 A.性能比 B. 可扩充性 C. 可读性 D.可移植性 49、两个浮点数X0和X1比较相等时,应该用(c)比较。 A.X0==X1 B.X1-X0<ε C. |X0-X1|<ε D.X0=X1 50、瀑布模型存在的问题是(d )。 A.用户容易参与开发B.适用可变需求 C.用户与开发者易沟通 D.缺乏灵活性 51、( b)不是分析建模的目的。 A. 定义可验证的软件需求 B. 开发一个简单的问题解决方案 C. 描述客户需求 D. 建立软件设计的基础 52、对用例进行设计,发现实现用例功能的(d),确定类之间的关系。 A. 算法 B.业务流程 C.数据结构 D. 关键类 53、框架是一组可用于不同应用的(a)的集合。 A.类 B.数据结构 C.函数 D.过程

天津科技大学软件工程期末考试试题(样卷)

天津科技大学软件工程期末考试试题 (样卷) 一、单项选择题 1.程序设计属于软件开发过程( C )阶段。 A.设计B.编程 C.实现D.编码 2. 产生软件危机的原因主要与两个方面的问题有关:( C ) A.软件在计算机中很难识别,存在磁盘中也看不到。 B.软件设计对人的智商要求很高,也要求很高的资金投入。 C.软件产品本身的特点与其它工业产品不一样,而且在软件的开发和 维护过程中用的方法不正确。 D.软件很难理解,硬件也很复杂。 3.结构设计是一种应用最广泛的系统设计方法,是以( A )为基础、自顶向下、逐步求精和模块化的过程。 A.数据流B.数据流图 C.数据库D.数据结构 4. 下列关于瀑布模型的描述正确的是( C )。 A. 瀑布模型的核心是按照软件开发的时间顺序将问题简化。 B. 瀑布模型具由于良好的灵活性。 C. 瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开。 D. 利用瀑布模型,如果发现问题则修改的代价很低。 5.在软件结构化设计中,好的软件结构设计应该力求做到( B )。

A.顶层扇出较少,中间层扇出较高,底层模块低扇入 B.顶层扇出较高,中间层扇出较少,底层模块高扇入 C.顶层扇入较少,中间层扇出较高,底层模块高扇入 D.顶层扇入较少,中间层扇入较高,底层模块低扇入 6. 需求分析阶段,分析人员要确定对问题的综合需求,其中最主要的是( A ) 需求。 A.功能B.性能 C.数据D.环境 7.软件结构图的形态特征能反映程序重用率的是( C )。 A.深度B.宽度 C.扇入D.扇出 8. 在数据流图中,○(椭圆)代表( C )。 A.源点B.终点 C.加工D.模块 9.为了提高模块的独立性,模块内部最好是( C )。 A.逻辑内聚B.时间内聚 C.功能内聚D.通信内聚 10.软件需求分析的主要任务是准确地定义出要开发的软件系统是( C )。A.如何做B.怎么做 C.做什么D.对谁做 11.软件的( A )设计又称为总体结构设计,其主要任务是建立软件系统的总体结构。 A.概要B.抽象 C.逻辑D.规划

软件工程期末复习

第一章概述 1、软件工程方法学的三个要素:方法、工具和过程 2、目前广泛使用的软件工程方法学是传统方法学(结构化范型)和面向对象方法学 3、软件生命周期分成哪几个阶段? 软件定义、软件开发、运行维护(软件维护)3个时期 软件定义分为3各阶段:问题定义、可行性研究和需求分析 软件开发:总体设计、详细设计、编码和单元测试、综合测试(系统设计和系统分析) 4、典型的生命周期模型包括瀑布模型、快速原型模型、螺旋模型、喷泉模型、RUP等 第二章可行性研究 1、可行性研究的目的 就是用最小的代价在尽可能短的时间内确定问题是否能够解决 3种解法的可行性:技术可行性、经济可行性、操作可行性 2、什么是系统流程图?它包括哪些符号? 基本思想是用图形符号以黑盒子形式描绘组成系统的每个部件。 处理(能改变数据值或数据位置的加工或部件)输入输出(表示输入或输出)连接换页连接数据流 3、什么是数据流图?它包括哪些符号? (符号:正方形、圆角矩形、开口矩形、箭头) 4、数据流图为什么要分层?

在一张数据流图中包含多少个元素合适?一般来说,如果一张数据流图中包含的处理多于9个,人们就难于领会它的含义,因此数据流图应该分层,并且在功能级数据流图细化后得到的处理超过9个时,应该采用画分图的方法,也就是把每个主要功能都细化为一张数据流分图,而原有的功能级数据流图用来描绘系统的整体逻辑概貌。 5、什么是数据字典?它的用途是什么?它包括哪四类元素的定义?(元素定义:数据流、数据流分量(即数据元素)、数据存储、处理) 6、成本估计的三种技术 代码行技术、任务分解技术、自动估计成本技术 第三章需求分析 1、需求分析的基本任务是什么?主要包括哪几项? (任务是深入描述软件的功能和性能,确定软件设计的约束和软件同其他系统元素的接口细节,定义软件的其他有效性需求,借助于当前系统的逻辑模型导出目标系统逻辑模型,解决目标系统“做什么”的问题)主要包括:确定对系统的综合要求、分析系统的数据要求、导出系统的逻辑模型、修正系统开发计划。 2、需求分析的结果以软件需求规则说明书的形式提交 3、需求分析应该建立三种模型,分别是数据模型、功能模型和行为模型。 4、实体-联系图是用于建立数据模型的图形。 5、数据模型包括三种相互关联的信息:数据对象、数据对象的属性及数据对象彼此之间相互连接的关系。

软件工程期末复习知识点整理

复习整理 一、绪论 1.软件的定义 软件是能够完成预定功能和性能的可执行的计算机程序,包括使程序正常执行所需要的数据,以及有关描述程序操作和使用的文档。(软件=程序+文档) 2.软件工程的定义 ●是指导计算机软件开发和维护的一门工程学科; ●采用工程化的原理及方法对软件进行计划、开发和维护; ●把证明正确的管理技术和最好技术综合运用到软件开发中; ●研究经济地开发出高质量的软件方法和技术; ●研究有效维护软件的方法和技术。 3.软件危机的概念,及出现的原因 软件开发技术的进步未能满足发展的要求。在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。 产生原因: ⑴软件规模越来越大,结构越来越复杂 ⑵软件开发管理困难而复杂。 ⑶软件开发费用不断增加。 ⑷软件开发技术落后。 ⑸生产方式落后,仍采用手工方式。

⑹开发工具落后,生产率提高缓慢。 4.三种编程范型的特点 (1) 过程式编程范型:把程序理解为一组被动的数据和一组能 动的过程所构成;程序=数据结构+算法;着眼于程序的过程和基本控制结构,粒度最小 (2) 面向对象编程范型:数据及其操作被封装在对象中;程序 =对象+消息;着眼于程序中的对象,粒度比较大 (3) 基于构件技术的编程范型:构件是通用的、可复用的对象 类;程序=构件+架构;眼于适合整个领域的类对象,粒度最大 二、软件生存周期及软件过程 1、软件生存周期的定义,把生存周期划分为若干阶段的目的是什么, 有哪几个主要活动 ●定义:一个软件从开始立项起,到废弃不用止,统称为软件的 生存周期 ●目的:软件生存周期划分为计划、开发和运行3个时期;把整 个生存周期划分为较小的阶段,给每个阶段赋予确定而有限的 任务,就能够化简每一步的工作内容,使因为软件规模而增长 而大大增加了软件复杂性变得较易控制和管理。 ●主要活动:需求分析、软件分析、软件设计、编码、软件测试、 运行维护(P19) 2、软件生命周期划分为哪几个阶段

软件工程期末考试总复习题与答案

)))))))) 精品文档考试教学资料施工组织设计方案 复习题 填空题 1.在信息处理和计算机领域内,一般认为软件是_程序____、_文档____ 和_数据____ 。 2.数据流图的基本组成部分有_数据的源点与终点____、数据 流_____、加工_____、数据文件_____。 3.数据流图和数据字典共同构成了系统的_逻辑____模型,是 需求规格说明书的主要组成部分。 4.划分模块时尽量做到__高内聚、低耦合______,保持模块的 独立性,尽量使用公共模块。 5.类的实例化是_对象_______。 6.人们常用硬件可靠性的定量度量方法来度量软件的可靠性和可用性,常用的度量软件可 7.靠性的两个指标是_成功地运行的概率_______和_平均故障 时间_______。

8.将待开发的软件细化,分别估算每一个子任务所需要的开发工作量,然后将它们加起来, 9.将得到软件的总开发量。这种成本估算方法称为_自底向上 _______。 10.如果一个模块被n 个模块调用,其中直接的上级模块的个数是m 个(m<=n )那么该模块的扇入数是____N_______ 个。 11.结构化设计以__数据流图_________ 为基础,按一定的步骤映射成软件结构。 12.软件的风险分析可包括风险识别、风险预测和风险驾驭(或风险管理)等3项活动。 )))))). )))))))) 13.软件著作权登记的3种主要类型:(1)著作权登记;(2)著 作权延续登记;(3)权利转移备案登记。 14.软件工程管理的主要内容有:项目经费管理,软件质量管理, 项目进度管理和人员管理。 15.面向对象分析的目的是对客观世界的系统进行___建模 _______________ 。 16.软件维护工作的生产性活动包括分析评价、修改设计和 ____编写程序代码_______ 等。

软件工程期末复习题参考答案

软件工程期末复习题 选择题 1.软件设计中划分模块的一个准则是(C)。 A低内聚低耦合 B低内聚高耦合 C高内聚低耦合 D.高内聚高耦合 2.(A)是用户和设计交换最频繁的方法。 A、原型化方法 B、瀑布模型法 C、螺旋模型方法 D、构件组装模型 3.试判断下列叙述中,哪个些是正确的(C)。 a、软件系统中所有的信息流都可以认为是事务流 b、软件系统中所有的信息流都可以认为是变换流 c、事务分析和变换分析的设计步骤是基本相似的 A、a B、b C、c D、b和c 4.软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是(C) A、硬件环境 B、软件开发的环境 C、软件开发工具和软件开发的环境 D、开发人员的素质 5.20世纪50年代以来,出现了许多不同的程序设计语言,下列语言中哪个语言是低级语言(D) A、PASCAL B、VISUAL BASIC C、C++

D、汇编语言 6.软件测试的目的是?(D) A.软件的正确性 B.找出软件系统中存在的所有错误 C.证明软件系统中存在错误 D.尽可能多的发现软件系统中的错误 7.使用白盒测试方法时,确定测试数据应根据(A)和指定的覆盖标准。 A、程序的内部逻辑 B、程序的复杂程度 C、该软件的编辑人员 D、程序的功能 8.软件维护工作的最主要部分是(C)。 A、纠正性维护 B、适应性维护 C、完善性维护 D、预防性维护 9.PDL是(B)语言。 A.高级程序设计语言 B、伪码式 C、中级程序设计语言 D、低级程序设计语言 10.软件的结构化设计(SD)方法中,一般分为概要设计和详细设计两阶段,其中详细设计主要是要建立(C)。 A、软件结构 B、软件过程 C、软件模型 D、软件模块 11.在数据流图中,○(椭圆)代表(B) A、数据流 B、转换 C、数据源 D、外部实体

软件工程期末复习重点

1、什么是软件工程 在《计算机科学技术百科全书》中软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。 2、软件生存周期分哪几个阶段分别简述各个阶段的任务。 答:软件生存周期有计算机系统工程、需求分析、设计、编码、测试、运行和维护6个阶段。 A 计算机系统工程的任务是确定待开发软件的总体要求和范围,以及该软件与其他计算机 系统元素之间的关系,进行成本估算,做出进度安排,并进行可行性分析,即从经济、技术、法律等方面分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中做出选择。 B 需求分析主要解决待开发软件要“做什么”的问题,确定软件的功能、性能、数据、界 面等要求,生成软件需求规约。 C 软件设计只要解决待开发软件“怎么做”的问题。软件设计通常可分为系统设计和详细 设计。系统设计的任务是设计软件系统的体系结构,包括软件系统的组成成分、各成分的功能和接口、成分间的连接和通信,同时设计全局数据结构。详细设计的任务是设计各个组成成分的实现细节,包括局部数据结构和算法等。 D 编码阶段的任务是用某种程序设计语言,将设计的结果转换为可执行的程序代码。 E测试阶段的任务是发现并纠正软件中的错误和缺陷。测试主要包括单元测试、集成测试、确认测试和系统测试。 F软件完成各种测试后就可交付使用,在软件运行期间,需对投入运行的软件进行维护,即可发现了软件中潜藏的错误或需要增加新的功能或使软件适应外界环境的变化等情况出现时,对软件进行修改。 3、简述各类软件过程模型的特点。 答:典型的软件过程模型有:瀑布模型、演化模型(增量模型、原型模型、螺旋模型)、喷泉模型、基于构件的开发模型和形式方法模型等。 A瀑布模型中,上一阶段的活动完成并经过评审后才能开始下一阶段的活动,其特征是: 接受上一阶段活动的结果作为本阶段活动的输入; 依据上一阶段活动的结果实施本阶段应完成的活动; 对本阶段的活动进行评审; 将本阶段活动的结果作为输出。 B 增量模型将软件的开发过程分成若干个日程时间交错的线性序列,每个线性序列产生软件 的一个可发布的增量版本,后一个版本是对前一个版本的修改和补充,重复增量发布的过程,直至产生最终的完善产品。 C 原型方法从软件工程师与客户的交流开始,其目的是定义软件的总体目标,标识需求。然 后快速制定原型开发的计划,确定原型的目标和范围,采用快速设计的方式对其建模,并构建模型。被开发的原型应交付给客户使用,并收集客户的反馈意见,这些反馈意见可在下一

软件工程期末考试复习题及答案

(4分) 变换型结构的数据流呈() A. 线性形状 B. 辐射状 C. 椭圆形 D. 阶梯形 得分: 0 知识点: 软件工程,软件工程作业题展开解析 .答案 A .解析..2. (4分) 可行性研究阶段使用的图形工具是() A. DFD图 B. N-S图 C. PAD图 D. Warnier图 得分: 0 知识点: 软件工程,软件工程作业题展开解析 .答案 A .解析..3. (4分) 软件的开发模式有() A. 面向过程模式、面向对象模式、混合模式 B. 变换模式、渐增模式、瀑布模式 C. 自顶向下模式、自底向上模式、关系模式 D. 分步模式、渐增模式、非渐增模式 得分: 0 知识点: 软件工程,软件工程作业题展开解析 .答案 B .解析..4. (4分) 模块的初始化工作和模块处理意外故障均属于() A. 时间内聚 B. 顺序内聚 C. 功能内聚 D. 逻辑内聚 得分: 0 知识点: 软件工程作业题,软件工程展开解析 .答案 A .解析..5. (4分) HIPO的含义是()

A. 层次、输入、处理、输出 B. 高速、信息、程序、目标 C. 顶层的IPO图 D. 关于输入、处理、输出的层次 得分: 0 知识点: 软件工程,软件工程作业题展开解析 .答案 A .解析..6. (4分) 数据字典和数据流图共同构成系统的() A. 物理模型 B. 结构模型 C. 设计说明书 D. 逻辑模型 得分: 0 知识点: 软件工程作业题,软件工程展开解析 .答案D .解析..7. (4分) 好的软件结构它的外观形状一般呈() A. 线性 B. 扇形 C. 椭圆形 D. 层次型 得分: 0 知识点: 软件工程,软件工程作业题展开解析 .答案 C .解析..8. (4分) CMU/SEI推出的()将软件组织的过程能力分为五个成熟度级别,每一个级别定义了一组过程能力目标,并描述了要达到这些目标应该具备的实践活动。 A. CMM B. PSP C. ISO-9000 D. RUP 得分: 0 知识点: 软件工程,软件工程作业题展开解析 .答案 A .解析..9. (4分) 若要保证开发出来的软件局部优化,而且能尽早发现设计上的错误,应采用()

辽师软件工程期末复习题

说明: 以下试题虽然经过多次整理,但由于时间有限,存在错误或不足之处在所难免。同学们在阅读和使用过程中如发现问题,请你在课程评价的“建议”中指出,具体方法是: 写明大小题号:问题所在;正确内容。 在此谢谢你提供的方便和指正。 一、概念题 1、软工程:是1)将系统性的、规范化的、可定量的方法应用于软件的开发、 运行和维护,即将工程化应用到软件上;2)对1)中所述方法的研究。 2、软件:是计算机程序、规程以及运行计算机系统可能需要的相关文档和数据。 3、软件危机:是指在计算机软件的开发和维护过程中遇到的一系列严重问题。 4、软件过程:是软件工程人员为了获得软件产品而在软件工具的支持下实施的 一系列软件工程活动。 5、基线:是已经通过了正式复审的规格说明或中间产品,它可以作为进一步开 发的基础,并且只有通过正式的变化控制过程才能改变。 6、软件配置项:是为配置管理而作为单独实体处理的一个工作产品或软件。 7、对象:是系统中用来描述客观事物的一个实体,它是构成系统给的一个基本 单位,有一组属性和对这组属性进行操作的一组服务组成。 8、软件过程模型:是描述软件过程的整体框架,它是软件过程的一种抽象表示。 9、类:是具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提 供了统一的抽象描述,其内部包括属性和服务两个主要部分。 10、实体类:用于描述必须存储的信息及其相关行为,它是对系统核心信息的建 模,通常这些信息需要长久地保存。 11、版本:是确定在明确定义的时间点上某个配置项的状态。

12、耦合度:是表示两个子系统之间的关联程度。当一个子系统发生变化时对另 一个子系统的影响很小,则称它们是松散耦合的;反之,如果变化的影响很大时,则称它们是紧密耦合的。 13、软件需求:1)用户解决问题或达到目标所需要的条件或能力。2)系统或系 统部件要满足合同、标准、规范或其他正式规定文档所需要具有的条件或能力。3)一种反映上面1)或2)所描述的条件或能力的文档说明。 14、软件实现:是软件产品由概念到实体的一个关键过程,它将详细设计的结果 翻译成用某种程序设计语言编写的并且最终可以运行的程序代码。 15、内聚性:是子系统内部的相关程度。当子系统中彼此相关的多个对象执行类 似的任务时,则认为该子系统是高内聚的;反之,当子系统内的多个对象彼此不相关时,则认为是低内聚的。 16、软件验证:是指试图证明在软件生存期各个阶段,软件产品或中间产品是否 能够满足客户需求,包括逻辑协调性、完备性和正确性。 17、软件测试:广义上讲,测试是指软件产品生存周期内所有的检查、评审和确 认活动。狭义上讲,测试是对软件产品质量的检查和评价,它一方面检查软件产品中存在的质量问题,同时对产品质量进行客观的评价。 18、软件再工程:是以系统理解为基础,结合逆向工程、重构和正向工程等方法, 将现有系统重新构造成为新的形式。 19、软件确认:是一系列的活动和过程,其目的是保证软件产品能够符合其描述 要求。 20、软件维护:是指在软件运行或维护阶段对软件产品所进行的修改,做这些修 改时可能改正软件中的错误,也可能是增加新的功能以适应新的需求,但是

相关文档
最新文档