单选题 McCall软件质量模型把软件的质量特性分为三个重要的方面,属于软件产品运行方面的特性有{{U}} {{U}} 66 {{/U}} {{/U}},属于软件产品修改方面的特性有{{U}} {{U}} 67 {{/U}} {{/U}}。
单选题
  • A.可移植性
  • B.可维护性
  • C.可使用性
  • D.灵活性
【正确答案】 C
【答案解析】
单选题
  • A.互操作性
  • B.可测试性
  • C.可重用性
  • D.完整性
【正确答案】 B
【答案解析】[解析] 评价软件的质量通常可以从产品运行、产品修改和产品转移三个不同角度来进行。
单选题 用例(use-case)用来描述系统在对事件做出响应时所采取的行动。用例之间是具有相关性的。在一个“订单输入子系统”中,创建新订单和更新订单都需要核查用户账号是否正确。那么,用例“创建新订单”、“更新订单”与用例“核查客户账号”之间是{{U}} {{U}} {{/U}} {{/U}}关系。
  • A.包含(include)
  • B.扩展(extend)
  • C.分类(classification)
  • D.聚集(aggregation)
【正确答案】 A
【答案解析】[解析] 用例是在系统中执行的一系列动作,这些动作将生成特定参与者可见的价值结果。它确定了一个和系统参与者进行交互、并可由系统执行的动作序列。用例模型描述的是外部执行者(actor)所理解的系统功能。用例模型用于需求分析阶段,它的建立是系统开发者和用户反复讨论的结果,表明了开发者和用户对需求规格达成的共识。 两个用例之间的关系可以概括为两种情况。一种是用于重用的包含关系,用构造型include或use表示;另一种是用于分离出不同行为的扩展,用构造型 extend表示。 (1)包含关系 当可以从两个或两个以上的原始用例中提取公共行为,或者发现能够使用一个构件来实现某一个用例的部分功能很重要时,我们应该使用包含关系来表示它们。 (2)扩展关系 如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种事情。我们可以断定将这个用例分为一个主用例和一个或多个辅用例描述可能更加清晰。 另外,用例之间还存在一种泛化关系。用例可以被特别列举为一个或多个子用例,这被称作用例泛化。当父用例能够被使用时,任何子用例也可以被使用。例如,我们购买飞机票,既可以是电话订票,也可以是网上订票,则订票用例就是电话订票和网上订票的抽象。
单选题 雇员类含有计算报酬的行为,利用面向对象的{{U}} {{U}} {{/U}} {{/U}},可以使得其派生类专职雇员类和兼职雇员类计算报酬的行为有相同的名称,但有不同的计算方法。
  • A.多态性
  • B.继承性
  • C.封装性
  • D.复用性
【正确答案】 A
【答案解析】[解析] 在面向对象技术中,多态考虑的是类与类之间的层次关系,以及类自身内部特定成员函数之间的关系问题,解决功能和行为的再抽象问题。多态是指类中具有相似功能的不同函数用同一个名称来实现,从而可以使用相同的调用方式来调用这些具有不同功能的同名函数。这也是人类思维方式的一种直接模拟,比如一个对象中有很多求两个数最大值的行为,虽然可以针对不同的数据类型,写很多不同名称的函数来实现,但事实上,它们的功能几乎完全相同。这时,就可以利用多态的特征,用统一的标识来完成这些功能。这样,就可以达到类的行为的再抽象,进而统一标识,减少程序中标识符的个数。 严格地说,多态性可分为4类,分别为过载多态(重载多态)、强制多态、包含多态和参数多态,其中前两种统称为专用多态(特定多态),后面两种也称为通用多态。 包含多态是研究类族中定义于不同类中的同名成员函数的多态行为,主要通过虚函数来实现。包含多态最常见的例子就是子类型化,即一个类型是另一类型的子类型。 参数多态的应用比较广泛,被称为最纯的多态。这是因为同一对象、函数或过程能以一致的形式用于不同的类型。参数多态与类属(类模板)相关联,类属是一个可以参数化的模板,其中包含的操作所涉及的类型必须用类型参数实例化。这样,由类模板实例化的各类都具有相同的操作,而操作对象的类型却各不相同。 过载多态是同一算子(操作符、函数名等)被用来表示不同的功能,通过上下文以决定一个算子所代表的功能,即通过语法对不同语义的对象使用相同的算子,编译能够消除这一模糊。 强制多态是通过语义操作把一个变元的类型加以变换,以符合一个函数的要求,如果不做这一强制性变换将出现类型错误。类型的变换可在编译时完成,通常是隐式地进行,当然也可以在动态运行时来做。 从实现的角度来看,多态可划分为两类,分别是编译时的多态和运行时的多态。前者是在编译的过程中确定同名操作的具体操作对象,而后者则是在程序运行过程中才动态地确定操作所针对的具体对象。这种确定操作的具体对象的过程就是联编(编联、束定或绑定)。联编是指计算机程序自身彼此关联的过程,也就是把一个标识符名和一个存储地址联系在一起的过程;用面向对象的术语讲,就是把一条消息和一个对象的方法相结合的过程。 按照联编进行阶段的不同,可以分为两种不同的联编方法,分别为静态联编和动态联编,这两种联编过程分别对应着多态的两种实现方式。 联编工作在编译连接阶段完成的情况称为静态联编。因为联编过程是在程序开始执行之前进行的,因此有时也称为早期联编或前联编。在编译和连接过程中,系统就可以根据类型匹配等特征确定程序中操作调用与执行该操作代码的关系,其确定了某一个同名标识到底是要调用哪一段程序代码。有些多态类型,其同名操作的具体对象能够在编译、连接阶段确定,通过静态联编解决,比如过载、强制和参数多态等。 和静态联编相对应,联编工作在程序运行阶段完成的情况称为动态联编,也称为晚期联编或后联编。在编译、连接过程中无法解决的联编问题,要等到程序开始运行之后再来确定,包含多态的操作对象的确定就是通过动态联编完成的。