31、系统可维护性是指维护人员理解、改正、改动和改进软件系统的难易程度,其评价指标不包括( )。
A、可理解性
B、可测试性
C、可修改性
D、一致性
参考答案:D
答案解析:
系统的可维护性可以定性的定义为:维护人员理解、改正、改动和改进这个软件的难易程度,其评价指标包括可理解性、可测试性和可修改性。

32、面向对象设计时包含的主要活动是( )。
A、认定对象、组织对象、描述对象间的相互作用、确定对象的操作
B、认定对象、定义属性、组织对象、确定对象的操作
C、识别类及对象、确定对象的操作、描述对象间的相互作用、识别关系
D、识别类及对象、定义属性、定义服务、识别关系、识别包
参考答案:D
答案解析:
考查关于面向对象的开发阶段:

  • 面向对象分析阶段:认定对象,组织对象,对象间的相互作用,基于对象的操作。
  • 面向对象设计阶段:识别类及对象、定义属性、定义服务、识别关系、识别包。
  • 面向对象程序设计:程序设计范型、选择一种OOPL。
  • 面向对象测试:算法层、类层、模板层、系统层。

33、在面向对象设计时,如果重用了包中的一个类,那么就要重用包中的所有类,这属于( )原则。

A、接口分离

B、开放-封闭

C、共同封闭

D、共同重用

参考答案:D

答案解析:

软件设计师 考试 python 软件设计师考试题目_软考

包和组件的设计原则
  • 重用-发布等价原则(Reuse-Release Equivalence Principle, REP):重用的粒度就是发布的粒度。
  • 共同重用原则(Common-Reuse Principle, CRP):一个组件中的所有类应该是共同重用的。如果重用了组件中的一个类,那么就要重用组件中的所有类。
  • 共同封闭原则(Common-Closure Principle, CCP):组件中的所有类对于同一种性质的变化应该是共同封闭的。一个变化若对一个封闭的组件产生影响,则对该组件中的 所有类产生影响,二对于其他组件则不造成任何影响。
  • 无环依赖原则(Acycle-Dependencies Principle, ADP):在组件的依赖关系图中不允许存在环。
  • 稳定依赖原则(Stable-Dependencies Principle, SDP):朝着稳定的方向进行依赖。
  • 稳定抽象原则(Stable-Abstraction Principle, SAP):组件的抽象程度应该与其稳定程度一致。

34、某电商系统在采用面向对象方法进行设计时,识别出网店、商品、购物车、订单买家、库存、支付(微信、支付宝)等类。其中,购物车与商品之间适合采用(1)关系,网店与商品之间适合采用(2)关系。

(1)
A、关联
B、依赖
C、组合
D、聚合
(2)
A、依赖
B、关联
C、组合
D、聚合
参考答案:D、C
答案解析:
本题考查UML类图的几种关系。

  • 关联关系:描述了一组链,链是对象之间的连接。
  • 依赖关系:一件事物发生改变影响到另一个事务。
  • 聚合关系:整体与部分生命周期不同的关系。
  • 组合关系:整体与部分生命周期相同的关系。

对于购物车和商品而言,网上商店的购物车要能够跟踪顾客所选的的商品,记录下所选商品,还要能随时更新,可以支付购买,能给顾客提供很大的方便。
购物车用于存放商品,购物车是整体,商品是部分,他们之间生命周期不同。属于聚合关系。
对于网店和商品而言,网点里面包含商品,属于整体和部分生命周期相同的情况,属于组合关系。

35、某软件系统限定:用户登录失败的次数不能超过3次。采用如所示的UML状态图对用户登录状态进行建模,假设活动状态是Logging in,那么当Valid Entry发生时,(1)。 其中,[tries<3]和tries+ +分别为(2)和(3)。

软件设计师 考试 python 软件设计师考试题目_python_02

(1)
A、保持在Logging in状态
B、若[tries<3]为true,则Logged in变为下一个活动状态
C、Logged in立刻变为下一个活动状态
D、若tries=3为true,则Logging Denied变为下一个活动状态
(2)
A、状态
B、转换
C、监护条件
D、转换后效果
(3)
A、状态
B、转换
C、转换后效果
D、监护条件
参考答案:B、C、B
答案解析:
本题考查UML状态图的问题。

  • 通过状态图图示可知,假设活动状态是Logging in,那么当Valid Entry发生时,当限制条件【tries=3】会到达Logging Denied状态,当限制条件【tries<3】会到达Logged in状态。针对于第一问的描述,仅有B符合状态图的表示。
  • [tries<3]和tries+ +分别表示监护条件和转换,带有【】表示限制条件,没带【】的具体操作表示一个状态到另外一个状态的转换。

