1、架 构 设 计 六 技架 构 设 计 六 技从需求向架构过渡的系统方法温温 昱昱资深咨询顾问资深咨询顾问软件架构专家软件架构专家软件架构设计软件架构设计作者作者 业内对架构的讨论仍沿用了传统思想:如果知道了系统需求,就可以为此系统构建架构。这种观点是缺乏远见的Len Bass定 位议 程p功能与架构p质量与架构p约束与架构p总结原理:功能 and 职责协作链资资源源管管理理任任务务管管理理成成员员界界面面经经理理界界面面管管理理员员界界面面数数据据管管理理安安全全管管理理日日志志管管理理查看任务分配任务修改任务第一技:通过协作,识别职责第二技:缩小范围,事半功倍如何确定关键功能需求核心功能核心
2、功能标志:业务层的接口要反映这些功能必须实现的功能必须实现的功能往往来自甲方的要求。覆盖了系统架构的一些方面,而其他功能没有覆盖了系统架构的一些方面,而其他功能没有例如实现风险高的功能实现风险高的功能例如案 例有意义吗展现层业务层数据层概念性架构设计过程概念性架构设计过程概念性架构设计过程概念性架构设计过程有奖问答1.架构设计的“决定因素”A.用例驱动的(功能需求驱动的)B.非功能需求驱动的C.包括功能、非功能的综合因素驱动的D.根本不存在所谓“决定因素”,应靠经验议 程p功能与架构p质量与架构p约束与架构p总结原理:质量属性对架构的影响原理:质量属性对架构的影响 功能需求:连接两岸的公路交通
3、功能需求:连接两岸的公路交通桥墩支撑的公路桥桥墩支撑的公路桥 约束条件:不能影响万吨轮从桥下通过约束条件:不能影响万吨轮从桥下通过规定桥墩的高度和桥墩间距规定桥墩的高度和桥墩间距 使用期质量:在湍急的江流中保持稳固使用期质量:在湍急的江流中保持稳固把桥墩建在岩石层之上把桥墩建在岩石层之上 建造期质量:施工方便性建造期质量:施工方便性继续确认和调整架构继续确认和调整架构第三技:功能质量,综合考虑高性能Cache机制著名定义中的两个错误架构风格到接口一级了么?非功能需求的设计要另起炉灶么?软件架构包含了关于以下问题的重要决策:软件系统的组织;选择组成系统的结构元素和它们之间的接口,以及当这些元素相
4、互协作时所体现的行为;如何组合这些元素,使它们逐渐合成为更大的子系统;用于指导系统组织的架构风格:这些元素以及它们的接口、协作和组合。软件架构不仅注重软件本身的结构和行为,还注重其他特性:使用、功能性、性能、弹性、重用、可理解性、经济和技术的限制及权衡、以及美学等。第四技:分门别类,深入理解运行期质量属性开发期质量属性性能(Performance)安全性(Security)易用性(Usability)持续可用性(Availability)可伸缩性(Scalability)互操作性(Interoperability)可靠性(Reliability)鲁棒性(Robustness)易理解性(Unde
5、rstandability)可扩展性(Extensibility)可重用性(Reusability)可测试性(Testability)可维护性(Maintainability)可移植性(Portability)运行期质量+开发期质量运行期质量属性开发期质量属性性能(Performance)安全性(Security)易用性(Usability)持续可用性(Availability)互操作性(Interoperability)可靠性(Reliability)鲁棒性(Robustness)易理解性(Understandability)可测试性(Testability)可重用性(Reusability
6、)演进可伸缩性(Scalability)可扩展性(Extensibility)可维护性(Maintainability)可移植性(Portability)找到合适你的质量分类 FURPS McCall ISO 运行期质量+开发期质量 有奖问答1.包括可扩展性、可管理性等在内的质量要求,以下正确的是 A.可扩展性越强越好,所有可以想到的情况统统支持,不计成本B.有经验的架构师懂得借助场景技术,理性决定支持哪些扩展、如何支持扩展C.设计模式影响性能D.“可管理性”往往转化成一组“功能需求”,如用户管理功能、备份功能、参数配置功能、运行监视功能等议 程p功能与架构p质量与架构p约束与架构p总结约束的
7、常见类型 技术性约束:技术性约束:采用何种OS、采用何种技术、需要和哪些遗留系统互操作 标准性约束:标准性约束:不同行业、大型企业集团的相关行业标准、企业标准 法规性约束:法规性约束:相关法律、法规、政府规章、行政规定 架构师实际面临更多约束第五技:约束分析,必不可少第六技:正交表法,掌控全局对比:经典的需求分类方式正交表方法,推荐给大家!业务目标业务目标快好省快好省组织级约束组织级约束用户需求用户需求运行期质量运行期质量 用户级约束用户级约束行为需求行为需求开发期质量开发期质量乙方约束乙方约束用户用户开发开发组织组织广义功能广义功能质量质量约束约束案例:连锁超市系统 提高收银效率提高收银效率
8、投资少,工期短投资少,工期短(投资多投资多,使用期长使用期长)要求在要求在Linux上运行上运行与原有物流系统整合与原有物流系统整合用户电脑水平偏低用户电脑水平偏低开发人员分散在不同地点开发人员分散在不同地点用户用户开发开发组织组织广义功能广义功能质量质量约束约束案例:连锁超市系统提高收银效率提高收银效率(业务需求)(业务需求)单笔取消功能单笔取消功能(用户需求)(用户需求)鲁棒性鲁棒性(Robustness)用户电脑用户电脑水平偏低水平偏低POS终端按键触发状态转换终端按键触发状态转换然后扫描或输入商品然后扫描或输入商品ID(行为需求)(行为需求)案例:连锁超市系统工期短工期短投资少投资少松
9、耦合松耦合团队熟悉团队熟悉A技术技术 不可选昂贵的中间件不可选昂贵的中间件开发人员分散在不同地点开发人员分散在不同地点选择A技术否定B技术案例:连锁超市系统投资较多投资较多预期使用期长预期使用期长原有物流系统整合原有物流系统整合互操作性互操作性基于MOM的整合策略实际当中约束的影响实际当中约束的影响有奖问答1.关于功能、质量、约束这三类需求,以下正确的是 A.需求变更主要来自功能需求B.一般而言,质量需求最稳定C.约束只需遵守即可D.约束仅存在于技术方面E.约束仅来自客户方议 程p功能与架构p质量与架构p约束与架构p总结系统方法总结 谢谢 谢!谢!Q&A如 何 下 载 本 PPT 大会网站 松耦合空间 www.ou- 资深咨询顾问 软件架构专家 架构设计高级培训讲师软件架构设计作者 Email: MSN: