方法体系概述——ADMEMS方法指导新系统建设软通动力·专属定制·实战型资深咨询顾问·实战型架构培训专家·创立ADMEMS实践体系·《软件架构设计》著者·《一线架构师》著者·中国Softcon杰出贡献专家·中国CCSE杰出贡献专家温昱百舸争流,老外凭什么赢?“方法体系”的提出三个经典难题,一套实践体系实践体系的三个阶段Pre-architecture阶段ConceptualArchitecture阶段RefinedArchitecture阶段概念架构与5视图的关系议程方法体系,而不是单一方法5视图方法重大需求塑造概念架构架构师必须懂需求“方法体系”的提出三个经典难题,一套实践体系实践体系的三个阶段Pre-architecture阶段ConceptualArchitecture阶段RefinedArchitecture阶段概念架构与5视图的关系议程架构设计三个经典难题需求架构思维过程乱不能系统有序进行思维……输出乱不能错落有致提供设计决策……输入乱不能深入全面把握需求……•架构师:混乱是思维的大敌!一套实践体系Pre-architecture阶段:错过=过错ConceptualArch阶段:大系统成败关键RefinedArch阶段:团队并行开发基础PA阶段需求CA阶段RA阶段架构“方法体系”的提出三个经典难题,一套实践体系实践体系的三个阶段Pre-architecture阶段ConceptualArchitecture阶段RefinedArchitecture阶段概念架构与5视图的关系议程•第1步:需求结构化•第2步:分析约束影响•第3步:确定关键质量•第4步:确定关键功能4321确定关键功能确定关键质量分析约束影响全面有序理解需求影响架构的因素多而杂Pre-architecture:不仅是理解需求例如,确定关键质量时……理解力:不能“还原”,何谈“创造”创造力:用好Pre-architecture阶段开发方约束:♦网站发展路线图开发期质量:♦可扩展性用户级约束:♦便捷的购物流程♦客户群大:多国语言♦客户群大:关注范围差异,须个性化♦消费心理:营造集市效应,“别人也买了”、“别人还买了”运行期质量:♦可伸缩性:几乎没有上限♦性能:即强调速度,又强调吞吐量♦易用性:最便捷的选择方式♦安全性:数据安全♦持续可用性:不停机♦互操作性:含公司各系统间互操作用户:♦终端用户♦各种员工角色终端用户功能:♦最快的全库搜索♦评价功能(Web2.0)♦多角度关联信息管理员功能:♦灵活的打折设置♦频率极高的新货上架商业约束:♦投资2000万用于初期开发、运营、市场,之前须取得一定成功并融资成功集成约束:♦物流、银行、海关、实体店、各类提供商(包括工厂等生产企业、以及代理商等经销企业)商业质量:♦新功能上线快,随需应变业务目标、及业务愿景:♦网站定位:B2C零售♦当前经营:图书♦未来经营:图书、软件、音乐制品、电子产品、玩具、婴儿用品、化妆品、宠物、艺术品、杂货。用户开发组织功能质量约束“方法体系”的提出三个经典难题,一套实践体系实践体系的三个阶段Pre-architecture阶段ConceptualArchitecture阶段RefinedArchitecture阶段概念架构与5视图的关系议程重大需求塑造概念架构•架构决定因素=关键功能+关键质量+业务需求与约束对比:RUP的用例驱动方式UseCasesAnalysisClassesSourceCodeExecDesignClasses两种哲学的优劣分析驱动力功能质量约束功能质量约束驱动力概念架构针对重大需求、特色需求、高风险需求,给出高层次的解决方案问题1:过于理想化问题2:未来修改很大案例:基于Web的PMSysPMSys例:概念架构≠理想设计•PM作为CVS客户端提供文档管理能力•PM系统的用户,也要管理项目文档,同时访问PM、CVS麻烦Java开发Server端•服务器,跑的OS可能是Windows、Unix、Linux,如何都支持•不支持•客户端,运行在掌上电脑上,如何支持•采用ORM技术•DBMS,可能是Oracle、SQLServer,如何都支持跨平台(质量属性)•Adapter设计模式,支持CVS、Subversion等•配置管理服务器,不是CVS,如何支持•HR系统,已有员工信息,不再输入而是互操作导入互操作性(质量属性)•B/S架构•PM系统的用户,分别在Windows、Unix、Linux、Mac上工作,能够访问PM系统•B/S架构•项目成员,在客户现场,能够访问PM系统业务需求和约束决策场景目标PMSys例:得到的概念架构4层架构及每层职责采用B/S架构采用Java语言ORM技术的采用集成的考虑细化架构详设与编程概念架构愿景与需求“方法体系”的提出三个经典难题,一套实践体系实践体系的三个阶段Pre-architecture阶段ConceptualArchitecture阶段RefinedArchitecture阶段概念架构与5视图的关系议程《软件架构设计》中一则笑话•程序员说,架构就是要决定需要编写哪些类、使用哪些现成框架,程序经理笑了;•程序经理说,架构就是模块的划分和接口的定义,系统分析员笑了;•分析员说,架构就是为业务领域对象的关系建模,配置管理员笑了;•配置管理员说,架构就是开发出来的、以及编译过后的软件到底是个啥结构,数据库工程师笑了;•数据库工程师说,架构规定了持久化数据的结构,其他一切都不过是对数据的操作而已,部署工程师笑了;•部署工程师说,架构规定了软件部署到硬件的策略,用户笑了;•用户说,架构就是决定一个个功能子系统如何划分,程序员又笑了。RUP的4+1视图DesignViewImplementationViewProcessViewComponentsClasses,interfaces,collaborationsActiveclassesDeploymentViewNodesUseCaseViewUsecases5视图:扩充了经验,补足了技巧运行架构数据架构物理架构逻辑架构开发架构•持久数据单元–文件–关系数据库–实时数据库•数据存储格式–文件格式–数据库Schema•程序单元–源文件、配置文件–程序库、框架–目标单元•程序单元组织–Project划分–Project目录结构–编译依赖关系•控制流–进程、线程–中断服务程序•控制流组织–系统启动与停机–控制流通信–加锁与同步•职责划分–逻辑层(Layer)–子系统、模块–关键类•职责间协作–接口–协作关系•物理节点―PC、服务器―单片机、单板机、专用机―软件安装、部署、烧写―系统软件选型•物理节点拓扑―连接方式、拓扑结构―物理层(Tier)―冗余考虑“方法体系”的提出三个经典难题,一套实践体系实践体系的三个阶段Pre-architecture阶段ConceptualArchitecture阶段RefinedArchitecture阶段概念架构与5视图的关系议程概念架构与5视图的关系谢谢!Q&A