软件架构师培训_第1页
软件架构师培训_第2页
软件架构师培训_第3页
软件架构师培训_第4页
软件架构师培训_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

1、OutlineOutlineSA相关概念ABC软件架构设计的基本原则架构师角色与架构师之路部分相关技术概览MDA&UML 2.0RUPPatternCBDSOAAOPSASA定义(定义(1 1)The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the rel

2、ationships among them. 程序或系统的软件架构是指系统的一组结构,其由软件元素、这些元素的外部可见属性以及它们之间的关系构成。Software Architecture in Practice Software Architecture in Practice (Bass, Clements, Kazman Bass, Clements, Kazman )SASA定义()定义()Architecture is the fundamental organization of a system embodied in its components, their relation

3、ships to each other and to the environment and the principles guiding its design and evolution.(IEEE P1473)(IEEE P1473)SASA定义(定义(3 3)An architecture is the set of significant decisions about the organization of a software system, the selection of the structural elements and their interfaces by which

4、 the system is composed, together with their behavior as specified in the collaborations among those elements, the composition of these structural and behavioral elements into progressively larger subsystems, and the architectural style that guides this organization-these elements and their interfac

5、es, their collaborations, and their composition (Booch, Rumbaugh, and Jacobson,The UML Modeling Language User (Booch, Rumbaugh, and Jacobson,The UML Modeling Language User Guide,).Guide,). Basic Architecture ElementsBasic Architecture ElementsComponentsConnectorsPortsStyleComp1Comp1Comp1Comp1Conn2Co

6、nn1CBD based on archCBD based on archWhat&How?ExternalinterfacesBusinessComponentBISArchitecture styleArchitecture styleAn architecture style is a description of component types and a pattern of their runtime control and/or data transfer.部件类型及与运行时控制和数据传输的模式Example:pipe-and-filter styles, an n-tier,

7、client-server style, or an agent-based architecture an ADL for software applications focuses on the high-level structure of the overall application rather than the implementation details of any specific source module architecture should be modeled by an ADL.Architecture Based DevelopmentFormal model

8、ing notations and analysis Used in design time Used for maintainingReused in next design cycleUsed for system configuration? (Dynamic Architecture)ADL-Architecture Description LanguageADL-Architecture Description LanguageArchitecture in ADL Architecture in ADL Modeling Components and Connectors:Inte

9、rfaceTypeSemanticsConstrainsEvolutionNon functional propertiesNenad Medvidovic and Richard N. Taylor, A Classification and Comparison Framework forSoftware Architecture Description LanguagesIEEE TRANS. ON SE, VOL. 26, NO. 1, JAN 2000ArchArch角色角色CodeSoftware ArchitectureRequirementsADL - UMLADL - UML

10、RequirementsCodeADLsUMLDavid GarlanDavid GarlanCarnegie Mellon UniversityCarnegie Mellon UniversityABCABC(1 1)ArchitectureSystemCustomersand End UserDevelopingOrganizationTechnicalEnvironmentArchitectsExperienceArchitectRequirements(Qualities)Architects InfluencesSoftware Architecture in Practice (B

11、ass, etc)ABC = Architecture Business CycleABC = Architecture Business Cyclestakeholders:客户和最终用户影响需求质量需求受开发组织技术环境因素架构师的经验和背景当前技术环境企业应用标准(Might)软件工程的相关技术(Might)开发组织因素影响架构的因素影响架构的因素 ABC(2)ABC(2)架构的影响架构的影响 ABC(3) ABC(3) 开发组织的形式、开发组织的目标下一系统的需求实践者的经验业务目标产品的需求现场系统一些系统的架构很有影响力基于架构的步骤基于架构的步骤建立系统的业务用例理解需求创建或选

12、择架构对架构进行表示和交流分析和评价架构基于架构实现系统保证实现遵循架构 Envision Create and Analyze Implement Architecture System Reuse架构在产品生命周期中的位置架构在产品生命周期中的位置InceptionElaborationConstructionTransitionUpgradeEnvisionCreateandAnalyzeArchitectureSystemReuseArchitectural BaselineInceptionInceptionOtherProductsSASA设计基本原则设计基本原则Abstracti

13、on抽象Information Hiding信息隐藏Structure结构化Modularity 模块化Concurrency并发Verification校验Aesthetics美学Business influence & impact商业效果处理从具体概念实例分离出来的概念例如:耦合根据其环境的不同可以理解为方法层次、类层次、和系统层次上的。推迟考虑一些具体的机构和许多算法的细节尽量减少要解决的复杂要点抽象抽象抽象设计抽象设计架构设计规范是强调系统功能性和结构性的属性的模型抽象设计是抽象考虑到具体表达的过程.Various models listed in textlisted in tex

14、t help to communicate different aspects of the system by maskingmasking some of the complexity and revealingrevealing some relationships(UML的各种图)三种抽象机理三种抽象机理功能抽象数据抽象控制抽象功能抽象例子功能抽象例子过程定义工具管理和监控工具 接口 1接口 4 接口 5 工作流运行服务 工作流 API 和 交换格式其它工作流运行服务工作流客户端应用接口 3接口 2工作流引擎工作流引擎 应用调用数据抽象的例子数据抽象的例子控制抽象的例子控制抽象的例子信

15、息隐藏信息隐藏基本的设计原则每个模块都把处理活动的内部细节隐藏起来模块之间的通信仅通过接口进行模块也是一种抽象形式每个模块隐藏困难的设计决策及其最可能的变化StructureStructure结构是软件最基本的概念通过分解成具有Well-defined接口的更小的更好管理的模块最通用的表现是 “network”,如有向图Hierarchical ordering 有向无环图分解标准分解标准information hiding高内聚低耦合数据封装模块化模块化模块化Well-defined, manageable units with well-defined interfacesDesirabl

16、e properties对其它应用很可能有用单一明确的用途操纵多个数据结构功能与被操纵的数据结构封装在一起(类的作用) 校验校验设计是需求与需求实现之间的桥梁A design is verifiable如果其能展现其实现将满足客户的需求.测试计划是产品设计的一部份保证系统是结构化的,这样系统的内部状态可以观察、测试,观察和测试的结果可以关联到需求。美学美学简单而优美、目标清晰恰好满足需求模式是一些设计的可重用法典一个架构师或一个很小的小组作为明确的架构设计领导必须有系统性的技术需求、必须有关键性的、确定优先级的、本质性的属性用大家共识的notation来描述架构( Well-documente

17、d)所有的stakeholders必须主动地对架构进行Review.及早地分析架构的可应用性并及早地评审 Arch应当允许先创建系统的框架,而功能在此框架上增量地开发。Arch能够明确特定资源的约束小结小结好架构的设计指南好架构的设计指南(1)(1)通过信息隐藏定义好功能模块,对不同层面的东西进行分离、并有良好的接口定义。不同模块或模块的不同方面允许分配给不同的开发组进行并行开发。模块应该隐藏具体基础计算架构平台的特质。架构本身不应该依赖于商业产品或工具的任何一个具体版本以使可以直接、廉价地改变把数据产生者和消费者分开并行处理的考虑分配给处理器的过程和任务可以轻易改变,即使是在运行时一致性地使

18、用少量、简单的交互模式小结小结好架构的设计指南好架构的设计指南(2)(2)Soft Architect RoleSoft Architect Role(1 1)Creates a vision跟上新技术的发展理解全局性需求与约束建立系统全局视图communicates the vision effectively为系统系统架构师提供需求和输入software architect是关键的技术顾问组织围绕设计的开发团队管理各种依赖关系评审和协商需求给员工提供技术能力方面的知识激励团队推荐技术、培训和工具跟踪设计质量保证架构满足设计目标( (译自译自 Hofmeister Hofmeister et

19、 al.et al., , Applied Software ArchitectureApplied Software Architecture) )Soft Architect RoleSoft Architect Role(2 2)决策者领导设计团队早期设计决策 (key global ones)知道何时结束讨论并形成结论分析和管理风险教练与团队成员进行沟通教会团队成员设计倾听反馈知道何时需要架构变更知道何时让别人进行详细设计协调协调所有由于架构影响的活动保证设计的完整性保证架构得到遵守Soft Architect RoleSoft Architect Role(3 3)实现考虑引入新技术

20、可能需要审视低层和详细的设计来验证初始概念通过快速原形来探究和评价设计决策可能仅实现一个垂直切片来缩写风险可能通过实现组件来作为开发者的实施模型提倡(鼓动)鼓励投资者对架构的投入把软件架构合并到软件开发流程中持续评估和引入新的架构技术提倡架构重用架构师之路(架构师之路(1 1)把你的目标定位为SE专家获取丰富的经验培养技术、领导和与人沟通的能力作为有丰富经验的架构师的学徒IndividualContributorSoftwareEngineerSeniorSoftwareEngineerTeamLeaderArchitectIncreasing responsibility, scope an

21、d challenge架构师之路(架构师之路(2 2)一些具体操作建议培养系统观(关心相关的工作)培养抽象和总结能力学习和吸收新的SE方法体系经常参与方案讨论、经常与人交流锻炼自己有效表达观点的能力有效及时地整理自己的成果和思路为自己的灵感创造环境(别墨守成规、看点杂书)储备新技术和新理论学习和了解业务知识MDA&UML 2.0MDA&UML 2.01967199619971998200120022003M o d e l - D r i v e n A r c h i t e c t u r e i s an approach to the full lifecycle integratio

22、n and interoperability of enterprise systems comprised of software, hardware, humans, and b u s i n e s s p r a c t i c e s . MDA&UML 2.0MDAMDA&UML 2.0MDAMDA&UML 2.0MDAMDA&UML 2.0MDAService consumingPlatform SpecificComponent IndependentBusiness ModelPlatform IndependentComponent viewService ProvisioningPlatform SpecificComponent IndependentBusiness ModelPlatform IndependentComponent viewbusiness specificationInterface specificationimplementation specificationMDA&UML 2.0UML 2.0MDA&UML 2.0UML 2.0Basic LevelIntermediate LevelComplete LevelDiagram InterchangeOCLI

温馨提示

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

评论

0/150

提交评论