当前位置:首页计算机类软件水平考试中级软件评测师->下图是某企业信息系统一个类图,图中属性和方法前"+"、"#"

下图是某企业信息系统一个类图,图中属性和方法前"+"、"#"和"- " 分别表示公有成员、保护成员和私有成员。其中:

中级软件评测师,章节练习,基础复习,中级软件测评师练习

(1)类Manager重新实现了类 Employee方法 calSalary( ),类Manager中方法querySalary( )继承了其父类Employee方法querySalary( )。(2)创建类 Employee对象时,给其设置职位(position)、基本工资(basicSalary)等信息。方法calSalary( ),根据个人基本工资、当月工资天数(workDays)和奖金(bonus)等按特定规则计算员工工资。(3)类Department中方法statSalary中首先调用了该类方法load( ),获取本部门员工列表,然后调用了类 Employee中方法calSalary( )。现拟采用面向对象方法进行测试。【问题1】图4-1 所示类图中,类manager 和类Employee之间是什么关系?该关系对测试影响是什么?

【问题2】1.类Manager重新实现了类 Employee方法calSalary( ),这是面向对象什么机制?是否需要重新测试该方法?2.类Manager中方法querySalary( )继承了其父类 Employee 方法querySalary( ),是否需要重新测试该方法?【问题3】1.请结合题干说明中描述,给出测试类Employee 方法calSalary( )时测试序列。2.请给出类图中各个类测试顺序。【问题4】从面向对象多态特性考虑,测试方法statSalary( )时应注意什么?

答案:
本题解析:

【问题1】1.泛化关系;2.继承成员函数是否需要测试;对父类测试是否能用到子类上。

【问题2】(1)、多态机制;需要重新测试,因为在子类中重新进行了定义,所以需要重新测试;(2)、不需要重新测试,因为子类继承了父类方法,只要父类该方法通过测试了即可。

【问题3】1、测试序列:Employee( )-calWorkdays()-setBonus()-calSalary()-querySalary();2、先测试Employee类,然后Manager类,最后测试Department类。

【问题4】在测试Department中方法statSalary()时涉及到父类Employee、子类Manager中方法calSalary( )方法,即需要分别对各类calSalary()方法设计测试用例进行测试。

【问题1】考察类图泛化关系。泛化关系(Generalization)也就是继承关系,也称为“is-a-kind-of”关系,泛化关系用于描述父类与子类之间关系,父类又称作基类或超类,子类又称作派生类,泛化关系通常用带空心三角形直线来表示。对泛化关系有三个要求:1、子类与父类应该完全一致,父类所具有属性、操作,子类应该都有;2、子类中除了与父类一致信息以外,还包括额外信息;3、可以使用父类实例地方,也可以使用子类实例;【问题2】该题考察面向对象多态机制和继承机制。多态就是在使用父类引用调用方法时候,不是使用父类中方法,而是父类指向对象方法,这样就实现了多态。继承是指在一个类基础上定义一个新类,原有类叫做父类,新生成类叫子类,继承过程是一个从一般到特殊过程。

【问题3】第一问解析:题干中说明,方法calSalary()根据个人基本工资,当月工资天数和奖金等按特定规则计算,因此需要先计算天数、奖金,才能计算工资,最后才能查询工资。

第二问解析:各种关系强弱顺序:泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖。题目中继承关系,也就是泛化关系,Department类和基类是聚合关系。【问题4】只需要在原有测试分析和基础上增加对测试用例中输入数据类型考虑;先测试基类,然后再分别依据输入数据设计不同测试用例。

更新时间:2022-07-16 19:28
纠错

你可能感兴趣的试题

单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.V(S2)和P(S4)
  • B.P(S2)和V(S4)
  • C.P(S2)和P(S4)
  • D.V(S2)和V(S4)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.V(S1)P(S2)和V(S3)
  • B.P(S1)V(S2)和V(S3)
  • C.V(S1)V(S2)和V(S3)
  • D.P(S1)P(S2)和V(S3)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.P(S4)和V(S4)V(S5)
  • B.V(S5)和P(S4)P(S5)
  • C.V(S3)和V(S4)V(S5)
  • D.P(S3)和P(S4)V(P5)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.P(S3)和V(S4)V(S5)
  • B.V(S3)和P(S4)P(S5)
  • C.P(S3)和P(S4)P(S5)
  • D.V(S3)和V(S4)V(S5)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.P(S2)和P(S4)
  • B.P(S2)和V(S4)
  • C.V(S2)和P(S4)
  • D.V(S2)和V(S4)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.V(S1)、P(S1)和V(S2)V(S3)
  • B.P(S1)、V (S1)和V(S2)V(S3)
  • C.V(S1)、V(S2)和P(S1)V(S3)
  • D.P(S1)、V(S2)和V(S1)V(S3)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.序列图
  • B.状态图
  • C.通信图
  • D.活动图
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.合并分叉
  • B.分支
  • C.合并汇合
  • D.流
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.产甲2套,乙3套
  • B.生产甲1套,乙4套
  • C.生产甲3套,乙4套
  • D.生产甲4套,乙2套
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.见图A
  • B.见图B
  • C.见图C
  • D.见图D
查看答案