第7章 如何进行成功的架构设计

第7章 如何进行成功的架构设计

ID:5359673

大小:545.94 KB

页数:9页

时间:2017-12-08

第7章 如何进行成功的架构设计_第1页
第7章 如何进行成功的架构设计_第2页
第7章 如何进行成功的架构设计_第3页
第7章 如何进行成功的架构设计_第4页
第7章 如何进行成功的架构设计_第5页
资源描述:

《第7章 如何进行成功的架构设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、《软件架构设计》温昱电子工业出版社1第7章如何进行成功的架构设计王建民mcswjm@mail.sysu.edu.cn2010年1月20日7.1何谓成功的软件架构设计2£所谓成功的架构设计,就是设计出的软件架构是高质量的,并且在所花费的时间、技术决策等方面也都满足具体开发情况的要求;£在不适当的时候“用时间换完美”会毁掉整个项目;£架构设计并非“好的就是成功的”,而是“适合的才是成功的”。7.1何谓成功的软件架构设计3£好的软件架构应当具备如下品质:1.良好的模块化。每个模块职责明晰,模块之间松耦合,模块内部高聚合并合理地实现了信息隐藏2.适应功能需求的变化,适应技术

2、的变化。典型地,应该保持应用相关模块和领域通用模块的分离,技术平台相关模块和独立于具体技术的模块相分离,从而达到“隔离变化”的效果;3.对系统的动态运行有良好的规划。标识出哪些是主动模块,哪些是被动模块—面向对象中往往是主动类和被动类,明确这些模块之间的调用关系和加锁策略,并说明关键的进程、线程、排队、消息等机制;4.对数据的良好规划。不仅应包括数据的持久化存储方案,还可能包括数据传递、数据复制和数据同步等策略;5.明确、灵活的部署规划。还往往涉及到可移植性、可伸缩性、持续可用性和互操作性等大型企业软件特别关注的质量属性的架构策略;7.2探究成功架构设计的关键要素4

3、£是否遗漏了至关重要的非功能需求£能否驯服数量巨大且频繁变化的需求£能否从容设计软件架构的不同方面£是否及早验证架构方案并作出了调整7.2.1是否遗漏了至关重要的非功能需求5非功能需求来自何处?1.一部分非功能需求来自用户。•诸如性能、易用性等软件质量属性;2.一部分非功能需求来自开发者和升级维护人员。•软件的可扩展性、可重用性、可移植性、易理解性和易测试性等非功能需求,都属于“软件开发期质量属性”之列,它们都将深刻影响开发者和升级维护人员的工作,这方面拙劣的质量会使开发和维护变得困难,时间和金钱方面的成本都会增加;3.还有一部分非功能需求来自客户组织。架构师必须充

4、分考虑客户对上线时间的要求、预算限制以及集成需要等非功能需求,还要特别关注客户所在领域的业务规则和业务限制7.2.1是否遗漏了至关重要的非功能需求6非功能需求为何对架构设计如此重要?1.非功能需求是最重要的“架构决定因素”之一;2.非功能需求大致分为质量属性和约束两大类。3.质量属性是软件系统的整体质量品质ò—它往往和大多数功能都有关,而不是仅仅表现在某个功能“内部”。ò易用性、性能、可伸缩性、持续可用性、鲁棒性、安全性、可扩展性、可重用性、可移植性、易理解性和易测试性等都可能是软件的质量属性需求;7.2.1是否遗漏了至关重要的非功能需求74.约束性需求,它们要么是

5、架构设计中必须遵循的限制(例如“将运行于Linux平台”),要么转化为质量属性需求或者功能需求(例如“某系统的目标用户的计算机水平不高”实际上要求系统应有较高的易用性)。反过来,最终提供的软件系统是否满足非功能需求的要求,仅凭编程级的努力是达不到的,正因为如此,软件架构设计过程中必须重视非功能需求。例如:要求系统提供7*24小时的高持续可用性,需要采取的架构设计策略可能设计错误检测、修复和预防等。7.2.2能否驯服数量巨大且频繁变化的需求8£需求变更蕴含风险,因为不存在不需要成本的需求变更;£需求变更也蕴含机遇,对软件架构设计而言,这个机遇可能意味着设计出稳定的架构

6、,最终这个架构能够支持业务功能在一定范围内“随需应变”;7.2.3能否从容设计软件架构的不同方面9£系统的复杂性决定了架构的复杂性;£架构需要掌握趋于系统化的方法;£对待复杂性的方法就是分而治之,与之相伴的“综合考虑”也是不可或缺的;£对于多视图的架构设计方法来说,多个视图之间的相互支持、相互影响往往需要“综合考虑”;7.2.4能否及早验证架构方案并作出了调整10£架构设计是现代软件开发中最为关键的一环,架构设计得是否合理将直接影响到软件系统最终是否能够成功;£在以架构为中心展开大规模的系统开发之前,可以通过将架构设计方案尽快实现为一个小的原型,并通过对该原型的测试

7、和评审,来估计软件架构是否合理;7.3制定软件架构设计策略11关键点问题危害策略策略要点是否遗漏了至对需求的理解不系造成返工全面认弥补非功能需求的缺关重要的非功统、不全面,对非,项目失识需求失能需求功能需求不够重视败能否驯服数量对于时间和质量的耗时不少多视图“需求入架构出”的巨大且频繁变矛盾,颁发不足,,质量不探寻架理解过于简单粗糙不化的需求处理草率高构能适应实践要求能否从容地设架构设计方案覆盖开发混乱多视图架构是开展系统化团计软件架构的范围严重不足许多,质量不探寻架队开发的基础,应当不同方面关键决定被延迟由高构为不同涉众提供指导实现人员仓促决定和限制是否及早验

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。