软件工程练习题

填空

1、快速原型模型的主要特点之一是(及早提供一个功能简单的原形系统)。

2、瀑布模型的关键不足在于(不能适应需求的动态变更)

3、在综合瀑布模型和快速原型模型优点的同时,螺旋模型还增加了新的阶段——(风险分析)。

4、瀑布模型把软件生存周期划分为软件计划、软件开发和(运行及维护)三个阶段,而每一阶段又可细分为若干个更小的阶段。

7、可行性研究的目的是决定(项目值得开发否)。

8、软件生命周期的最后的一个阶段是(软件维护)

9、软件工程的结构化生命周期方法是将软件开发的全过程划分为相互独立而又相互依存的阶段,软件的逻辑模型形成于(分析阶段)

10、在类图中,“#”表示的可见性是()。
第1空:Protected

11.在类图中,“+”表示的可见性是() 。

第1空: Public 或公有的

12、结构化的程序,逻辑结构分为顺序结构、()、和循环结构。
第1空:分支结构;选择结构

13、软件的定义是:软件=程序+数据+()
第1空:文档

14、在数据流图中,圆代表( )。
第1空:加工;处理

15、需求分析阶段产生的最重要的文档是()。
第1空:需求规格说明书

16、()的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。
第1空:可行性分析;可行性研究

17.一个模块的(扇出)太大一般是因为缺乏中间层次,应当适当增加中间层次的控制模块。

18.(封装)是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐蔽的,外界只能通过有限的接口与对象发生联系。

19.(多态)意味着一个操作在不同的类中可以有不同的实现方式。

20.可行性研究主要从以下几个方面进行研究:(技术可行性,经济可行性,操作可行性)

21.数据字典是用来定义(数据流图)中的各个成分的具体含义

22、开发软件所需高本钱和产品的低质量之间有着锋利的矛盾,这种现象称做(软件危机)

23、原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于(需求不确定的)系统。

24、(螺旋模型)引入了“风险驱动”的思想,适用于大规模的内部开发项目。

25、由变换型数据流图转换成模块结构图,其中包括变换模块,则(变换模块的功能是将逻辑输入变换为逻辑输出)

26、在一个课程注册系统中,定义了类CourseSchedule和类Course,并在类CourseSchedule中定义了方法add(c:Course)和方法remove(c:Course),则类CourseSchedule和类Course之间的关系是()。
第1空:依赖关系

27、软件开发模型是指软件开发的全部过程、活动和任务的结构框架。螺旋模型将瀑布模型和演化模型相结合,并增加了()。
第1空:风险分析

28、数据流图中的箭头表示()。
第1空:数据流

29、软件工程是从()和技术两个方面研究如何运用工程学的基本原理和方法来更好地开发和维护计算机软件的一门学科。

第1空:管理

30、UML全称是()。第1空:统一建模语言

31、顺序图由类角色,生命线,激活期和()组成.
第1空:消息

32、软件是一种〔逻辑〕产品。

33、瀑布模型的关键缺点在于〔不能适应需求的动态变更〕。

34、UML中关联的多重性是指(一个类的实类能够与另一个类的多个实类相关联)。

35、(泳道)技术是将一个活动图中的活动状态进行分组,每一组表示一个特定的类、人或部门,他们负责完成组内的活动。

36、通过(功能分解)可以完成数据流图的细化。

37、复杂的数据流图(既有变换型又有事务型)。

38、在E-R模型中,包含以下基本成分(实体、联系、属性)。

39、数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是(数据定义)。

40、在面向对象软件开发方法中,类与类之间主要有以下结构关系(继承和聚集)

41.当一个模块直接使用另一个模块的内部数据,这种模块之间的耦合为(内容耦合)。

42.划分模块时尽量做到(),保持模块的独立性,尽量使用公共模块。

答案:(1)高内聚、低耦合

43.一个进行学生成绩统计的模块其功能是先对学生的成绩进行累加,然后求平均值,则该模块的内聚性是()。

答案:(1)顺序内聚

