厦门理工软件工程个人复习汇总.docx

上传人:b****8 文档编号:9208567 上传时间:2023-02-03 格式:DOCX 页数:24 大小:184.47KB
下载 相关 举报
厦门理工软件工程个人复习汇总.docx_第1页
第1页 / 共24页
厦门理工软件工程个人复习汇总.docx_第2页
第2页 / 共24页
厦门理工软件工程个人复习汇总.docx_第3页
第3页 / 共24页
厦门理工软件工程个人复习汇总.docx_第4页
第4页 / 共24页
厦门理工软件工程个人复习汇总.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

厦门理工软件工程个人复习汇总.docx

《厦门理工软件工程个人复习汇总.docx》由会员分享,可在线阅读,更多相关《厦门理工软件工程个人复习汇总.docx(24页珍藏版)》请在冰豆网上搜索。

厦门理工软件工程个人复习汇总.docx

厦门理工软件工程个人复习汇总

一、选择题(每小题2分,共40分)

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.在UML中,描述系统与外部系统及用户之间交互的图是(  )。

A.类图         B.用例图       C.对象图       D.协作图

8.软件测试的目的是(     )。

A.评价软件的质量                B.发现软件的错误

C.找出软件中的所有错误           D.证明软件是正确的

9.UML中,包图是一种(     )。

A.集合                           B.数据结构

C.分组机制                       D.对系统的动态描述

10.下列()属于判定覆盖。

A.每个语句都被执行

B.选择的测试数据必须足够多

C.每个判定的每种可能的结果都被执行

D.判定表达式中的每个条件都取到可能的值

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

A.问题分析          B.信息域分析C.结构化设计            D.确定逻辑结构

12.软件开发的结构化分析(SA)方法,常用的描述软件功能需求的工具是(     )

A.业务流程图、处理说明B.软件流程图、模块说明

C.数据流程图、数据字典D.系统流程图、程序编码

13.软件需求阶段要解决的问题是(     )。

A.软件做什么                 B.软件提供哪些信息

C.软件采用什么结构           D.软件怎样做

14.软件工程的目的是(     )。

A.建造大型的软件系统                B.软件开发的理论研究

C.软件质量的保证           D.研究软件开发的原理

15.面向对象的开发方法的典型软件生命周期模型是(     )。

A.瀑布模型                       B.喷泉模型

C.智能模型                       D.螺旋模型

16.白盒法又称为逻辑覆盖法,主要用于(     )。

A.功能测试                       B.系统测试

C.α测试                         D.单元测试

17.结构化分析方法(SA法)使用的主要描述工具有(     )。

A.数据库                         B.模块结构图

C.PAD图                        D.分层的DFD图

18.UML中,包图是一种(     )。

A.集合                           B.数据结构

C.分组机制                       D.对系统的动态描述

19.总体设计的目的是确定整个系统的()

A.规模B.功能及模块结构C.费用D.测试方案

20.在SD方法中全面指导模块划分的最重要的原则是()

A.程序模块化B.模块高内聚C.模块低耦合D.模块独立性

(C)1.    软件是()。

A.处理对象和处理规则的描述B.程序

C.程序及其文档D.计算机系统

(B)2.软件需求规格说明的内容不应包括()。

A.主要功能B.算法的详细描述

C.用户界面及运行环境D.软件的性能

(B)3.程序的三种基本控制结构是()。

A.过程、子程序和分程序B.顺序、选择和重复

C.递归、迭代和回溯D.调用、返回和转移

(D)4.面向对象的分析方法主要是建立三类模型,即()。

    A)系统模型、ER模型、应用模型

    B)对象模型、动态模型、应用模型

    C)E-R模型、对象模型、功能模型

    D)对象模型、动态模型、功能模型

 (C) 5.在E-R模型中,包含以下基本成分()。

    A)数据、对象、实体

    B)控制、联系、对象

    C)实体、联系、属性

    D)实体、属性、操作

 (A) 6.各种软件维护的类型中最重要的是()。

    A)完善性维护B)纠错性维护C)适应性维护D)预防性维护

(B)7.软件测试的目标是()。

A.证明软件是正确的B.发现错误、降低错误带来的风险

