复习题11

一、选择题

一、选择题

1、常用的设计模式可分为( )。 [单选题]

A、 创建型、结构型和行为型(正确答案)
B、 对象型、结构型和行为型
C、 过程型、创建型和结构型
D、 抽象型、接口型和实现型

答案:A

 

2、设计模式的原理? ( ) [单选题]

A、 面对实现编程
B、 面向对象编程
C、 面向接口编程(正确答案)
D、 面向组合编程

答案:B

 

3、在根据不同的机器选择设备驱动程序的案例中,以下叙述不准确的是( )。 [单选题]

A、 可以使用 switch 语句选择驱动程序.
B. 可以使用继承来实现选择驱动程序,但它可能会产生类组合爆炸问题..
C. 可以选择抽象工厂模式实现,且能避免组合爆炸问题.
D. 使用继承的解决方案要比 switch 语句有更多的优势.(正确答案)

答案:D

 

4、以下意图那个是用来描述CHAIN OF RESPONSIBILITY(职责链)? ( ) [单选题]

A、 为子系统中的一组接口提供一个一致的界面,本模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
B、 提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。
C、 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。
D、 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。(正确答案)

答案:D

 

5、以下对"开-闭"原则的一些描述错误的是?( ) [单选题]

A、 "开-闭"原则与"对可变性的封装原则"没有相似性.(正确答案)
B、 找到一个系统的可变元素,将它封装起来,叫"开-闭"原则
C、 对修改关闭: 是其原则之一
D、 从抽象层导出一个或多个新的具体类可以改变系统的行为,是其原则之一

答案:A

 

6、关于继承表述错误的是:( )。 [单选题]

A、 继承是一种通过扩展一个已有对象的实现,从而获得新功能的复用方法。
B、 超类可以显式地捕获那些公共的属性和方法。子类则通过附加属性和方法来进行实现的扩展。
C、 在一定意义上说破坏了封装性,因为这会将父类的实现细节暴露给子类。
D、 继承本质上是“白盒复用”,对父类的修改,不会影响到子类。(正确答案)

答案:D

 

7、功能模型中所有的(A)往往形成一个层次结构。在这个层次结构中一个数据流图的过程可以由下一层的数据流图作进一步的说明。

A、数据流图 B、概念模型图 C、状态迁移图 D、事件追踪图

答案:A

 

8、(A)应当在应用分析之前进行,因为我们在了解问题之前应当对问题敞开思想考虑,不应加以限制。

A、问题域分析 B、高层分析 C、实例的建立 D、类的开发

 

9、通过执行对象的操作改变对象的属性,但它必须通过(B)的传递。

A、接口 B、消息 C、信息 D、操作

 

10、人们常用的评价软件质量的4个因素是( B )

A.可维护性、可靠性、健壮性、效率 B.可维护性、可靠性、可理解性、效率

C.可维护性、可靠性、完整性、效率 D.可维护性、可靠性、移植性、效率

 

11、 面向对象模型主要由以下哪些模型组成(A)

A对象模型、动态模型、功能模型 B对象模型、数据模型、功能模型

C数据模型、动态模型、功能模型 D对象模型、动态模型、数据模型

 

12、下列几种耦合类型中,耦合性最弱的是( D )。

A、内容型 B、控制型 C、公共型 D、数据型

 

13、以下对开闭原则的描述错误的是(A)。

A.开闭原则与“对可变形的封装原则”没有相似性

B.找到一个系统的可变元素,将它封装起来,叫开闭原则

C.对修改关闭,是其原则之一

D. 从抽象层导出一个或多个新的具体类可以改变系统的行为,是其原则之一

答案:A

 

14、常用的基本设计模式可分为(A)。

A.创建型、结构型和行为型 B.对象型、结构型和行为型

C.过程型、结构型和行为型 D.抽象型、接口型和实现型

 

15、下列属于面向对象基本原则的是(C)。

A.继承 B.封装 C.里氏替换 D.子类复用

 

16、对违反里氏替换原则的两个类,可以采用的候选解决方案正确的是(D)。

A.创建一个新的抽象类C,作为两个具体类的超类,将A和B共同的行为移动到C中,从而解决A和B行为不完全一致的问题。

B.将B到A的继承关系改成组合关系。

C.区分是“is-a”还是“has-a”。如果是“is-a”,可以使用继承关系,如果是“has-a”应该改成组合关系。

