如何评测软件工程知识技能水平?

一 选择题(30分)[4] 1 下面哪些UML图描述系统行为? [ A] A 用例图 B 类图

一 选择题(30分)[4]

1.下面哪些UML图描述系统行为? [ A]

A.用例图 B.类图 C.对象图

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

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

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

A.组合模式 B.工厂方法模式 C.观察者模式

4.下列说法正确的是 [ B ]

A.UML 是软件开发方法 B.UML是系统描述语言

C.UML是软件开发过程

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

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

C.逻辑内聚的模块

6.软件测试的目的是 [ C ]

A.证明软件无错 B.发现软件中的所有错误 C.尽可能发现软件系统中的错误

7.软件重构关注的是 [ B ]

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

8.软件项目开发计划的内容有 [B ]

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

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

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

10.对项目软件而言,软件功能需求信息主要由谁提供 [ A ]

A.软件用户 B.软件开发人员 C.软件项目管理人员

11.原型模型是一种什么开发过程模型? [ B ]

A.自顶向上 B.由外至内 C.增量式

12.系统流程图描述 [A ]

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

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

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

14.UML 图中描述系统结构的是 [ A ]

A.组件图 B.顺序图 C.状态图

15.面向对象方法是一种什么软件开发方法? [B ]

A.层次化 B.迭代增量式 C.逐步求精

16.不可以用来衡量软件可维护性的是 [ C ]

A.可靠性 B.可用性 C.可行性

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

A.用户手册 B.概要设计说明书 C.可行性研究报告

18.为了提高软件的可靠性、可维护性等而对软件的修改称为 [ C ]

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

19.在结构化方法中,为使需求改变对软件影响较小,应该使软件结构 [ A ]

A.与问题结构对应 B.与问题结构独立 C.与用户界面对应

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

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

21.描述系统动态行为的模型是 [C ]

A.包图 B.软件结构图 C.状态图

22.考虑输入条件组合的测试用例设计方法是 [ C]

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

23.在UML的用例图中,扩展关系是一种 [B ]

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

24.独立测试小组开始介入测试是在 [C ]

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

25.在成本估计中容易低估局部问题的方法是 [C ]

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

26.结构化分析方法使用的工具是 [ A ]

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

27.白盒测试设计用例的方法是 [ B ]

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

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

A.可维护性好 B.可用性好 C.满足用户功能需求

29.瀑布模型是一种 [B ]

A.演化模型 B.顺序模型 C.增量模型

30.模块的独立程度可以由什么定性标准度量? [A ]

A.耦合度 B.复杂度 C.可靠性

二 简答题(30分)

1. (10分)

(1)什么是软件生存周期?它有哪几个活动?[1]

软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。

软件生存周期包括:可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等.

(2)可行性研究的任务是什么?[1]

a.技术可行性:

考虑的因素(1).开发的风险(2)资源的有效性(3)技术(4)开发人员在主段技术可行性时,一旦估计错误,将会出现灾难性后果。

b.经济可行性。

c.社会可行性。

(3)什么是需求分析?需求分析阶段的基本任务是什么?[1]

需求分析是指:开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式主义功能规约(需求规格说明)的过程。

需求分析阶段的基本任务是:

(1) 问题识别:双方对问题的综合需求:a.功能需求b.性能需求c.环境需求d.用户界面需求.

(2) 分析与综合,导出软件的逻辑模型.

(3) 编写文档

2.

(1)衡量模块独立性的两个标准是什么?它们各表示什么含义?[1]

两个定性的度量标准:耦合与内聚性

耦合性:也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。

内聚性:也称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。模块内元素联系越紧密,内聚性越高。

(2)用例有哪些特性?[3]

答:概括起来,用例有以下特性:

(1)用例描述用户对系统的期望,被用于软件需求建模,一个用例对应于软件能够为参与者提供的一项服务。