C.排除软件中所有的错误D.与软件调试相同

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

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

(C)9.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:

-1.001,-1.0,1.0,1.001.设计这组测试用例的方法是()

A.条件覆盖法B.等价分类法C.边界值分析法D.错误推测法

(D)10、详细设计的基本任务是确定每个模块的()设计

A.功能B.调用关系C.输入输出数据D.算法

(A)11.设函数C(X)定义问题X的复杂程序,函数E(X)确定解决问题X需要的工作量(时间)。

对于两个问题P1和P2,如果C(P1)>C(P2)显然E(P1)>E(P2),则得出结论E(P1+P2)>E(P1)+E(P2)就是:

()

A.模块化的根据B.逐步求精的根据C.抽象的根据D.信息隐藏和局部化的根据

(D)12.下面几种白箱测试技术,哪种是最强的覆盖准则()

A.语句覆盖B.条件覆盖C.判定覆盖D.条件组合覆盖

(A)13.面向数据流的设计方法把()映射成软件结构。

A.数据流B.系统结构C.控制结构D.信息流

(A)14.内聚程度最低的是()内聚

A.偶然B.过程C.顺序D.时间

(A)15.确定测试计划是在()阶段制定的.

A.总体设计B.详细设计C.编码D.测试

(D)16.需求分析的产品是()

A.数据流程图案B.数据字典C.判定表D.需求规格说明书

(C)17.数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是()

A.数据库设计B.数据通信C.数据定义D.数据维护

(D)18.()引入了“风险驱动”的思想,适用于大规模的内部开发项目。

A.增量模型B.喷泉模型C.原型模型D.螺旋模型

(D)19.模块的内聚性最高的是()

A.逻辑内聚B.时间内聚C.偶然内聚D.功能内聚

(D)20.提高测试的有效性非常重要,成功的测试是指()

A.证明了被测试程序正确无误B.说明了被测试程序符合相应的要求

C.未发现被测程序的错误D.发现了至今为止尚未发现的错误

二.判断题(每题1分,共10分)将答案写在题号前的()中,正确用√,错误用χ。

(×)1、开发软件就是编写程序。

(× )2、系统测试的主要方法是白盒法,主要进行功能测试、性能测试、安全性测试及可靠性等测试。

(×)3、编程序时应尽可能利用硬件特点以提高程序效率.

(×)4、软件需求分析的任务是建立软件模块结构图。

(√)5、尽可能使用高级语言编写程序

(×)6、以结构化分析方法建立的系统模型就是数据流图。

(×)7、进行总体设计时加强模块间的联系。

(×)8、编码时尽量多用全局变量.

(√)9、用CASE环境或程序自动生成工具来自动生成一部分程序.

(×)10、软件测试是要发现软件中的所有错误。

二、填空题(每题2分,共10分)

1.分析模型在系统级描述和____软件设计___间建立了桥梁。

2.UML中的状态机图中的状态有____初始状态____、__终态__和中间状态三种类型。

3.在UML中可以使用____状态图,活动图,顺序图,协作图,通信图对系统进行行为建模。

4.______可行性研究_______的目的是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得开发。

5.构件(模块)设计的最终目的是将数据模型,体系结构模型,接口模型变为___可操作的软件_______

1、将下面的关系按继承关系、聚集关系或普通关联进行分类。

小汽车---------红旗轿车(继承)

小汽车---------驾驶员(普通关联)

班级------------学生(聚集)

2、将下列各项分为类或类的实例

我的汽车(实例)

交通工具(类)

三、简答题(每小题4分,共20分)

1.类图中的整体部分关系有哪两种类型?

他们之间有什么区别?

聚集(aggregation)是表示整体一部分关系的一种关联,它的“部分”对象可以是任意“整体”对象的一部分

组合(composition):

组合是一种更强形式的关联,代表整体的组合对象有管理它的部分对象的特有责任,如部分对象的分配和解除分配。

组合关联具有强的物主身份,即“整体”对象拥有“部分”对象,“部分”对象生存在“整体”对象中。

2.什么是软件构件?

常用的构件标准有哪些?

构件库管理系统的两个关键技术是什么?