36、在某系统中,不同组(GROUP)访问数据的权限不同,每个用户(User)可以是一个或多个组中的成员,每个组包含零个或多个用户。现要求在用户和组之间设计映射,将用户和组之间的关系由映射进行维护,得到如下所示的类图。该设计采用(1)模式,用一个对象来封装系列的对象交互;使用户对象和组对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。该模式属于(2)模式,该模式适用: (3)。

软件设计师 考试 python 软件设计师考试题目_python_03

(1)
A、状态(State)
B、策略(Strategy)
C、解释器(Interpreter)
D、中介者(Mediator)
(2)
A、创建型类
B、创建型对象
C、行为型对象
D、行为型类
(3)
A、需要使用一个算法的不同变体
B、有一个语言需要解释执行,并且可将句子表示为一个抽象语法树
C、一个对象的行为决定于其状态且必须在运行时刻根据状态改变行为
D、一组对象以定义良好但是复杂的方式进行通信,产生的相互依赖关系结构混乱且难以理解。
参考答案:D、C、D
答案解析:
本题考查设计模式的问题。
针对于题干和图示来看,不同组(GROUP)访问数据的权限不同,每个用户(User)可以是一个或多个组中的成员,每个组包含零个或多个用户。现要求在用户和组之间设计映射,将用户和组之间的关系由映射进行维护,在组和用户之间用UserGroupMapper实现两者的交互,两者之间不直接交互,用一个对象来封装系列的对象交互;使用户对象和组对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互,是典型关于中介者模式的描述和应用。

中介者模式属于行为型对象模型,可以适用于一组对象以定义良好但是复杂的方式进行通信,产生的相互依赖关系结构混乱且难以理解。

其中以下场景中A选项是对策略模式的描述,B选项是对解释器的描述,C选项是对状态模式的描述。

37、在设计某购物中心的收银软件系统时,要求能够支持在不同时期推出打折、返利、满减等不同促销活动,则适合采用( )模式。
A、策略(Strategy)
B、访问者(Visitor)
C、观察者(Observer)
D、中介者(Mediator)
参考答案:A
答案解析:
收银软件系统的计入规则有:打折、返利、满减三种不同的策略,每种策略之间封装起来,可以相互替换,使它们可以独立的变换,属于典型的策略模式。

38、Python语言的特点不包括( )。
A、跨平台、开源
B、编译型
C、支持面向对象程序设计
D、动态编程
参考答案:B
答案解析:
python语言的特点:跨平台、开源、简单易学、面向对象、可移植性、解释性、高级语言、可扩展性、丰富的库、动态编程等等。
综上所述B选项错误,python不是编译型语言,而是解释型语言。

39、在Python语言中,( )是一种可变的、有序的序列结构,其中元素可以重复。
A、元组(tuple)
B、字符串(str)
C、列表(list)
D、集合(set)
参考答案:C
答案解析:

  • python的基础数据结构有:列表(list), 元祖(tuple), 字典(dict), 字符串(string), 集合(set), 数字(num)
  • 列表(list)有序重复可变
  • 字典(dict)有序不重复可变
  • 元祖(tuple)有序重复不可变
  • 集合(set)无序无重复可变(还有个不可变集合frozenset)
  • 字符串(str)有序重复不可变
  • 数字(num)有序重复不可变

40、以下Python语言的模块中,( )不支持深度学习模型。
A、TensorFlow
B、Matplotlib
C、PyTorch
D、Keras
参考答案:B
答案解析:

  • TensorFlow:Tensorflow拥有多层级结构,可部署于各类服务器、PC终端和网页并支持GPU和TPU高性能数值计算,被广泛应用于谷歌内部的产品开发和各领域的科学研究,支持Python语言深度学习。
  • PyTorch:PyTorch是一个针对深度学习,并且使用GPU和CPU来优化的tensor library(张量库,是一个以Python优先的深度学习框架,不仅能实现强大的GPU加速,同时还支持动态的神经网络。
  • Keras:Keras是一个由Python编写的开源人工神经网络库,可以作为Tensorflow、Microsoft-CNTK和Theano的高阶应用程序接口,进行深度学习模型的设计、调试、评估、应用和可视化。
  • Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形,不支持深度学习。