




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2013 学年第二学期 软件体系结构 复习提纲学年第二学期 软件体系结构 复习提纲 类型类型 1 名词解释 4 5 30 2 简答 6 5 20 3 问答 2 10 20 4 设计 3 10 30 内容内容 1 软件体系结构定义 作用 意义 定义 软件体系结构是具有一定形式的结构化元素 即构件的集合 包括处理构件 数据构件和连接构件 处理构件负责对数据进行加工 数据构件是被加工的信息 连接构件把体系结构的不同部分组合连接起来 作用 1 作为通信的手段 2 代表了早期的设计决策结果 3 意义 体系结构是风险承担者 又称为涉众 stakeholder 进行交流的手段 软件体系结构代表了系统的公共的高层次的抽象 这样 系统的大部分有关人员 即使不是全部 能把它作为建立一个互相理解的基础 形成统一认识 互相交流 体系结构提供了一种共同语言来表达各种关注和协商 进而对大型复杂系统能进行理智的管理 这对项目最终的质量和使用有极大的影响 2 软件风格定义 软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式 体系结构风格定义了一个系统家族 即定义一个词汇表和一组约束 词汇表中包含一些构件和连接件类型 而这组约束指出系统是如何将这些构件和连接件 组合起来的 体系结构风格反映了领域中众多系统所共有的结构和语义特性 并指导如何将各个模块和子系统有效地组织成一个完整的系统 3 BS 风格优缺点 浏览器 服务器 B S 风格就是上述三层应用结构的一种实现方式 其具体结构为 浏览器 Web 服务器 数据库服务器 优点 1 基于 B S 体系结构的软件 系统安装 修改和维护全在服务器端解决 用户在使用系统时 仅仅需要一个浏览器就可运行全部的模块 真正达到了 零客户端 的功能 很容易在运行时自动升级 2 B S 体系结构还提供了异种机 异种网 异种应用服务的联机 联网 统一服务的最现实的开放性基础 缺点 1 没有集成有效的数据库处理功能 对数据处理功能不强 2 安全性难以控制 3 采用 B S 体系结构的应用系统 在数据查询等响应速度上 要远远地低于 C S 体系结构 4 B S 体系结构的数据提交一般以页面为单位 数据的动态交互性不强 不利于在线事务处理 OLTP 应用 4 CS 风格优缺点 优点 1 模型思想简单 易于人们理解和接受 2 灵活 易维护与扩充 系统的客户应用程序和服务器构件分别运行在不同的计算机上 系统中每台服务器都可以适合各构件的要求 这对于硬件和软件的变化 显示出极大的适应性和灵活性 而且易于对系统进行扩充和缩小 3 资源可以进行合理配置 在 C S 体系结构中 系统中的功能构件充分隔离 客户应用程序的开发集中于数据的显示和分析 而数据库服务器的开发则集中于数 据的管理 不必在每一个新的应用程序中都要对一个 DBMS 进行编码 将大的应用处理任务分布到许多通过网络连接的低成本计算机上 以节约大量费用 缺点 1 开发成本较高 2 客户端程序设计复杂 3 用户界面风格不一 使用繁杂 不利于推广使用 4 软件移植困难 5 软件维护和升级困难 6 新技术不能轻易应用 5 管道过滤器风格优缺点 优点 使得软构件具有良好的隐蔽性和高内聚 低耦合的特点 允许设计者将整个系统的输入 输出行为看成是多个过滤器的行为的简单合成 支持软件重用 只要提供适合在两个过滤器之间传送的数据 任何两个过滤器都可被连接起来 系统维护和增强系统性能简单 新的过滤器可以添加到现有系统中来 旧的可以被改进的过滤器替换掉 允许对一些如吞吐量 死锁等属性的分析 支持并行执行 每个过滤器是作为一个单独的任务完成 因此可与其它任务并行执行 缺点 通常导致进程成为批处理的结构 不适合处理交互的应用 因为在数据传输上没有通用的标准 每个过滤器都增加了解析和合成数据的工作 这样就导致了系统性能下降 并增加了编写过滤器的复杂性 6 OO 风格的优点 优点 因为对象对其它对象隐藏它的表示 所以可以改变一个对象的表示 而不影响其它的对象 设计者可将一些数据存取操作的问题分解成一些交互的代理程序的集合 缺点 为了使一个对象和另一个对象通过过程调用等进行交互 必须知道对象的标识 只要一个对象的标识改变了 就必须修改所有其他明确调用它的对象 必须修改所有显式调用它的其它对象 并消除由此带来的一些副作用 例如 如果 A 使用了对象 B C 也使用了对象 B 那么 C 对 B 的使用所造成的对 A 的影响可能是料想不到的 7 层次体系结构优缺点 优点 支持基于抽象程度递增的系统设计 使设计者可以把一个复杂系统按递增的步骤进行分解 支持功能增强 因为每一层至多和相邻的上下层交互 因此功能的改变最多影响相邻的上下层 支持重用 只要提供的服务接口定义不变 同一层的不同实现可以交换使用 这样 就可以定义一组标准的接口 而允许各种不同的实现方法 缺点 并不是每个系统都可以很容易地划分为分层的模式 甚至即使一个系统的逻辑结构是层次化的 出于对系统性能的考虑 系统设计师不得不把一些低级或高 级的功能综合起来 很难找到一个合适的 正确的层次抽象方法 8 设计模式定义 作用 意义 定义 软件设计模式是对软件设计经验的总结 是对软件设计中反复出现的设计问题的成功解决方案的描述 四元素描述 名称 问题 解决方案 效果 作用 设计模式主要有以下作用 1 重用设计 重用设计比重用代码更有意义 它会自动带来代码的重用 2 为设计提供共用的词汇 每个模式名就是一个设计词汇 其概念使得程序员间的交流更加方便 3 在开发文档中采用模式词汇可以让其他人更容易理解你的想法 理解为什么你会这样做 你都做了些什么 编写开发文档也更加容易 4 应用设计模式可以让重构系统变得容易 可确保开发正确的代码 并降低在设计或实现中出现错误的可能性 还可以为重写其他应用程序提供很好 的系统框架 5 正确使用设计模式 可以节省大量的时间 意义 在于设计复用 设计模式可以使设计者更加方便地借鉴或直接使用已经过证实的成功设计方案 而不必花费时间进行重复设计 总之 设计模式可以帮 助设计者更快 更好地完成软件系统的设计工作 9 经典 23 种设计模式分类 经典的 设计模式 一书归纳出 23 种设计模式 本文按 易学设计模式 一书归纳分类如下 1 创建型模式 前面讲过 社会化的分工越来越细 自然在软件设计方面也是如此 因此对象的创建和对象的使用分开也就成为了必然趋势 因为对象的创建会消耗掉系统的 很多资源 所以单独对对象的创建进行研究 从而能够高效地创建对象就是创建型模式要探讨的问题 这里有 6 个具体的创建型模式可供研究 它们分别是 简单工厂模式 Simple Factory 工厂方法模式 Factory Method 抽象工厂模式 Abstract Factory 创建者模式 Builder 原型模式 Prototype 单例模式 Singleton 说明 严格来说 简单工厂模式不是 GoF 总结出来的 23 种设计模式之一 2 结构型模式 在解决了对象的创建问题之后 对象的组成以及对象之间的依赖关系就成了开发人员关注的焦点 因为如何设计对象的结构 继承和依赖关系会影响到后续程 序的维护性 代码的健壮性 耦合性等 对象结构的设计很容易体现出设计人员水平的高低 这里有 7 个具体的结构型模式可供研究 它们分别是 外观模式 Facade 适配器模式 Adapter 代理模式 Proxy 装饰模式 Decorator 桥模式 Bridge 组合模式 Composite 享元模式 Flyweight 3 行为型模式 在对象的结构和对象的创建问题都解决了之后 就剩下对象的行为问题了 如果对象的行为设计的好 那么对象的行为就会更清晰 它们之间的协作效率就会 提高 这里有 11 个具体的行为型模式可供研究 它们分别是 模板方法模式 Template Method 观察者模式 Observer 状态模式 State 策略模式 Strategy 职责链模式 Chain of Responsibility 命令模式 Command 访问者模式 Visitor 调停者模式 Mediator 备忘录模式 Memento 迭代器模式 Iterator 解释器模式 Interpreter 10 开闭原则 遵循开闭原则设计出的程序模块应该具有以下两个特征 1 对于拓展是开放的 这意味着模块的行为是可以拓展的 即当需求改变时 软件开发者可以对模块进行拓展 增加新的功能 2 对于修改是封闭的 在模块行为进行拓展时 不允许改动模块中存在的类的源代码 若一个设计同时满足上述两条 则称设计符合开闭原则 11 接口编程思想以及优点 面向接口编程就是先把客户的业务提取 抽象 出来 作为接口 业务具体实现通过该接口的实现类来完成 优点 当客户需求变化时 只需编写该业务逻辑的新的实现类 通过更改配置文件 例如 Spring 框架 中该接口的实现类就可以完成需求 不需要改写现有代码 减少对系统的影响 采用基于接口编程的项目 业务逻辑清晰 代码易懂 方便扩展 可维护性强 即使更换一批人员 新来的人依然可以快速上手 对于公 司来说 意义更大 接口本质上就是由制定者来协调实现者和调用者之间的关系 12 单例模式 1 有一个静态私有的实例 保存创建的实例 2 构造方法私有 3 获取实例的方法为静态 4 获取实例是判定实例是否为空 如果没有 就新建 否则就返回这个存在的实例 13 简单工厂方法 优点 1 工厂方法包含从一个类的结构中选择初始类的业务逻辑 2 客户类不直接创建产品类的对象 客户类只作为对象的消费者 3 简单工厂方法模式实现了责任分离 4 客户类不负有创建类的对象的责任 因此如果有新产品子类加入 不必修改已有的客户类代码 5 因为工厂类中包含了对象生成的必要的逻辑判断 根据客户端的选择条件动态实例化相关类 所以客户端类中没有创建对象所需要的条件语句 14 工厂模式 意图 定义一个创建对象的接口 让子类决定实例化哪个类 Factory Method 使一个类的实例化延迟到其子类 例如 在铸造成型的过程中 制造者首先将塑料加工成可成型的粉末 然后将塑料粉末注入到需要的模具中 在 Factory Method 模式中 子类 在这里就是指模 具 来决定需要实例化那个类 在这个例子中 ToyHorseMold 类就是被实例化的类 15 抽象工厂模式 意图 提供一个创建一系列相关或者相互依赖对象的接口 不要指定它们的具体类 例如 在汽车制造中 金属片冲压设备是 Abstract Factory 模式的 一个例子 它用来制造汽车的部件 用滚筒 rollers 来改变 模具 dies 就可以改变这样的具体对象 模具的加工品 这些具体的对象包括 引擎罩 车的中轴 车顶 左右的前 端挡板等 汽车的主控部分要确保所有这些具体的对象都是 兼容的 16 组合模式 安全组合模式 透明组合模式 意图 将对象组合成树形结构以表示 部分 整体 的层次结构 Composite 使得用户对单个对象和组合对象的使用具有一致性 例如 算术表达式能够用树结构来表示 其中操作数可以是一 个数字或者一个算术表达式 如果我们把单个对象 数字 和 单个对象的组合 子数学表达式 同等地对待 这个算术表达式 就是一个 Composite 模式的例子 17 适配器模式 类适配器 对象适配器 意图 将一个类的接口转换成用户希望的另一个接口 使得原来由于接口不兼容而不能在一起工作的那些类可以在一起工作 例如 一个 1 2 英寸的防倒转齿轮不可能和一个 1 4 英寸的插槽配合工作 使用 Adapter 模式 阴口和 1 2 英寸的防倒转齿轮接合 阳口和 1 4 英寸的插槽接合 这样两个部件就能够顺利工作 18 Hibernate 的 ORM 模式要点 ORM 即是对象到关系的映射 它把对表的直接操作变成了对 JAVA 类的属性和方法的操作 更加体现了 java 面向对象的编程思想 符合人类的思维模式 ORM 是对象到关系的映射 简单地说 ORM 是通过使用描述对象和数据库之间映射的元数据 将 java 程序 3 中的对象自动持久化到关系数据库中 本质上 ORM 的工作是将数据从一种形式转换到另一种形式 这意味着会有一些性能损失 然而 如果 ORM 是作为中间件实现的 就会有许多机会可以进行优化 而 在手工编码的持久层中这些机会是不存在的 在开发时 另外一项开销是对控制转换的数据进行管理 这个成本低于维护一个手工编码的解决方案所需的成本 相比之下 与 ODMG 兼容的对象数据库需要大量类级别的元数据 ORM 的解决方案 1 在持久化类的对象上执行基本的 CRUD 添加 查询 更新和删除 操作的一组 API 2 用于指定查询的一种语言或一组 API 这些查询会引用类和类属性 3 用于指定映射元数据的工具 4 实现 ORM 的一项技术 用来与事务对象交互以完成装读 关联数据的延迟加载和其他优化功能 ORM 技术的优点与缺点 ORM 作为对象到关系的映射 具有以下优点 1 提高开发的效率 由于 ORM 可以自动对实体对象与数据库中的表进行字段与属性的映射 所以实际操作中已经不再需要一个专用的 庞大的数据访问层 2 ORM 提供了对数据库的映射 能够像操作对象一样从数据库中获得数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 急救考试试题及答案
- 药品、医疗器械不良反应知识培训试题及答案
- 2025年常用仪器、设备和抢救物品使用考核试卷(附答案)
- 广西交通职业技术学院《微生物学(生科)》2024-2025学年第一学期期末试卷
- 山西华澳商贸职业学院《植物生物技术》2024-2025学年第一学期期末试卷
- 山东建筑大学《跨境电子商务实务》2024-2025学年第一学期期末试卷
- 江海职业技术学院《电子商务网站建设》2024-2025学年第一学期期末试卷
- 潍坊学院《会展风险管理》2024-2025学年第一学期期末试卷
- 2025年知识产权教师交流研讨记录范文
- 小学将来时态题目及答案
- “情指行”一体化运行机制中情报工作职能定位、运行困境与优化路径
- 2024新一代变电站集中监控系统系列规范第1部分:总则
- 2024年秋季学期新沪科版八年级上册物理课件 第三章 光的世界 第一节 探究:光的反射定律
- 仿生课程设计报告
- 放射科医学影像科专案改善PDCA缩短住院病人等候核磁检查时间品管圈QCC案例
- 小儿巨细胞病毒感染的诊治-2
- 酒店客房样板间装修验收记录表
- 铁总物资〔2015〕250号:中国铁路总公司物资采购异议处理办法
- GB/Z 42625-2023真空技术真空计用于分压力测量的四极质谱仪特性
- 人民医院心血管外科临床技术操作规范2023版
- 助理工程师考试试题以及答案
评论
0/150
提交评论