推荐等级:
发布时间: 2021-12-15 16:45
扫码用手机做题
开-闭原则(Open-Closed Principle,OCP)是面向对象的可复用设计的基石。开-闭原则是指一个软件实体应当对( )开放,对( )关闭;里氏代换原则(Liskov Substitution Principle,LSP)是指任何( )可以出现的地方,( )一定可以出现。依赖倒转原则(Dependence Inversion Principle,DIP)就是要依赖于( )而不依赖于(请作答此空),或者说要针对接口编程,不要针对实现编程。
本题解析:
开-闭原则要求一个软件实体应当对扩展开放,对修改关闭。也就是说,我们在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展,换句话说就是,应当可以在不必修改源代码的情况下改变这个模块的行为。
里氏代换原则要求子类型必须能够替换它们的基类型,所以在里氏代换原则中,任何可基类对象可以出现的地方,子类对象也一定可以出现。
依赖倒转原则是:要依赖于抽象,不要依赖于具体。也就是常说的要针对接口编程,不要针对实现编程。
下面的UML类图描绘的是(请作答此空)设计模式。关于该设计模式的叙述中,错误的是( )。
本题解析:
本题主要考查设计模式的相关知识。
桥接模式将抽象部分与实现部分分离,使得它们两部分可以独立地变化。
策略模式定义一系列的算法,将每一个算法封装起来,并让它们可以相互替换。策略模式让算法独立于使用它的客户而变化。
抽象工厂提供了一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,属于对象创建型模式。
观察者模式定义对象间的一种一对多依赖关系,使得每当一个对象改变状态,则其相关依赖对象皆得到通知并被自动更新。
从本题给出的图我们可以判断是观察者模式,其中被观察对象(Subject),具体被观察对象(ConcreteSubject),观察者(Observer)及具体观察者(ConcreteObserver)。在本设计模式中,Observer需要维护至少一个Subject对象,一个Subject对象需要维护多个Observer对象,另外Subject需要通知Observer对象其自身的状态变化。
算术表达式采用后缀式表示时不需要使用括号,使用(请作答此空)就可以方便地进行求值。a-b*(c+d)的后缀式为( )。
本题解析:
计算机在处理算术表达式时,首先将其转换为后缀表达式。例如,表达式“46+5*(120-37)”的后缀表达式形式为“46512037-*+”。计算后缀表达式时,从左至右扫描后缀表达式:若遇到运算对象,则压入栈中,若遇到运算符,则从栈中弹出相关运算对象进行计算,并将运算结果压入栈中,重复以上过程,直到后缀表达式扫描结束。表达式“a-b*(b+d)”的后缀表达式形式为“abcd+*-。
螺旋模型综合了______的优点,并增加了这两种模型忽略的风险分析。
本题解析:
本题考查对软件模型的了解。对于复杂的大型软件,开发一个原型往往达不到要求。螺旋模型将瀑布模型与演化模型结合起来,并且加入两个模型均忽略了的风险分析。螺旋模型是软件开发的高级策略,它不仅适合结构化方法,而且更适合面向对象方法。它的实施将对软件开发组织的工作模式、人员素质、管理和技术水平产生深远的影响,是最有前途的过程模型之一。
在UML中,( )用于画出结构化类的内部内容。
本题解析:
组合结构图用于画出结构化类的内部内容。顺序图由一组对象或参与者以及它们之间可能发送的消息构成。强调消息的时间次序的交互图。通信图强调收发消息的对象或参与者的结构组织。强调的是对象之间的组织结构(关系)。
UML用系统视图描述系统的组织结构。其中,( )对组成基于系统的物理代码的文件和构件进行建模。
本题解析:
UML用系统视图描述系统的组织结构,具体来说,就是指以下5个系统视图:
①逻辑视图。逻辑视图也称为设计视图,它表示了设计模型中在架构方面具有重要意义的部分,即类、子系统、包和用例实现的子集。
②进程视图。进程视图是可执行线程和进程作为活动类的建模,它是逻辑视图的一次执行实例,描述了并发与同步结构。
③实现视图。实现视图对组成基于系统的物理代码的文件和构件进行建模。
④部署视图。部署视图把构件部署到一组物理节点上,表示软件到硬件的映射和分布结构。
⑤用例视图。用例视图是最基本的需求分析模型。
开-闭原则(Open-Closed Principle,OCP)是面向对象的可复用设计的基石。开-闭原则是指一个软件实体应当对( )开放,对(请作答此空)关闭;里氏代换原则(Liskov Substitution Principle,LSP)是指任何( )可以出现的地方,( )一定可以出现。依赖倒转原则(Dependence Inversion Principle,DIP)就是要依赖于( )而不依赖于( ),或者说要针对接口编程,不要针对实现编程。
本题解析:
开-闭原则要求一个软件实体应当对扩展开放,对修改关闭。也就是说,我们在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展,换句话说就是,应当可以在不必修改源代码的情况下改变这个模块的行为。
里氏代换原则要求子类型必须能够替换它们的基类型,所以在里氏代换原则中,任何可基类对象可以出现的地方,子类对象也一定可以出现。
依赖倒转原则是:要依赖于抽象,不要依赖于具体。也就是常说的要针对接口编程,不要针对实现编程。
类封装了信息和行为,是面向对象的重要组成部分。在系统设计过程中,类可以划分为不同种类。身份验证通常属于( ),用户通常属于(请作答此空)。
本题解析:
类可以分为三种类型,分别是实体类、边界类和控制类。1、实体类实体类的主要职责是存储和管理系统内部的信息,它也可以有行为,甚至很复杂的行为,但这些行为必须与它所代表的实体对象密切相关。2、控制类控制类用于描述一个用例所具有的事件流控制行为,控制一个用例中的事件顺序。例如,用例“身份验证”可以对应于一个控制类“身份验证器”,它提供了与身份验证相关的所有操作。控制类用于对一个或几个用例所特有的控制行为进行建模,控制对象(控制类的实例)通常控制其他对象,因此,它们的行为具有协调性。通常情况下,控制类没有属性,但一定有方法。3、边界类边界类用于描述外部参与者与系统之间的交互,它位于系统与外界的交接处,包括所有窗体、报表、打印机和扫描仪等硬件的接口,以及与其他系统的接口。要寻找和定义边界类,可以检查用例模型,每个参与者和用例交互至少要有一个边界类,边界类使参与者能与系统交互。边界类是一种用于对系统外部环境与其内部运作之间的交互进行建模的类。常见的边界类有窗口、通信协议、打印机接口、传感器和终端等。实际上,在系统设计时,产生的报表都可以作为边界类来处理。
基于RUP的软件过程是一个迭代过程。一个开发周期包括初始、细化、构建和移交四个阶段,每次通过这四个阶段就会产生一代软件,其中建立完善的架构是( )阶段的任务。
本题解析:
RUP中的软件过程在时间上被分解为4个顺序的阶段,分别是初始阶段、细化阶段、构建阶段和移交阶段。初始阶段的任务是为系统建立业务模型并确定项目的边界。细化阶段的任务是分析问题领域,建立完善的架构,淘汰项目中最高风险的元素。在构建阶段,要开发所有剩余的构件和应用程序功能,把这些构件集成为产品。移交阶段的重点是确保软件对最终用户是可用的。基于RUP的软件过程是一个迭代过程,通过初始、细化、构建和移交4个阶段就是一个开发周期,每次经过这4个阶段就会产生一代产品,在每一轮迭代中都要进行测试与集成。
某在线交易平台的“支付”功能需求描述如下:客户进行支付时,可以使用信用卡支付或支付宝支付。从中抽象出3个用例:支付、信用卡支付和支付宝支付,这3个用例之间的关系是( )。
本题解析:
在用例模型中,用例之间的关系主要有包含、扩展和泛化,利用这些关系,把一些公共的信息抽取出来,以便于复用,使得用例模型更易于维护。①包含关系。当可以从两个或两个以上的用例中提取公共行为时,应该使用包含关系来表示它们。其中这个提取出来的公共用例称为抽象用例,而把原始用例称为基本用例或基础用例。②扩展关系。如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种分支,则可以将这个用例分为一个基本用例和一个或多个扩展用例,这样使描述可能更加清晰。③泛化关系。当多个用例共同拥有一种类似的结构和行为的时候,可以将它们的共性抽象成为父用例,其他的用例作为泛化关系中的子用例。在用例的泛化关系中,子用例是父用例的一种特殊形式,子用例继承了父用例所有的结构、行为和关系。本题中的3个用例“支付”“信用卡支付”和“支付宝支付”之间满足泛化关系。?
试卷分类:高级系统规划与管理师
练习次数:82次
试卷分类:中级系统集成项目管理工程师
练习次数:94次
试卷分类:中级软件设计师
练习次数:99次
试卷分类:中级网络工程师
练习次数:108次
试卷分类:初级网络管理员
练习次数:111次
试卷分类:中级数据库系统工程师
练习次数:101次
试卷分类:中级软件评测师
练习次数:89次
试卷分类:中级信息安全工程师
练习次数:84次
试卷分类:中级信息安全工程师
练习次数:82次
试卷分类:中级软件设计师
练习次数:86次