软件构件是软件系统中具有相对独立功能,可以明确标识,接口由规约指定,与语境有明显依赖关系,可独立部署,且多由第三方提供的可组装软件实体;

软件构件须承载有用的功能,并遵循某种构件模型;

可复用构件是指具有可复用价值的构件常用的构件标准有CORBA(公共对象请求代理体系结构),COM,EJB

构件库管理系统的两个关键技术是构件的描述与检索

3.简述软件测试要经过哪几个主要阶段,每个阶段与软件生命周期中哪个阶段的什么文档有关?

答:

单元测试、集成测试、确认测试和系统测试,

单元测试——程序源代码文档及详细设计文档,

集成测试——软件总体设计及详细设计规格说明书

确认测试——软件需求规格说明书

系统测试——系统需求规格说明书

4.

(1)某航空公司行李托运费的算法如下:

按规定:

重量不超过30公斤的行李可免费托运。

重量超过30公斤时,对超运部分,头等舱国内乘客收4元/公斤;其它舱位国内乘客收6元/公斤;外国乘客收费为国内乘客的2倍;残疾乘客的收费为正常乘客的1/2。

请用判定表或判定树描述上述问题的处理逻辑。

(2)某厂对部分职工重新分配工作的政策是:

年龄在20岁以下者,初中文化程度脱产学习,高中文化程度当电工。

20岁至40岁之间,中学文化程度,男性当钳工,女性当车工,大学文化程度都当技术员。

年龄在40岁以上者,中学文化程度当材料员,大学文化程度当技术员。

请用判定树描述上述问题的处理逻辑。

年龄

条件

<20

20-40

>40

初中

高中

中学

大学

中学

大学

 

操作

脱产学习

电工

钳工

车工

技术员

材料员

5.什么是软件维护?

软件维护分为哪几种类型?

软件维护是指软件系统交付使用以后,为了改正错误或满足新的需要而修改软件的过程,包括改正性维护、适应性维护、扩充与完善性维护、预防性维护4种类型

1.软件生命期各阶段的任务是什么?

    答:

软件生命期分为7个阶段:

    1、问题定义:

要解决的问题是什么

2、可行性研究:

确定问题是否值得解,技术可行性、经济可行性、操作可行性

3、需求分析:

系统必须做什么

4、总体设计:

系统如何实现,包括系统设计和结构设计

5、详细设计:

具体实现设计的系统

6、实现:

编码和测试

7、运行维护:

保证软件正常运行。

    2、软件重用的效益是什么?

    答:

1、软件重用可以显著地改善软件的质量和可靠性。

2、软件重用可以极大地提高软件开发的效率。

3、节省软件开发的成本,避免不必要的重复劳动和人力、财力的浪费。

    3、自顶而下渐增测试与自底而上渐增测试各有何优、缺点?

    答:

    ① 自顶而下渐增测试

    优点:

不需要测试驱动程序,能够在测试阶段的早期实现并验证系统的主要功能,而且能够尽早发现上层模块的接口错误。

    缺点:

需要存根程序,底层错误发现较晚。

    ② 自底而上渐增测试

    优点与缺点和自顶而下渐增测试相反。

    4、提高可维护性的方法有哪些?

    答:

在软件工程的每一阶段都应该努力提高系统的可维护性,在每个阶段结束前的审查和复审中,应着重对可维护性进行复审。

    在需求分析阶段的复审中,应对将来要扩充和修改的部分加以注明。

在讨论软件可移植性问题时,要考虑可能要影响软件维护的系统界面。

    在软件设计的复审中,因从便于修改、模块化和功能独立的目标出发,评价软件的结构和过程,还应对将来可能修改的部分预先做准备。

    在软件代码复审中,应强调编码风格和内部说明这两个影响可维护性的因素。

    在软件系统交付使用前的每一测试步骤中都应给出需要进行预防性维护部分的提示。

    在完成每项维护工作后,都应对软件维护本身进行仔细认真的复审。

    为了从根本上提高软件系统的可维护性,人们正试图通过直接维护软件规格说明来维护软件,同时也在大力发展软件重用技术。

四、应用题(每题8分,共40分)

1、假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。

