软件架构原理讲座

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

®IBMSoftwareGroup©2006IBMCorporation软件架构原理IBM软件部王家欣IBMSoftwareGroup|Rationalsoftware2内容ƒ什么是软件架构?ƒ架构带来什么好处?ƒ以架构为核心的软件开发过程用例与架构架构的步骤架构的描述与架构基线架构开发实现IBMSoftwareGroup|Rationalsoftware3架构一词的来源ƒ建筑行业:建筑中包含多个层面的技术ƒ外观、挖掘、地基、结构、墙、地板、电梯、电气、空调、水、卫生ƒ其它专门为居住者提供服务的设施架构师需要把所有的层次结合起来:ƒ使客户理解ƒ在建造的过程中为施工者提供指导ƒ架构相关于所有事情架构为所有人提供一个共同的远景目标ƒ架构不包括每个部分的细节IBMSoftwareGroup|Rationalsoftware4Architecture:三种不同的解释ƒArchitectureasaprocessordiscipline建造供所有类型的人使用的大厦的艺术或科学Theartorscienceofbuildingorconstructingedificesofanykindforhumanuse建造的活动或过程Theactionorprocessofbuilding依据建筑物的详细的结构和装饰的组织而采用的特殊的方法或风格ThespecialmethodorstyleinaccordancewithwhichthedetailsofthestructureandornamentationofabuildingarearrangedƒArchitectureasanartifact架构设计工作:结构,建筑物总体的构造或结构Webster’sNinthCollegiateDictionaryIBMSoftwareGroup|Rationalsoftware5什么是软件架构?ƒ期望其与建筑架构起到相同的作用:将软件的所有层次组合在一起便于客户理解为建造过程提供指导ƒ软件架构包含了过于下列方面的重要决定:软件系统的组成对所包括的系统及其接口的结构元素的选择,以及元素间的协作行为结构和行为元素如何组成不断增长的更大的子系统架构风格:组成元素与接口、相互协作、相互组合ƒ架构元素不仅与结构和行为有关,也和用法、功能、性能、适应性、重用、可理解性、经济和技术的限制、折中、美学等有关IBMSoftwareGroup|Rationalsoftware6软件架构定义的发展PerryandWolf,1992Asetofarchitectural(ordesign)elementsthathaveaparticularform.PerryandWolffurtherdistinguishbetweenprocessingelements,dataelements,andconnectingelements.Boehmetal.,1995AsoftwaresystemarchitecturecomprisesƒAcollectionofsoftwareandsystemcomponents,connections,andconstraintsƒAcollectionofsystemstakeholders'needstatementsƒArationalewhichdemonstratesthatthecomponents,connections,andconstraintsdefineasystemthat,ifimplemented,wouldsatisfythecollectionofsystemstakeholders'needstatements.Clementsetal.,1997Thesoftwarearchitectureofaprogramorcomputingsystemisthestructureorstructuresofthesystem,whichcomprisesoftwarecomponents,theexternallyvisiblepropertiesofthosecomponents,andtherelationshipsamongthem.PaulClement'spage@|Rationalsoftware7所有定义中的公共元素ƒ架构定义了关键组件ƒ架构定义了组件之间的关系(结构)和交互ƒ架构忽略了组件中与组件之间交互无关的内容的信息ƒ从另外一个组件的视点能够观察到的组件的行为是架构的一个部分ƒ每个系统都有一个架构(即便这个系统只有一个组件组成)ƒ架构定义了组件和结构背后的基本原理ƒ在架构定义中不包含组件的定义ƒ架构不是简单的结构定义–在架构定义中不只是单一的结构定义IBMSoftwareGroup|Rationalsoftware8RATIONAL对架构的定义ƒ软件架构将关于软件系统的组织的正确的决定组合在一起系统组成所需要的结构元素以及它们之间的结构的选择在这些元素之间的特定的协作行为将这些结构元素和行为元素组合成为一个更大的子系统用于制导系统组织的架构风格GradyBooch,PhilippeKruchten,RichReitman,KurtBittner;Rational(derivedfromMaryShaw)IBMSoftwareGroup|Rationalsoftware9RATIONAL对架构的定义(2)ƒ软件架构也关系到功能性Functionality可用性Usability系统弹性Resilience性能Performance重用Reuse可理解性Comprehensibility经济和技术的约束及相关折中Economicandtechnologyconstraintsandtradeoffs美学的考虑AestheticconcernsIBMSoftwareGroup|Rationalsoftware10(软件)组件是什么?ƒ可以被用于分布、集成、交付、替换的单元ƒ实现关键的功能ƒ由组件所提供的和它所要求的(需要的)服务定义服务只展现集成所必需的组件行为ƒ在下列的上下文关系中有意义:架构组件模型和框架ƒ不一定是一个单一的代码单元或单一的二进制文件IBMSoftwareGroup|Rationalsoftware11架构约束设计和实施ƒ架构涉及到一系列对设计和建造起约束作用的的策略性的设计决定、规则和模式CODEimplementationdesignarchitecture架构的决定是昀为基本的决定,改变他们将掀起宣然巨波IBMSoftwareGroup|Rationalsoftware12常见的错误概念ƒ架构和设计是相同的事情ƒ架构和基础架构(infrastructure)是相同的事情ƒ架构就是结构ƒ架构是平面化的,一个蓝图就足够了ƒ架构是不能够被度量和验证的ƒ架构是艺术或架构是科学IBMSoftwareGroup|Rationalsoftware13错误概念:架构=设计ƒ架构是设计的一个表象,它关注于:对于结构来讲关键的的元素对于性能、可靠性、成本、适用性等有重大影响的元素ƒ架构捕获了一组重要的设计决定ƒ架构不关心每个独立元素的详细设计IBMSoftwareGroup|Rationalsoftware14错误概念:架构=基础架构Infrastructureƒ架构比基础架构包含的内容更多ƒ基础架构是一个完整的、重要的架构的组成部分ƒ架构也定义了也定义了应用在基础架构上的运行ƒ架构定义了基础架构和应用组件之间的互操作性IBMSoftwareGroup|Rationalsoftware15错误概念:架构=结构ƒ架构相关于结构、分解、接口等ƒ架构比结构包含的更多:动态表象基本原理适合于上下文关系:ƒ业务上下文ƒ开发上下文IBMSoftwareGroup|Rationalsoftware16错误概念:架构是平面化的ƒ只有在那些非常细小的案例中,架构才是平面化的ƒ架构有很多的维度,分别表述不同的涉众的不同的关注点ƒ利用一个单一的蓝图来表达全部(大部分的)的维度将导致语义的过度使用和不完整ƒ架构需要多个视图IBMSoftwareGroup|Rationalsoftware17错误概念:架构是不能够被度量和验证的ƒ架构不是一个粗略的、用草纸和铅笔进行的顶层的设计ƒ对于架构能够就功能和质量的需求、风险、和其他的系统关键属性进行系统化地评估评审架构的工件测试架构原型IBMSoftwareGroup|Rationalsoftware18ƒ两者都不是/两者都是ƒ难于应用分析方法ƒ非常大的问题空间,却只有非常少的可选择的量化的度量标准ƒ好的架构师拷贝过去成功地解决方案并与当前增加的改进结合ƒ架构定义的过程有明确定义的步骤和明确描述的工件ƒ架构相关的知识体系开始被编成法典模式,框架,服务,启发模式,…ƒ直觉和创造性仍然重要错误概念:架构是艺术或架构是科学ArtScienceIBMSoftwareGroup|Rationalsoftware19内容ƒ什么是软件架构?ƒ架构带来什么好处?ƒ以架构为核心的软件开发过程用例与架构架构的步骤架构的描述与架构基线架构开发实现IBMSoftwareGroup|Rationalsoftware20复杂性功能性技术技能过程组织和文化质量业务关注点架构是权衡IBMSoftwareGroup|Rationalsoftware21架构师功能技术复杂性组织和文化业务关注点技能质量过程ArchitectureSystemSoftwareArchitectureinPractice:L.Bass,P.Clements,R.Kazman,Addison-Wesley,1998架构业务流程架构的业务流程producesdrives架构的约束IBMSoftwareGroup|Rationalsoftware22好处:系统完整性和质量ƒ架构能够在变更中保持概念的完整性和系统质量所要求的功能质量属性新需求变更的需求融合技术ƒ架构延长系统的寿命容易进化系统弹性弹性化的应变能力IBMSoftwareGroup|Rationalsoftware23好处:控制复杂度ƒ“排除与克服”分解到组件隐藏实施的细节ƒ关注点的分离组件(层次)封装细节不同组件可以由掌握不同专业技能的人员来实施IBMSoftwareGroup|Rationalsoftware24好处:可预见ƒ过程可预见性架构原型允许你收集度量指标ƒ开发成本的度量指标ƒ进度的度量指标ƒ行为可预见性架构迭代排除关键风险IBMSoftwareGroup|Rationalsoftware25好处:可测试性ƒ良好构件化了的系统支持更好的、更容易的诊断跟踪能力发现错误ƒ测试是用例驱动的IBMSoftwareGroup|Rationalsoftware26好处:重用ƒ架构定义了替换规则ƒ组件接口定义替换物的边界ƒ架构使得各种粒度的重用成为可能组建级别的小范围的重用大范围的重用ƒ子系统ƒ产品ƒ框架IBMSoftwareGroup|Rationalsoftware27好处:沟通ƒ架构支持涉众间的沟通ƒ不同的视图定位于不同涉众的关注点ƒ架构沟通的是关键的设计决定ƒ架构设计的基本原理沟通折中IBMSoftwareGroup|Rationalsoftware28好处:组织和项目管理ƒ组织的结构与架构协同开发团队分包商ƒ组件/子系统作为下列单元使用:开发配置管理测试交付与升级ƒ组件/子系统被并行开发IBMSoftwareGroup|Rationalsoftware29SoftwareProjectManagement:AUnifiedFramework(AppendixB),WalkerRoyc

1 / 80
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功