- 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
- 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
- 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
◆中科院计算所培训中心 高级软件系统架构师培训
软件架构设计的思想与模式
中科院计算所培训中心 谢新华
第一章 软件架构设计思想与体系创建
在软件组织中,架构师的作用是举足轻重的。本课程针对企业开发最关注的问题深入
研讨,抓住投入产出比这个企业的核心价值,讨论架构设计如何使这个核心价值得以实现。
我们认为,一个设计如果必须高手云集才能生产出符合质量要求的产品,并不一定是好的架
构。架构设计的目标是力争使用总体上能力一般的队伍,通过组织和设计的力量,生产出符
合质量要求的产品,从投资回报的角度,两者效果是完全不一样的。另一方面,由于需求变
更不可避免,而需求的变更必然造成设计调整进而造成总体投入的增加,这会极大的影响到
投资回报,所以我们必须研究架构设计如何更好的适应变更,通过设计确保变更、维护与升
级的成本下降。对这一系列问题的深入思考,成为现代软件架构设计的核心思维。
软件企业必须认真研究如何培养高水平的架构人员,但仅仅把架构设计作为一个孤立
的节点来讨论,或者仅仅就架构谈架构的在一个很窄的思维空间中研究问题是没有意义的。
任何设计都来自于目的,我们应该把架构设计放在整个项目过程的大环境下来研究,针对每
个关键节点对设计的影响特点进行研讨,这样才可能真正理解架构设计真正精髓的东西,使
未来的设计工作就会变得极有主动性和想象力。
随着经济全球化进程的不断推进,知识经济的时代已经到来。要增加软件产品的国际
竞争力,软件质量作为企业发展的战略问题变得越来越重要,软件质量正被视为软件企业的
生命。软件质量管理开始在软件组织内全面开展,强烈的质量意识正慢慢扎根于软件技术和
管理人员的心灵深处,直至整个组织质量文化的形成,所以,如何设计高质量的软件产品,
也成为软件架构设计的重要主题。
统计表明,软件质量问题 80%是由需求分析和架构设计两个环节造成的,因此,在需
求分析的时候,我们必须研究如何充分理解用户需求,给各方面提供充分而有效的信息,在
架构设计上,研究如何尽可能利用已有信息,合理组织技术方案,把人和任务作为一个重要
因素进行考虑,在达到质量需求的基础上,使高的投资回报率成为可能,在项目过程管理上,
如何与架构设计匹配协调,使技术方案的高质量实现成为可能,同时对于产品线架构和核心
资产库构建的理论、方法、组织和技术给于足够的重视,这都需要项目经理、分析师、架构
师具有很高的水平。
架构设计绝不是某个神秘人物冥思苦想然后又自鸣得意的产物,架构设计应该是集体
智慧的成果,软件设计与开发也应该是集体共通劳动的结果,重要的是各种相互矛盾的要求
的合理平衡,这都需要有非常良好的方法,把团队的智慧集中起来,如何充分激发集体的智
慧,也是一个架构设计师必须具备的能力。
影响这个课程主体的主要思想,是 21 世纪是软件规模经济的时代,下图表达了工具、
构件和过程的三个基本技术的进步,图中表达了在假定要求的质量和人员等级不变的情况
下,投资回报(ROI )的关系,纵坐标表达了实现软件的单位成本(代码行、功能点),横
坐标表达了软件规模,这里表示了随着时代的进步,同样规模的软件成本在大幅下降,投资
回报在大幅上升。
http://www.TCICT.cn - 1 -
◆中科院计算所培训中心 高级软件系统架构师培训
伴随着非常大型的项目,比如由系统组成的系统,长生命力的产品以及多个相似项目的
产品线,软件组织将达到更好的经济规模。这种规模软件经济的理念,对我的设计方法和思
路提出了和过去完全不同的要求,重用、复用和变更促成为重要的主题。
架构设计应该从方法论的角度、从质量属性对架构设计影响的角度、从建立可度量的
架构质量保证体系以及安全性和可扩展性的角度,在理论和实践两方面全方位研究问题。
1.1 软件架构师的角色和应掌握的知识体系
一、软件架构的定义与问题
软件架构(software archiecture )是一组有关如下要素的重要决策:
软件系统的组织,构成系统的结构化元素,接口和它们相互协作的行为的选择,结构化
元素和行为元素组合成粒度更大的子系统的方式的选择,以及指导这一组织(元素及其接口、
文档评论(0)