如何评测软件工程知识技能水平?
一 选择题(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