(2)用例反映参与者与系统一次完整的交互过程。这个交互过程总是要耗费一段时间,并执行一定的流程。流程的执行是参与者与系统的一段互动过程,在这个过程中有输入到系统的信息,以及系统反馈给参与者的信息。

(3)用例的执行过程是系统为参与者的一次服务过程,这个服务就体现为系统提供给参与者的功能。一个用例执行的完成,需要有确定的评价结果,这个结果表现为系统提供给参与者的一项完整的功能。

(4)用例是软件设计和测试的依据。

(3)软件测试的一般步骤?[2]

单元测试、子系统测试、系统测试、验收测试、平行测试。

3. 简述六个设计原则(10分)

1. 开闭原则(Open Close Principle)

开闭原则的意思是:对扩展开放,对修改关闭

2. 里氏代换原则(Liskov Substitution Principle)

里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。

4. 接口隔离原则(Interface Segregation Principle)

这个原则的意思是:使用多个隔离的接口,比使用单个接口要好。

5. 迪米特法则,又称最少知道原则(Demeter Principle)

最少知道原则是指:一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立。

6. 合成复用原则(Composite Reuse Principle)

合成复用原则是指:尽量使用合成/聚合的方式,而不是使用继承。

三 应用题(20分)

1.[1]

某报表处理系统要求用户输入处理报表的日期,日期限制在2003年1月至2008年12月,即系统只能对该段期间内的报表进行处理,如日期不在此范围内,则显示输入错误信息。系统日期规定由年、月的6位数字字符组成,前四位代表年,后两位代表月。现要求用黑盒测试法中的边界值法写出测试用例。

答:

报表日期的类型及长度

1个数字字符 5

5个数字字符 20035

7个数字字符 2003005

有1个非数字字符 2003.5

全部是非数字字符 MAY---

6个数字字符 200305

日期范围

在有效范围 200301

边界上选取 200812

数据 200300

​ 200813

月份范围

月份为1月 200301

月份为12月 200312

月份<1 200300

月份>12 200313

2.[5]

为了满足物业中介行业的信息化要求,甲公司基于详尽的需求调研与分析,准备研发一套符合市场需要的、实用的信息管理系统。主要将实现客户资料信息管理、客户委托(出租、出售、租赁、购买)信息管理、业务线索生成与管理、房源状态自动更新、权限管理、到期用户管理、房源组合查询等功能。该公司小王,通过多次的与潜在客户的交流与沟通,完成了最初的用例模型的开发,下图是一个用例模型的局部:

(1)但小李认为该模型不符合“用例建模”的思想,存在明显的错误。说明错误所在,并说明应该如何修改。

答:

1)主要错误:用例的分解太细,并没有遵从每个用例为用户传递一个有价值的结果的原则。在原设计中“打开房源信息页面”、“录入房源信息”、“确认提交信息”都只是一个操作步骤,因此不适合作为用例。

2)修改方法:将“打开房源信息页面”、“录入房源信息”、“确认提交信息”合并为“新增房源信息”。

(2)在上图中构造型“《include》”表示的是什么意思,它与“《extend》”之间的区别是什么?

在用例模型中,构造型“《include》”是用来表示包含关系。它通常用来表示被包含用例是被多包含用例使用的一个可复用模块,而《extend》且通常用来表示对用例的扩展。

参考文献

[1] https://wenku.baidu.com/view/bc6ec5a751e2524de518964bcf84b9d528ea2cbc.html

[2]《软件工程导论》 张海藩

[3] https://wenku.baidu.com/view/dfcb169852d380eb63946d2e.html

[4] https://wenku.baidu.com/view/7694f5eb9b6648d7c1c746d1.html

[5] https://wenku.baidu.com/view/fef88bfff46527d3240ce09a.html

您可能有感兴趣的文章
软件测试(理论基础)

软件测试基础知识

什么是软件测试?

常见的软件测试方法及汇总

软件测试基础