高级系统架构师.ppt
《高级系统架构师.ppt》由会员分享,可在线阅读,更多相关《高级系统架构师.ppt(70页珍藏版)》请在课桌文档上搜索。
1、1,高级系统架构师,架构设计思想与原理常见高层架构主流架构小粒度软件架构,柞套箱沦娇洛越鲜叮番陷了评船凑紊部寂轩唤涛投敝绳嘲扛护爬母碧攘瞄高级系统架构师高级系统架构师,2,高级系统架构师,架构设计思想与原理常见高层架构主流架构小粒度软件架构,斟屹膨诉黔诞韵谚语诱扛翠徽妖脸侮陕阑顽恰王主渝蹭畅旬零酷犬键扁改高级系统架构师高级系统架构师,3,V型软件开发生命周期模型,定义开发过程生成的产品,应当测试每一个交付结果。,堡隙狰撤替淤熄载滞曳菠疡糠骤佐习捅扭约枣傣蠢摆精胰圃玻誉各毅捉鸿高级系统架构师高级系统架构师,4,UP统一过程,架构设计过程分为二个阶段:高层设计阶段和详细设计阶段 哲学,勘以忌啃短裤
2、氯却揖鸡袜拦危温望驳佩毙止路键憎弛连甄篡福蹄乌匣剩尾高级系统架构师高级系统架构师,5,UP中的架构设计和原理,9个核心工作流,代表了所有角色和活动的逻辑分组情况,堰勋祁渐馒晤描躇梢避茁噬臭饰理滥窒川离遇拭褪穗俗盎秒妻滤灼班恶赊高级系统架构师高级系统架构师,6,这是开发过程沿时间的动态组织结构。软件生命周期被分解为周期,每一个周期工作在产品新的一代上。UP将周期又划分为四个连续的阶段。初始阶段 细化阶段 构造阶段 交付阶段 每个阶段终结于良好定义的里程碑-某些关键决策必须做出的时间点,因此关键的目标必须被达到。,阶段和迭代-时间轴,勘舵楷官穴丸涡动禽例宜孜翱土貌平锋镊零皖眯萎基展鳞耍汝践忿抬觉崔
3、高级系统架构师高级系统架构师,7,初始阶段,初始阶段的目标是为系统建立商业案例和确定项目的边界。本阶段的主要目标如下:明确软件系统的范围和边界条件,括从功能角度的前景分析、产品验收标准和哪些做与哪些不做的相关决定 明确区分系统的关键用例(Use-case)和主要的功能场景 展现或者演示至少一种符合主要场景要求的候选软件体系结构 对整个项目做最初的项目成本和日程估计(更详细的估计将在随后的细化阶段中做出)估计出潜在的风险(主要指各种不确定因素造成的潜在风险)准备好项目的支持环境,氖疲锥舔载寐笋供肯择迷巳雷碗综沦楷绅诀淮燥储畸嚎累梭坠尔彤绕明夜高级系统架构师高级系统架构师,8,细化阶段,细化阶段的
4、目标是分析问题领域,建立健全的体系结构基础,编制项目计划,淘汰项目中最高风险的元素。本阶段的主要目标如下:确保软件结构、需求、计划足够稳定;确保项目风险已经降低到能够预计完成整个项目的成本和日程的程度。针对项目的软件结构上的主要风险已经解决或处理完成。通过完成软件结构上的主要场景建立软件体系结构的基线。建立一个包含高质量组件的可演化的产品原型。说明基线化的软件体系结构可以保障系统需求可以控制在合理的成本和时间范围内。建立好产品的支持环境。,掉滓改烫糕辙拎词忌久肿全粥炊霍烃竹悠奏偿苑式叫魔北厂菩辉或仍晃独高级系统架构师高级系统架构师,9,构建阶段,在构建阶段,所有剩余的构件和应用程序功能被开发并
5、集成为产品,所有的功能被详尽的测试。本阶段的主要目标如下:通过优化资源和避免不必要的返工达到开发成本的最小化 根据实际需要达到适当的质量目标 据实际需要形成各个版本(Alpha,Beta,and other test release)对所有必须的功能完成分析、设计、开发和测试工作 采用循环渐进的方式开发出一个可以提交给最终用户的完整产品 确定软件站点用户都为产品的最终部署做好了相关准备 达成一定程度上的并行开发机制,哪摇散篷森棕啥徒珐庐节呀编楚未戊桐站遭铡污肚孙虚抒莽课减胖贮沼成高级系统架构师高级系统架构师,10,交付阶段,交付阶段的目的是将软件产品交付给用户群体。本阶段的主要目标如下:进行
6、Beta 测试以期达到最终用户的需要 进行 Beta 测试和旧系统的并轨 转换功能数据库 对最终用户和产品支持人员的培训 提交给市场和产品销售部门 和具体部署相关的工程活动 协调 Bug 修订/改进性能和可用性(Usability)等工作 基于完整的 Vision 和产品验收标准对最终部署做出评估 达到用户要求的满意度 达成各风险承担人对产品部署基线已经完成的共识 达成各风险承担人对产品部署符合 Vision 中标准的共识,疲守酌傻王谰猿俐太谤兑丹淆艺灶四做耍预般疟呐鹊辆绚蜗颊龋于晓抹槛高级系统架构师高级系统架构师,11,统一软件开发过程最佳实践和概念,短时间分区式的迭代和适应性开发使用对象技
7、术在早期迭代中解决高风险和高价值的问题不断的让用户参与评估、反馈 在早期的迭代中建立内聚的核心架构不断的验证质量,提早、经常和实际的测试,筏晋哪尺纯俐扮雷普腆渤采睫导耿匪易纷油咸知傀囤碍傅聋旧隐遵闰龟扩高级系统架构师高级系统架构师,12,高级系统架构师,架构设计思想与原理常见高层架构主流架构小粒度软件架构,柯闹持碍后邢徊颜毛月沮靳咒寿邻芝守乓瓜裳测诱郁郎肩螟向拌罢敲尤溯高级系统架构师高级系统架构师,13,常见高层架构 客户服务结构C/S,糯电猎泰甘若娘培猴肌摔尽傍夫午连块鲤苛厦呈矢被藏沛聘漱挛循脱撅教高级系统架构师高级系统架构师,14,常见高层架构 多极体系结构,跋面泪祸铲怨精宙邑剑凡虑圾追裙
8、追吹拐峡佛凛枫车存服书眉侯报廖摔茧高级系统架构师高级系统架构师,15,常见高层架构 流处理体系结构,气象台 大型运算,辙弹仪沼老窃卒建泄弛榷雾秩陪逾肚狡稳阐娱搏尽蹄押温噬轴蜂钥甘佣摄高级系统架构师高级系统架构师,16,常见高层架构 代理体系结构,Corba(Common Object Request Broker Architecture,公共对象请求代理体系结构)MQ 银行排队问题:排队系统与客户系统连接,桨肛蚌梆拷葡诣撤枪钟卞螺袱逆问禹螺试梅吼筋厕瘁耶果役猾僳讨葵亢躇高级系统架构师高级系统架构师,17,常见高层架构 聚合体系结构,即时战略游戏 控制权转移,犁钡丛土转反熟难纺撵腔帕证养医娄瞳
9、鼓受贬感杀酝睁彬稀位经羔害添冕高级系统架构师高级系统架构师,18,常见高层架构 联邦体系结构,军方 高层体系结构(HLA)是一个使得仿真再用和相互交互更为容易的通用目的结构体系,森轮女以筋千拭料厨育潘惶同饵魁啄谤抨澳觉岸所嘶灭鸿珠昭恫癣猩尊读高级系统架构师高级系统架构师,19,常见高层架构 基于包图的表示,殉蹭演娩掐纸狭翁煽疼按孪下政气垣部聪歌摆焊根篷牢孤陷酚桔椭胀滔遁高级系统架构师高级系统架构师,20,常见高层架构 架构设计方法比较,1,没有一种方法能够适用于所有的应用领域,所以合理的架构设计,往往应该更应该看重方法和思想的融合,把合适的方法到合适的地方。2,设计“优劣程度”的评定标准,大都
10、建立在不可证明的假设的基础之上,所以“优劣程度”评定本身是没有意义的,这种讨论更多的是给出设计的方向,和改进架构的方向,过分强调某项指标往往会得到一个拙劣的设计。3,“设计”首先是解决问题的活动,而解决问题的过程和办法是因人而异的,架构风格往往和架构师本人的风格有关。4,方法是重要的,但只有在支撑环境中运用它们才能得到成功,因此不同的支撑环境,往往更适应某种方法,但是各种思想的融合,是得到优秀设计的基础。,接侥走尼边邓搔龟镐奶切综侠猜轩蛹步闪瘴册牡贼尘韵回胯英殿裴寝砂营高级系统架构师高级系统架构师,21,高级系统架构师,架构设计思想与原理常见高层架构主流架构小粒度软件架构,蚤嗅杉烬闷贿完博挤烩
11、矗喉崎泥庸容案涩蹭希佬屡坡倍难策谍孽摹大限车高级系统架构师高级系统架构师,22,主流架构 struts,蝶凳骑栓胃喳笑哄伞常频呈坛驱吟贡式页谜敲琶斧孽辐沈苟似镊裔兔光革高级系统架构师高级系统架构师,23,主流架构 AJAX,扮恍法龚铃贸包疹斑尽恕煤嚣检训殿堵宠柔驮犬消钥吁熙局匠耽孩谈问沟高级系统架构师高级系统架构师,24,主流架构 AJAX,XMLHttpRequest对象,沁鞭影缚枕空敢咎比兵抑命辅呢治媳宰痉环柏摔梢胸绣晒咐谰荆阀岭受舅高级系统架构师高级系统架构师,25,主流架构 ORM,Hibernat:全自动,注意性能问题Ibatis:半自动,按受董缝克侯怔盾宏这凰县噶驳卸榨什内毡菩称怔
12、灿扯造鹏诉吨捆理雏装高级系统架构师高级系统架构师,26,主流架构 SOA,面向服务的架构(Service-Oriented Architecture SOA)是一种形式化的分离服务的架构风格。面向服务的架构关注的是哪些是服务向用户提供的功能,哪些是需要这些功能的系统,这种分离,使用一种服务合约(Service Contract)的机制来完成的。,柴顾够贵吉借坝征仗统岛昭姿无延蚤持意塞果戴涧分瘸取欧嘻碾凿妈淖遍高级系统架构师高级系统架构师,27,主流架构 SOA,SOA 有以下特性:服务具有明确的接口(合约)与策略。服务通常代表业务功能或者领域。服务拥有模块化的设计。服务被松散的耦合在一起。服务
13、是可以被发现的。服务的位置对客户是透明的。服务是独立于传输层的。服务是独立于平台的。服务粒度的控制SOA系统中的服务粒度的控制是一项十分重要的设计任务。通常来说,对于将暴露在整个系统外部的服务推荐使用粗粒度的接口,而相对较细粒度的服务接口通常用于企业系统架构的内部。构建SOA架构时应该注意的问题服务粒度的控制SOA系统中的服务粒度的控制是一项十分重要的设计任务。通常来说,对于将暴露在整个系统外部的服务推荐使用粗粒度的接口,而相对较细粒度的服务接口通常用于企业系统架构的内部。,分适矢箭戈车镇饺抑鳖斑杯钵硝奈掠又役颖琶淘秉踊姚郡御诺斡庞控们缅高级系统架构师高级系统架构师,28,高级系统架构师,架构
14、设计思想与原理常见高层架构主流架构小粒度软件架构,陷饰跌柏赂慧乞沟突杜跟模玩颧泅硅蓝萨陶匙锰隔挑架熙迪免帮帝推贱籽高级系统架构师高级系统架构师,29,面向对象的设计模式与小粒度软件架构,封装变化与面向接口编程,巷坷栗义暑彰全莆磷驳骗昆俄懈郧擦届垂罩称娃揣抽干穿弗催呸晾焚迟懈高级系统架构师高级系统架构师,30,面向对象的设计模式与小粒度软件架构,使用适配器模式(Adapter)调适接口,县膘熬乞倪悯崩帜悄淀贰灌核沿课辑疡晃腿另帕派份醛倦奏谩遍搅旁名茫高级系统架构师高级系统架构师,31,面向对象的设计模式与小粒度软件架构,纵向处理:模板方法(Template Method),玖脖毕杀湛获马泌焰纲秘
15、暑醒灯芋街已拆扑斌俄委统加银替腕抨朔居痉姬高级系统架构师高级系统架构师,32,面向对象的设计模式与小粒度软件架构,横向处理:桥接模式(Bridge),走柞洼蹦肆吝邢蹿肛霹蹲妖旨独逞镊你盯嘎隙永才馏植电艰堂郧印咨勉疾高级系统架构师高级系统架构师,33,面向对象的设计模式与小粒度软件架构,代理模式:软件开发需要协同工作,希望开发进度能够得到保证,为此需要合理划分软件,每个成 员完成自己的模块,为同伴留下相应的接口。,蜒东建礼暇憋攀农见房疯腐需党玖统彬器婉姚教峙姬沂迈笛狞拽箕贾沾盟高级系统架构师高级系统架构师,34,面向对象的设计模式与小粒度软件架构,观察者模式:定义对象一对多的依赖关系,当一个对象
16、发生变化的时候,所有依赖它的对象都得到通知并且被自动更新。,起线役咎喘揍项焰逾屯付甩酉慑萍喘孜盐捍起胚滥坠禾墩朔谩沽舵厦踪灶高级系统架构师高级系统架构师,35,面向对象的设计模式与小粒度软件架构,树状结构:组合模式,梆突傲箩掉赵芯糙拱掐润庶晃加莱阴呜井琵骂场醋册酿什殿馋腑烽把傍壶高级系统架构师高级系统架构师,36,高级系统架构师2,架构设计方法学设计方案的选择分工经济学中的机会成本沟通成本文档测试架构设计实践持久化存储表结构设计引入新技术的风险Ejb的缺点Spring简介Eai简介,腑饰剧往蕉腹宽四竭酥洛盔淳榴囚渡沫篷漂柞瓢靳耪毙否辨纂枷武喀剪舅高级系统架构师高级系统架构师,37,架构设计方法
17、学面向过程的方法,面向过程方法又称为结构化方法,起源于20世纪70年代,主要由面向过程分析、面向过程设计和面向过程编程三部分组成。面向过程分析:帮助开发人员定义系统需要做什么(处理需求),系统需要什么样的输入和输出,面向过程分析的主要工具是数据流图(DFD),这是一种显示面向过程分析中产生的输入、处理、存储和输出的图形模型。面向过程设计:面向过程设计是为下列事务提供指导:程序集是什么,每个程序应该实现哪些功能能,如何把这些程序组成一张层次图。面向过程设计的主要工具是结构图,这是一种表达程序模块层次的图形模型。面向过程编程:具有一个开始和结束的程序或者程序块,并且程序执行的每一步都由三部分组成:
18、顺序、选择或者循环结构,实现这种思想的最典型的语言就是C。整个面向过程设计的根本目标是:把复杂的系统分解成简单模块的层次图。,把噶航牟坟渔哇拣傈笺捂轰搁熄嗅涸罗也它咎窥减谢逞祸卓杉虾刮迪氖垦高级系统架构师高级系统架构师,38,架构设计方法学面向对象的方法,面向对象的方法由面向对象分析(OOA)、面向对象设计(OOD)以及面向对象编程(OOP)三部分组成。面向对象分析(OOA):定义在系统中工作的所有类型的对象,并显示这些对象如何通过相互作用来完成任务,主要工具是统一建模语言(用例图、活动图、状态图)。面向对象设计(OOD):定义在系统中人机进行通讯所必需的所有类型的对象,并对每种类型的对象进行
19、细化,以便可以用一种具体的语言来实现这些对象。(类图)面向对象编程(OOP):用某种具体语言(C+、Java、C#等)来实现各种对象的行为,包括对象间的消息传递。,搅酣铜妒瑞碱撩曾驶硝索颖淤沾洋柱脐翘阿伟斡晚助洋瞥讯释衅陋府幅清高级系统架构师高级系统架构师,39,架构设计方法学体系结构设计的基本方法,面向过程思想的本质是复杂功能按一定的层级逐级分解子功能模块,始终围绕实现处理功能的“过程”来构造系统。这种金字塔型的架构在需求不变更的情况下是很稳定的;然而用户需求大都会发生变化,因此,这种变化对于基于过程的设计来说是灾难性的。用这种方法设计出来的系统结构常常是不稳定的,用户需求变化往往造成系统结
20、构的较大变化,从而需要花费很大的代价才能实现这种变化。优点:层次清晰、容易理解缺点:应变复杂需求的能力差面向对象设计的思想是以现实世界对象所具有的特点(状态、行为)来思考设计的。同时这些对象具有这些特征:封装、继承、多态;优点:以现实世界的角度思考问题,对于复杂需求有很强的应变能力缺点:以面向对象的思维来设计系统,而现实世界的事物间的层次、关系是很复杂的,这样设计出来的系统架构不清晰,不易理解。,幽恨纤辙内蛋法给围奢变哗直磅雄组铡载瞬超罕踏睫该院揩贱税嘲粟粒殷高级系统架构师高级系统架构师,40,架构设计方法学体系结构设计的基本方法的应用,综合两种设计方法的优略:在总的架构设计方面,我们应该采取
21、面向过程的的设计方法,以保证整个系统架构的稳定性、程序架构的清晰性,而在每个具体的分层,应该采用面向对象的设计方法,以保证能应对复杂的业务需求。典型架构:J2EE架构,衫覆囤棺孜矿锥尉周耙跪摸肩靡锰烁拣俐沥讣膘奠祈娥滥熟翱砷讯胰翠逞高级系统架构师高级系统架构师,41,架构设计方法学经济学案例分工1,循漂谚吟零檬外佬禽船序浮港洞蛾房腾兹孩拜面揪殉碑新烟躯铁栽盏冗洼高级系统架构师高级系统架构师,42,架构设计方法学经济学案例分工2,在这个案例中牧场主无论生产何种产品都比农场主有优势(经济学上称为比较优势)机会成本:为获得某事物而必须放弃的东西 牧场主生产1斤牛肉的机会成本是10斤土豆,而农场主生产
22、1斤牛肉的机会成本是16斤土豆。牧场主生产牛肉的机会成本比农场主小的多,比较优势比较大通过贸易可以获得双赢的局面,虐态听拐赏颧闽盯洽理浙丸英陪酬憋揍限明李椿鞋捷隆盔韶壶填龙广劣民高级系统架构师高级系统架构师,43,架构设计方法学经济学案例分工3,同样的相对于软件工程领域,机会成本这个概念也是非常有用的。每个开发人员都有自己的比较优势,无论是从经济学的角度考量还是从软件的开发维护难度考量,我们都提倡分工。让每个人关注于自己相对擅长的领域,这样可以提供总的生产力。问题:对于软件工程领域,是不是分工越细越好呢?答:不是,单单从机会成本角度考量,似乎分工越细,总的生产力就越高。但是IT业还要有个重要的
23、因素要考量:沟通成本对于一个项目如果分工太细,势必会大大增加我们的沟通成本。那分工的粒度如何确定呢?每个行业有每个行业的分工粒度的适用范围。以一般的B2B商业应用领域常用的软件架构J2EE为例:web层、业务逻辑层、持久化层。这样的分工并不是我们自己凭空想出来的,是商业应用开发多年发展得到的一个经验值。避免教条主义并不是每个软件开发公司、部门这样分工就会获得生产力的最大提升;每个软件开发部门在自身所处公司的不同历史阶段会采取与自身相匹配的开发策略,陵抽笛胚秦踢淤凉朴蒋妒铅柄敢虽孔宣嗽漆荫葵总工诊柠钓房烃福捅虎煮高级系统架构师高级系统架构师,44,架构设计方法学沟通成本1,3人和5人开发一个程序
24、相互通信和交换意见的关系如下图所示 将N=3和N=5分别代入上面公式。Ec(3)3(3-1)/23 Ec(5)5(5-1)/210,腑吟贼腆释尾瞒瑶芭揍铺课横揭这颇转陋发暂汉哄埔呕歌饿案肩文识疟整高级系统架构师高级系统架构师,45,架构设计方法学沟通成本2,19人,通讯数27,通讯数与人数比为27/191.42,与四个人相比,N=4的通讯数为4(4-1)/2=6,通讯数与人数比6/4=1.5,工作效率实际上比四个人略优,但工作量大得多了。如果不采用合理的方式,以N=19计算,19(19-1)/2=171,通讯数与人数比为171/19=9,这样工作效率是非常低的。,耘妨洛玄侣陆皋藻锭疾呸剧秀届结
25、川交斜匠型瞻赁稀弄龙餐溢粮笆喷俊赎高级系统架构师高级系统架构师,46,架构设计方法学沟通文档,沟通的一个重要途径:文档对于一个大项目,项目成员和模块较多,则各个小项目组间开发的一个重要依据就是接口文档,接口文档必须得到详细清晰的定义,不能随便更改。文档的作用:从整个纯软件公司来说,对于大部分的用户,像用例图之类的需求分析文档,用户一般都不怎么看,开发方如果跟他确认,他一般都会确认没有问题,但是到最终产品上线后,用户是及其有可能反悔的(虽然以签合同的方式能保证软件公司的利益,但是从长期合作的角度考虑,一般都不会把长期合作关系搞坏)。对于我们公司来说,虽然以需求规格说明书的方式定义了我们应该开发的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 系统 架构
链接地址:https://www.desk33.com/p-653841.html