对于每个需要再次定货的零件应该列出下述数据:

零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。

零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。

当某种零件的库存数量少于库存量临界值时就应该再次定货。

要求:

画出系统的数据流图。

答:

2、将下面给出的伪码转换为N-S图和PAD图。

voidroot(floatroot1,floatroot2){

i=1;j=0;

while(i<=10){

输入一元二次方程的系数a,b,c;

p=b*b–4*a*c;

if(p<0)输出“方程i无实数根”;

elseif(p>0)求出根并输出;

if(p==0){

求出重根并输出;

j=j+1;

}

i=i+1;

}

输出重根的方程的个数j;

}

【解答】

(1)N-S图

(2)PAD图

3、:

输入三整数,判断是否构成三角形,如构成三角形,则输出三条边的值,否则输出”不能构成三角形”.要求:

1.用程序流程图表示该问题的算法;2.计算程序复杂度;3.设计路径覆盖的测试用例。

答:

 

路径:

1.①—②—③—④—⑥—⑦

2.①—②—⑤—⑥—⑦

3.①—⑤—⑥—⑦

4.①—②—③—⑤—⑥—⑦

 

程序复杂度=3+1=4

测试用例

路径

测试用例(A,B,C)

结果

1

A=3,B=4,C=5

A=3,B=4,C=5

2

A=5,B=8,C=2

不能构成三角形

3

A=2,B=2,C=5

不能构成三角形

4

A=5,B=2,C=2

不能构成三角形

5、一个软件公司有许多部门,分为开发部门和管理部门两种,每个开发部门开发多个软件产品,每个部门由部门名字唯一确定。

该公司有许多员工,员工分为经理,工作人员和开发人员。

开发部门有经理和开发人员,管理部门有经理和工作人员。

每个开发人员可参加多个开发项目,每个开发项目需要多个开发人员,每位经理可主持多个开发项目,建立该公司的对象模型。

答案:

1.(10分)一家图书馆藏有书籍、杂志、小册子、电影录像带、音乐CD、录音图书磁带和报纸等出版物,供读者借阅,具体包括借阅、归还、编目、上架四项功能,其中读者可以利用借阅和归还功能进行借阅和归还操作,管理员负责给出版物编目和上架功能。

这些出版物具有出版物名、出版者、获得日期、目录编号、书架位置、借出状态和借出限制等公共属性,以及借出、收回等公共服务。

此外这些出版物还存在特有属性,如:

书籍有作者属性、杂志有日期属性、小册子有作者属性、电影录像带有电影名属性、音乐CD有演员名属性、录音图书磁带有作者属性,报纸有日期属性。

请为图书馆馆藏出版物建立用例模型和对象模型。

(也可以用结构化方法给出系统的数据流图模型和实体关系模型)

用例图:

2、(15分)某模块的程序流程图如下,请分别设计满足判定覆盖和条件覆盖的测试用例。

设计测试用例时,请采用下面给定的真值表格式,在真值表中填写x、y、z的值和各个逻辑表达式的真假(T或者F)。

判定覆盖采用的真值表格式:

 用例序号

(x>3)&&(z<10)

(x==4)||(y>5)

x

y

z

 

 

 

 

 

 

 

 

 

 

 

 

条件覆盖采用的真值表格式:

 用例序号

x>3

z<10

x==4

y>5

x

y

z

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

答:

在判定覆盖中判定(x>3)&&(z<10)和判定(x==4)||(y>5)都必须取到T和F值。

(x>3)&&(z<10)

(x==4)||(y>5)

T

T

F

F

在条件覆盖中,两个条件真假至必须具有取到

x>3

z<10

X==4

y>5

T

T

T

T

F

F

F

F

 

3.某报表处理系统要求用户输入处理报表的日期,日期限制在2003年1月至2008年12月,即系统只能对该段期间内的报表进行处理,如日期不在此范围内,则显示输入错误信息。

系统日期规定由年、月的6位数字字符组成,前四位代表年,后两位代表月。

请给出如何用等价类划分法设计测试用例,来测试程序的日期检查功能?

等价类划分:

单选题(10*2)判断题(10*1)程序填空(3*5)简答(10*3)程序(25*1)

