软件工程.docx
《软件工程.docx》由会员分享,可在线阅读,更多相关《软件工程.docx(19页珍藏版)》请在冰豆网上搜索。
软件工程
简答:
1.什么是字据字典?
其作用是什么?
它有哪些条目?
字据字典:
简称DD,就是用来定义数据流图中的各个成分具体含义的,它以一种准确的、无二义性的说明方式为系统的分析\设计及维护提供了有关元素的一致的定义和详细的描述.
作用:
1)为系统的分析\设计及维护提供了有关元素的一致的定义和详细的描述.
2)为分析人员查找数据流图中有关名字的详细定义而服务的.
3)它和数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分.
条目:
数据流、数据项、数据存储、基本加工
2.什么是软件生命周期模型?
本书中介绍的四种典型模型各是什么?
软件生命周期模型:
是描述软件开发过程中各种活动如何执行的模型。
(模型:
是为了理解事物而对事物做出一种抽象,它忽略不必要的细节,它也是事物的一种抽象形式、一个规划、一个程式。
)
软件生存周期主要模型:
瀑布模型、快速原型、增量模型、螺旋模型。
3.什么是模块的影响范围?
什么是模块的控制范围?
它们之间应该建立什么关系?
模块的影响范围:
受该模块内的一个判定影响的所有模块的集合。
模块的控制范围:
模块本身及其所有下属模块(直接或间接从属于它的模块)的集合。
关系:
一个模块的影响范围应在其控制范围之内,且判定所在的模块应与受其影响的模块在层次上尽量靠近。
4.简述SA方法的优缺点。
优点:
1)公认的、有成效的、技术成熟、使用广泛的一种方法,比较适合于开发数据处理类型软件的需求分析。
2)该方法利用图形等半形式化工具表达需求,简明、易读,也易于使用,为后一阶段的设计、测试、评价提供了有利条件。
缺点:
1)传统的SA方法主要用于数据处理方面的问题,主要工具DFD体现了系统"做什么"的功能,但它仅是一个静态模型,没有反映处理的顺序,即控制流程。
因此,不适合描述实时控制系统。
2)SA方法在使用DFD在分析与描述"数据要求"方面是有局限的。
3)DFD不适合描述人机界面系统的要求。
4)为了更精确地描述软件包需求,提高软件系统的可靠性、安全性,也便于实现自动化,SA方法可与形式方法结合起来。
5.说明对象、类、类结构、消息的基本概念
对象:
对象是人们要进行研究的任何事物,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。
对象包括有形实体、作用、事件、性能说明等类型
类:
具有相同或相似性质的对象的抽象就是类。
因此,对象的抽象就是类,类的具体化就是对象,也可以说类的实例是对象。
类结构:
类与类之间的结构关系,包括一般-具体结构关系和整体-部分结构关系。
消息:
对象之间进行通信的构造叫做消息
6.软件评审、设计质量评审、程序质量评审
软件评审是一个“过滤器”,在软件开发的各个阶段都要采用评审的方法,以发现软件中的缺陷,然后加以改正。
设计质量评审指评价软件的规格说明是否合乎用户的要求,即总体设计思想和设计方针是否明确;需求规格说明是否得到了用户或单位上级机关的批准;需求规格说明与软件的概要设计规格说明是否一致等。
包括评审可靠性、保密措施实现情况、操作特性实施情况、性能实现情况、软件是否具有可修改性、可扩充性、可互换性和可移植性、软件是否具有可测试性、软件是否具有复用性。
程序质量评审通常它是从开发者的角度进行评审,直接与开发技术有关。
它着眼于软件本身的结构、与运行环境的接口、变更带来的影响而进行的评审活动。
7.什么是软件结构?
简述软件结构设计优化准则。
软件结构:
软件系统的模块层次结构,反映了整个系统的功能实现,即将来程序的控制体系。
软件结构设计优化准则:
a.划分模块时,尽量做到高内聚,低耦合,保持模块相对独立性,以此为原则优化初始的软件结构。
b.一个模块的作用范围应在其控制范围之内,且判定所在的模块应与受其影响的模块在层次上尽量靠近
c.软件的深度、宽度、扇入、扇出应适当。
d.模块的大小要适中。
e.模块的控制范围模块的接口要简单、清晰、含义明确,便于理解,易于实现、测试与维护。
8.类图和实例图的区别?
类具有3个分栏:
名称、属性和操作 对象只有两个分栏:
名称和属性 在类的名称分栏中只有类名 对象的名称形式为“对象名:
类名”,匿名对象的名称形式为“:
类名” 类的属性分栏定义了所有属性的特征 对象则只定义了属性的当前值,以便用于测试用例或例子中 类中列出了操作 对象图中不包括操作,因为对于同属于同一个类的对象而言,其操作是相同的 类使用关联连接,关联使用名称、角色、多重性以及约束等特征定义。
类代表的是对对象的分类所以必须说明可以参与关联的对象的数目 对象使用链连接、链拥有名称、角色,但是没有多重性。
对象代表的是单独的实体,所有的链都是一对一的,因此不涉及到多重性
9.什么是集成测试?
非渐增式和渐增式有什么区别?
渐增式如何组装模块?
集成测试:
将模块组合起来成为一个完整的系统对其进行测试。
非渐增式是将模块先进行单元测试然后组装在一起进行测试。
渐增式是逐个将未测试的模块组装到已经测试过的模块上去进行集成测试,每加入一个就测试一次。
非渐增式需要桩模块和驱动模块、非渐增式开始可以并行测试、渐增式可以及时的发现接口错误,非渐增式很难发现接口发现错误、渐增式开始不能并行测试、渐增式测试比较彻底。
渐增式组装模块有自顶向下和自底向上两种组装方式。
10.说明容错软件的定义与容错的一般方法。
归纳容错软件的定义,有以下四种:
⑴规定功能的软件,在一定程序上对自身错误的作用(软件错误)具有屏蔽能力,则称此软件为具有容错功能的软件。
⑵规定功能的软件,在一定程序上能从错误状态自动恢复到正常状态,则称之为容错软件。
⑶规定功能的软件,在因错误而发生错误时,仍然能在一定程度上完成预期的功能,则把该软件称为容错软件。
⑷规定功能的软件,在一定程度上具有容错能力,则称之为容错软件。
实现容错技术的主要手段是冗余,通常冗余技术分为四类。
⑴结构冗余。
结构冗余是通常用的冗余技术。
按其工作方式,它分为静态、动态和混合冗余三种。
⑵信息冗余。
为检查或纠正信息在运算或传输中的错误须外加一部分信息,这种现象称为信息冗余。
⑶时间冗余。
是指以重复执行指令(指令复执)或程序(程序复算)来消除瞬时错误带来的影响。
⑷冗余附加技术。
是指为实现上述冗余技术所需的资源和技术。
包括程序、指令、数据、存放和调动他们的空间和通道等。
名词解释:
1、HIPO:
是表示软件系统结构的工具,以模块分解的层次性以及模块内部输入、处理、输出三大基本部分为基础建立的。
2、软件质量:
软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软件都应具有的隐含特征的程度。
3、软件测试:
是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。
执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。
4、内聚:
又称为块内联系,指模块内部各成分之间相互关联的程度,以高内聚为设计目标。
5、软件工程:
是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
6、SA:
结构化分析,简称SA,面向数据流进行数据分析的方法。
采用自顶向下逐层分解的分析策略。
顶层抽象地描述整个系统,底层具体地画出系统工程的每个细节。
中间层则是从抽象到具体的过渡。
使用数据流图,数据字典,作为描述工具,使用结构化语言,判定表,判定树描述加工逻辑。
7、CASE:
计算机辅助软件工程,是提供一组能够自动覆盖软件开发生命周期各个阶段的集成的、减少劳动力的工具。
8、信息隐藏:
将模块实现自身功能的细节与数据"隐蔽"起来。
模块间仅交换为完成系统功能所必须的信息。
9、多态:
是指相同的操作或函数过程可以作用于多种类型的对象上并获得不同的结果。
10、软件危机:
软件开发技术的进步未能满足发展的要求。
在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。
填空题
1. 软件生命周期可划分为、和3个时期,通常把这3个时期再细分为8个阶段,它们是①、②、③、④、⑤、⑥、⑦和⑧,其中的阶段的工作量是8个阶段中最大的。
2. 可行性研究的任务是从、和等三个方面研究。
3. 至少应该从、、和4个方面验证软件需求的正确性,其中和这两个方面的正确性必须有用户的积极参与才能验证,而且为了验证这两个方面的正确性,往往需要开发。
4. 软件总体设计时应遵循、、、、、和等6条基本原则。
详细设计通常以技术为逻辑基础,因为从软件工程观点看,是软件最重要的质量标准之一。
5. 软件测试的目的是,通常把测试方法分为和两大类。
因为通常不可能做到,所以精心设计是保证达到测试目的所必须的。
6. 软件维护通常包括4类活动,它们分别是、、、。
答:
1. 定义;开发;维护;问题定义;可行性研究;需求分析;总体设计;详细设计;编码和单元测试;综合测试;维护;维护。
2. 技术;经济;操作;软件项目的可行性/
3. 一致性;现实性;完整性;有效性;完整性;有效性;原型系统。
4. 模块化;抽象;逐步求精;信息隐藏;局部化;模块独立;结构程序设计;可理解性。
5. 发现错误;黑盒测试;白盒测试;穷尽测试;测试方案。
6. 改正性维护;适应性维护;完善性维护;预防性维护。
12.某厂对部分职工重新分配工作的政策是:
年龄在伙岁以下者,初中文化程度脱产学习。
高中文化程度当电工;年龄在20岁到40岁之间者,中学中学文化程度男性当钳工,女性当车工,大学文化程度都当技术员。
年龄在40岁以上者,中学文化程度当材料员,大学文化程序当技术员。
请用结构化语言、判定表或判定树描述上述问题的加工逻辑。
(1)结构化语言:
根据职工年龄和文化程序:
REPEAT
If 年龄<=20
If 初中文化 Then 脱产学习 endif
else if 高中文化 Then 电工 endif
endif
If 20<年龄<40
If 中学文化
If 男性 Then 钳工
Else
车工
Endif
else if 大学文化 Then 技术员endif
endif
endif
If 年龄>=40
If 中学文化 Then 材料员
else if 大学文化 Then 技术员endif
endif
endif
Until 没有剩余未分配员工
判定表
1
2
3
4
5
6
7
8
9
10
11
年龄
C
C
D
D
D
D
D
E
E
E
文化
G
H
H
G
G
H
I
G
H
I
性别
--
--
M
M
F
F
--
--
--
--
脱产学习
√
电工
√
钳工
√
√
车工
√
√
技术员
√
√
材料员
√
√
条件取值表
条件名
取值
符号
取值数
年龄
<=20
C
M1=3
>20,<40
D
>=40
E
文化程度
中学
G
M2=3
高中
H
大学
I
性别
男
M
M3=2
女
F
软件危机:
在计算机软件的开发和维护过程中所遇到的一系列严重问题。
软件工程:
软件工程是指导软件开发和维护的工程类学科,它以计算机科学理论及其他相关学科的理论为指导,采用工程化的概念、原理、技术和方法进行软件的开发和维护,把经过时间证明正确的管理措施和当前能够得到的最好的技术方法结合起来,以较少的代价获取高质量的软件。
已知有一抽象的DFD图如下所示,请用SD方法画出相应的结构图。
答:
高考录取统分子系统有如下功能:
(1)计算标准分:
根据考生原始分计算,得到标准分,存入考生分数文件;
(2)计算录取线分:
根据标准分、招生计划文件中的招生人数,计算录取线,存入录取线文件。
试根据要求画出该系统的数据流程图,并将其转换为软件结构图。
答:
(1)数据流图:
(2)软件结构图:
31、软件开发的结构化设计方法,全面指导模块化分的最重要的原则应该是(C)。
A).模块高内聚B).模块低耦合C).模块独立性D).程序模块化
32、软件工程是一种(B)分阶段实现的软件程序开发的方法。
A).自底向上B).自顶向下C).逐步求精D).面向数据流
33、软件定义期问题定义阶段涉及的人员有(D)。
A).用户、使用部门负责人B).软件开发人员、用户、使用部门负责人
C).系统分析员、软件开发人员
D).系统分析员、软件开发人员、用户、使用部门负责人
34、软件详细设计主要采用的方法是(A)。
A).结构化程序设计B).模型设计C).结构化设计D).流程图设计
35、面向数据流的软件设计方法,一般是把数据流图中得数据流化分为(B)两种流,再将数据流图映射为软件结构。
A).数据流与事务流B).交换流和事务流C).信息流与控制流D).交换流和数据流
36、软件工程方法的提出起源于软件危机,而其目的应该是最终解决软件的(D)问题。
A).产生危机B).质量保证C).开发效率D).生产工程化
37、下面不属于软件工程的3个要素是(D)
A).工具B).过程C).方法D).环境
38、在软件生命周期法中,用户的参与主要在(A)。
A)软件定义期B).软件开发期C).软件维护期D).整个软件生命周期过程中
39、检查软件产品是否符合需求定义的过程称为(A)
A).确认测试B).集成测试C).验证测试D).验收测试
40、数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。
下列图符名标识的图符不属于数据流图合法图符的是(A)。
A).控制流B).加工C).数据存储D).源和潭
41、通过(B)可以完成数据流图的细化。
A).结构分解B).功能分解C).数据分解D).系统分解
42、(C)是指让一些关系密切的软件元素在物理上彼此靠近。
A).信息隐蔽B).内聚C).局部化D).模块独立
43、程序流程图(PDF)中的箭头代表的是(B)。
A).数据流B).控制流C).调用关系D).组成关系
44、数据存储和数据流都是(D),仅仅是所处的状态不同。
A).分析结果B).事件C).动作D).数据
45、数据元素组成数据的方式的基本类型(D)
A).顺序B).选择C).循环D).以上全部
46、在结构化方法中,软件功能分解属于软件开发中的(C)阶段。
A).详细设计B).需求分析C).总体设计D).编程调试
47、在测试中,下列说法错误的是(B)
A).测试是为了发现程序中的错误而执行程序的过程
B).测试是为了表明程序的正确性
C).好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案
D).成功的测试是发现了至今为止尚未发现的错误的测试
49、(A)是程序中一个能逻辑分开的部分,也就是离散的程序单位。
A).模块B).复合语句C).循环结构D).数据块
50、下面不属于软件工程原则的是(C)
A).抽象B).模块化C).自底向上D).信息隐蔽
51、(D)是数据说明、可执行语句等程序对象的集合,它是单独命名的而且可以通过名字来访问。
A).模块化B).抽象C).精化D).模块
52、软件开发的原型化方法是一种动态定义软件需求的方法,下述条件中,(A)是实施原型化方法所必需的。
Ⅰ成熟的原型化人员
Ⅱ快速的成型工具
Ⅲ需求了解的正确性
A).Ⅰ和ⅡB).Ⅱ和ⅢC).Ⅰ、Ⅱ和ⅢD).Ⅲ
53、瀑布模型将软件生命周期归纳为个时期,即计划期、开发期和运行期。
下列(D)不属于开发期内的工作。
A).总体设计B).详细设计C).程序设计D).维护
54、软件可行性分析是着重确定系统的目标和规模。
对功能、性能以及约束条件的分析应属于下列之中的(B)任务。
A).分析B).估价C).制定制度D).进度分配
55、结构化方法将软件生命周期分为计划、开发和运行3个时期,下列任务中(B)属于计划时期的任务。
A).需求分析B).问题定义C).总体设计D)编码
56、结构化软件开发期将软件开发划分为3个阶段,其中关键的是(B)。
A).编码的正确性B).需求的准确性C).测试的严格性D).设计的科学性
57、软件工程的结构化分析方法具有自身的特征,下列可选内容中,(B)不具有其特征。
A).书写大量文档B).详细的界面表示C).对数据流进行分析D).冻结应用需求
58、详细设计是软件总体设计滞后的工作。
下列可选内容中,(C)不属于详细设计内容。
A).算法设计B).模块设计C).屏幕设计D).功能设计
59、耦合是软件各个模块间连接的一种度量。
一组模块都访问同一数据结构应属于(B)方式。
A).内容耦合B).公共耦合C).外部耦合D).控制耦合
60、内聚是从功能角度来度量模块内的联系,按照特定次序执行元素的模块属于(C)方式。
A).逻辑内聚B).时间内聚C).过程内聚D).顺序内聚
61、软件管理中,需要对软件进行配置,各阶段文档的管理属于(D)。
A).组织管理B).资源管理C).计划管理D).版本管理
62、软件工程方法的产生源于软件危机,下列(A)是产生软件危机的内在原因。
Ⅰ软件的复杂性
Ⅱ软件维护困难
Ⅲ软件成本太高
Ⅳ软件质量难保证
A).ⅠB).ⅢC).Ⅰ、ⅣD).Ⅲ、Ⅳ
63、计算机软件(A)。
A).计算机系统的组成部分B).不能作为商品参与交易
C).是在计算机硬件设备生产过程中生产出来的
D).只存在于计算机系统工作时
64、数据字典是对数据定义信息的集合,它所定义的对象都包含在(A)。
A).数据流图B).程序框图C).软件结构D).方框图
65、程序流程图是一种传统的程序设计表示工具,有其优点和缺点,使用该工具是应注意(C)。
A).支持逐步求精B).考虑控制流程C).遵守结构化设计原则D).数据结构表示
66。
软件开发的结构化分析方法,常用的描述软件功能需求的工具是(C)。
A).业务流程图、处理说明B).软件流程图、模块说明
C).数据流程图、数据字典D).系统流程图、程序编码
67、软件工程的结构化分析方法强调的是分析开发对象的(C)。
A).数据流B).控制流C).时间限制D).进程通信
68、在软件工程实施中,产生软件生命周期的概念是由(A)。
A).方法论所决定的B).开发技术划分C).软件开发规律D).软件工程管理
69、软件评审时保证软件质量的重要措施,它是对软件开发阶段成果的复审。
下列(A)是复审的必须内容。
Ⅰ需求复审Ⅱ总体设计复审Ⅲ详细设计复审Ⅳ程序复审
A).Ⅰ、Ⅱ、ⅢB).Ⅱ、Ⅲ、ⅣC).Ⅰ、Ⅲ、ⅣD)全部
70、提高软件的可维护性可采取很多措施,下列(A)不在措施之列。
A).提供没有错误的程序B).建立质量保证制度C).改进程序文档质量D).明确软件质量标准
71、概要设计的结果是提供一份(A)。
A).模块说明书B).框图C).程序D).数据流图
72、模块本身的内聚是模块独立性的重要性度量因素之一。
在7类内聚中,具有最强内聚的一类是(D)。
A).顺序性内聚B).过程性内聚C).逻辑性内聚D).功能性内聚
软件工程四个层次由下至上是( A ),它们的顺序不能互换。
A.质量层、过程层、方法层、工具层
B.过程层、方法层、质量层、工具层
C.方法层、过程层、质量层、工具层
D.方法层、质量层、过程层、工具层
根据软件工程的7条基本原理判断下面正确的选项是( C )。
A.软件错误发现的时机不重要,重要的是错误的严重程度
B.软件错误只能通过运行代码才能发现
C.软件错误发现的越早改正的成本越低
D.。
需求阶段一般不会引入错误
下列有关标准的符号,属于国内标准的是( B )
A.ZG B.GB C.GN D.CB
经济可行性研究的主要内容包括(D )。
A.开发过程 B.开发工具 C.风险分析 D.效益分析
( A )定义了用户使用该软件要完成的任务。
A.用户需求 B.业务需求 C.性能需求 D.功能需求
数据流程图上的数据流必须封闭在( D )之间。
A.外部过程 B.内部数据 C.内部过程 D.外部实体
按照模块独立性,耦合程度由强至弱正确的顺序是( A )。
A.外部耦合、控制耦合、数据耦合
B.控制耦合、数据耦合、外部耦合
C.外部耦合、数据耦合、控制耦合
D.数据耦合、外部耦合、控制耦合
PDL是描述处理过程(C )。
A.做什么B.为什么做C.怎么做D.对谁做
面向对象的这种(A )模式与人们对客观世界的认识规律相符,从而使得面向对象技术在软件工程领域中获得了广泛的应用。
A.主体/动作 B.主体/对象 C.主体/类 D.对象/属性
( D )是从用户的观点描述系统功能,它由一组用例、参与者以及它们之间关系所组成。
A.类图 B.对象图 C.顺序图 D.用例图
面向对象分析和设计涉及到三个方面的内容:
(A )、一系列有效的分析步骤和一个方便易用的建模工具。
A.一套完善的建模符号 B.有效的数据结构 C.灵活的体系结构 D.稳定的系统架构
确定角色是(B )的任务。
A.对象模型 B.用例模型 C.动态模型 D.交互模型
面向对象设计首先要进行高层设计:
确定系统的总体结构和风格,构造系统的(B ),将系统划分成不同的子系统。
A.逻辑模型 B.物理模型 C.数据模型 D.用例模型
每个子系统的接口上定义了若干( A ),其他子系统只能通过接口享受这个子系统提供的服务。
A.操作 B.数据 C.属性 D.命令
科学计算领域一般不选择( C )语言。
A.FORTRAN B.C/C++ C.汇编语言 D.PASCAL
对于嵌套的循环和分支程序,层次不要超过( D )层。
A.1 B.2 C.3 D.5
软件中遗留的错误数量与已经发现的错误数量成( B )。
A.反比 B.正比 C.相等 D.没关系
黑盒测试在设计测试用例时,主要研究( A )。
A.需求规格说明 B.详细设计说明 C.项目开发计划