1.面向对象编程中是如何体现封装性的?2.面向对象编程的重载和重写的含义是什么?3.什么是接口回调?其过程细节是怎样的?4.是举例说明什么是组合关系和依赖关系?5.距离说明什么是抽象类和接口,有什么区别,如何应用它们?6.面向对象方法有哪些基本原则?①抽象类与接口②面向抽象原则③开-闭原则④“多用组合,少用继承”原则⑤“高内聚-低耦合“原则7.什么是设计模式?它的基本要素有哪些?8.什么是框架?框架与模式的区别有哪些?框架是针对某个领域,提供用于开发应用系统的类的集合。
区别:①层次不同②范围不同③相互关系9.举例说明面向对象的多态性?10.软件体系结构有哪几种形式?1.概念结构:从主要设计元素(构件)及其相互关联、设计原则和性能角度考虑的结构。
2.模块结构:根据功能分解建立模块的层次结构包括模块接口、模块管理、模块控制和一致性等问题。
3.代码结构:描述源程序,二进制程序,库文件。
在开发环境下的组织包括系统资源配置管理,系统构造和对象嵌入机制 OEM 等。
4.执行结构:描述系统的动态结构包括性能、调度、动态配置和不同系统间的接口等。
11.构件之间的连接方式有哪些?1)过程调用: 在某一特定执行路径中传递执行指针。
如普通过程调用、远程过程调用。
2)数据流: 相互独立的处理通过数据流进行交互,在得到数据的同时被赋予控制权限。
如 UNIX 系统中的管道。
3)间接激活: 处理因事件的发生而激活,在处理间没有直接交互。
例如,事件驱动系统、自动垃圾回收等。
4)消息传递: 相互独立的处理间有明确交互,通过显式数据传递。
传递可以是同步的,也可以是异步的。
如TCP/IP 。
5)共享数据: 构件通过同一数据空间进行并发操作。
如多用户数据库, 数据黑板。
12.C/S体系结构的主要组成部分有哪些?其作用是什么?1)服务器:负责给其他子系统提供服务。
如,数据库服务器提供数据存储和管理服务,文件服务器提供文件管理服务,打印服务器提供打印服务等。
2)客户机:向服务器请求服务。
客户机通常都是独立的子系统,在某段时间内,可能有多个客户机程序在并发运行。
3)网络:连接放在不同机器上的客户机和服务器。
13.三层C/S体系结构的数据处理流程是怎样的?14.软件体系结构的评价指标有哪些?1)性能:性能是指系统的响应能力,即响应时间、单位时间的处理量及特定事务的处理时间等。
一般使用基准测试程序对性能进行测试。
2)可靠性:可靠性是指“在特定环境和特定时间内,计算机程序无故障地运行的概率”。
可靠性通常用“平均失效间隔时间”(MTBF)来衡量。
MTBF=MTTF+MTTR3)可用性:可用性是系统能够正常运行的时间比例。
4)安全性:安全性是系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。
安全性又可划分为机密性、完整性、不可否认性及可控性等。
5)可修改性:可修改性是指能够快速地以较高的性能价格比对6)功能性:功能性是系统能完成所期望工作的能力。
一项任务的完成需要系统中许多构件的相互协作。
7)可变更性:可变更性是指体系结构经扩充或变更而成为新体系结构的能力。
这种新体系结构应该符合预先定义的规则,在某些具体方面不同于原有的体系结构。
当要将某个体系结构作为一系列相关产品(例如,软件产品线)的基础时,可变更性有重要的作用。
8)可集成性:集成性是指系统能与其他系统协作的程度。
9)互操作性:作为系统组成部分的软件不是独立存在的,经常与其他系统或自身环境相互作用。
为了支持互操作性,软件体系结构必须为外部可视的功能特性和数据结构提供精心设计的功能入口。
15.什么是ADL,常见的主流ADL有哪些?体系结构描述语言(architecture description language,ADL)是参照传统编程语言,并针对软件体系结构特点,重新设计、开发和使用的专门的软件体系结构描述语言。
主要的体系结构描述语言(ADL):Aesop支持体系结构风格的应用;MetaH为设计者提供了关于实时电子控制系统软件的设计指导;C2支持基于消息传递风格的用户界面系统的描述;Rapide支持体系结构设计的模拟,并提供了分析模拟结果的工具;SADL提供关于体系结构细化的形式化基础;Unicon支持异构的构件和连接类型,并提供了关于体系结构的高层编译器;Wright支持体系结构之间交互的说明和分析。
16.ADL有哪些特性?1)构造能力:ADL能使用较小的独立体系结构元素来建造大型软件系统。
2)抽象能力:ADL可以在描述软件体系结构中的构件和连接件时只关注它们的抽象特性,而不管其具体的实现细节。
3)复用能力:ADL在设计和开发软件系统时可把所用到的构件、连接件甚至是软件体系结构都当做可复用的部件。
4)组合能力:ADL在描述每一系统元素时都要描述其自己的局部结构,这种描述局部结构的特点使得ADL可支持软件系统的动态变化组合。
5)异构能力:ADL允许多个不同的体系结构描述关联存在。
分析和推理能力:ADL允许对其描述的体系结构进行多种不同的性能和功能上的多种推理分析。
17.ADL构成元素?构件:构件是一个计算单元或数据存储。
可以包含多种属性,如接口、类型、语义、约束、演化和非功能属性等接口是构件与外部世界的一组交互点,ADL中的构件接口说明了构件提供了哪些服务。
连接件:用来建立构件之间的交互以及支配这些交互规则的体系结构构造模块。
连接件可以是共享变量、表入口、缓冲区、对连接器的指令、动态数据结构等。
连接件也有接口。
连接件的接口由一组角色组成,连接件的每一种角色定义了该连接件表示的交互的参与者,二元连接有两个角色,如消息传递连接件的角色是发送者和接收者。
体系结构配置:体系结构配置描述体系结构的构件与连接件的连接图。
体系结构配置提供信息来确定构件是否正确连接、接口是否匹配、连接件构成的通信是否正确,并说明实现要求行为的组合语义。
18.设计模式基本要素?模式名用于描述模式的名字,说明模式的问题、解决方案和效果。
问题解决说明在何种场合使用模式。
要描述使用模式的先决条件和特定设计问题解决方案描述设计的成分、它们之间的相互关系、各自的职责和合作方式。
效果描述模式使用的效果,包括对时间和空间的衡量,以及对系统灵活性、可扩充性、可移植性的影响。
19.设计模式分为哪些类型?依据设计模式工作目的不同,模式可分为1)创建型模式 (Creational pattern) 与对象的创建有关;2)结构型模式(Structural pattern) 处理类和对象的组合,将一组对象组合成一个大的结构,例如复杂的用户界面;3)行为型模式 (Behavioral pattern) 描述类或对象的交互和职责分配,定义对象间的通信和复杂程序中的流控。
依据设计模式是用于类还是用于对象,模式还可分为类模式和对象模式。
20.何为软件构件?软件构件是一种组装单元,它具有规范的接口规格说明和显式的语境依赖。
软件构件可以被独立部署,并由第三方任意地组装。
21.软件构件分为哪些类型?1)纯计算构件: 具有简单输入输出关系,没有运行状态变化如数值计算、过滤器、转换器等。
2)存储构件: 存放共享的、永久性的、结构化的数据。
如数据库、文件、符号表、超文本等。
3)管理构件: 执行操作与运行状态紧密相关。
如抽象数据类型、面向对象系统中的对象、服务器等。
4)控制构件: 管理其它构件运行的时间、时机及次序。
例如,调度器、同步器等。
5)链接构件: 在实体之间传递信息。
例如,通信机制、用户界面等。
22.什么叫数据黑板?黑板系统的组成结构是怎样的?如果是由共享数据的当前状态触发相应的处理,那么这种体系结构就叫做数据黑板;黑板系统由以下三部分组成。
a)知识源。
知识源中包含独立的、与应用程序相关的知识b)黑板数据结构。
黑板数据是按照与应用程序相关的层次来组织数据,知识源通过不断地改变黑板数据来解决问题。
c)控制。
控制完全由黑板的状态驱动,黑板状态的改变决定使用的特定知识。
23.什么是参考模型?请给出OSI参考模型的体系结构标准?⏹一般的软件体系结构模型反映的是已有系统的体系结构,而参考模型反映了一大类系统的体系结构。
⏹参考模型源于对应用领域的研究,它描述了一个理想化的包含了系统应具有的所有特征的软件体系结构。
⏹典型的例子是OSI参考模型。
它描述了开放系统互连的标准。
如果一个系统遵从这个标准,就可以与其他遵从该标准的系统互连。
⏹通常,参考模型不能被正式看作是系统实现的方式,而主要使用它作为比较一个应用领域中不同系统之间异同的工具。
⏹OSI参考模型是一个七层模型。
较低层主要实现物理连接,中间层主要实现数据传输,较高层实现带有语义的应用信息的传输。
⏹其他典型的参考模型有关CASE环境的参考模型ECMA,关于软件工厂的参考模型,某些设计模式等。
24.什么是分布式系统?25.分布式系统的主要特征有哪些?1)资源共享允许硬件、软件资源共享使用。
2)开放性是指系统通过非私有资源来扩展自己的能力。
分布式系统可包括来自不同厂家的硬件和软件的兼容产品。
3)并发性在分布式系统中,在网络的不同计算机上可同时运行多个进程,它们在运行期间可以互相通信。
4)可伸缩性分布式系统是可伸缩的,可以通过增加新的资源来满足对系统的新的需求。
5)容错性具有多台计算机和复制信息的潜能意味着分布式系统能够容忍某些硬件或软件的失效。
在大多数系统中,当失效发生时会导致某些服务能力下降,只有当网络失效时才完全丧失其服务能力。
6)透明性是指对用户隐藏了系统的分布情况。
用户可以完全透明地访问系统的资源而不必了解系统资源的分布。
不过,在多数情况下,可以让用户了解一些有关系统组织的知识,这有助于用户更好地使用这些资源。
26.什么是抽象工厂模式?其结构是怎样的?提供一个创建一系列或相互依赖对象的接口,而无需指定它们具体的类。
27.什么是组合模式?其结构如何?将对象组合成树形结构表示“部分-整体”的层次结构。
28.什么是中介者模式?它有什么优点?用一个中介对象来封装一系列的对象交互,中介者是各对象不需要显示地相互吸引,从而使其耦合松散,而且可以独立地改变它们之间的交互。
29.什么是行为型模式?请列出6种属于行为型模式的设计模式?30.什么是结构型模式?请列出6种属于结构型模式的设计模式?31.远程代理模式实现的过程细节是怎样的?。