论软件架构师的角色和培养:

来源:百度文库 编辑:神马文学网 时间:2024/04/29 16:48:02
论软件架构师的角色和培养:任职资格http://www.csai.cn  作者:张友生  来源:希赛网  2006年7月5日3 软件架构师的资格3.1 软件架构师的知识体系  软件架构师作为整个软件系统结构的总设计师,其知识体系、技能和经验决定了软件系统的可靠性、安全性、可维护性、可扩展性和可移植性等方面的性能。因此一个优秀的软件架构师必须具备相当丰富的知识、技能和经验。  通过对比软件架构师和系统分析师在软件开发中的职责和角色,不难发现软件架构师与系统分析师所必需的知识体系也是不尽相同的,系统分析师的主要职责是在需求分析、开发管理、运行维护等方面,而软件架构师的重点工作是在架构与设计这两个关键环节上。因此在系统分析师必须具备的知识体系中对系统的构架与设计等方面知识体系的要求就相对低些;而软件架构师在需求分析、项目管理、运行维护等方面知识的要求也就相对低些。  那么,成为一名合格的软件架构师必须具备哪些方面的知识呢?总体上来说,软件架构师必须具备的知识体系可以分为两大方面,分别是信息系统综合知识体系和软件架构知识体系。下面就这两个方面进行详细的阐述。3.1.1 信息系统综合知识体系  (1)计算机系统综合知识:包括计算机组成与体系结构、嵌入式系统和操作系统等方面的知识。  (2)系统配置和方法:包括系统配置技术和系统性能等方面的知识。  (3)典型系统应用:包括网络应用、数据库应用和多媒体系统等方面的知识。  (4)系统开发:包括程序设计语言、软件开发方法、需求分析和设计方法、测试评审方法、开发管理、应用系统构建、系统审计、外部资源使用和基于中间件的开发等方面的知识。  (5)安全性和可靠性技术:包括数据安全与保密、防闯入和防病毒、容错技术、可靠性模型与分析技术、系统可靠性、安全规章和保护私有信息规则等方面的知识。  (6)标准化:包括标准化的基础知识、标准化分级、编码标准、数据交换标准、软件工程标准、信息安全标准、基于构件的软件标准和标准化组织机构等方面的知识。  (7)信息化基础:包括政府信息化与电子政务、企业信息化与电子商务、信息化的有关的法律和规定等方面的知识。  (8)数学和英语:至少具有大学以上的数学和英语基础知识。3.1.2 软件架构知识体系  (1)系统计划:包括项目的提出和可行性分析、系统方案的制定、评价和改进、新旧系统的分析与比较、现有软、硬件和数据资源的有效利用等。  (2)软件架构设计:包括软件架构的概念、软件架构与设计、架构风格、特定领域的架构风格、基于架构的软件开发方法、架构评估、软件产品线和系统演化等。  (3)设计模式:包括设计模式的概念、组成、分类和实现、模式和软件架构的关系等。  (4)系统设计:包括处理流程设计、人机界面设计、文件与存储设计、数据库设计、网络应用系统的设计、系统运行环境的集成与设计、中间件与应用服务器、性能设计与性能评估等。  (5)软件建模:包括定义问题与归结模型、结构化系统建模与数据流图、面向对象系统建模、数据库建模和逆向工程等。  (6)分布式系统设计:包括分布式通信协议的设计、基于对象与web的分布式设计、基于消息和协同的分布式设计和异构分布式系统的互操作性设计等。  (7)嵌入式系统设计:包括实施任务调度和多任务设计、中断处理和异常处理、嵌入式系统开发设计等。  (8)系统可靠性分析与设计:包括系统故障模型和可靠性模型、系统的可靠性分析与可靠度计算、提高系统可靠性的措施、系统的故障对策和系统的备份与恢复等。  (9)系统的安全性和保密性设计:包括系统的访问控制技术、数据的完整性、数据与文件的加密、通信的安全和系统的安全设计等。  (10)复杂架构设计:包括操作系统的架构、编译器的架构和大型基础库的架构等。3.2 软件架构师的任职条件  根据软件架构师的职责和角色定位,以及知识体系,从实践的角度考虑,合格的软件架构师应该具有以下能力和经验:  (1)具有8年以上的软件项目开发实际工作经验,其中至少有3年以上的代码编写工作经验,4年以上的基于面向对象和构件开发方法的软件产品设计经验。   (2)具有5个以上大中型开发项目的总体规划、方案设计经验,有大中型应用系统开发和实施的成功案例。  (3)对相关的技术标准有深刻的认识,对软件工程标准和规范有良好的把握。   (4)对.Net或Java技术及整个解决方案有深刻的理解及熟练的应用,精通Web Service和J2EE等流行的架构。   (5)对设计模式有深刻的理解,并能在此基础上设计出适合产品特性和质量属性的框架。  (6)具有面向对象的分析、设计和开发能力,精通UML和XML,能熟练使用Rational Rose、PowerDesigner等工具进行设计。   (7)具有良好的团队意识和协作精神,有较强的沟通能力和书面表达能力。  (8)具有旺盛的精力和学习能力,能快速掌握新技术和新方法。