软件体系结构与设计模式笔记样本.doc
《软件体系结构与设计模式笔记样本.doc》由会员分享,可在线阅读,更多相关《软件体系结构与设计模式笔记样本.doc(30页珍藏版)》请在咨信网上搜索。
1、第1章 软件体系构造概述 SEI软件体系构造讨论群定义如下:一种程序/系统构件构造,它们之间互有关系, 以及在设计和交付整个过程中原则和指引方针。 Mary Shaw和David Garlan以为软件体系构造涉及构成系统设计元素描述,设计元素交互,设计元素组合模式,以及在这些模式中约束。 软件体系构造涉及构件(Component)、连接件(Connector)和约束(Constrain)或配备(Configuration)三大要素。 国内普遍接受定义:软件体系构造涉及构件、连接件和约束,它是可预制和可重构软件框架构造。 构件是可预制和可重用软件部件,是构成体系构造基本计算单元或数据存储单元 连
2、接件也是可预制和可重用软件部件,是构件之间连接单元 构件和连接件之间关系用约束来描述 软件体系构造 = 构件 + 连接件 + 约束软件体系构造优势容易理解、重用、控制成本、可分析性第2章 软件体系构造风格w 软件体系构造风格是描述某一特定应用领域中系统组织方式惯用模式。w 体系构造风格定义了一种系统家族,即一种体系构造定义一种词汇表和一组约束。词汇表中包括某些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来。w 体系构造风格反映了领域中众多系统所共有构造和语义特性,并指引如何将各个模块和子系统有效地组织成一种完整系统。w 数据流风格:批解决序列;管道/过滤器。w 调用/返回
3、风格:主程序/子程序;面向对象风格;层次构造。w 独立构件风格:进程通讯;事件系统。w 虚拟机风格:解释器;基于规则系统。w 仓库风格:数据库系统;超文本系统;黑板系统。w 过程控制环路w C/S风格 体系构造有三个重要构成某些:数据库服务器、客户应用程序和网络。w B/S风格 浏览器/Web服务器/数据库服务器。长处:C/S体系构造具备强大数据操作和事务解决能力, 模型思想简朴,易于人们理解和接受。将大应用解决任务分布到许多通过网络连接低成本计算机上,以节约大量费用。缺陷:开发成本较高、客户端程序设计复杂、信息内容和形式单一、顾客界面风格不一,使用繁杂不利于推广使用、软件移植困难、软件维护和
4、升级困难、新技术不能容易应用长处:基于B/S体系构造软件,系统安装、修改和维护全在服务器端解决。缺陷:B/S体系构造缺少对动态页面支持能力,没有集成有效数据库解决功能。B/S体系构造系统扩展能力差,安全性难以控制。采用B/S体系构造应用系统,在数据查询等响应速度上,要远远低于C/S体系构造。B/S体系构造数据提交普通以页面为单位,数据动态交互性不强,不利于在线事务解决(OLTP)应用。第3章 软件需求与架构w 需求基本概念 IEEE (1997) (1) 顾客解决问题或达到目的所需条件或能力 (2) 系统或系统部件要满足合同、原则、规范或其她正式规定文档所需具备条件或能力 (3) 一种反映上面
5、(1)或(2)所描述条件或能力文档阐明 w 业务需求 反映组织机构或客户对系统、产品高层次目的规定,普通问题定义自身就是业务需求 w 顾客需求 描述顾客使用产品必要要完毕什么任务,怎么完毕需求,普通是在问题定义基本上进顾客访谈、调查,对顾客使用场景进行整顿,从而建立从顾客角度需求。 w 系统需求 从系统角度来阐明软件需求,涉及用特性阐明功能需求、质量属性,以及其她非功能需求,尚有设计约束等。 w 非功能需求 指产品必要具备属性或品质,如对的性、可靠性、性能、容错性和可扩展性等。w 功能需求 需求主体,需求本质 功能需求定义:系统必要完毕那些事,即为了向它顾客提供有用功能,产品必要执行动作 w
6、设计约束w 获取需求办法 面谈(访谈) 问卷调查 会议(需求讨论会、重点问题讨论会、业务专项讨论会、设计专项讨论会) 文档研究 任务示范(观测) 用例与角色扮演 原型设计(小规模实验)研究类似公司w 需求层次化 业务级需求:包括客户或出资者要达到业务目的、预期投资、工期规定,以及要符合哪些原则、对哪些遗留系统进行整合等约束条件。 顾客级需求:顾客使用系统来辅助完毕哪些工作?对质量有何规定?顾客群及所处使用环境方面有何特殊规定? 开发级需求:开发人员需要实现什么?开发期间、维护期间有何质量考虑?开发团队哪些状况会反过来影响架构? w 需求分类 功能需求:更多体现各级直接目的规定 质量属性:运营期
7、质量 + 开发期质量 约束需求:业务环境因素 + 使用环境因素 + 构建环境因素 + 技术环境因素 功能模型如UC 业务流程模型如DFD 数据建模模型如ER w 用例建模(Use Case Modeling)是使用用例办法来描述系统功能需求过程,用例建模增进并勉励了顾客参加,这是保证项目成功核心因素之一。w 粒度原则:w 用例要有途径,途径要有环节。而这一切都是“可观测”。 需求跟踪目是建立与维护“需求-设计-编程-测试”之间一致性,保证所有工作成果符合顾客需求。 w 外部质量对于顾客而言是可见涉及对的性、健壮性、可靠性、性能、安全性、易用性、兼容性等。w 内部质量只有开发人员关怀它们可以协助
8、开发人员实现外部质量涉及易理解性、可测试性、可维护性、可扩展性、可移植性、可复用性等 依赖注入 w 构造注入(Constructor Injection):通过构造函数注入实例变量。 w 设值注入(Setter Injection):通过Setter办法注入实例变量。 w 接口注入(Interface Injection):通过接口办法注入实例变量。 1. 用例文档w 用例编号w 用例名w 执行者w 前置条件w 后置条件w 涉众利益w 基本途径 1. 2 3.2. 需求规格阐明书第1章_统一建模语言基本知识a) 视图(View) i. 顾客视图:以顾客观点表达系统目的,它是所有视图核心,该视图
9、描述系统需求。ii. 构造视图:表达系统静态行为,描述系统静态元素,如包、类与对象,以及它们之间关系。iii. 行为视图:表达系统动态行为,描述系统构成元素如对象在系统运营时交互关系。iv. 实现视图:表达系统中逻辑元素分布,描述系统中物理文献以及它们之间关系。v. 环境视图:表达系统中物理元素分布,描述系统中硬件设备以及它们之间关系。 用例图(Use Case Diagram):又称为用况图,相应于顾客视图。在用例图中,使用用例来表达系统功能需求,用例图用于表达各种外部执行者与系统用例之间以及用例与用例之间关系。用例图与用例阐明文档(Use Case Specification)是惯用需求建
10、模工具,也称之为用例建模。 类图(Class Diagram):相应于构造视图。类图使用类来描述系统静态构造,类图包括类和它们之间关系,它描述系统内所声明类,但它没有描述系统运营时类行为。w 类之间关系 关联关系 关联关系(Association)是类与类之间最惯用一种关系,它是一种构造化关系,用于表达一类对象与另一类对象之间有联系。 双向关联 单向关联 自关联 重数性关联 聚合关系 聚合关系(Aggregation)表达一种整体与某些关系。普通在定义一种整体类后,再去分析这个整体类构成构造,从而找出某些成员类,该整体类和成员类之间就形成了聚合关系。 组合关系 组合关系(Composition
11、)也表达类之间整体和某些关系,但是组合关系中某些和整体具备统毕生存期。一旦整体对象不存在,某些对象也将不存在,某些对象与整体对象之间具备同生共死关系。 依赖关系 依赖关系(Dependency)是一种使用关系,特定事物变化有也许会影响到使用该事物其她事物,在需要表达一种事物使用另一种事物时使用依赖关系。大多数状况下,依赖关系体当前某个类办法使用另一种类对象作为参数。 泛化关系 泛化关系(Generalization)也就是继承关系,也称为“is-a-kind-of”关系,泛化关系用于描述父类与子类之间关系,父类又称作基类或超类,子类又称作派生类。在UML中,泛化关系用带空心三角形直线来表达。
12、接口与实现关系 接口之间也可以有与类之间关系类似继承关系和依赖关系,但是接口和类之间还存在一种实现关系(Realization),在这种关系中,类实现了接口,类中操作实现了接口中所声明操作。在UML中,类与接口之间实现关系用带空心三角形虚线来表达。 w 顺序图定义 顺序图(Sequence Diagram)是一种强调对象间消息传递顺序交互图,又称为时序图或序列图。w 状态图定义 状态图(Statechart Diagram)用来描述一种特定对象所有也许状态及其引起状态转移事件。第2章_面向对象设计原则w 单一职责原则规定在软件系统中,一种类只负责一种功能领域中相应职责。w 开闭原则规定一种软件
13、实体应当对扩展开放,对修改关闭,即在不修改源代码基本上扩展一种系统行为。w 里氏代换原则可以通俗表述为在软件中如果可以使用基类对象,那么一定可以使用其子类对象。w 依赖倒转原则规定抽象不应当依赖于细节,细节应当依赖于抽象;要针对接口编程,不要针对实现编程。w 接口隔离原则规定客户端不应当依赖那些它不需要接口,即将某些大接口细化成某些小接口供客户端使用。w 合成复用原则规定复用时尽量使用对象组合,而不使用继承。w 迪米特法则规定一种软件实体应当尽量少与其她实体发生互相作用。第3章_设计模式概述w 设计模式定义 设计模式(Design Pattern)是一套被重复使用、多数人知晓、通过度类编目、代
14、码设计经验总结,使用设计模式是为了可重用代码、让代码更容易被她人理解、保证代码可靠性。 设计模式普通有如下几种基本要素:模式名称、问题、目、解决方案、效果、实例代码和有关设计模式,其中核心元素涉及如下四个方面: w 模式名称 (Pattern name) w 问题 (Problem) w 解决方案 (Solution) w 效果 (Consequences) 范畴目 创立型模式 构造型模式 行为型模式 类模式 工厂办法模式 (类)适配器模式 解释器模式模板办法模式 对象模式 抽象工厂模式建造者模式原型模式单例模式 (对象)适配器模式桥接模式组合模式装饰模式外观模式享元模式代理模式 职责链模式命
15、令模式迭代器模式中介者模式备忘录模式观测者模式状态模式方略模式访问者模式 第4章_简朴工厂模式 简朴工厂模式(Simple Factory Pattern):又称为静态工厂办法(Static Factory Method)模式,它属于类创立型模式。在简朴工厂模式中,可以依照参数不同返回不同类实例。简朴工厂模式专门定义一种类来负责创立其她类实例,被创立实例普通都具备共同父类。 重构后裔码:public abstract class AbstractPay public abstract void pay(); public class CashPay extends AbstractPay pu
16、blic void pay() /钞票支付解决代码 public class PayMethodFactory public static AbstractPay getPayMethod(String type) if(type.equalsIgnoreCase(cash) return new CashPay(); /依照参数创立详细产品 else if(type.equalsIgnoreCase(creditcard) return new CreditcardPay(); /依照参数创立详细产品 简朴工厂模式最大缺陷是当有新产品要加入到系统中时,必要修改工厂类,加入必要解决逻辑,这违背
17、了“开闭原则”。 简朴工厂模式最大长处在于实现对象创立和对象使用分离,将对象创立交给专门工厂类负责,但是其最大缺陷在于工厂类不够灵活,增长新详细产品需要修改工厂类判断逻辑代码,并且产品较多时,工厂办法代码将会非常复杂。 简朴工厂模式合用状况涉及:工厂类负责创立对象比较少;客户端只懂得传入工厂类参数,对于如何创立对象不关怀。第5章_工厂办法模式 工厂办法模式(Factory Method Pattern)又称为工厂模式,也叫虚拟构造器(Virtual Constructor)模式或者多态工厂(Polymorphic Factory)模式,它属于类创立型模式。在工厂办法模式中,工厂父类负责定义创立
18、产品对象公共接口,而工厂子类则负责生成详细产品对象,这样做目是将产品类实例化操作延迟到工厂子类中完毕,即通过工厂子类来拟定究竟应当实例化哪一种详细产品类。 抽象工厂类代码:public abstract class PayMethodFactory public abstract AbstractPay getPayMethod(); 详细工厂类代码:public class CashPayFactory extends PayMethodFactory public AbstractPay getPayMethod() return new CashPay(); 客户类代码片段:PayMet
19、hodFactory factory;AbstractPay payMethod;factory=new CashPayFactory();payMethod =factory.getPayMethod();payMethod.pay(); 工厂办法模式重要长处是增长新产品类时不必修改既有系统,并封装了产品对象创立细节,系统具备良好灵活性和可扩展性;其缺陷在于增长新产品同步需要增长新工厂,导致系统类个数成对增长,在一定限度上增长了系统复杂性。 符合开闭原则。 工厂办法模式合用状况涉及:一种类不懂得它所需要对象类;一种类通过其子类来指定创立哪个对象;将创立对象任务委托给各种工厂子类中某一种,客户
20、端在使用时可以不必关怀是哪一种工厂子类创立产品子类,需要时再动态指定。第6章_抽象工厂模式 抽象工厂模式(Abstract Factory Pattern):提供一种创立一系列有关或互相依赖对象接口,而不必指定它们详细类。抽象工厂模式又称为Kit模式,属于对象创立型模式。 详细工厂类典型代码如下:public class ConcreteFactory1 extends AbstractFactory public AbstractProductA createProductA() return new ConcreteProductA1(); public AbstractProductB
21、createProductB() return new ConcreteProductB1(); 抽象工厂模式重要长处是隔离了详细类生成,使得客户并不需要懂得什么被创立,并且每次可以通过详细工厂类创立一种产品族中各种对象,增长或者替代产品族比较以便,增长新详细工厂和产品族很以便;重要缺陷在于增长新产品级别构造很复杂,需要修改抽象工厂和所有详细工厂类,对“开闭原则”支持呈现倾斜性。 抽象工厂模式合用状况涉及:一种系统不应当依赖于产品类实例如何被创立、组合和表达细节;系统中有多于一种产品族,而每次只使用其中某一产品族;属于同一种产品族产品将在一起使用;系统提供一种产品类库,所有产品以同样接口浮现,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 体系结构 设计 模式 笔记 样本
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。