44.如果两模块间的通信信息是若干个参数,而每个参数是单一的数据项,则称这种耦合性为()耦合。

答案:(1)数据

45.(继承)表示了类之间的“一般__特殊”关系。

46.对象的内部实现与外部可访问性的分离体现了对象的(封装性)

47.UML是(一种可视化的建模语言)。

48.在面向对象软件方法中,“类”是(具有同类数据和相同操作的对象的定义)

49.软件部件的内部实现与外部可访问性的分离,是指软件的(封装性)。

50.模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准是模块的(内聚性和耦合性 )。

51.用例建模促进并鼓励(用户)参与,这是确保项目成功的关键因素之一。

52..顺序图由类角色,生命线,激活期和()组成.

答案:(1)消息

53..用例图中,如果在完成某个功能时,偶而会执行另一个功能,则用(     )关系来表示。

答案:(1)扩展

54.在UML的图形符号中,虚线箭头表示的是两个元素之间的()关系。

答案:(1)依赖

55.继承的类我们称之为(),在基类的基础上新建立的类我们称之为派生类(子类)。

答案:(1)基类(父类)

56.UML中用一端为空心三角形的连接表示()关系

答案:泛化

57.需求分析阶段的研究对象是(用户要求)。

58.软件质量(可维护性、可理解性、可靠性)很大程度取决于(模块分解的合理)

59.OOA中应首先识别(对象)

60.每个用例至少应该有一个(控制类),它通常没有属性而只有方法,只是起协调和控制作用。

61.类有三种类型即(边界类、实体类、控制类)。

62.每个对象可用它自己的一组属性和它可以执行的一组(操作)来表征。

63.需求分析阶段,分析人员要确定对问题的综合需求,其中最主要的是()。

答案:(1)功能需求

63.类图描述系统的()结构,类图的结点表示系统中的类及其属性和操作,类图的边表示类之间的联系,包括()、关联、依赖、聚合等。

答案:(1)静态(2)继承

64.UML中用一端为空心三角形的连接表示()关系

答案:(1)泛化

65.在UML的图形符号中,带空心三角形箭头的虚线表示的是两个元素之间的( )关系。

答案:(1) 实现

66.写出下列各对事物之间的关系(继承、聚集、一般关联):交通工具——汽车的关系是:继承;书——读者的关系是:();班级——学生的关系是:聚集;多边型——线段的关系是:()。

答案:(1)一般关联

(2)聚集

67、成功的测试是指(发现程序的错误)。

68.( 顺序图)描述了一组交互对象间的动态协作关系,它表示完成某项行为的 对象和这些对象之间传递消息的时间顺序。

69、软件测试中设计测试实例(testcase)主要由输入数据和(预期输出结果)两部分组成。

70、若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是(边界值分析法)。

71、将软件组装成系统的一种测试技术叫(集成测试)。

72、某个应用软件原来是在DOS环境下运行的,现在要把它移植到Windows环境下来运行,这种修改软件的过程称为(适应性维护)

73、版本管理是对系统不同版本进行的(标识与跟踪)过程。

74.使用白盒测试方法时,确定测试数据应根据( 程序的内部逻辑)和指定的覆盖标准。

75.黑盒法是根据程序的(功能 )来设计测试用例的。

76.软件的可维护性主要取决于可理解性、(可修改性)和可测试性三种属性。

二、简答题(共5题,50分)

1、有人才管理系统,具有如下功能:

1.个人用户可以注册;

2.个人注册后可以发布自己的简历;

3.企业用户可以注册;

4.管理员对所有企业信息进行审核,审核通过后该企业成为正式会员;

5.成为正式会员的企业可以发布若干个岗位的招聘信息;

6.任何人都可以在本网上搜索人才信息;

7.任何人都可以在本网上搜索企业招聘信息;

8.每个月1号自动备份数据。

根据描述画出用例图。

(10.0)

正确答案:

 

2绘制图书管理系统中图书的状态图。

