您的当前位置:首页正文

软件工程复习题及参考答案

2022-11-16 来源:个人技术集锦
软件⼯程复习题及参考答案

软件⼯程复习题及参考答案

⽂稿归稿存档编号:[KKUY-KKIO69-OTM243-OLUI129-G00I-FDQS58-《软件⼯程》课程复习资料⼀、单项选择题:

1.下⾯哪些UML图描述系统⾏为?[ ]A.⽤例图B.类图C.对象图

2.属于概要设计活动的是[ ]

A.软件结构设计B.数据结构设计C.算法设计

3.属⾏为型设计模式的是[ ]

A.组合模式B.⼯⼚⽅法模式C.观察者模式4.下列说法正确的是[ ]

A.UML 是软件开发⽅法B.UML是系统描述语⾔C.UML是软件开发过程

5.根据程序流程图划分的模块通常是[ ]

A.信息内聚的模块B.过程内聚的模块C.逻辑内聚的模块

6.如果某程序中的⽐较个数是m,则其 McCabe环形复杂度为[ ]A.m-1B.m

C.m+1

7.按ISO9000-3的说明,下列属软件配置项的是[ ]

A.软件开发⽅法B.软件开发组织管理制度C.软件开发合同8.软件测试的⽬的是[ ]

A.证明软件⽆错B.发现软件中的所有错误C.尽可能发现软件系统中的错误9.软件重构关注的是[ ]

A.软件体系结构B.模块细节C.软件性能

10.软件项⽬开发计划的内容有[ ]

A.数据分析B.风险分析C.功能分析

11.在UML的类图中,描述整体与部分关系的是[ ]

A.泛化关系B.聚合关系C.依赖关系

12.软件过程能⼒成熟度模型CMM⽤以评价[ ]

A.软件过程能⼒B.组织能⼒C.学习能⼒

13.因计算机硬件和软件环境的变化⽽作出的修改软件的过程称为[ ]

A.完善性维护B.改正性维护

C.适应性维护

14.对项⽬软件⽽⾔,软件功能需求信息主要由谁提供[ ]

A.软件⽤户B.软件开发⼈员C.软件项⽬管理⼈员15.IDEF0 图反映不出[ ]

A.系统做什么B.系统功能由谁做C.系统如何做

16.原型模型是⼀种什么开发过程模型?[ ]

A.⾃顶向上B.由外⾄内C.增量式

17.系统流程图描述[ ]

A.物理系统B.逻辑系统C.软件体系结构

18.需求规格说明书的内容不应该包括[ ]

A.软件确认准则B.软件的性能描述C.算法过程的详细描述

19.适合需求模糊或需求不确定系统开发的软件开发模型是[ ]

A.瀑布模型B.RAD 模型C.原型模型

20.UML 图中描述系统结构的是[ ]A.组件图B.顺序图

C.状态图

21.⾯向对象⽅法是⼀种什么软件开发⽅法?[ ]A.层次化B.迭代增量式C.逐步求精

22.不可以⽤来衡量软件可维护性的是[ ]A.可靠性B.可⽤性C.可⾏性

23.系统分析员在需求分析最后负责编写[ ]

A.⽤户⼿册B.概要设计说明书C.可⾏性研究报告

24.为了提⾼软件的可靠性、可维护性等⽽对软件的修改称为[ ]

A.改正性维护B.适应性维护C.预防性维护

25.在结构化⽅法中,为使需求改变对软件影响较⼩,应该使软件结构[ ]

A.与问题结构对应B.与问题结构独⽴C.与⽤户界⾯对应

26.单元测试的计划应该在什么阶段完成?[ ]

A.需求分析B.概要设计C.详细设计

27.下列属⾯向对象软件开发⽅法的是[ ]

A.LCP ⽅法B.OMT ⽅法

C.IDEF0 ⽅法

28.强调信息隐藏的软件⼯程设计⽅法是[ ]

A.Jackson ⽅法B.Parnas ⽅法C.SA/SD ⽅法

29.描述系统动态⾏为的模型是[ ]A.包图B.软件结构图C.状态图

30.考虑输⼊条件组合的测试⽤例设计⽅法是[ ]

A.等价分类法B.语句覆盖法C.因果图法

31.下列能减少⽀援性维护活动的是[ ]

A.利⽤软件包B.进⾏配置管理C.对⽤户进⾏适当培训

32.只⽀持单重继承的程序设计语⾔是[ ]A.C++B.DelphiC.C

33.IDEF0 图的顶层图是[ ]A.A0 图B.A-0 图C.A-1图

34.在UML的⽤例图中,扩展关系是⼀种[ ]

A.泛化关系B.依赖关系

C.关联关系

35.独⽴测试⼩组开始介⼊测试是在[ ]

A.模块测试阶段B.集成测试阶段C.确认测试阶段

36.在成本估计中容易低估局部问题的⽅法是[ ]

A.基于经验模型的估计B.⾃底向上估计C.⾃顶向下估计

37.在IDEF1X图中,如果⼦实体与⽗实体存在联系,则⼦实体将继承⽗实体的[ ]

A.全部属性B.主关键字属性C.⾮主关键字属性

38.结构化分析⽅法使⽤的⼯具是[ ]

A.数据流图B.类图C.软件结构图

39.⽩盒测试设计⽤例的⽅法是[ ]

A.等价分类法B.基本路径覆盖法C.因果图法

40.在衡量软件质量时,最重要的标准是[ ]

A.可维护性好B.可⽤性好

C.满⾜⽤户功能需求41.瀑布模型是⼀种[ ]

A.演化模型B.顺序模型

C.增量模型

42.模块的独⽴程度可以由什么定性标准度量?[ ]A.耦合度B.复杂度C.可靠性

43.以下选项中,不属于对象的特点有[ ]A.继承B.多态C.封闭

44.⾯向数据结构的设计⽅法有[ ]

A.Parnas ⽅法B.Jackson ⽅法C.IDEF0 ⽅法

45.与UML配合最好的软件开发⽅法是[ ]

A.RUP ⽅法

B.Coad/Yourdon⽅法C.IDEF4⽅法⼆、填空题:

1.统⼀建模语⾔UML提供了两种描述整体/部分关系的⽅法,分别是和。

2.软件是计算机程序、及的完整集合,将其统称为软件配置,这些

项称为软件配置项。通过正式复审的软件配置项称为,只有通过正式的变化控制过程才能改变它。3.纯收⼊是指在整个⽣存周期之内的与投资之差。

4.瀑布模型是以驱动的软件⽣存周期模型,适合需求明确的软件系统开发。5.在单元测试期间,应该为被测模块编写相应的测试软件,⼀般地模块接收测试数据,并把数据传给被测模块,⽽模块则模拟实际模块完成少量数据处理。6.IDEF0⽅法⽤严格的⾃顶向下、逐层分解的⽅式进⾏系统的功能描述,其顶层图将图在建模范围内分解成个主要部分得到。

7.如果⼀个模块完成多个逻辑上相近或相关的功能,并且每次调⽤只选择该模块中的⼀个功能执⾏,则称此模块为内聚的模块。

8.程序静态分析的对象是。常⽣成各种引⽤表,如列出各模块中出

现的全部标号。

9.在数据流图中,每个加⼯⾄少有⼀个和⼀个。

10.两个⼩组独⽴地测试同⼀个程序,第⼀组发现25个错误,第⼆组发现30个错误,在两个⼩组发现的错误中有15个是共同的,那么可以估计程序中的错误总数是。

11.设E为程序图G中边的总数; N 为程序图中结点的总数,则该程序图的环形复杂度为。

12.汽车有⼀个发动机。若⽤UML描述汽车和发动机之间的关系,则它们之间是_____关系。

13.⾃顶向下结合的渐增式测试法,在组合模块时有两种组合策略,即策略和策略。

14.在基本路径测试中,以详细设计为基础,导出控制流程图的拓扑结构: 程序图,在计算了程序图的之后,确定只包含独⽴路径的基本路径图,其中独⽴路径是包括⼀组

的⼀条路径。从程序图来看,⼀条独⽴路径是⾄少包含有⼀条在其他独⽴路径中未有过的边的路径。15.在多层次的结构图中,其模块结构的层次数称为结构图的。结构图中同⼀层模块的最⼤模块数称为结构图的。

16.耦合性是指两个模块之间的关系,模块之间的联系越复杂,每个模块的独⽴性就。

17.可⾏性研究实质上是进⾏了⼀次过程。18.需求分析的任务是。

19.NS图的主要优点是它强制设计⼈员使⽤技术,从⽽可保证软件设计的质量。

20.结构型模式涉及如何组合类和对象,从⽽构成更⼤的对象,⼀是采⽤

来组合接⼝或实现形成更⼤的结构;另⼀种⽅式通过⽅式来形成。21.为了便于对照检查,测试⽤例应由和预期的两部分组成。

22.软件开发时,⼀个错误发现得越晚,为改正它所付出的代价就。

23.在UML的⽤例图中,根据参与者与⽤例关系的不同,参与者可分为和次要参与者,参与者之间的关系只有关系。

24.评价软件质量可以从三个⽅⾯进⾏,即产品或中间产品、和项⽬。25.软件配置管理是⼀组⽤于在计算机软件的整个⽣存周期内管理的活动。26.通过抽象,可以确定组成软件的。通过信息隐蔽,可以定义和实施对模块的过程细节和局部数据结构的。

27.UML表⽰法的基础是,它描述建模元素的语义。28.条件覆盖是指设计⾜够的测试⽤例,使得⾄少出现⼀次。

29.⾯向数据流图的结构化分析⽅法是根据的原则,按照系统中数据处理的流

程,⽤数据图来建⽴系统的模型。

30.评估软件企业的质量管理有两种⽅法,⼀种是按照认证,另外⼀种是按照CMM认证。

31.风险估计从两个⽅⾯来度量,⼀是估计,⼆是估计与风险相关的问题出现后将会带来的损失。三、名词解释:1.集成测试2.设计模式3.信息隐藏4.⽤例5.结构化⽅法6.MVC四、判断题:

1.测试计划、测试⽤例和出错统计等⼀般不⽤长期保存。[ ]

2.在⾯向对象⽅法中,需求分析和设计没有差别。[ ]

3.应⽤设计模式使得软件灵活,可重⽤性提⾼,应该尽量多使⽤。[ ]

4.UML 是⼀种建模语⾔,可以被任何⾯向对象⽅法使⽤。[ ]

5.任何系统都需要对数据进⾏处理,因⽽数据流图可描述任何系统。[ ]

6.软件开发就是编写程序代码。[ ]

7.⾯向对象软件开发最适合采⽤迭代、增量式的开发模型。[ ]

8.设计模式是⼀种可以重⽤的⾯向对象软件设计⽅案。[ ]

9.软件测试就是检查程序是否正确。[ ]

10.软件项⽬计划在可⾏性研究阶段就已定稿。[ ]

11.软件⼯程认为软件设计的最终⽬标是要取得最佳⽅案。[ ]

12.只要对软件进⾏严格的测试,就能发现软件中的所有错误。[ ]

13.初级技术⼈员在编码阶段参与软件项⽬的程度在各类⼈员中最⾼。[ ]

14.单元测试常常在编码阶段进⾏。[ ]

15.CMM 描述和分析了软件过程能⼒的发展与改进的程度。[ ]

16.为了加快开发速度,可以⼀边写程序,⼀边设计⽂档。[ ]

17.没有发现任何错误的测试是⽆效的测试。[ ]

18.软件结构图中不能有控制信息流动。[ ]

19.单元测试常常由独⽴的测试⼩组进⾏。[ ]

20.⽤例建模只能⽤于⾯向对象软件系统的开发。[ ]

21.数据流建模⽅法是⼀种⾃顶向下的需求分析⽅法。[ ]

22.为了减少程序的长度,最好不要在程序中增加注释。[ ]

五、简答题:

1.在需求分析和设计阶段建⽴原型的好处有哪些?2.什么是模块的扇⼊和扇出?3.UML的特点是什么?

4.层次图和层次⽅框图有何区别?5.软件测试对象应包括哪些内容?6.试简要叙述⽂档在软件⼯程中的作⽤。

7.为何螺旋模型主要适合开发⼈员和⽤户为同⼀个组织机构成员的软件项⽬的开发?8.软件测试为何需要尽早和不断地进⾏?9.简要说明如何实现MVC。

10.试给出⼀种开源软件框架,并简要说明开源软件存在的问题。11.IDEF0⽅法有什么特点?

12.快速原型模型有⼏种?各有何特点?

六、综合题:

1.某⽹络学院决定开发⼀个管理所有学⽣和教师信息的交互式⽹络系统,该系统提供如下服务:

(1)浏览学⽣信息:⽹络学院的任何⼈员,包括学⽣和⽼师,均可以浏览学院任何学⽣的信息,包括姓名、学号和专业名称。

(2)浏览教师信息:⽹络学院的任何⼈,包括学⽣和⽼师,均可以浏览学院任何教师的信息,包括姓名、⼯号和职称。(3)登录:⽹络学院给学院每个⼈⼀个账号。拥有授权帐号的学⽣和⽼师,可以使⽤系统提供的页⾯设置个⼈密码,并使⽤该账号和密码向系统注册。

(4)修改个⼈信息:学⽣或⽼师向系统注册后,可以发送电⼦邮件或使⽤系统提供的页⾯,对个⼈信息进⾏修改。(5)删除个⼈信息:只有⽹络学院的管理⼈员才能删除不再是学院学⽣或⽼师的⼈员的有关信息。试问哪些是参与者?哪些是⽤例?并⽤UML的⽤例图描述系统⾏为。2.试据下述伪代码描述的模块,改⽤NS图描述。Beginab

Do Until x6If xl thenfIf x4 thenDo Until x5iEnd UntilElseghEnd ifElse

Select Case x2Case 1:Do While x3c

End WhileCase 2:dCase 3:e

End Select

End ifEnd UntilEnd

3.某五星级宾馆共有H间客房。每间客房的房间号、房间等级、床位数以及占⽤状态分别

存放在数组ROOM、RANK、NBED和STATUS中。房间等级⽤整数表⽰。房间状态有:空闲(0表⽰)和占⽤(1表⽰)。客房以房间为单位出租。试设计⼀个算法,依据散客的要求预定房间,要求输⼊为:⼈数M,房间等级要求R(R为0表⽰任意等级均可);输出为:可供选择的房间号。要求⽤程序流程图描述算法。

4.某医院打算开发⼀个以计算机为中⼼的患者监护系统,以解决医院⼈⼿不够和对危重

病⼈的及时监护。该系统应能做到以下⼏点:随时接受每个病⼈的⽣理信号;定时记录病⼈情况形成患者⽇志;当病⼈⽣理信号超出医⽣规定的安全范围时向值班护⼠发告警信息;此外,护⼠在需要时,还可要求系统印出指定病⼈的病情报告。试椐此叙述绘出对应的DFD图。

5.试采⽤设计模式描述算术表达式(不含圆括号)的设计⽅案。算术表达式是由加、减、乘、除和操作数构成的表达式,操作数假定为实数。

6.请根据如下程序流程图设计该程序段的判定覆盖测试⽤例,其中输⼊为A,B,X,输出为X。

d b参考答案⼀、单项选择题:1.A2.A3.C4.B5.B6.C7.C8.C

9.B 10.B 11.B 12.A13.C 14.A 15.C

16.B 17.A 18.C 19.C 20.A 21.B 22.C 23.A 24.C 25.A 26.C 27.B28.B 29.C 30.C

31.C 32.B 33.A 34.B 35.C 36.C 37.B 38.A 39.B 40.C 41.B 42.A

43.C 44.B 45.A⼆、填空题:1.聚集组合

2.描述计算机程序的⽂档数据基线

3.累计经济效益(折合成现在值)4.⽂档

5.驱动模块桩模块6.A-0 3-6

7.逻辑 8.源程序标号交叉引⽤表

9.输⼊流输出流 10.50 11.E – N + 2 12.聚合

13.深度优先⼴度优先 14.环形复杂性以前没有处理的语句或条件

15.深度宽度 16.依赖越低

17.⼤⼤压缩简化了的系统分析和设计过程 18.确定系统必须完成哪些⼯作19.结构化 20.继承对象组合21.输⼊数据预期输出结果 22.越⼤23.主要参与者泛化 24.过程25.变化 26.过程实体存取限制

27.UML 元模型 28.判定表达式中每个条件的各种可能的值

29.分解与抽象功能 30.ISO900131.风险发⽣的可能性三、名词解释:

1.集成测试也称组装测试或联调。是指在单元测试的基础上,将所有模块按照概要设计要求组装成⼀个完整的系统⽽进⾏的测试。模块组装的⽅式有两种:渐增式和⾮渐增式。

2.设计模式是普通⾯向对象设计问题的解决⽅案,这类问题以⼀组交互类的形式出现,⽤户根据需要定制这些交互类以形成专门的设计。所有设计模式均可以从四个⽅⾯加以描述:模式名称、问题描述、解决⽅案和效果。

3.信息隐藏是指在模块设计时,使得⼀个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说是不能访问的。这样,改变模块的内部过程和数据的设计不会影响到其它模块。

4.⽤例是参与者为达到某个⽬的⽽与系统进⾏的⼀系列交互,执⾏结果将为参与者提供可度量的价值。从参与者的⾓度来看,⽤例应该是⼀个完整的任务,在⼀个

相对较短的时间内完成。

5.结构化⽅法是⼀种传统的软件开发⽅法,其总的指导思想是⾃顶向下、初步求精、单⼊⼝、单出⼝,其基本原则是抽象和功能分解。

6.MVC即模型、视图、控制器。其中,模型是应⽤对象,其包含⼀些数据值,维护数据并提供数据的访问⽅法。视图显⽰模型的部分或说有数据,多个视图可以以不同的⽅式来显⽰模型中数据。控制器处理⽤户输⼊事件。四、判断题:1.×2.×3.×4.√5.√6.×7.√8.√

9.× 10.× 11.× 12.× 13.√ 14.√ 15.√

16.× 17.√ 18.× 19.× 20.× 21.√ 22.×五、简答题:

1.在需求分析和设计阶段建⽴原型的好处有:

(1)增进开发⼈员和⽤户对系统需求的⼀致理解,明确软件需求,尤其是功能含糊的需求。(2)原型提供了⼀种有⼒的学习⼿段,能够使⽤户尽早接触系统。(3)原型可以⽤来识别或化解风险。

(4)原型有的可以原封不动地成为产品,有的略加修改就可以成为最终系统的⼀个组成部分,这样有利于建成最终系统。2.扇⼊则定义为⼀个模块被调⽤(或控制)的模块个数;扇出表⽰⼀个模块直接调⽤(或控制)的其他模块数⽬。3.UML的特点是:

(1)统⼀了⾯向对象⽅法的有关概念和描述⽅法;

(2)表达能⼒强,能对各种并发分布式系统进⾏建模,且UML还提供了扩展机制;(3)UML专注于⼀种标准的建模语⾔,⽽不是⼀个开发过程。

4.层次图主要⽤来描绘软件的层次结构,矩形框代表⼀个模块,矩形框之间的连线

表⽰模块之间的调⽤关系,常与IPO图⼀起形成HIPO图。层次⽅框图主要描述系统的组成关系,⼀般⾃⽤域需求分析。5.软件测试并不等于程序代码测试,其应该贯穿于软件定义与开发的整个期间。因

此,需求分析、概要设计以及程序编码等各阶段所得的⽂档,包括需求规格说明、概要设计说明、详细设计规格说明以及源程序代码都应成为软件测试的对象。6.在软件⼯程中,⽂档的作⽤是:

(1)提⾼软件开发过程的能见度;

(2)记录开发过程的有关信息便于使⽤与维护;(3)作为开发⼈员阶段⼯作成果和结束标志;(4)提⾼开发效率;

(5)提供软件运⾏、维护和培训有关资料;(6)便于⽤户了解软件功能、性能。

7.因为如果开发⼈员和⽤户属于不同的组织机构,则⼀般在正式的软件开发之前均

需要签订合同,所有的风险分析均必须在签订合同之前完成。但螺旋模型需要在软件开发的每⼀个阶段都进⾏风险分析,当重要风险不能解决时,项⽬应该终⽌。由此螺旋模型可能因为风险使得合同在完成之前就终⽌,从⽽导致法律诉讼。故螺旋模型不适合开发⼈员和⽤户属于不同组织机构的情况。

8.软件测试不应仅仅作为⼀个独⽴的软件开发阶段,⽽应贯穿到软件开发的各个阶

段中。通过各阶段的评审,在早期把错误解决,以减少错误放⼤效应,这样不仅可以提⾼软件质量,⽽且也是降低软件成本的⼀个重要措施。由此,软件测试应该尽早和不断地进⾏。

9.MVC是Model-View-Controller的简写。\"Model\" 代表的是应⽤的业务逻辑

(通过JavaBean,EJB组件实现), \"View\" 是应⽤的表⽰层(由JSP页⾯产⽣),\"Controller\" 是提供应⽤的处理过程控制(⼀般是⼀个Servlet),通过MVC把应⽤逻辑,处理过程和显⽰逻辑分成不同的组件实现。10.Struts是采⽤Java Servlet/JavaServer Pages技术,开发Web应⽤程序的开源

应⽤框架。 Struts框架主要有如下功能:1)包含⼀个controller servlet,能将⽤户的请求发送到相应的Action对象; 2)JSP⾃由tag库,并且在

