软件架构设计ppt课件_第1页
软件架构设计ppt课件_第2页
软件架构设计ppt课件_第3页
软件架构设计ppt课件_第4页
软件架构设计ppt课件_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.,1,第十讲软件架构设计,.,2,目标,管窥架构设计现状架构设计方法如何确定架构驱动因素非功能需求设计方法论,.,3,通用过程太笼统,.,4,架构分析,架构分析可以被视为需求分析的规格化,其关注强烈影响”架构“的需求。例如,为系统识别高度安全方面的需求。架构分析的本质是要识别影响架构的因素,理解这些因素的可变性和优先级,并且解决这些问题为什么架构分析如此重要?因为它有助于:降低在系统设计中丢失某些重要因素的风险。避免在低优先级的问题上花费过多的精力有助于产品与业务目标的一致,.,5,架构分析,架构分析(architectureanalysis)是在功能性需求(例如处理销售等)的语境中,识别和处理系统非功能性需求(例如安全需求等)的活动。其包括识别变化点和最具有可能性的进化点。例:可靠性和容错需求如何影响设计?采购子构建的许可费用如何影响收益率?可适应性和可配置性需求如何影响设计?商标名称的选择如何影响架构?,.,6,架构分析,识别和分析对架构有影响的非功能性需求。虽然与功能性需求也有关系(特别是可变性方面),但是应该对非功能性需求给予非常彻底的关注。通常,这些都被称为架构因素(或者称为架构驱动者)对于这些在架构方面具有重要影响的因素,需求分析可供选择的办法并创建解决这些影响的解决方案。这就是架构决策。,.,7,架构分析,软件系统的架构将系统描述为计算组件及组件之间的交互”组件“可以指子系统、框架(Framework)、模块、类等不同程度的软件单元,它们可以担负不同的计算职责。,.,8,软件架构的要素:组件及组件之间的交互,组件,交互,.,9,MVC架构作为”组件+交互“的例子,View,Controller,Model,创建,读取,通知,调用服务,.,10,关注点分离之道,好的架构设计必须把变化点错落有致地封装到软件系统的不同部分,为此,必须进行关注点分离好的架构必须使每个关注点相互分离,也就是说系统中的一部分发生了改变,不会影响其他部分。即使需要改变,也能够清晰地识别出哪些部分需要改变。如果需要扩展架构,影响将会最小化。已经可以工作的每个部分都将继续工作。,.,11,P19图2-4,.,12,P20图2-5,.,13,P20图2-6对于面向对象的软件开发而言,经常有下列软件单元:粒度最小的单元通常是“类”几个类紧密协作形成“模块”完成相对独立的功能的多个模块构成了“子系统”多个子系统相互配合才能满足一个完整应用的需求,从而构成了软件“系统”一个大型企业往往使用多套系统,多套系统通过互操作形成“集成系统”类、模块、子系统、系统、集成系统,都是软件单元的具体形态,只不过粒度不同罢了,.,14,P21图2-7,.,15,P22图2-8,.,16,框架是软件,架构不是软件框架是一种特殊的软件,它并不能提供完整无缺的解决方案,而是为你构建解决方案提供良好的基础。框架是半成品。典型地,框架是系统或子系统的半成品;框架中的服务可以被最终应用系统直接调用,而框架中的扩展点是供应用开发人员定制的“可变化点”。P24图2-9,.,17,框架和架构的关系,P25图2-10,.,18,理解架构,真实的软件其实是“由组件递归组合而成”的:组件的粒度可以很小,也可以很大;任何粒度的组件都可以组合成粒度更大的整体。即所谓的粒度多样性问题组件粒度的界定,必须在具体的实践上下文中才有意义;你的大粒度组件,对我而言可能是原子组件。即所谓的粒度相对性问题P27图2-11图2-12作为复合整体的软件单元才有架构,架构规定了它如何被设计的重要决策,.,19,回到实践,P28图2-13,.,20,框架VS.类库,P29图2-14,.,21,框架的分类,P31图2-16,.,22,框架的开发过程,框架的整个开发过程,包括四个主要的阶段,即分析阶段、设计阶段、实现阶段和稳定阶段。P32图2-17,.,23,架构设计的5视图法,好的方法如路标,对实践者有启发和指引作用。软件架构师的工作:要满足性能、持续可用性等方面的需求,架构师必须深入研究软件系统运行期间的情况、制定相应的设计决策,这些需求被称为软件的“运行期质量属性”;而要满足可扩展性、可重用性等方面的需求,则要求架构师深入研究软件系统开发期间的情况,制定相应的设计决策,这些需求被称为软件的“开发期质量属性”;约束是一类特殊的需求,带有一定强制性,架构师制定的架构决策必须满足这些限制;为了满足功能需求,架构师必须规划组成软件系统的所有模块,为他们分配不同职责,使这些模块可以通过协作完成功能需求,.,24,架构设计的5视图法,软件架构师必须明确区分功能需求、约束、运行期质量属性和开发期质量属性等不同种类的需求,基于多视图的架构设计方法在一定程度上将各类需求分别对待,通过不同的架构设计视图分别满足它们,从而确保重要的需求一一被满足。架构设计5视图,包含了逻辑架构、开发架构、运行架构、物理架构、数据架构等5个架构设计视图P64图5-1,.,25,架构设计的5视图法,逻辑架构:逻辑架构关注功能,不仅包括用户可见的功能,还包括为实现用户功能而必须提供的“辅助功能模块”;它们可能是逻辑层、功能模块和类等开发架构:开发架构关注程序包,不仅包括要编写的源程序,还包括可以直接使用的第三方SDK和现成框架、类库,以及开发的系统将运行于其上的系统软件或中间件。开发架构和逻辑架构之间可能存在一定的映射关系:比如逻辑架构中的逻辑层一般会映射到开发结构中的多个程序包;再比如开发架构中的源码文件可以包含逻辑架构中的一到多个类(在C+里一个源码文件可以包含多个类,即使在Java里一个源码文件也可以同时包含一个类和几个内部类运行架构:运行架构关注进程、线程、对象等运行时概念,以及相关的并发、同步、通信等问题。运行架构和开发架构的关系:开发架构一般偏重程序包在编译使其的静态依赖关系,而这些程序运行起来之后会表现为对象、线程、进程,运行架构比较关注的是这些运行时单元的交互问题物理架构:物理架构关注“目标程序及其依赖的运行库和系统软件”最终如何安装或部署到物理机器,以及如何部署机器和网络来配合软件系统的可靠性、可伸缩性等要求。物理架构和运行架构的关系:运行架构特别关注目标程序的动态执行情况,而物理架构重视目标程序的静态位置问题:物理架构还要考虑软件系统和包括硬件在内的整个IT系统之间是如何相互影响的数据架构:数据架构关注持久化数据的存储方案,不仅包括实体及实体关系的数据存储格式,还可能包括数据传递、数据复制和数据同步等策略。数据架构和物理架构的关系:对于很多集成系统,数据需要在不同系统之间传递、复制和暂存,这往往要涉及到不同的物理机器;也就是说,如果需要,可以把数据放在物理架构之中考虑,以便体现集成系统的数据分布与传递特征。,.,26,架构设计的5视图法,P65图5-2,.,27,MySql的概念性架构,QueryEngine,TransactionControl,BufferManager,TransactionControl,TransactionControl,Depends-on,Legend,.,28,.,29,界面设计,需求分析,时间,工作内容,需求分析期间开始界面设计启发需求,.,30,需求分析,领域建模,为交流提供公共的领域词汇,提供探索问题领域的语境,.,31,项目启动,领域建模,需求分析,架构设计,详细设计,详细设计,详细设计,.,32,需求捕获,重新认识,需求详述,设计,引起变更,促成设计决策,变更冲击设计,需求捕获,重新认识,关键需求,其余需求,设计,变更性小,变更性大,决定架构,验证架构,.,33,P200表14-2,.,34,概念性架构,实际架构,开发实现,关键设计元素关键交互机制,逻辑架构数据架构开发架构运行架构物理架构,详细设计编码实现,.,35,基于视力方法进行架构细化,领域模型,关键需求,概念架构,约束,架构方案,经验,.,36,分析模型,问题空间,解空间,设计模型,系统分析员,系统设计师,描述,描述,描述,描述,.,37,方法缺少针对性,.,38,.,39,设计层次论,.,40,架构设计方法,.,41,在OO过程中的位置,.,42,什么是对架构关键的需求,包括功能需求、质量(属性)需求、商业需求三类任何功能需求,都是由一条特定的“模块协作链”完成的。对软件架构关键的功能需求,就是它涉及(或串起)的模块最多、最典型的功能需求。对架构至关重要的质量属性需求是那些经过权衡取舍、最终决定重点支持的质量属性需求。商业需求又称业务需求(其实对应的英文都为BusinessRequirement)。它关注:客户群、企业现状、未来发展预算、立项包括开发、运营、维护在内的整个软件生命周期因素商业层面的目标、期望和限制等,.,43,什么是对架构关键的需求,.,44,具体步骤,.,45,第一步:全面整理需求,研究愿景和范围文档研究软件需求规格说明书参加需求讨论会询问客户、用户、领域专家、系统分析员突破字面意思分析遗漏需求,.,46,第二步:分析约束性需求,.,47,商业需求因素(第二步),.,48,商业需求因素(第二步),.,49,案例:银行系统(第二步),.,50,第三步:确定关键功能需求,核心功能标志:业务层的接口要反映这些功能必须实现的功能往往来自甲方的要求。覆盖了系统架构的一些方面,而其他功能没有例如实现风险高的功能例如,.,51,第四步:确定关键质量属性需求,考虑为了提高要开发的软件系统受认可的程度,应着重提高哪些方面的质量属性要求;接下来,充分考虑这些质量属性之间的相互制约、或

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论