图书管理系统中的图书主要有四种状态:新书进入流通状态、待借出状态、已借出状态、退出流通状态。对于购买的图书,图书管理员编制条码,完成入库操作后,图书进入流通状态。图书管理员将已编制条码的图书存放到规定的藏书地点,即图书上架,此时图书进入待借出状态。当读者将图书借出后,图书便进入已借出状态。当读者归还所借图书后,图书又返回待借出状态。如果图书丢失或损坏不能继续借阅,则退出流通,有些图书可能因为特殊原因也会退出流通,此时图书进入退出流通状态。

(10.0)

正确答案:

 

2.在火车票网上订票系统中,可以对订单状态的转移做出如下描述:顾客提交订单后,订单进入“待支付”状态,如果45分钟内支付成功,则转入“已支付”状态;否则订单转入“未支付失效”状态。对于“已支付”的订单,未打印纸质车票前,顾客可于开车前两小时在系统中进行改签和退票(订单分别进入“已改签”和“已退票”状态)。顾客打印纸质车票后,进入“已出票”状态。对于“已出票”的订单,只能在车站的售票窗口进行改签和退票(注:车票只能改签一次)。画出订单的状态图。

3有以下类:动物,空气,鸟类,鱼类,鸭,大雁,翅膀,雁群,金枪鱼,请画出类图表示类和关系。类的属性和方法自己考虑。

(10.0)

正确答案:

 

4分析下面的盒图,画出相对应的程序流程图。

 

答案:

 

5.请用N-S图设计一个计算并输出n的阶乘的程序。

 

6、欲开发一个银行的活期存取款业务的处理系统:储户将填好的存/取款单和存折交给银行工作人员,然后由系统作以下处理;

(1)业务分类处理:系统首先根据储户所填的存/取款单,确定本次业务的性质,并将存/取款单和存折交下一步处理;

(2)存款处理:系统将存款单上的存款金额分别记录在存折和帐目文件中,并将现金存入现金库;最后将存折还给储户;

(3)取款处理:系统将取款单上的取款金额分别记录在存折和帐目文件中,并从现金库提取现金;最后将现金和存折还给储户。

请画出该系统的顶层数据流图和第二层数据流图。

(10.0)

正确答案:

顶层数据流图

 

第二层数据流图

 

三、简答题(共5题,50分)

3根据下面的描述,绘制一幅状态图:

电话初始时处于“空闲”状态,当听筒被拿起后处于“激活”状态。听筒被拿起后,电话等待拨号,若在30秒之内拨号电话将进入“拨号”状态,如果拨号正确的则电话进入“正在接通中”状态,如过拨号不正确则会一直听到提示拨号错误。若拿起听筒30秒之内不拨号,则电话处于“超时”状态。在“正在接通中”状态下,若对方占线则电话进入“忙”状态,若对方不占线则进入“接通”状态,对方拿起听筒后,电话处于“通话”状态,若在通话中对方挂断则进入“挂起”状态。

(10.0)

正确答案:

 

某培训中心要研制一个计算机管理系统。它的业务是:将学员发来的信件收集分类后,按几种不同的情况处理。

1)如果是报名的,则将报名数据送给负责报名事务的职员,他们将查阅课程文件,检查该课程是否额满,然后在学生文件、课程文件上登记,并开出报告单交财务部门,财务人员开出发票给学生。

2)如果是想注销原来已选修的课程,则由注销人员在课程文件、学生文件和帐目文件上做相应的修改,并给学生注销单。

3)如果是付款的,则由财务人员在帐目文件上登记,也给学生一张收费收据。

要求:

对以上问题画出数据流程图。

(10.0)

正确答案:

 

5、本校自今年起启用网上订购教材流程,简述如下()教务处发布《编制教材选用计划》的通知

()任课教师经课程组教师集体研究讨论后,根据教学计划、课程教学大纲要求和有关

教材信息,任课教师在教务系统里填写《教材使用计划审批表》(3)教务处整理教材使用计划

