软件体系结构试题试题+答案

上传人:jin****ng 文档编号:155341704 上传时间:2022-09-23 格式:DOCX 页数:7 大小:28.12KB
返回 下载 相关 举报
软件体系结构试题试题+答案_第1页
第1页 / 共7页
软件体系结构试题试题+答案_第2页
第2页 / 共7页
软件体系结构试题试题+答案_第3页
第3页 / 共7页
点击查看更多>>
资源描述
1、设计模式一般用来解决什么样的问题(a)A. 同一问题的不同表相B不同问题的同一表相C不同问题的不同表相D.以上都不是2、以下属于面向对象根本原那么的是(c)A继承B.封装C里氏代换D都不是3、Open-Close原那么的含义是一个软件实体(a)A. 应当对扩展开放,对修改关闭.B. 应当对修改开放,对扩展关闭C应当对继承开放,对修改关闭D.以上都不对4、当我们想创立一个具体的对象而又不希望指定具体的类时,可以使用a模式。A. 创立型B.构造型C行为型D.以上都可以5、要依赖于抽象,不要依赖于具体。即针对接口编程,不要针对实现编程,是(d)的表述A开-闭原那么B接口隔离原那么C里氏代换原那么D依赖倒转原那么6、依据设计模式思想,程序开发中应优先使用的是(a)关系实现复用。A, 委派B.继承C创立D.以上都不对复用方式:继承和组合聚合组合委派7、设计模式的两大主题是(d)A系统的维护与开发B对象组合与类的继承C系统架构与系统开发D.系统复用与系统扩展8、单子模式中,两个根本要点(ab)和单子类自己提供单例A构造函数私有B唯一实例C静态工厂方法D.以上都不对9、以下模式中,属于行为模式的是(b)A工厂模式B观察者C适配器以上都是10、“不要和陌生人说话是(d)原那么的通俗表述A. 接口隔离B.里氏代换C.依赖倒转D.迪米特:一个对象应对其他对象尽可能少的了解11、构造者的的退化模式是通过合并c角色完成退化的。A.抽象产品B产品C创立者D使用者12、单子单例,单态模式类图构造如下:以下论述中,关于0.1表述的不正确的选项是(d)A. 1表示,一个单例类中,最多可以有一个实例B. 0.1表示单例类中有不多于一个的实例C. 0表示单例类中可以没有任何实例D. 0表示单例类可以提供其他非自身的实例13、对象适配器模式是a原那么的典型应用。A.合成聚合复用原那么B.里式代换原那么C依赖倒转原那么D.迪米特法那么14、静态工厂的核心角色是aA.抽象产品B.具体产品C.静态工厂D.消费者以下关于静态工厂与工厂方法表述错误的选项是:aA.两者都满足开闭原那么:静态工厂以ifelse方式创立对象,增加需求的时候会修改源代码B静态工厂对具体产品的创立类别和创立时机的判断是混和在一起的,这点在工厂方法中C不能形成静态工厂的继承构造D.在工厂方法模式中,对于存在继承等级构造的产品树,产品的创立是通过相应等级构造的工厂创立的。15. 在观察者模式中,表述错误的选项是cA. 观察者角色的更新是被动的。B. 被观察者可以通知观察者进展更新C观察者可以改变被观察者的状态,再由被观察者通知所有观察者依据被观察者的状态进展。D.以上表述全部错误。16. 对于违反里式代换原那么的两个类,可以采用的候选解决方案错误的选项是:dA. 创立一个新的抽象类C作为两个具体类的超类,将A和B共同的行为移动到C中,从而解决A和B行为不完全一致的问题。B. 将B到A的继承关系改组成委派关系。C. 区分是“IS-a还是Hasa。如果是“ls-a,可以使用继承关系,如果是Hasa应该改成委派关系D. 以上方案错误对象组合的有点表述不当的是dA.容器类仅能通过被包含对象的接口来对其进展访问。B.“黑盒复用,封装性好,因为被包含对象的内部细节对外是不可见。C. 通过获取指向其它的具有一样类型的对象引用,可以在运行期间动态地定义对象的组合D. 造成极其严重的依赖关系。17. 关于继承表述错误的选项是:dA. 继承是一种通过扩展一个已有对象的实现,从而获得新功能的复用方法。B. 泛化类超类可以显式地捕获那些公共的属性和方法。特殊类子类那么通过附加属性和方法来进展实现的扩展。C. 破坏了封装性,因为这会将父类的实现细节暴露给子类。D. 继承本质上是“白盒复用,对父类的修改,不会影响到子类。18. 对于依赖倒转的表述错误的选项是eA. 依赖于抽象而不依赖于具体,也就是针对接口编程。B. 依赖倒转的接口并非语法意义上的接口,而是,一个类对其他对象进展调用时,所知道的方法集合。C. 从选项B的角度论述,一个对象可以有多个接口。D. 实现了同一接口的对象,可以在运行期间,顺利地进展替换。而且不必知道所示用的对象是那个实现类的实例。E此题没有正确答案。19. 面向对象的六条根本原那么包括:开闭原那么,里式代换原那么,合成聚合原那么以及依赖倒转,迪米特法那么,单一原那么,接口隔离?。20. 在存在继承关系的情况下,方法向超类方向集中,而数据向子类方向集中。继承21. 适配器模式,分为类的适配器和对象的适配器两种实现。其中类的适配器采用的是关系,而对象适配器采用的是组合聚合关系。22. 设计模式的根本要素有名字,意图,问题,解决方案,参与者与协作者,实现,一般性构造。23. 创立型模式的根本意图是要把对象的创立和使用别离的责任进展分离,从而降低系统的耦合度。24. 工厂模式分为(简单工厂),(工厂方法),(抽象工厂)三种类型门面模式是(迪米特)法那么的典型运用25. MVC模型的根本工作原理是基于(观察者)模式,实现是基于命令模式设计模式的思想根源是(开闭)根本原那么的宏观运用,本质上是没有任何模式的,发现模式的人永远是大师,而死守模式的人,最对只能是一个工匠.UML、设计模式(测试题)不定项选择题:1一个软件产品是否成功,因素有。l 需求收集是否正确体系构造的构建是否合理2 测试是否完全软件的管理2开发过程中最困难的一个环节是人与人之间的交流。3用例是从用户的观点对系统行为的一个描述。4顺序图所表达的是基于时间顺序的动态交互。5当需要在工程中定制自己的元素时,可使用构造型来定制。6表示一个操作中的参数和返回值的数据类型的称呼是形构。7多重性5,10表示5或者10。8在找出了类的继承关系后,通常可以用接口来表示最上层的基类。9. UML中的实现是一种特殊类型的继承,因为它是指从一个接口继承。10使用用例的难点在于用例中各个场景的具体步骤。11收集用例的方法是交谈。12产生类图和得到用例这两个步骤,位于前面的是没有固定顺序。13面向对象理论中,对象之间发送信号,在UML状态图里就是事件。14顺序图中,动态创立对象表示法的特点是是在时间线上的某一点创立,完毕时尾部打X。15当代软件工程的特点是。1 允许各个阶段进展迭代各个阶段没有明显的分界限2 允许后期得到的信息返回,使得早期的能够被修改。16GRAPPLE中最重要的段是。l 需求收集需求分析2 用例开发编码3 测试。模。模17设计模式的根本要素有名称,目的意图,解决方案,实施后到达的效果当我们想创立一个具体的对象而又不希望指定具体的类时,可以使用创立性式。桥接模式。命令模策略18. 当我们想将抽象局部和实现局部别离时,可以使用当我们想用不同的请求对客户进展参数化时,可以使用式。19. 当我们想封装不同算法并使它们可相互替换时,可以使用模式。20. 面向对象系统中功能复用的两种最常用技术是。I 对象组合优先使用类继承限制使用类继承-产生类爆炸21. 面向对象系统中的“黑盒复用是指对象组合。22. 对象组合是通过获得抽象类的指针而在运行时刻动态定义的。23. 设计模式中应优先使用的复用技术是对象组合丨。24. 在Lexi系统中,我们把所有文档元素都看作是图元,这样,它们就有了相同的接口他叫类型)。25. Lexi系统中,我们之所以能对文档采用Composite模式,是因为文档的元素之间有(递归(树型构造)关系。填空题:1. 软件体系构造是指一个系统的有目的的设计和规划,这个设计规划既不描述活动,也不描述系统怎样开发,它只描述系统的组成元素及其相互的交互协作。2 .一个UML模型只描述了一个系统要做什么,它并没告诉我们系统是怎么做。3 .接口是可以在整个模型中反复使用的一组行为,是一个没有属性而只有方法的类。4 .多重性指的是,某个类有多个个对象可以和另一个类的1个对象关联。5. 当一个类的对象可以充当多种角色时,自身关联就可能发生。4 .在泛化关系中,子类可以替代父类。也就是说,后者出现的地方,前者都可以出现。但是反过来却不成立。5 .最通常的依赖关系是一个类操作的形构中用到了另一个类的定义。&组成是强类型的聚集,因为聚集中的每个局部体只能属于个整体。9.实现的符号和继承的符号有相似之处,两者的唯一差异是实现关系用_虚线表示,继承关系用表示。10. UML背后的两个重量级概念是用例和面向对象。多个对象11. 状态图和类图、顺序图不同之处在于,后两种图能够对建立模型,而状态图只是对1个对象建立模型。12. 状态图中3个常用的动作是入口动作、出口动作和do动作,也就是对象处于这个状态时应该做什么。13顺序图中,消息用水平箭头线表示;时间用垂直虚线表示。14当逻辑发生分支时,在顺序图中用生命线发生的分支表示,在协作图中用嵌套的序号表示。15. 顺序图强调的是交互的时间顺序,协作图强调的是交互的空间关系和参与交互的对象的上下文环境。16. GRAPPLE把开发过程分为5个_,之中又由许多动作组成。17. GRAPPLE过程中,得到初步类图是在需求收集段,细化类图是在需求分析段。18. 每一个设计模式都集中于一个特定的设计问题,描述了相互通信的对象或者类_以及解决方案和解决效果。19面向对象系统中功能复用的两种最常用技术是对象组合和类继承。20.设计模式中应优先使用对象组合而不是类继承。简答题.类图在UML中有何重要作用?答:1为开发人员提供这种模仿现实世界的表达方式。2. 让分析员使用客户所采用的术语和客户交流,促使客户说出所要解决的问题的重要细节。1 阐述用例对于系统开发人员来说的价值。答:是用来从用户的观察角度收集系统需求的一项技术,便于分析员与客户和用户交流,使系统更符合用户的需求3简述如何在实际工作中发现类。答:在与客户的交谈中,要注意客户用来描述业务实体的名词术语。这些名词可作为领域模型中的类。还要注意你听到的动词,因为这些动词可能会构成这些类中的操作。当得到一组类的核心列表后,应当向客户询问在业务过程中每个类的作用。他们的答复将告诉你这些类的职责。3 简述怎样发现类之间的继承关系。答:作为候选的类有可能和它的父类、子类在谈话中同时被发现。系统分析员意识到某个类的属性和操作也许能被运用到其他多个类当中去。另一种可能的情况是系统分析员注意到两个或者多个类可能具有一样的属性和操作数试使用UML的关系表示法,表示出大学计算机专业中如下这些课程的模型:C语言程序设计、C+语言程序设计、Windows程序设计、网络程序设计。注意抽象类和依赖的使用。6. 画出图形用户界面GUI的状态图,要包括屏幕保护状态。其中要说明相应的事件、动作。答:图形用户界面(GUI)是一个可以说明状态转移细节的例子。在这里,假设GUI可以处于以下3种状态之一:Initializing(初始化)。Working(工作)。ShutDown(关闭)。当翻开PC电源的时候,自启动发生。因此TurningthePCon(翻开PC)是一个触发器事件,它导致了GUI的状态转移到Initializing状态,而Bootup(自启动)是一个在转移过程中执行的动作。由于Initializing状态中活动的完成,GUI将转移进入Working状态。当你对PC选择ShutDown(关闭机器)时,就引发了ShutDown触发器事件,最后PC自己切断电源,整个过程完毕。下面的状态图捕获了GUI的这些状态和转移。以下图是GUI参加了Screensaving状态和保护条件的状态图,注意图中的保护条件isTimeout,被写成一个布尔表达式。7顺序图和协作图中,消息有哪三种?各自的意义和表示法什么?答:消息可以是简单的(simple)、同步的(synchronous)或异步的(asynchronous)。简单消息是从一个对象到另一个对象的控制流的转移。如果一个对象发送了个同步消息,那么它要等待对方对消息的应答,收到应答后才能继续自己的操作。而发送异步消息的对象不需要等待对方的应答便可以继续自己的操作。在顺序图中,简单消息是一个简单箭头,同步消息是实心箭头。异步消息是一个半边箭头,8画出自动饮料销售机中,理想场景和“钱数不正确的场景合并在一起的顺序图假设在饮料销售机中有3个对象来做上述工作:前端(Front)(它是饮料销售机与顾客之间的接口),钱币记录仪(Register它负责收集顾客投的钱币),以及分配器(Dispenser)。我们还假设钱币记录仪控制分配器对象。那么对象之间的交互序列可能如下所示:1顾客向机器前端的槽缝中投入钱币。2顾客选择所要购置的饮料品种。3钱币被转送给记录仪。4由于这是一个理想情况下的场景,假设有饮料存货,那么记录仪控制分配器将一罐饮料投递到销售机的前端。由于上述对应的序列图只覆盖了用例“Buysoda的一个场景(也就是一个实例),因此它被称之为实例顺序图(instaneesequeneediagram)。以下图显示了对应的实例顺序图。注意图中只有简单消息,每个消息都引起控制流程从一个对象转移到另一个对象。对于“钱数不正确场景:1记录仪检查顾客输入的钱币数星是否与所要购置的饮料价格匹配。2如果输入数量大于价格,那么记录仪计算两者之间的差额并检查机器中存有的金额。3如果机器中刚好有能找给顾客的零钱,那么记录仪将零钱找给顾客,一切按正常情况继续进展。4如果没有零钱找给顾客,那么记录仪退回忆客投入的钱币,并显示一个消息,提示顾客重新输入数量正确的金额。5如果顾客所输入的金额少于所要购置的饮料价格,那么记录仪什么也不做,机器等待顾客继续投入钱币。答:为了表示顺序图中的每个“if分支,可以将“if选择条件写在方括号中,放到对应的消息箭头上,即增加input=price,changeinreserve和changenotinreserve3个选择条件。每个条件都引起消息中的控制流的一个“分支,将消息分为多条路径。不同的消息路径最终可以到达同个对象。为了表达这种关系,接收对象的生命线可分为多余路径。在消息序列的某一点上,信息的分支可以合并,生命线的路径也是如此。以下图是参加了场景“钱数不正确后的图。9画出自动饮料销售机中,理想场景和“钱数不正确的场景合并在一起的协作图。下面先来看看用例“BuySoda(买饮料)的最理想场景下的交互序列:1顾客向机器前端的槽缝中投入钱币。2顾客做出一个选择,选择所要购置的饮料品种。3钱币被转送给记录仪。4由于这是个理想情况下的场景,所以记录仪控制分配器将一罐饮料投递到销售机的前端。这个场景的协作图如以下图所示。下面再看“钱数不正确场景的协作图。这个协作图中要出现以下几个条件:1用户输入的钱数超过了所要购置的饮料价格。2饮料销售机中备有可找给顾客的零钱。3饮料销售机中没有可找给顾客的零钱。在协作图中条件的表示方法与在顺序图中一样,都是用方括号将条件表达式括起来,放在消息名的前面。但是要注意的是消息的条件和序号之间的匹配关系。条件和序号可能会使图变得复杂,因此让我们一步一步地来建立这个场景的协作图,这个图的前提条件是用户输入的钱比所要购置的饮料价格高,并且机器中备有找给顾客的零钱。首先增加机器给顾客找零的消息,并为该消息附加上条件。给顾客找零消息是检查是否有找给顾客的零钱这一消息的直接后续消息。为了说明两条消息之间的这种关系,这两个消息采用同一序号,用序号后面的点再接序号来区分它们。这叫做消息嵌套(nesting)。以下图说明了这个顺序图的细节。如果机器中没有零钱可找会怎么样呢?销售机必须显示一条“无零钱信息提示给顾客,并将顾客投入的钱币退出,提示顾客投入零钱。实际上,这时交易就结束了。要增加这个条件,就要增加控制流的分支。可以用嵌套序号表示这个控制流的序号。因为它是第2个被嵌套的消息,因此圆点后面的序号是2。最后,由于交易已经完毕,该消息上要附加构造型?transactionover?来说明交易结束。此外还有另个发送饮料的消息。以下图是这个场景的顺序图。10简述接口对于构件的重要意义。答:只能通过构件的接口来使用构件中定义的操作。构件可以让它的接口被其他构件使用,以使其他构件可以使用这个构件中定义的操作。提供效劳的构件提供了导出接口,访问效劳的构件使用了导入接口。11简述当代面向对象软件工程的特点和优点。允许各个阶段进展迭代各个阶段没有明显的分界限允许后期得到的信息返回,使得早期的能够被修改,重用性高、维护性好、扩展性高12GRAPPLE过程中,需求收集段的各个动作是什么?分别有什么工作产品?答:1发现业务过程工作产品是一个或者一组能够捕获业务过程中的步骤和判定点的活动图。2领域分析工作产品是一个高层的类图和会谈记录。2 识别协作系统工作产品是新建的系统的部署图3 发现系统需求会议得到的工作产品是一个包图。4 将结果提交给客户这个动作的工作产品视不同的组织而不同。13简述类继承和接口继承的区别?我们应该尽量使用哪一种?答:类继承根据一个对象的实现定义了另一个对象的实现。简而言之,它是代码和表示的共享机制。然而,接口继承描述了一个对象什么时候能被用来替代另一个对象。类继承是派生中的类将继承父类的所有属性和方法,并且可以在派生类里添加自己的属性和方法,而接口继承那么是在接口里只定义接口的方法,没有属性,并且方法不能实现,只有在派生他的类才实现该方法。类继承是编译的时候新建对象,而接口实例是在运行时刻创立对象。我们应该尽量使用接口继承,类继承会产生类爆炸现象14只根据抽象类中定义的接口来操纵对象有什么好处?1)客户无须知道他们使用对象的特定类型,只须对象有客户所期望的接口。2)客户无须知道他们使用的对象是用什么类来实现的,他们只须知道定义接口的抽象类。15可复用的面向对象设计的两条原那么是什么?1.针对接口编程,而不是针对实现编程。不要将变量声明为一个特定类的实例对象,而是让他遵从抽象类所定义的接口2.优先使用对象组合,而不是类继承。16设计模式的两大主题是什么?对象组合,类继承的讨论17面向对象系统中功能复用的两种最常用技术是什么?面向对象系统中功能复用的两种最常用技术是类继承和对象组合(objectcomposition)。18. Lexi系统的格式化问题中,我们引入了Compositor和Composition两个类来实现“策略模式。请画出这两个类各自的继承关系和它们之间的协作关系。Compositor和CompositionCompositor类。它的接口见下表可让Compositor获知何时去格式化哪些图元。它所格式化的图元是一个被称为Composition的特定图元的各个子图元。一个Composition在创立时得到一个Compositor子类实例,并在必要的时候如用户改变文档的时候让Compositor对它的图元作Compose操作。以下图描述了Composition类和Compositor类之间的关系。19. Lexi系统的支持多种窗口平台的问题中,我们使用了Window和Windowslmp类来实现桥接模式。请画出这两个类各自的继承关系和它们之间的协作关系。
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 毕设全套


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!