




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Landray 蓝凌 版权所有此报告仅供客户内部使用。未经蓝凌的书面许可,其它任何机构不得擅自传阅、引用或复制。架构部架构部 2009-06-262009-06-26 架构师培训架构师培训- -交流会交流会0;.Landray 蓝凌 版权所有1软件架构设计过程软件架构设计过程软件架构视图软件架构视图软件架构设计文档软件架构设计文档目录目录软件架构设计模式软件架构设计模式Landray 蓝凌 版权所有2软件架构视图软件架构视图(Software Architecture View) 软件架构定义 什么是架构?如果你问五个不同的人,可能会得到五种不同的答案。 -Ivar Jacobson.AOSD
2、中文版 很多人都试图给“架构”下定义,而这些定义本身却很难统一。 -Martin Fowler.企业应用架构模式 SEI 软件架构定义 程序或者计算系统的软件架构是该系统的一个(或多个)结构,它由软件元素,元素的外部可见属性以及它们之间的关系组成。 软件架构视图 软件架构是一种无法以简单的一维方式进行说明的复杂实体 软件架构编档 多重软件架构视图之所以必不可少,是因为各类涉众(用度户、客户、开发人员、测试人员、维护人员、内部操作人员、其它人员)需要从务自的角度理解和使用架构Landray 蓝凌 版权所有3架构视图架构视图4要素要素 图示化主要元素和元素之间的关系 具有明确的图例,定义和说明元素
3、 每个元素具备明确的接口和行为规范 设计原理和设计决策的信息 “4+1 Views” ModelLandray 蓝凌 版权所有4架构视图架构视图4要素要素 逻辑视图(Logical View),设计的对象模型(使用面向对象的设计方法时)。 过程视图(Process View),捕捉设计的并发和同步特征。 物理视图(Physical View),描述了软件到硬件的映射,反映了分布式特性。 开发视图(Development View),描述了在开发环境中软件的静态组织结构。 架构的描述,即所做的各种决定,可以围绕着这四个视图来组织,然后由一些用例 (use cases)或场景(scenarios)
4、来说明,从而形成了第五个视图Landray 蓝凌 版权所有5常见软件架构视图类型常见软件架构视图类型 功能视图终端用户(End User ,Custom) 开发视图开发人员、测试人员、开发经理 进程视图中间件、framework 部署视图维护人员 数据视图核心模块,关键点(UML类图、数据ER图) 用例视图同上 实现(模块)视图交互物、设计文档、开发、指导原则Landray 蓝凌 版权所有6Software Architecture 设计过程概论设计过程概论 软件架构设计过程 商业架构分析 概念架构设计 物理架构设计 软件架构评估 验证软件架构 基于架构的开发 架构的重用和复用Landray
5、蓝凌 版权所有7软件架构设计过程软件架构设计过程 三个经典难题 架构师:混乱是思维的大敌输输入乱入乱 不能深入全面把不能深入全面把握需求握需求. 架构架构设计设计 需求需求思思维过维过程乱程乱 不能系不能系统统有序有序进进行思行思维维. 架构架构输输出乱出乱 不能不能错错落有致提落有致提供供设计设计决策决策.Landray 蓝凌 版权所有8软件架构设计过程软件架构设计过程 角色:架构设计师负责在整个项目中对技术活动和工件进行领导和协调。要确立每个设计视图的整体结构:视图的详细组织结构、元素的分组以及这些主要分组之间的接口。见解重在广度,而不是深度。 架构设计方法:迭代设计过程(增量和迭代) 设
6、计过程方法论:分析阶段(商业架构分析、确定关键需求),设计阶段(逻辑架构设计、物理架构设计),应用阶段(架构评审、验证架构、基于架构开发)Landray 蓝凌 版权所有9商业架构分析商业架构分析 架构的驱动因素是谁在驱动架构? 功能,质量和商业需求的集合“塑造”了架构。软件架构实践 构建商业架构概念(5W1H) 它对要解决问题的目的、对象、地点、时间、人员和方法提出一系列的询问,并寻求解决问题的答案。这六个问题是: (1)Why为什么干这件事?(目的); (2)What怎么回事?(对象); (3)Where在什么地方执行?(地点); (4)When什么时间执行?什么时间完成?(时间); (5)
7、Who由谁执行?(人员); (6)How怎样执行?采取那些有效措施?(方法)。 巧计5W1H的中文口诀:“何时何地何人?做何事?为什么?怎么做?”Landray 蓝凌 版权所有10商业架构分析商业架构分析边界确定分解 子系统 子系统接口定义映射 部署Landray 蓝凌 版权所有11概念架构设计概念架构设计 概念性架构的设计步骤 软件架构立方图分析 引入架构模式 通信机制 质量场景决策分析 每层架构的决策指南Landray 蓝凌 版权所有12软件架构立方图分析软件架构立方图分析 设计模型通常是分层组织的 一个用于大、中型系统的通用构架模式。层次的数量不是固定的,而是随情况的变化而变化的Clie
8、ntTierRenders UI.ProvidesHumaninteractionPresentationTierComposesContent usingBusiness informationBusiness TierContains essential business themesIntegration TierLogical integration to resourcesResource TierContains resources such as data Application Components Virtual Platform APIs, specifications U
9、pper Platform Web server or application server Lower Platform Operating system Security Manageability Reliability Availability ScalabilityLandray 蓝凌 版权所有13系统服务层系统服务层数据数据处处理理 Log Security Framework JMS EJB JTA JNDI 等等 OS Http Https业务业务模模块块1业务业务模模块块3业务业务模模块块2Landray 蓝凌 版权所有14项目的通用分层项目的通用分层 领领域模型域模型/值值
10、 对对象象 系系统统平台平台 系系统统通用服通用服务务 业务业务通用服通用服务务客客户户端端表示表示层层业务逻辑层业务逻辑层数据存数据存取取层层DB设计设计Landray 蓝凌 版权所有15概念架构设计概念架构设计 大师说,但你如何做 机制才是设计的灵魂所在.否则我们就将不得不面对一群无法相互协作的对象,它们相互推搡着做自己的事情而毫不关心其它对象 Grady Booch 面向对象分析与设计Landray 蓝凌 版权所有16概念架构设计概念架构设计 分区:分层是对架构的横向划分,而分区是对架构的纵向划分 手段:分层的细化、分区的引入、通信机制的提取 引入架构模式:根据业务特性,选择合适的架构模
11、式,根据架构师经验,其他类似项目的经验. 架构分析:根据从相似系统或相似问题领域中获取的经验,定义备选构架;定义系统构架模式、核心机制和建模约定;定义有关复用的策略;为计划流程提供输入。 质量场景决策质量属性质量属性场景场景决策决策可以移植服务器将运行到window,linux,unix等平台使用J2EE架构客户浏览器使用IE,firefoxAjax框架,js使用可扩展随着客户增多,服务器必须可以扩展信息共享存储支持Web层可靠性Session复制Landray 蓝凌 版权所有17 商业架构设计总系统架构师 概念架构设计子系统架构师Landray 蓝凌 版权所有18物理架构设计物理架构设计 应
12、用架构视图 开发视图:确定类、子系统、接口、协议等 模块(实现)视图:包、类和包的图、开发完实现的交互物,制定编程指南 数据视图:类映射到数据模型,优化数据模型提高性能 运行视图:并行、进程及通信机制、线程 部署视图:中间件、OS、构件、类库、DBMS等 场景视图:对有风险用例或场景,来验证系统中的重要的、核心的功能Landray 蓝凌 版权所有19软件架构的评估软件架构的评估 步骤: 1、准 备和相关人员的确立 2、初步评审,评审人员和架构师进行会议,收集信息和分析 3、架构的涉众加入评估,分析继续进行,并且详细评审 4、评估小组完成和提交评审书面报告 结果: 简洁的架构表达(软件架构文档)
13、 架构是否可以支持业务目标 使用场景进行验证,质量属性是否满足 对架构分险的管理(风险决策) 对架的敏感点和权横点的决策Landray 蓝凌 版权所有20验证软件架构验证软件架构 2种方法 原型法: 垂直演进原型,为了真实的进行验证架构的表现,必须将选定的功能特性完整的实现 框架法: 就是将架构设计方案用框架的形式实现,并在基础上进行评估验证Landray 蓝凌 版权所有21基于架构的开发基于架构的开发 根据架构,确定开发小组 创建Framework(框架/骨架)系统 保证开发和软件架构保持一致Landray 蓝凌 版权所有22架构的重构和复用架构的重构和复用 对开发中的架构问题,进行重构(架
14、构的重构案例分析 Web站案例) 架构复用 新产品线,进行复用架构,最好以框架的形式进行复用 参考构架工件是组织的可复用资产库的一部分 选择那些经实践检验可满足上述需求的现有参考构架Landray 蓝凌 版权所有23软件架构文档软件架构文档(Documenting Software Architecture) 为什么需要软件架构文档 软件架构文档内容 软件架构模板 高质量架构文档的标准 软件架构文档的评审Landray 蓝凌 版权所有24为什么需要软件架构文档为什么需要软件架构文档 在软件生命周期中我们需要 使用架构模式、设计模式,经验等来构件一个架构 在项目中运用架构 对架构定义、更新、重构
15、的依据Landray 蓝凌 版权所有25软件架构文档内容软件架构文档内容 软件架构文档,其结构遵循”4+1”视图 软件设计准则,捕获了最重要的设计决策,这些决策必须要遵守,以保持系统的完整性 架构文档 系统上下文 Architecture overview Views 选择合适的视图 Architecture decisions 系统接口Landray 蓝凌 版权所有26架构模板架构模板 选择合适的架构文档模板 根据公司和项目的情况,可以定义模板标题变更历史记录目录图清单1.范围2.引用3.软件架构4.架构目标与约束5.逻辑架构6.过程架构7.开发架构8.物理架构9.场景10.规模及性能11.
16、质量附录A.缩写瓬表Landray 蓝凌 版权所有27高质量架构文档的标准高质量架构文档的标准 合理文档的7原则 1、从读者的角度编写文档 2、避免不必要的重复 3、避免歧义 4、使用标准的文档结构 5、记录基本原则 6、使文档保持更新,但更新频率不要过高 7.针对于目标的适宜性对文档进行评审Landray 蓝凌 版权所有28软件架构的评审软件架构的评审 只有预期文档用户才能告诉你文档是否包含以正确的方式展示了正确的信息 文档正式发布之前,应该让文档面向代表进行评审 1、架构文档是否和涉众保持一致?(视图) 2、架构文档是否一致?消除了歧义和矛盾? 3、架构文档是否和绘制的架构视图保持一致?
17、4、架构文档是否保持了良好的形式?Landray 蓝凌 版权所有29软件架构的基本原则软件架构的基本原则 抽象(Abstraction) 封装(Encapsulation) 信息隐藏(Information Hiding) 分而治之(Divide-And-Conquer) 模块化(modularization) 偶合和内聚(Coupling and Cohesion) 策略和实现的分离(Separation of Policy and Implementation) 接口和实现的分离(Separation of Interface and Implementation) 单一引用点(Singl
18、e Point of Reference)Landray 蓝凌 版权所有30软件架构模式软件架构模式(Software Architecture Patterns) 软件架构模式描述了软件系统的结构化组织方案,具体而言,架构模式提供了一套预定义的子系统,并规定了子系统的职责,以及子系统间关系的组织原则和组织指南模式进行了分类:软件体系架构模式,分析模式,J2EE核心模式,设计模式Landray 蓝凌 版权所有31Layered Pattern 层(layer)体系结构模式有助于构建这样的应用:它能被分解成子任务组,其中每个子任务组处于一个特定的抽象层次上。 非软件应用(bike) Archit
19、ecture and the CureLandray 蓝凌 版权所有32Pipe/Filter Pattern 管道和过滤器:体系结构模式为处理数据流的系统提供了一种结构。每个处理步聚封装在一个过滤器组件中。数据通过相相邻过滤器之间的管道传输。重组过滤器可以建立相关系统族。 非软件应用(饮用水) 软件应用: 权限(acegi) Servlet容器中的过滤器 编译器系统词词 法 分 析法 分 析语语 法 分 析法 分 析语 义语 义 分 析分 析代代 码码 生 成生 成SourceCodeDestinationCodeLandray 蓝凌 版权所有33分布式架构模式分布式架构模式 Busines
20、s Delegate 模式 Faade 模式 Servicelocator 模式 数据传输模式Landray 蓝凌 版权所有34Event-Based Pattern XML SAX解析Landray 蓝凌 版权所有35其它模式其它模式 微核(Microkernel) 黑板(Blackboard) 反射(元数据)体系结构模式Landray 蓝凌 版权所有36领域模型设计领域模型设计 识别类及其属性 识别类之间的泛化 识别类之间的关联Landray 蓝凌 版权所有37数据存取层架构技术数据存取层架构技术 J2EE数据访问主流技术 JDBC/SpringJDBCTemplate/iBatis ORM/Hibernate JPA(hibernate/OpenJPA服务器)Landray 蓝凌 版权所有38业务逻辑逻
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年山东省环保发展集团有限公司校园招聘(144人左右)笔试参考题库附带答案详解
- 2025新员工岗前安全培训考试试题及答案(基础+提升)
- 25年公司主要负责人安全培训考试试题及参考答案(综合卷)
- 25年企业员工安全培训考试试题含答案【A卷】
- 2025简易知识产权专利合同范本
- 2025商品房买卖合同指南
- 2025国际航空运输合同样本
- 2025年硅力敏传感器合作协议书
- 2025网络安全顾问聘用合同书
- 2025建筑公司农民工劳动合同
- 2024年中铁集装箱运输有限责任公司招聘笔试参考题库附带答案详解
- 新生儿肠胀气课件
- 物业管理中英文对照外文翻译文献
- 专题17浮力与液面升降问题(选择、填空题)- 中考物理一轮复习专题练习(解析版)
- 《麻醉后苏醒延迟》课件
- 《物业客服培训》课件
- 06J403-1 楼梯、栏杆、栏板图集
- 实习中遇到的问题
- 供货合同终止申请书范本
- 中国军力报告2023全文
- 深圳市南山区教育系统招聘公办幼儿园园长考试题库2023
评论
0/150
提交评论