(4)学院组织院级教学工作委员会审议本学院的教材使用计划,若有不当,则由任课教师重新提交教材使用计划;若无问题,则报送教务处备案

5)教务处制定《学生教材订购发行单》电子版将在教务管理系统公布

()根据教务处发布的《学生教材订购发行单》教材供应商提前备书供货

7)教师领取教师用书,同时学生在自愿订购的基础自行向供应商订购图书

请按照UML活动图的规范画出该流程的活动图

3.仔细分析下面对某公司“会见顾客”业务流程的描述,画出带泳道的活动图。

 

(1)公司业务员打电话给客户,确定一个会面。

(2)如果会面地点在公司内,公司技术人员需要为会面准备一间会议室,同时,咨询顾问需要为准备一份陈述报告。

(3)如果会面地点在公司外,则只需咨询顾问需要为准备一份陈述报告。

(4)咨询顾问与顾客在约定的时间和地点见面。

(5)业务员随后为他们准备好会议用纸。

(6)如果会面得到了一个解决方案,则咨询顾问根据解决方案编写一个报告,并将报告发给顾客。

部分随堂练习

1.根据以下Java代码画出类图。

 

答案:

 

2.分析下面的代码,回答问题。

#include<stdio.h>

voidmain()

{

inta,b;

printf("printanintegernumber:");

scanf("%d",&a);

if(a<0)

printf("dataerror!");

else

{

b=fac(a);

prt(b);

}

}

intfac(intn)

{

intf;

if(n==0)

f=1;

else

f=fac(n-1)*n;

return(f);

}

void prt(intx)

{

printf("%d\n",x);

}

问题1:函数fac和prt之间属于哪种耦合关系?

问题2:主函数main和子函数fac之间为哪种耦合关系?

答案:1.非直接耦合2.数据耦合

3.分析下面的代码,回答问题。

#include<stdio.h>

inta,b;

voidmain()

{

ints,j,k[10];

pin();

b=a+1;

for(j=0;j<10;j++)k[j]=j;

       s=sum(k[10]);

}

voidpin()

{

printf("printanintegernumber:");

scanf("%d",&a);

}

int sum(int a[10])

{

intss=0,i;
for(i=0;i<10;i++)ss=ss+a[i];
return(ss)

}

问题1:主函数和pin函数存在哪种耦合关系?

问题2:主函数和sum函数存在哪种耦合关系?

答案:

问题1.外部耦合 问题2.特征耦合

4.假设汽车的车牌号可由车主人在规定范围内自选,若规定为:

车牌上应有7个字符;

(2)为首的字符限定为汉字“京”;

(3)第2字符可任选一字母(A~Z);

(4)第3~7字符可选任意数字。

请为相关的处理程序所采用的等价类划分方法设计等价类表及相应的测试用例。

答案:

等价类表

输入数据有效等价类无效等价类

字符个数7个(1)6个(2),8个(3)

首字符“京”(4)    非“京”(5)

第2个字符    字母(6)     非字母(7)

第3~7个字符数字(8)   非数字(9)

测试用例如下:(数据不须完全相同,满足等价类要求即可)

1)京H87774}(1),(4),(6),(8)

2)京H8777}(2)

3)京H877745}(3)

4)冀H87774}(5)

5)京987774}(7)

6)京BA7774}(9)

5.某商场在“五一”期间,顾客购物时收费有4种情况:普通顾客一次购物累计少于100元,按A类标准收费(不打折),一次购物累计多于或等于100元,按B类标准收费(打9折);会员顾客一次购物累计少于1000元,按C类标准收费(打8折),一次购物累计等于或多于1000元,按D类标准收费(打7折)。测试对象是按以上要求计算顾客收费模块。

(1)画出程序流程图。

 

(2)按照路径覆盖法设计测试用例。

解:(1)被测模块的程序流程图如下图所示。

(2)按照路径覆盖法设计测试用例如下:

是会员,累计消费900元,覆盖路径127,按C类标准收费

是会员,累计消费2000元,覆盖路径128,D类标准收费

