您好,欢迎访问三七文档
架构设计:策略与过程温昱wenyu@china.com议程•分而治之之道•架构在软件开发中的“位置”•架构设计策略•架构设计过程思考:C++语言的细节数据常量变量表达式数据类型类型转换属于…类型可能包含目标类型源类型表达式元素广义函数函数运算符思考:C++语言与分而治之类方法应用程序应用入口点**思考:动态场景分而治之的两种方式问题的广度问题的深度子问题问题的广度问题的深度子问题子问题子问题子问题子问题整个问题按问题深度分而治之按问题广度分而治之问题的广度问题的深度议程•分而治之之道•架构在软件开发中的“位置”•架构设计策略•架构设计过程软件开发(黑盒)需求软件系统软件开发功能vs.结构软件开发(灰盒)?面向功能面向结构需求应用架构设计不仅关心结构“力量是一种关系。”结构是否适应功能?架构的位置需求架构设计软件系统系统开发软件架构完成从功能到结构的转换原来如此问题的广度问题的深度架构设计并行开发架构在生命周期中的作用运行与维护移交构造细化初始承载决策组织开发支持重用系统演进控制复杂性报废议程•分而治之之道•架构在软件开发中的“位置”•架构设计策略•架构设计过程策略1:全面认识需求真正重视非功能需求之后,需求空间平面被“拉”成了立方体。需求层次论需求层次论来源:《SoftwareRequirements》付诸实践建立自己的、多维的、Checklist式的“需求分类图谱”。实用!策略2:关键需求决定架构是防守,更是进攻!•防守:务实,甚至不得已•进攻:为了更好的架构从功能到结构来源:IvarJacobson“关键需求决定架构”的原因来源:IvarJacobson付诸实践organizedocumentsprocessmakeadiagramexplaintechnicalwriterretrievedocumentsaccesstoFVSdetectconflictsaccesstoPVSdetectloadbalanceexaminedeliberationssend/receiveane-mailparticipantscoordinatorprogrammeranalystdesigneranalystdesignerFVSFVSIFsourcesdiagramsCVSlogdetectdetectIFPVSoperateoperatePVSIFloadanalyzeanalyzedetectIFmailsextractsummarydetectstructuredeliberationthreadsexamineIFexaminemailIFsendreceivemakemakeIFrecordexplanationrecordIFprocessIFprocessProcessedorganizeIForganizedocumentsinXMLretrieveretrieveIFconflicts来源:KoichiroOchimizu特别提醒不同时期,划分需求重要等级的尺度不同!策略3:多视图探寻架构著名的4+1视图……可根据情况增减……4+1视图概念图上下文图(数据流图语法)上下文图(UseCase语法)策略4:尽早验证架构验证架构的技术可分为两种:•原型法(RUP称为可执行架构)•框架化(FrameworkFirst)原型法可执行架构RUP中的可执行架构(executablearchitecture),即垂直进化原型。架构框架化CommonspotHotspotFramework多种分类方法:•技术框架•业务框架(针对不同领域)•白盒框架(玻璃盒为特例)•黑盒框架•灰盒框架•ApplicationFramework•MiddlewareFramework•InfrastructureFramework•垂直框架•水平框架总结:架构设计策略•全面认识需求•关键需求决定架构•多视图探寻架构•尽早验证架构议程•分而治之之道•架构在软件开发中的“位置”•架构设计策略•架构设计过程架构分析领域建模领域对象模型确定核心需求集核心需求集用例分析分析类图质量属性和约束分析架构策略架构设计逻辑视图实现视图部署视图其他视图(如进程、数据)子系统、接口设计实现设计部署设计其他设计谢谢大家!
本文标题:架构设计策略与过程
链接地址:https://www.777doc.com/doc-2289987 .html