单项选择题
1.瀑布模型的存在问题是(B)
A.⽤户容易参与开发B.缺乏灵活性
C.⽤户与开发者易沟通D.适⽤可变需求
2.开发软件所需⾼成本和产品的低质量之间有着尖锐的⽭盾,这种现象称做(C)
A.软件⼯程
B.软件周期
C.软件危机
D.软件产⽣
3.数据耦合、公共耦合、标记耦合、控制耦合的耦合性从低到⾼的顺序是(B)
A.数据、公共、标记、控制
B.数据、标记、控制、公共
C.控制、数据、标记、公共
D.控制、数据、公共、标记
4.在SD⽅法中全⾯指导模块划分的最重要的原则是(D)
A.程序模块化
B.模块⾼内聚
C.模块低耦合
D.模块独⽴性
5.软件测试的⽬的是(B)。
A.评价软件的质量B.发现软件的错误
C.找出软件的所有错误D.证明软件是正确的
6.在设计测试⽤例时,(A)是⽤得最多的⼀种⿊盒测试⽅法。
A.等价类划分B.边界值分析C.因果图D.判定表
7.需求分析最终结果是产⽣(B)。
A.项⽬开发计划
B.需求规格说明书
C.设计说明书
D.可⾏性分析报告
8.Jackson图中,模块框之间若有直线连接,表⽰它们之间存在(B)。
A.调⽤关系
B.组成关系
C.链接关系D.顺序执⾏关系
9.软件详细设计的主要任务是确定每个模块的(C)。
A.功能
B.外部接⼝
C.算法和使⽤的数据结构
D.编程
10.为了提⾼软件的可维护性,在编码阶段应注意(D)
A.保存测试⽤例和数据
B.提⾼模块的独⽴性
C.⽂档的副作⽤
D.养成好的程序设计风格
11.设年利率为i,现存⼊p元,若计复利,n年后可得钱数为(B)
A.p﹡(1+i﹡n) B.p﹡(i+1)n
C.p﹡(1+i)﹡n D.p﹡(i+n)
12.在考察系统的⼀些涉及时序和改变的状态时,要⽤动态模型来表⽰。动态模型着重于系统的控制逻辑,它包括两个图:⼀个是事件追踪图,另⼀个是(A)。
A.状态图B.数据流图C.系统结构图D.时序图
13.对象实现了数据和操作的结合,使数据和操作(C)于对象的统⼀体中。
A.结合
B.隐藏
C.封装
D.抽象
14.软件详细设计的主要任务是确定每个模块的(A)。
A.算法和使⽤的数据结构
B.外部接⼝
C.功能
D.编程
15.软件结构图中,模块框之间若有直线连接,表⽰它们之间存在(A)。
A.调⽤关系
B.组成关系
C.链接关系
D.顺序执⾏关系
16.需求分析最终结果是产⽣(B)。
A.项⽬开发计划
B.需求规格说明书
C.设计说明书D.可⾏性分析报告
17.在详细设计阶段,经常采⽤的⼯具有(A)。
A.PAD
B.SA
C.SC
D.DFD
18.因计算机硬件和软件环境的变化⽽作出的修改软件的过程称为(C)
A.教正性维护
B.适应性维护
C.完善性维护
D.预防性维护
20.为了提⾼软件的可维护性,在编码阶段应注意(D)
A.保存测试⽤例和数据
B.提⾼模块的独⽴性
C.⽂档的副作⽤
D.养成好的程序设计风格
1.⾯向对象开发⽅法包括OOA、OOD和OOP三部分。
2.效益分有形效益和⽆形效益两种。有形效益可⽤纯收⼊、货币时间的价值、投资回收期等指标进⾏度量;⽆形效益主要从性质上、⼼理上进⾏衡量,很难直接进⾏量的⽐较。
3.从应⽤特点的⾓度来看,我们可以把⾼级语⾔分为基础语⾔、结构语⾔和专⽤语⾔三类。
设计题
已知有如下的伪代码程序:
START
I:=1;
WHILEi:<=n-1DO
min:=A[i];
j:=i+1;
WHILEj<=nDO
IFmin>A[j]
THEN
BLOCK
temp:=min;
min:=A[j];
A[j]:=temp;
ENDBLOCK
ENDIF;j:=j+1;
ENDDO
i:=i+1;
ENDDO
STOP
软件⼯程期末试题(⼆)
⼀,判断题(正确的在括号内打上"√
Warnier⽅法也是⼀种⾯向数据结构的设计⽅法,其逻辑更严格.(×)
PAD图在设置了五种基本控制结构后,还允许递归调⽤.(×)你
为了加快软件维护作业的进度,应尽可能增加维护⼈员的数⽬.(×)
当验收测试通过,软件开发就完成了.(×)
完成测试作业后,为了缩短源程序的长度应删除程序中的注解.(×)
系统结构图是精确表达程序结构的图形表⽰法.因此,有时也可以将系统结构图当作系统流程图使⽤.(×)在程序调试时,找出错误的位置和性质⽐改正该错误更难.(√)
以对象,类,继承和通信为基础的⾯向对象设计⽅法(OOD)也是常见的软件概要设计⽅法之⼀.(√)
⼆,单项选择题(每⼩题2分,共10分)
试判断下列叙述中,哪个(些)是正确的(D)
a,软件系统中所有的信息流都可以认为是事务流
b,软件系统中所有的信息流都可以认为是变换流
c,事务分析和变换分析的设计步骤是基本相似的
A,aB,bC,cD,b和c
进⾏需求分析可使⽤多种⼯具,但(B)是不适⽤的.
A,数据流图B,PAD图C,判定表D,数据词典
在详细设计阶段,经常采⽤的⼯具有(A).
A,PADB,SAC,SCD,DFD
详细设计的结果基本决定了最终程序的(C)
A,代码的规模B,运⾏速度C,质量D,可维护性
使⽤⽩盒测试⽅法时,确定测试数据应根据(A)和指定的覆盖标准.
A,程序的内部逻辑B,程序的复杂程度
C,该软件的编辑⼈员D,程序的功能
三,多项选择题(每题2分,共10分.注:正确得2分,漏选得1分,多选,错选不得分.)
(ABCD)可以作为模块.
A,⼦程序B,函数C,过程D,编译⽂件
下⾯哪些测试属于⿊盒测试(BCD).A,路径测试B,等价类划分C,边界值分析D,错误推测E,循环测试
下列属于度量效益⽅法的是(ABCD).
A,货币的时间价值B,投资回收期C,收⼊D,投资回报率
软件维护的策略包括(BCD).
A,定期检测维护B,改正性维护C,适应性维护D,完善性维护
下列属于软件测试过程的是(ABE).
A,单元测试B,组装测试C,内核测试D,法律验证E,确认测试
四,简答题(每题6分,共24分)
1、耦合性和内聚性有⼏种类型其耦合度,内聚强度的顺序如何
答案:低:⾮直接耦合,数据耦合,标记耦合,控制耦合,外部耦合,公共耦合,内容耦合:⾼
强:功能内聚,信息内聚,通信内聚,过程内聚,时间内聚,逻辑内聚,偶然内聚:弱
2、请举例说明什么是多态,什么是重载
答案:多态性是指⼦类对象可以像⽗类对象那样使⽤,同样的消息既可以发送给⽗类对象也可以发送给⼦类对象.也就是说,在类等级的不同层次中可以共享(公⽤)⼀个⾏为(⽅法)的名字,然⽽不同层次中的每个类却各⾃按⾃⼰的需要来实现这个⾏为.当对象接收到发送给它的消息时,根据该对象所属于的类动态选⽤在该类中定义的实现算法.
3、重载是指⼀个类中有多个同名的⽅法,但在操作数个数或类型上有区别.
例:publicclassA{
intage;
Stringname;
publicvoidsetValue(inti){
age=i;}
publicvoidsetValue(Strings){
name=s;}
4、什么是数据字典简述数据字典与数据流图的关系.
答案:数据字典是关于数据的信息的集合,对数据流程图中的各个元素做完整的定义与说明,是数据流程图的补充⼯具.(2分)数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,然⽽没有数据流图数据字典也难于发挥作⽤.数据流图和对数据流图中每个元素的精确定义放在⼀起,才能共同构成系统的规格说明.(3分)
5、简述编码风格的重要性.
答案:阅读程序是软件开发和维护过程中的⼀个重要组成部分,程序实际上也是⼀种供⼈阅读的⽂章.应当在编写程序时讲求程序的风格,这将⼤量地减少⼈们读程序的时间.良好的编码风格有助于编写出可靠⽽⼜容易维护的程序,编码的风格在很⼤程度上决定着程序的质量.
⾯向对象的测试和传统开发⽅法的测试有什么不同
答案:(1)⼆者都可以分成四个阶段进⾏.但传统测试最⼩单元是模块,⽽在⾯向对象环境下,最⼩的可测试的单元是封装了的类或对象,⽽不是程序模块.(2)因为⾯向对象软件没有⼀个层次的控制结构,所以传统的⾃顶向下和⾃底向上的组装策略意义不⼤.每次将⼀个操作组装到类中(像传统的增殖式组装那样)常常⾏不通,因为在构成类的各个部件之间存在各种直接的和⾮直接的交互.对于⾯向对象系统的组装测试,存在两种不同的测试策略.
软件⼯程期末试卷(三)
2004年下半年期末考试
(开放教育本科)计算机科学与技术专业《软件⼯程》试题B
2005年1⽉
⼀、填空题(每空1分,共20分)
1.软件⽣存周期⼀般可分为__________、可⾏性研究、__________、设计编码、__________、运⾏与维护阶段。2.IPO图由__________、__________和__________三个框组成。
3.软件=__________+__________。
4.软件测试的⽅法有__________和__________(即⿊盒法)。
5.Jackson图除了可以表达程序结构外,还可以表达__________。
6.详细设计的⼯具有图形⼯具、__________和__________。
7.__________和__________共同构成系统的逻辑模型。
8.成本估计⽅法主要有__________、__________和算法模型估计三种类型。
9.在需求分析阶段常⽤的图形⼯具有__________、__________、__________三种。答案:填空题(每空1分,共20分)
1、问题定义需求分析测试
2、输⼊处理输出
3、程序⽂档
4、分析⽅法⾮分析⽅法
5、数据结构
6、表格⼯具语⾔⼯具
7、数据流图数据字典
8、⾃顶向下估计⾃底向上估计
9、层次⽅框图Warnier图IPO图
⼆、单项选择题(每⼩题2分,共10分)
1.系统流程图是描绘()的传统⼯具。
A、逻辑系统
B、数据结构
C、状态变迁
D、物理系统
2.下列模块独⽴性最强的是()
A、⾮直接耦合
B、数据耦合
C、公共耦合
D、内容耦合
3.下列哪个阶段不属于软件⽣存周期的三⼤阶段()。
A、计划阶段
4.常见的软件概要设计⽅法有3⼤类,其中以数据流图为基础构造模块结构的是()。
A、J ackson⽅法和LCP(Wanier)逻辑构造⽅法
B、结构化设计⽅法(SD)
C、⾯向对象设计⽅法(OOD)
D、快速原型法
5.使⽤⽩盒测试⽅法时,确定测试数据应根据()和指定的覆盖标准。
A、程序的内部逻辑
B、程序的复杂程度
C、该软件的编辑⼈员
D、程序的功能
答:1、D2、A3、C4、A5、A
三、多项选择题(每题2分,共10分)
1.()可以作为模块。
A、⼦程序
B、函数
C、过程
D、编译⽂件
2.关于内容耦合的描述正确的是()。
A、内容耦合是最⾼程度的耦合
B、⾼级语⾔⼀般设计成允许内容耦合的形成
C、应该尽量使⽤内容耦合
D、如果⼀个模块可以直接调⽤另⼀模块,则可以称为内容耦合
3.下列属于度量效益⽅法的是()。
A、货币的时间价值
B、投资回收期
B、收⼊D、投资回报率
4.软件维护的策略包括()。
A、定期检测维护
B、改正性维护
C、适应性维护
D、完善性维护
5.下列不属于软件测试过程的是()。
D、法律验证
答:1、ABCD2、AD3、ABC4、BCD5、CD
四、判断题(正确的在括号内打上“√”,错误的打上“×”。每题2分,共20分)
1.Warnier⽅法也是⼀种⾯向数据结构的设计⽅法,其逻辑更严格。()
2.PAD图在设置了五种基本控制结构后,还允许递归调⽤。()
3.为了加快软件维护作业的进度,应尽可能增加维护⼈员的数⽬。()
4.当验收测试通过,软件开发就完成了。()
5.完成测试作业后,为了缩短源程序的长度应删除程序中的注解。()
6.在进⾏总体设计时应加强模块间的联系。()
7.系统结构图是精确表达程序结构的图形表⽰法。因此,有时也可以将系统结构图当作系统流程
图使⽤。()
8.⽤⿊盒法测试时,测试⽤例是根据程序内部逻辑设计的。()
9.在程序调试时,找出错误的位置和性质⽐改正该错误更难。()
10.以对象、类、继承和通信为基础的⾯向对象设计⽅法(OOD)也是常见的软件概要设计⽅法之
⼀。()
答:1—5:√√×××6—10:×××√√
五、简答题(每题5分,共20分)
1.什么是软件危机?为什么会产⽣软件危机?
答:软件危机是指软件在开发和维护过程遇到的⼀系统严重问题,主要包含⼆⽅⾯的问题,⼀是如何开发利⽤软件,三是如何维护数量不断膨胀的已有软件.产⽣软件危机的原因,⼀⽅⾯与软件本⾝的特点有关,另⼀⽅⾯和软件开发与维护的⽅法不正确有关。
2.什么是软件的⽣存周期?包括哪⼏个部分?
答:个软件从定义到开发、使⽤和维护,直到最终被废弃,要经历⼀个漫长的时期,通常把软件经历的这个漫长的时期称为⽣存周期。软件⽣存周期就是从提出软件产品开始,直到该软件产品被淘汰的全过程。它包括制定计划、需求分析、软件设计、程序编写、软件测试、运⾏维护等。
3.什么是⿊盒测试法?
答:⿊盒测试法把程序看成⼀个⿊盒⼦,完全不考虑程序的内部结构和处理过程,它只检查程序功能是否能按照规格说明书的规定正常使⽤,程序是否能适当地接收输⼊数据,产⽣正确地输出信息。
4.耦合性和内聚性有⼏种类型?其耦合度、内聚强度的顺序如何?
答:低:⾮直接耦合?数据耦合?标记耦合?控制耦合?外部耦合?公共耦合?内容耦合:⾼
强:功能内聚?信息内聚?通信内聚?过程内聚?时间内聚?逻辑内聚?巧合内聚:弱
六、分析设计题(共20分)
1.(8分)假设开发某个计算机应⽤系统的投资额为3000元,该计算机应⽤系统投⼊使⽤后,
每年可以节约1000元,5年内可能节约5000元。3000元是现在投资的钱,5000元是5年内
节省的钱,假定年利率为12%,请计算该系统的纯收⼊,投资回收期,投资回收率。
答:
计算该系统的纯收:3612.27-3000=612.27
投资回收期:3+(3000-2407.15)/(3044.09-2407.15)=3.93
投资回收率为r
3000=1000/(1+r)+1000/(1+r)2+1000/(1+r)3+1000/(1+r)4+1000/(1+r)5
解得r=20%
2.求⼀组数组中的最⼤数,数组表⽰为A(n),n=1,2……n的⾃然数。(12分)
1)请画出程序流程图(4分)
2)请画出该算法的N-S图(4分)
3)请⽤PAD图来表⽰该算法(4分)
答:(1)
(2)
1.(4分)
(3
⼀、
1
功能需求定义了开发⼈员必须实现的软件功能,使得⽤户能完成他们的任务,从⽽满⾜了业务需求。
2.为什么要设计独⽴性强的模块以及如何判断模块的独⽴性?
第⼀3分,耦合1分,内聚1分
模块独⽴性强,则:(1)系统容易开发(2)系统可靠性⾼(3)系统容易维护
判断模块独⽴性的基本原则:“耦合⼩,内聚⼤”
3.若现有类已经进⾏了彻底的测试,为什么必须对从现有类中实例化的⼦类进⾏重新测试?
使⽤的场景:3分.2分
因为⽗类和⼦类的运⾏环境是不同的。
另外,如果是多重继承会显着地增加派⽣类的复杂程度,导致⼀些难以发现的隐含错误。 4.要开发质量“⾮常好”的软件,请从软件⼯程的⾓度分析其利与弊。利:3分;弊:2分
利:容易维护,⽤户⽐较满意弊:成本⾼,周期长
5、采⽤⾯向对象⽅法设计软件系统时,⼦系统的划分常采⽤⽔平划分或垂直划分的⽅式,请说明这两
种划分所得⼦系统的特点。 c/s:3分,p2p :2分
⽔平划分系统的p2p :每个字系统可以调⽤任意其他⼦系统,⽐c/s 复杂,可能死锁。
垂直划分c/s :客户端调⽤服务器端,服务器提供服务,并返回结果。客户端需要知道服务器的接⼝,⽽服务器不必知道客户端接⼝。⼆、
应⽤题(45%,1-3每⼩题10分,4⼩题15分)1.公司计划采⽤新技术开发⼀款新的⼿机软件产品,希望尽快占领市场,假设你是项⽬经理,你会选
择哪种软件过程模型?为什么?选模型:5分;原因:5分
选⽤模型:可采⽤增量模型/增量+原形/螺旋模型等等。但如果采⽤快速开发则不太适宜。
分析原因:技术相对⽐较新,⽽且需要快速占领市场,所以应短期内出现产品的原形或者是可⽤的⼦系
统。
2.请根据下⾯的任务安排表,画出任务⽹络图、⽢特图、标识关键路径和阶段⾥程碑位置。
任务⽹络图:活动
⽢特图
时间任务⽹络图3分
⽢特图3分
标识关键路径2分
阶段⾥程碑位置2分。
3.设有⼀个程序,读⼊三个整数,代表三⾓形的三条边。输出表明三⾓形是不规则的、等腰的或等边
的。请采⽤⿊盒的等价类划分⽅法,设计⼀组测试⽤例。
不规则:345
等腰:334
等边:333
其他:192
不规则的3分
等腰3分
等边3分
其他1分
4.设计⼀个简化的⽹上个⼈银⾏查询系统,⽤户可以通过Internet查询⾃⼰帐户的收⽀明细、余额和
修改密码。
(⼀)采⽤结构化⽅法:7分
1)请画出E-R图2分
DFD图的第0层和第1层。3分
2)编写两个关键词条的数据字典。2分
E-R图
名称:帐户密码别名:⽆
何处使⽤/如何使⽤:登陆帐户时输⼊;修改密码时输⼊,修改成功后保存到帐户数据库描述:密码=*6个字母*(⼆)采⽤⾯向对象⽅法:8分
1)请画出系统的⽤例图;2分 2)识别出系统的主要类2分 User 、Account 、DetailItem
主要要包括⽤户、帐户、收⽀明细等类。
并画其中的⼆个类图(包含主要属性和操作)。2分
3)画⼀个UML 时序图,描述⼀次通过⽹上银⾏查询余额的具体交互。2分
软件⼯程期末试卷(五)
⼀、填空题
1.软件开发模型有瀑布模型、螺旋模型、技术模型、原型模型、构件组装模型、混合模型。 2.可⾏性研究⼀般可以从经济可⾏性、技术可⾏性、运⾏可⾏性、法律可⾏性和开发可⾏性等⽅⾯来研究。
3.现在向银⾏存款,年利率为i ,若希望在n 年后从银⾏得到F 元,现在应该存⼊的钱数为F/(1+i)n 。 4.数据流图的基本符号包括数据输⼊的源点和数据输出的汇点加⼯数据流数据存储⽂件
5.Jackson 图除了可以表达程序结构外,还可以表达数据结构,它⾸先要分析数据结构,并⽤适当的⼯具来描述。
6.详细设计的⼯具有图形⼯具、表格⼯具和语⾔⼯具。
7.IPO 图由输⼊、处理和输出三个框组成。这个图的特点是能够直观的显⽰三者之间的关系。
8.⾯向对象技术是⼀整套关于如何看待软件系统和现实世界的关系,以什么观点来研究问题并进⾏分析求解,以及如何进⾏系统构造的软件⽅法学。⾯向对象⽅法是⼀种运⽤对象、类、继承、封装、聚集、消息传送、多态性等概念来构造系统的软件开发⽅法。⼆、单项选择题
1.下列(A )属于系统软件。
A. WINDOWS2000
B. Word
C. Flash
D. 3DMAX
2.下列哪个图是N -S 图的构件(C
A .B.
3
A.制定计划
B.实施⼯程
C.风险分析
D.程序编码
三、多项选择题
1.软件危机可以表现为(ABCD)。
A.产品不符合⽤户的需要B.软件产品的质量差
C.软件的可维护性差
D.软件的价格昂贵
2.Jackson图中⼀般可能包括(ABCD)。
A.表头
B.表体
C.表名
D.字段名
3.关于内容耦合的描述正确的是(AD)。
A、内容耦合是最⾼程度的耦合
B、应该尽量使⽤内容耦合
C、⾼级语⾔⼀般设计成允许内容耦合的形式
D、如果⼀个模块有多个⼊⼝,可能发⽣内容耦合
4.下列属于不标准的书写格式(BCD)。
A、书写时适当使⽤空格分隔
B、⼀⾏写⼊多条语句
C、嵌套结构不使⽤分层缩进的写法
D、程序中不加注释
四、判断题(正确的在括号内打上“√”,错误的打上“”)
1.软件⽣存周期是从软件开始开发到开发结束的整个时期。(×)
2.系统流程图是⼀个典型的描述逻辑系统的传统⼯具。(×)
3.数据流图和数据字典共同构成系统的逻辑模型。(√)
4.扇出是⼀个模块直接调⽤的模块数⽬,⼀般推荐的扇出为3或4。(√)
5.耦合⽤于衡量⼀个模块内部的各个元素彼此结合的紧密程度。(×)
6.程序运⾏过程中出现错误叫做容错。(×)
7.软件测试的⽬的是证明程序没有错误。(×)
8.⽩盒测试法是将程序看成⼀个透明的盒⼦,不需要了解程序的内部结构和处理过程。
(×)
五、问答题
1.什么是软件⽣存周期。
答:⼀个软件从定义到开发、使⽤和维护,直到最终被废弃,要经历⼀个漫长的时期,通常把软件经历的这个漫长的时期称为⽣存周期。软件⽣存周期就是从提出软件产品开始,直到该软件产品被淘汰的全过程。
2.在需求分析阶段,建⽴⽬标系统的逻辑模型的具体做法是什么。
答:系统流程图是描述物理系统的传统⼯具。它的基本思想是⽤图形符号以⿊盒⼦形式描绘系统⾥的每个部件(程序、⽂件、数据库、表格、⼈⼯过程等)。系统流程图表达的是部件的信息流程,⽽不表⽰对信息进⾏加⼯处理的控制过程。
3.为什么数据流图要分层?
答:这了表达数据处理过程的数据加⼯情况,⽤⼀个数据流图是不够的。为表达稍为复杂的实际问题,需要按照问题的层次结构进⾏逐步分解,并以分层的数据流图反映这种结构关系。
4.软件的质量反应为哪些⽅⾯的问题?
答:软件需求是度量软件质量的基础,不符合需求的软件就不具备质量。
在各种标准中定义了⼀些开发准则,⽤来指导软件⼈员⽤⼯程化的⽅法来开发软件。
如果不遵守这些开发准则,软件质量就得不到保证。
往往会有⼀些隐含的需求没有明确地提出来。如果软件只满⾜那些精确定义了的需求⽽没有满⾜这些隐含的需求,软件质量也不能保证。
软件质量是各种特性的复杂组合。它随着应⽤的不同⽽不同,随着⽤户提出的质量要求不同⽽不同。
软件⼯程期末试卷(六)
软件⼯程导论试题
⼀.选择
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、软件⼯程⽅法学的⽬的是:使软件⽣产规范化和⼯程化,⽽软件⼯程⽅法得以实施的主要保证是(C)
A、硬件环境
B、软件开发的环境
C、软件开发⼯具和软件开发的环境D、开发⼈员的素质
6、软件开发常使⽤的两种基本⽅法是结构化和原型化⽅法,在实际的应⽤中,它们之间的关系表现为
(B)
A、相互排斥
B、相互补充
C、独⽴使⽤
D、交替使⽤
7、UML是软件开发中的⼀个重要⼯具,它主要应⽤于哪种软件开发⽅法(C)
A、基于瀑布模型的结构化⽅法
B、基于需求动态定义的原型化⽅法
C、基于对象的⾯向对象的⽅法
D、基于数据的数据流开发⽅法
8、在下⾯的软件开发⽅法中,哪⼀个对软件设计和开发⼈员的开发要求最⾼(B)
A、结构化⽅法
B、原型化⽅法
C、⾯向对象的⽅法
D、控制流⽅法
9、结构化分析⽅法是⼀种预先严格定义需求的⽅法,它在实施时强调的是分析对象的(B)
A、控制流
B、数据流
C、程序流
D、指令流
10、软件开发的结构化⽣命周期⽅法将软件⽣命周期划分成(A)
A、计划阶段、开发阶段、运⾏阶段
B、计划阶段、编程阶段、测试阶段
C、总体设计、详细设计、编程调试
D、需求分析、功能定义、系统设计
11、软件开发中常采⽤的结构化⽣命周期⽅法,由于其特征⽽⼀般称其为(A)
A、瀑布模型
B、对象模型
C、螺旋模型
D、层次模型
12、软件开发的瀑布模型,⼀般都将开发过程划分为:分析、设计、编码和测试等阶段,⼀般认为可能占⽤⼈员最多的阶段是(C)
A、分析阶段
B、设计阶段C、编码阶段
D、测试阶段
⼆.填空
21.系统流程图是描述物理模型的传统⼯具,⽤图形符号表⽰系统中各个元素表达了系统中各种元素之间的(信息流动)情况。[解析]系统流程图是描述物理系统的传统⼯具,⽤图形符号表⽰系统中的各个元素,如⼈⼯处理、数据处理、数据库、⽂件、设备等,表达了元素之间的信息流动的情况。
22.成本效益分析的⽬的是从(经济)⾓度评价开发⼀个项⽬是否可⾏。
[解析]成本效益分析⾸先是估算将要开发的系统的开发成本,然后与可能取得的效益进⾏⽐较和权衡,其⽬的是从经济⾓度评价开发⼀个新的软件项⽬是否可⾏。
23.⾃顶向下结合的渐增式测试法,在组合模块时有两种组合策略:深度优先策略和(宽度优先策略)。
[解析]渐增式测试法有⾃顶向下结合和⾃底向上结合两种组装模块的⽅法,其中⾃顶向下集成是构造程序结构的⼀种增量式⽅式,不需要编写驱动模块,只需要编写桩模块。它从主控模块开始,按照软件的控制层次结构,以深度优先或宽度优先的策略,逐步把各个模块集成在⼀起。
24.独⽴路径是指包括⼀组以前没有处理的语句或条件的⼀条路径。从程序图来看,⼀条独⽴路径是⾄少包含有⼀条(在其他独⽴路径中未有过)的边的路径。
[解析]在基本路径测试中,以详细设计或源程序为基础,导出控制流程图的拓扑结构——程序图,在计算了程序图的环路复杂性之后,确定只包含独⽴路径的基本路径图,其中独⽴路径是包括⼀组以前没有处理的语句或条件的⼀条路径。从程序图来看,⼀条独⽴路径是⾄少包含有⼀条在其他独⽴路径中未有过的边的路径。
25.汇编语⾔是⾯向(机器)的,可以完成⾼级语⾔⽆法完成的特殊功能,如与外部设备之间的⼀些接⼝⼯作。
[解析]汇编语⾔属于低级语⾔,是⼀种⾯向机器的语⾔,它与⾼级语⾔相⽐有许多优越性:如操作灵活,可以直接作⽤到硬件的最下层,完成与外部设备的接⼝⼯作等,是能够利⽤计算机硬件特性直接控制硬件设备的唯⼀语⾔。
26.在JSP⽅法中解决结构冲突的具体办法是(中间数据结构或中间⽂件)。
[解析]JSP⽅法是⾯向数据结构的设计⽅法。它定义了⼀组以数据结构为指导的映射过程,根据输⼊、输出的数据结构,按⼀定的规则映射成软件的过程描述,在JSP⽅法中解决结构冲突的具体办法是引⼊中间数据结构或中间⽂件,将冲突部分分隔开来,建⽴多个程序结构,再利⽤中间⽂件把它们联系起来,构成⼀个系统的整体。
27.详细设计的任务是确定每个模块的内部特性,即模块的算法、(使⽤的数据)。
[解析]详细设计的基本任务是为每个模块进⾏详细的算法设计,为模块内的数据结构进⾏设计,确定每个模块的内部特性,包括模块的算法和使⽤的数据。对数据库进⾏物理设计等。
28.所有软件维护申请报告要按规定⽅式提出,该报告也称(软件问题)报告。
[解析]在软件维护的流程中,第⼀步就是制定维护申请报告,也称为软件问题报告,它是维护阶段的⼀种⽂档,由申请维护的⽤户填写。
29.有两类维护技术:在开发阶段使⽤来减少错误、提⾼软件可维护性的⾯向维护的技术;在维护阶段⽤来提⾼维护的效率和质量的(维护⽀援)技术。
[解析]⾯向维护的技术涉及软件开发的所有阶段,能够减少软件错误,提⾼软件的可维护性。⽽维护⽀援技术则包含信息收集,错误原因分析,维护⽅案评价等项,是在软件维护阶段⽤来提⾼维护效率和质量的技术。
30.科学⼯程计算需要⼤量的标准库函数,以便处理复杂的数值计算,可供选择的语⾔有:(FORTRAN语⾔)、PASCAL语⾔、C语⾔和PL/1语⾔。
[解析]计算机语⾔根据不同⾏业的需求,使⽤的侧重点也不尽相同,在办公管理⽅⾯,⼀些数据库语⾔如FOXPRO、ORICAL 有很多的应⽤,在⼯程⾏业,计算机语⾔的科学计算能⼒就显得格外重要,如MATLAB、PL/1、FORTRAN语⾔都是⼯程计算中常⽤的语⾔。
三.判断
1.软件的开发与运⾏经常受到硬件的和制约。(√)
2.模块内的⾼内聚往往意味着模块间的松耦合。(√)3.Jackson图只能表达程序结构,不能表达数据结构。(X)
上述数据流图表⽰数据A和B同时输⼊变换成C。(X)
5.软件的质量好坏主要由验收⼈员负责,其他开发⼈员不必关⼼。(X)
6.判定覆盖不⼀定包含条件覆盖,条件覆盖也不⼀定包含判定覆盖。(√)
7.应该尽量使⽤机器语⾔编写代码,提⾼程序运⾏效率,⽽减少⾼级语⾔的使⽤。(X)
8.UML只能应⽤于软件系统模型的建⽴。(X)
9.容错就是每个程序采⽤两种不同的算法编写。(X)
10.软件测试的⽬的是为了⽆⼀遗漏的找出所有的错误。(X)
四、名词解释题(本⼤题共5⼩题,每⼩题3分,共15分)
31.软件开发环境
32.错误推测法
33.⿊盒测试法
34.软件质量保证
35.瀑布模型
31.经济可⾏性
解:进⾏开发成本的估算以及了解取得效益的评估,确定要开发的项⽬是否值得投资开发。
[解析]对于⼀个系统所必须要衡量的是经济上是否合算,经济可⾏性的范围很⼴,包括效益分析、潜在市场前景等。
32.社会可⾏性
解:要开发的项⽬是否存在任何侵犯、妨碍等责任问题,要开发项⽬⽬的运⾏⽅式在⽤户组织内是否⾏得通,现有管理制度、⼈员素质、操作⽅式是否可⾏。
[解析]社会可⾏性包括合同、责任、侵权等技术⼈员不甚了解的诸多问题。
33.投资回收期
解:投资回收期就是使累计的经济效益等于最初的投资费⽤所需的时间。
[解析]通常我们⽤投资回收期来衡量⼀个开发项⽬的价值,投资回收期越短,就越快获得利润。
34.对应关系
解:即有直接因果关系在程序中可以同时处理。
[解析]对应关系是指数据单元在数据内容上、数量上和顺序上有直接的因果关系,对于重复的数据单元,重复的次序和次数都相同才有对应关系。
35.结构冲突
解:输⼊数据与输出数据结构找不到对应关系的情况,称为结构冲突。
[解析]使⽤JSP⽅法时会遇到此类结构冲突问题,对此,Jackson提出了引⼊中间数据结构或中间⽂件的办法,将冲突部分分隔开来,建⽴多个程序结构,再利⽤中间⽂件把它们联系起来,构成⼀个系统的整体。
五、图a中,模块G为判定,判断涉及到模块B、F、G,请指出设计中的错误,再根据
改进模块图的基本原则,画出1~2个改进⽅案(不改变模块G的判断关系),并说明是按照
哪条基本原则进⾏改进的。
解:图b为⼀个改进⽅案,将模块G的位置提⾼,使其作⽤范围为控制范围的⼦集,减
少模块之间的联系。
40.请使⽤PAD图和PDL语⾔描述在数组A(1)~A(10)中找最⼤数的算法。
解:PDL语⾔:
N=1
WHILEN<=10DO
IFA(N)<=A(N+1)MAX=A(N+1);
ELSEMAX=A(N)ENDIF;
N=N+1;
ENDWHILE;
PAD图:
[解析]⼈⼯查找时,是从第⼀个元素开始查找,⽤当前元素与下⼀个元素⽐较,将较⼤者作为当前元素⼜与下⼀元素⽐较,如此循环,直到数组末尾。
41.根据下列条件使⽤等价类划分法设计测试⽤例。
某⼀8位微机,其⼋进制常数定义为:以零开头的数是⼋进制整数,其值的范围是-177~177,如05,0127,-065
解:(1)划分等价类并编号,如下表⽰:(4分)
(2)为合理等价类设计测试⽤例,表中有两个合理等价类,设计两个例⼦(2分)
(3)为不合理等价类测试⽤例,⾄少设计⼀个测试⽤例(2分)
[解析]等价类划分属于⿊盒测试的⼀种,它将输⼊数据域按有效的或⽆效的划分成若⼲个等价类,测试每个等价类的代表值就等于对该类其他值的测试,这样⽤少量有代表性的例⼦代替⼤量测试⽬的相同的例⼦,可以有效提⾼测试效率。本题划分了3个合理等价类,9个不合理等价类进⾏测试,取到了预期的效果。
42.某电器集团公司下属的⼚包括技术科、⽣产科等基层单位。现在想建⽴⼀个计算机辅助企业管理系统,其中:
⽣产科的任务是:
(1)根据销售公司转来的内部合同(产品型号、规格、数量、交获⽇期)制定车间⽉⽣产计划。
(2)根据车间实际⽣产⽇报表、周报表调整⽉⽣产计划
(3)以⽉⽣产计划为以及,制定产品设计(结构、⼯艺)及产品组装⽉计划。
(4)将产品的组装计划传达到各科,将组装⽉计划分解为周计划,下达给车间
技术科的任务是:
(1)根据⽣产科转来的组装计划进⾏产品结构设计,产⽣产品装配图给⽣产科,产⽣外购需求计划给供应科,并产⽣产品⾃制物料清单。
(2)根据组装计划进⾏产品⼯艺设计,根据产品⾃制物料清单产⽣⼯艺流程图给零件⼚。试写出以上系统中⽣产科和技术科处理的软件结构图。
解:
画出⽣产科图的给6分,画出技术科的给4分。
[解析]软件结构图是软件系统的模块层次结构,反映了整个系统的功能实现,即将来程序的控制层次体系,软件结构往往⽤树状或⽹状结构的图形来表⽰,其主要内容有模块及模块的控制关系,根据题意,可绘制出⽣产科和技术科的软件结构图,其中⽣产科的结构图深度和宽度均为4,技术科的结构图的深度和宽度均为3。
软件⼯程期末试卷(七)
⼀、判断题(每题2分,共30分)
1.螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。(对)2.数据字典是对数据流图中的数据流,加⼯、数据存储、数据的源和终点进⾏详细定义。(错)
3.JAVA语⾔编译器是⼀个CASE⼯具。(对)。
4.软件是指⽤程序设计语⾔(如PASCAL,C,VISUALBASIC等)编写的程序,软件开发实际上就是编写程序代码。(错)
5.软件模块之间的耦合性越弱越发。(对)
6.数据库设计说明书是⼀个软件配置项(对)
7.在⾯向对象的软件开发⽅法中,每个类都存在其相应的对象,类是对象的实例,对象是⽣成类的模板。(错)
8.过程描述语⾔可以⽤于描述软件的系统结构。(错)
9.如果通过软件测试没有发现错误,则说明软件是正确的。(错)
10.快速原型模型可以有效地适应⽤户需求的动态变化。(对)
11.模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到⾼内聚,低耦合度的软件产品。(对)
12.集成测试主要由⽤户来完成。(错)
13.确认测试计划应该在可⾏性研究阶段制定(错)
14.⽩盒测试⽆需考虑模块内部的执⾏过程和程序结构,只要了解模块的功能即可。(错)
15.软件概要设计包括软件系统结构设计以及数据结构和数据库设计。(对)
⼆。单选题(每题2分,共20分)
1.瀑布模型的关键不⾜在于(2)
(1)过于简单(2)不能适应需求的动态变更(3)过于灵活(4)各个阶段需要进⾏评审
2.在⾯向对象软件开发⽅法中,类与类之间主要有以下结构关系(1)
(1)继承和聚集(2)继承和⼀般(3)聚集和消息传递(4)继承和⽅法调⽤
3.以下哪⼀项不是软件危机的表现形式(3)
(1)成本⾼(2)⽣产率低(3)技术发展快(4)质量得不到保证
4.以下哪⼀项不是⾯向对象的特征(4)
(1)多态性(2)继承性(3)封装性(4)过程调⽤
5.⾯向对象模型主要由以下哪些模型组成(1)
(1)对象模型、动态模型、功能模型(2)对象模型、数据模型、功能模型(3)数据模型、动态模型、功能模型(4)对象模型、动态模型、数据模型
6.软件可⾏性研究⼀般不考虑(4)
(1)是否有⾜够的⼈员和相关的技术来⽀持系统开发(2)是否有⾜够的⼯具和相关的技术来⽀持系统开发(3)待开发软件是否有市场、经济上是否合算(4)待开发的软件是否会有质量问题
7.软件维护的副作⽤主要有以下哪⼏种(3)
(1)编码副作⽤、数据副作⽤、测试副作⽤(2)编码副作⽤、数据副作⽤、调试副作⽤(3)编码副作⽤、数据副作⽤、⽂档副作⽤(4)编码副作⽤、⽂档副作⽤、测试副作⽤
8.软件项⽬计划⼀般不包括以下哪项内容(4)
(1)培训计划(2)⼈员安排(3)进度安排(4)软件开发标准的选择和制定
9.以下哪⼀项不属于⾯向对象的软件开发⽅法(3)
(1)coad⽅法(2)booch⽅法(3)jackson⽅法(4)omt⽅法
10.以下哪种测试⽅法不属于⽩盒测试技术(2)
(1)基本路径测试(2)边界值分析测试(3)循环覆盖测试(4)逻辑覆盖测试
三。简答题(每题5分,共25分)
1.分析软件危机产⽣的主要原因有哪些?
答:导致软件危机的主要原因有:
(1)软件⽇益复杂和庞⼤(2)软件开发管理困难和复杂(3)软件开发技术落后(4)⽣产⽅式落后(5)开发⼯具落后(6)软件开发费⽤不断增加
1个要点1分,只要答上5个要点得5分!
2.说明结构化程序设计的主要思想是什么?
答:(1)⾃顶向下、逐步求精的程序设计⽅法(2分)(2)使⽤3种基本控制结构、单⼊⼝、单出⼝来构造程序。(3分)
3.软件测试包括哪些步骤?说明这些步骤的测试对象是什么?
答:(1)单元测试,测试对象对单元模块(2分)(2)集成测试,测试对象为组装后的程序模块(2分)(3)确认测试,测试对象为可运⾏的⽬标软件系统(1分)
4.需求分析与软件设计⼆个阶段任务的主要区别是什么?
答:需求分析定义软件的⽤户需求,即定义待开发软件能做什么(2.5分)
软件设计定义软件的实现细节以满⾜⽤户需求,即研究如何实现软件。(2.5分)
5.说明软件测试和调试的⽬的有何区别?
答:测试的⽬的是判断和发现软件是否有错误(2。5分)调试的⽬的是定位软件错误并纠正错误。(2.5分)
软件⼯程期末试卷(⼋)
选择
1.开发软件所需⾼成本和产品的低质量之间有着尖锐的⽭盾,这种现象称做(C)
A.软件⼯程
B.软件周期
C.软件危机
D.软件产⽣
2.研究开发所需要的成本和资源是属于可⾏性研究中的(B)研究的⼀⽅⾯。
A.技术可⾏性
B.经济可⾏性
C.社会可⾏性
D.法律可⾏性
3.下列属于⽤⽩盒技术设计测试⽤例的是(B)
A.错误推测B.逻辑覆盖
C.等价类划分D.因果图
4.模块的内聚性最⾼的是(D)
A.逻辑内聚
B.时间内聚
C.偶然内聚D.功能内聚
5.在SD⽅法中全⾯指导模块划分的最重要的原则是(D)
A.程序模块化
B.模块⾼内聚
C.模块低耦合
D.模块独⽴性
6.软件详细设计主要采⽤的⽅法是(D)
A.模块设计
B.结构化设计