不是会员,累计消费80元,覆盖路径134,按A类标准收费

不是会员,累计消费300元,覆盖路径135,按B类标准收费

1.

自学考试报名过程中有个“记录报名单”的加工。该加工主要是根据报名表(姓名、性别、身份证号、课程名)和开考课程(课程名、开考时间)、经校核,编号、填写、输出准考证给报名者,同时记录到考生名册中(准考证号、姓名、课程)

请绘制该加工的DFD图,并写出数据词典中的数据流条目。

答案:

(1)DFD

 

(2)数据流词典

报名单=姓名+性别+身份证号+课程名

开考课程=课程名+开考时间

考生名册=准考证号+姓名+课程

2.

某保险公司对投保人的汽车保费计算方法如下:单身男,年龄30岁以下(含30岁),计保费标准A,30岁以上计保费标准B;已婚男30岁以下(含30岁),计保费标准C,30岁以上计保费标准D,单身女,年龄25岁以下(含25岁),计保费标准E,25岁以上计保费标准F;已婚女25岁以下(含25岁),计保费标准G,25岁以上计保费标准H,请画出对应的判定树

答案:

 

.简答题(共2,16.4分)

2.

所谓基金定投指的是投资者在每个月固定的时间(如每月10日)以固定的金额(如1000元)投资到指定的开放式基金中,类似于银行的零存整取方式。具体实现过程如下:定投约定的日期一到,系统首先检查客户设定的扣款账户余额,确认余额是否足够支付交易款项,如果足够,则扣交易款项,更新客户基金账户中基金的份额,交易成功,并且把交易扣款失败次数归零。否则检查累计失败次数,如果累计失败次数超过三次,则停止扣款,并且更改交易情况为“停止扣款”。

请采用活动图模型对这个业务进行建模。

答案:

.简答题(共1,8.8分)

1.什么是实体类、边界类和控制类?为什么将分析类划分成这三种类型?

答案:

实体类保存要存入永久存储体的信息。实体类通常在事件流或交互图中,是对用户最有意义的类。边界类位于系统与外界的交界处,包括所有的窗体、报表、系统硬件接口、与其他系统的接口。控制类负责协调其他类的工作。每个用例中至少应该有一个控制类,它控制用况中的事件顺序。(2)分为三种类型是因为它们各自的功能不同。界面类——描述系统与角色之间的接口。控制类——在分析模型内表示协调、顺序、事务处理以及控制其他对象的类。实体类——为需要长久保存的信息进行建模的类。

2.UML关系包括关联、聚集、泛化、实现、依赖等5种类型,请将合适的关系填写在下列描述的( )中,标注序号。

 1)在学校中,一个导师可以指导多个研究生,一个研究生可以由多个导师指导,那么导师和研究生之间是( 关联)关系。

2)交通工具与卡车之间是(泛化)关系。

 3)公司与部门之间是(聚集)关系。

 4)A类是B类方法中的一个参数,A类与B类之间是(依赖)关系。

5)接口及其实现类之间是(实现)关系。

3.为什么说面向对象方法学比传统方法学在可重用性方面要好?

答案:

答:传统的软件重用技术是利用标准函数库来构造新的软件系统,但是标准函数少必要的“柔性”,不能适应不同应用场合的不同需求,并不是理想的可重用的软件成分。在面向对象方法所使用的对象中,数据和操作正是作为平等伙伴出现的,因此,对象具有很强的自洽性。此外,对象所固有的封装性和信息,隐藏机理,使得对象内部实现与外界隔离,具有较强的独立性。由此可见,对象是比较理想的模块和可重用的软件成分。

4.软件测试包括哪些步骤?说明这些步骤的测试对象是什么?

答:(1)单元测试,测试对象为单元模块 (2)集成测试,测试对象为组装后的程序模块 (3)确认测试,测试对象为可运行的目标软件系统 (4)最后一步是系统测试,检查软件与系统中其他元素是否协调。

如有问题,联系1837862986@qq.com

  • 10
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值