background image

 

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)系统的安全性和保密性设计:包括系统的访问控制技术、数据的完整性、数据与文件