D.尽量将一些需要扩展的类或者存在变化的类设计为抽象类或者接口,并将其作为基类,在程序中尽量使用基类对象进行编程。

 

17、要依赖于抽象,不要依赖于具体,即针对接口编程,不要针对实现编程,是(D)的表述。

A.开-闭原则 B.接口隔离原则 C.里氏代换原则 D.依赖倒转原则

 

18、经典的体系结构风格包括(ABCDE)。改为单选

A:数据流风格 B:调用/返回风格 C:独立构件风格 D:虚拟机风格 E:仓库风格

 

19、分布式方法开发系统的主要优势是(ABCD)。

A:资源共享与开放性 B:并发性与可扩展性 C:容错性与透明性 D:开放性

 

20、Web服务开发生命周期包括:(ABCD)。

A:构建 B:部署 C:运行 D:管理

 

二、判断题

二、判断题

  1. 继承本质上是“白盒复用”,对父类的修改,不会影响到子类。 [×]

  2. 模块内的高内聚往往意味着模块间的松耦合。(√ )

  3. UML只能应用于软件系统模型的建立。(X)

  4. “不要和陌生人说话”是迪米特原则的通俗表述。(√)

  5. 依据设计模式思想,程序开发中应优先使用的是创建。 (✗)

  6. 单一职责原则的核心思想是系统中的每一个对象都应该只有一个单独的职责,而所有对象所关注的就是自身职责的完成。(√)

  7. 依赖倒置原则的核心思想是要依赖于抽象,而不要依赖于具体的实现(√)

  8. 合理的设计模式应该面向对象编程。对

  9. 体系结构设计是整个软件生命周期中关键的一环,一般在需求分析之前进行。[×]

  10. 基于事件的隐式调用风格的思想是构件不直接调用一个过程,而是触发或广播一个或多个事件。答案:√

  11. 正交软件体系结构由组织层和线索的构件构成。答案:√

  12. SOA模型具有松散耦合、细粒度服务、标准化接口等特征。答案:×(粗粒度,SOA是一个组件模型)

  13. 层次系统中支持抽象程度递增的系统设计是设计师可以把一个复杂系统按照递增的步骤进行分解,同时支持功能增强,但是不支持重用。答案:×

  14. 云计算真正实现了按需计算,从而有效地提高了对软硬件资源的利用效率。( √ )

  15. 软件体系结构的评估方法主要有调查问卷、检查表、场景、度量、比较5种。( × )

 

 

三、填空题

三、填空题

  1. 结构化分析方法的分析策略是:(自顶向下,逐步求精)

  2. 衡量模块独立性的两个定性标准是:(耦合性和内聚性)

  3. 工厂模式分为(简单工厂、工厂方法、抽象工厂三种类型)

  4. 描述面向对象程序设计的六大基本原则:(单一职责原则,开闭原则,里氏代换、依赖倒置,接口隔离,迪米特)

  5. 设计模式一般都遵循的原则:(开闭原则、根据场景设计原则、有限责和原则、包容变化原则)

  6. 一个完整的Web服务包括三种逻辑构件:(服务提供者、服务代理和服务请求。)

  7. 黑板系统主要是由:(知识源、黑板、控制组件)组成

  8. MVC模式的中的M,V,C分别对应_____、_____三种单词。(Model、View、Controller)

  9. 软件体系结构应建立于传统的软件开发过程的__和__阶段之间。(需求分析、软件设计)

  10. __是Web Services进行数据交换时所采用的标准,同时也是Web Services技术的全部规范和技术基础。SOAP、WSDL、UDDI都是使用它进行描述的。(XML)

  11. 三层C/S结构风格是由___ 、_____ 构成的。答案:表示层、功能层、数据层

 

四、解答题

1、在MVC模型中M、V、C分别指什么?简述它们之间的关系?

M:模型(Model),V:视图(View),C:控制Controller)。

MVC模式的目的就是实现Web系统的职能分工。

Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现。

View层用于与用户的交互,通常用JSP来实现。

Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。

 

2、什么是开闭原则?

软件实体应当对扩展开放,对修改关闭,软件系统中包含的各种组件,例如模块(Modules)、类(Classes)以及功能(Functions)等,应该在不修改现有代码的基础上,引入新功能。开闭原则中“开”,是指对于组件功能的扩展是开放的,是允许对其进行功能扩展的;开闭原则中“闭”,是指对于原有代码的修改是封闭的,即不应该修改原有的代码。

 

3、什么是设计模式?设计模式目标是什么?