controller servlet中提供关联⽀持,帮助开发⼈员创建交互式表单应⽤;3)

提供了⼀系列实⽤对象,如XML处理、通过Java reflection APIs⾃动处理JavaBeans属性、国际化的提⽰和消息等。开源软件存在的主要问题有:(1)技术服务⽀持较少;(2)版本控制困难;(3)性能不够稳定;(4)⽂档不全,等等。11.IDEF0⽅法的特点是:

(1)采⽤⽅框和箭头等简单的图形符号描述系统的活动和数据流,描述活动所受到的约束条件及实现机制,清楚地反映了系统的功能。

(2)采⽤严格的⾃顶向下、逐层分解的⽅式建⽴系统功能模型。顶层确定系统范围,采⽤抽象原则,然后有控制的逐步展开有关活动的细节,符合SA⽅法的分析策略。同时,IDEF0规定每张图⾄少有3个、最多有6个⽅框,上界6保证采⽤层次性描述复杂问题的可理解性,下界3保证分解有意义。12.根据原型的不同作⽤,有三类原型模型:

⑴探索型原型。这种类型的原型模型是把原型⽤于开发的需求分析阶段,⽬的是

要弄清⽤户的需求,确定所期望的特性,并探索各种⽅案的可⾏性。它主要针对开发⽬标模糊,⽤户与开发着对项⽬都缺乏经验的情况,通过对原型的开发来明确⽤户的需求。

⑵实验型原型。这种原型主要⽤于设计阶段,考核实现⽅案是否合适,能否实

现,对于⼀个⼤型系统,若对设计⽅案⼼中没有把握时,可通过这种原型来证实设计⽅案的正确性。⑶演化型原型。这种原型主要⽤于及早向⽤户提交⼀个原型系统,该原型系统或

者包含系统的框或者包含系统的主要功能。在得到⽤户的认可后,将原型系统不断扩充演变为最终的软件系统,它将原型的思路扩展到软件开发的全过程。六、综合题:1.

2.3.

5.6.(1)Ⅰ:Ⅱ:(2)Ⅰ:输⼊Ⅱ:输⼊

因篇幅问题不能全部显示,请点此查看更多更全内容

Top