软件的定义:

软件是计算机程序、规程以及运行计算机系统可能需要的相关文档和数据

软件危机如何出现?

它的表现?

答:

软件危机是指计算机软件的开发和维护过程中遇到的一系列严重问题。

1.软件的成本和进度难以估计

2.软件存在错误多性能低不可靠不安全

3.软件维护及其困难,而且极难适应不断变化的用户需求和使用环境

瀑布模型:

默认需求不变,完整的生命周期,这是一维的,失败率极高。

迭代(增量式)开发:

把核心,高风险的放在第一次迭代。

在以后的迭代中不断更改,迭代包含增量。

瀑布模型

1.瀑布模型有以下优点

1.为项目提供了按阶段划分的检查点

2.当前一阶段完成后,只需要去关注后续阶段

2.瀑布模型有以下缺点

1.在项目各个阶段之间极少有反馈。

2.只有在项目生命周期的后期才能看到结果

3.早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重后果。

以软件开发初期只有提供基本需求所采用的渐进式开发模型如原型模型、螺旋模型以形式化开发方法为基础的变换模型

一般采用两个准则度量模块独立性:

即模块间耦合和模块内聚耦合是模块之间的互相连接的紧密程度的度量。

内聚是模块功能强度(一个模块内部各个元素彼此结合的紧密程度)的度量

模块独立性比较强的模块应是高内聚低耦合的模块

软件生命周期分为7个阶段。

1.问题定义:

要解决的问题是什么,正确理解用户的真实需求

2.可行性研究:

确定问题是否值得解。

技术可行性、经济可行性、操作可行性

3.需求分析:

系统必须做什么,主要是确定目标系统必须具备的功能

4.总体设计:

系统如何实现,包括系统设计和结构设计。

也叫概要设计或初步设计

5.详细设计:

具体实现设计的系统

6.实现:

编码和测试

编码,是根据详细设计的结果,选择一种适合的程序设计语言,把详细设计的结果翻译成程序的源代码。

测试,以便尽早发现程序中的错误和缺陷而进行的一个过程,有单元测试、集成测试、确认测试和系统测试4种

7.运行维护:

保证软件正常运行。

通过各个必要的维护措施支持软件系统能持久地满足用户的需要

类的定义:

是具有相同属性和服务的一组对象的集合,它属于该类的全部对象提供了统一的抽象描述,其内部包括属性和服务两个部分。

对象的定义:

是系统中描述客观事物的一个实体,它使构成系统的一个基本单位,由一组属性和对这组属性进行操作的一组服务组成

多态性:

是指父类中定义的属性或服务被子类继承后,可以具有不同的数据类型,或者表现出不同的行为

信息隐藏:

Private别人没有权限访问

耦合:

类和类的内部联系是耦合

可行性研究可行性研究是抽象和简化了系统分析和设计的全过程,它的目标是用最小代价尽快确定是否能够解决,以避免盲目投资带来的巨大浪费

可行性研究的三方面

答:

1.技术可行性(使用现有的技术能使短线这个系统吗?

2.经济可行性(这个系统的经济效益能超过它的开发成本吗?

3.操作可行性(系统的操作方式在这个用户组织内行得通吗?

需求分析:

与系统发生交互作用的,系统之外的任何东西都是角色

—可以是人

—也可以是机器

角色不等同于使用者

角色存在于系统外部

角色不是活动的准确描述

使用者是行驶某个角色职责的系统的使用人员

单一职责:

一个类,只有一个引起它变化的原因。

应该只有一个职责。

每一个职责都是变化的一个轴线,如果一个类有一个以上的职责,这些职责就耦合在了一起,这会导致脆弱的设计。

当一个职责发生变化时,可能会影响其他的职责。

另外,多个职责耦合在一起,会影响复用性。

开闭原则:

指的是一个软件实体应对对扩展开发,对修改关闭。

这个原则是说在设计一个模块的时候,应对使这个模块可以在不被修改的前提下被扩展,换言之,应对可以不必修改源代码的情况下改变这个模块的行为

实现开闭原则的关键:

利用接口或抽象类抽象出系统的抽象层,抽象层不变,利

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1