设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解,保证代码可靠性。

 

4、面向对象系统中功能复用的两种最常用技术是什么?

类继承和对象组合,类继承允许你根据其他类的实现来定义一个类的实现。父类的内部细节对子类可见。类继承是在编译时刻静态定义的,且可直接使用,类继承可以较方便地改变被复用的实现。对象组合是类继承之外的另一种复用选择。新的更复杂的功能可以通过组装或组合对象来获得。对象组合要求被组合的对象具有良好定义的接口。

 

5、只根据抽象类中定义的接口来操纵对象有什么好处?

  1. 客户无须知道他们使用对象的特定类型,只须对象有客户所期望的接口。

  2. 客户无须知道他们使用的对象是用什么类来实现的,他们只须知道定义接口的抽象类。

 

6、使用工厂模式的主要原因是什么?

工厂模式定义:提供创建对象的接口。因为工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a=new A() 工厂模式也是用来创建实例对象的,所以以后new时就要多个心眼,是否可以考虑使用工厂模式,虽然这样做,可能多做一些工作,但会给你系统带来更大的可扩展性和尽量少的修改量

 

7、什么是对象粒度?

所谓的对象粒度就是对象从抽象到具体的描述的程度。同样一个系统,同样的需求。两个设计师给出两种设计。两个设计代码行数差不多,但是类的数目不同。例如有一个对象,我可以用10行代码去构造它,我也可以用20行代码,后者比前者更为精确。

 

8、简述分层系统风格及其优缺点

分层系统风格:系统按照层次结构来组织,每一层向它的上层提供服务,同时又是它的下层客户

优点:

  • 由于对层次的邻接层数目进行了限制,所以系统易于改进和扩展。

  • 每一层的软件都易于重用,并可为某一层次提供多种可互换的具体实现。

  • 分层系统所支持的设计体现了不断增加的抽象层次,这样一个复杂问题的求解就被分解为一系列递增的步骤。

  • 标准化支持。

  • 局部依赖性。

  • 可替换性。

 

缺点:

  • 如何界定层次间的划分是一个较为复杂的问题。

  • 更改行为的重叠

  • 降低效率

  • 不必要的工作

  • 难以认可层的正确粒度

 

9、软件体系结构“4+1” 视图是哪几种视图,简要说明每种视图的特点?

  • 逻辑视图(Logical View),设计的对象模型(使用面向对象的设计方法时)。

  • 过程视图(Process View),捕捉设计的并发和同步特征。

  • 物理视图(PhysicalView), 描述了软件到硬件的映射,反映了分布式特性。

  • 开发视图(Development View),描述了在开发环境中软件的静态组织结构。

  • 场景(scenarios),综合所有视图,进行无缝协同工作。

 

10、C/S 与 B/S 区别

硬件环境不同: B/S 建立在广域网之上的, 不必是专门的网络硬件环境,而C/S 一般建立在专用的网络上,局域网之间再通过专门服务器提供连接和数据交换服务。

对安全要求不同:C/S 一般面向相对固定的用户群, 对信息安全的控制能力很强。 一般高度机密的信息系统采用C/S 结构适宜,可以通过B/S发布部分可公开信息。 B/S 建立在广域网之上, 对安全的控制能力相对弱, 面向是不可知的用户群。

用户接口不同 :C/S 多是建立在Window平台上,表现方法有限,对程序员普遍要求较高。 B/S 建立在浏览器上, 有更加丰富和生动的表现方式与用户交流, 并且大部分难度减低,降低开发成本。

 

 

五、综合设计题

1、神舟六号是神舟系列飞船的一种,它由轨道舱、返回舱、推进舱和逃逸救生塔组成。航天员使用返回舱来驾驭飞船,轨道舱是航天员工作和休息的场所。在紧急情况下,航天员使用逃逸救生塔逃离。飞船的两侧有多个太阳能电池翼,它为飞船提供电能。根据以上描述画出能正确表示它们之间关系的UML图。

 

 

2、某个网上银行的用户登录过程如下:用户先填写用户名和口令,要求登录。如果用户 名和密码正确,则要求输入一个验证码。此时,该用户的手机上将收到一个短信,包 含一个验证码,用户将此验证码填入下一个页面,再提交服务器。如果验证码正确, 则能正常登录,并且验证码只能有效一次,用一个时序图描述这个过程。

 

 

posted @ 2023-06-14 20:31  苏六来了✨  阅读(283)  评论(0)    收藏  举报