1、确认需求
在项目开发过程中,架构师是在需求规格说明书完成后介入的,需求规格说明书必须得
到架构师的认可。架构师需要和分析人员反复交流,以保证自己完整并准确地理解用户需求。
2、系统分解
依据用户需求,架构师将系统整体分解为更小的子系统和组件,从而形成不同的逻辑层
或服务。随后,架构师会确定各层的接口,层与层相互之间的关系。架构师不仅要对整个系
统分层,进行“纵向”分解,还要对同一逻辑层分块,进行“横向”分解。
软件架构师的功力基本体现于此,这是一项相对复杂的工作。
3、技术选型
架构师通过对系统的一系列的分解,最终形成了软件的整体架构。技术选择主要取决于
软件架构。
Web Server 运行在Windows上还是Linux 上?数据库采用MSSql、Oracle还是Mysql?
需要不需要采用MVC 或者Spring 等轻量级的框架?前端采用富客户端还是瘦客户端方
式?类似的工作,都需要在这个阶段提出,并进行评估。
架构师对产品和技术的选型仅仅限于评估,没有决定权,最终的决定权归项目经理。架构师
提出的技术方案为项目经理提供了重要的参考信息,项目经理会从项目预算、人力资源、时
间进度等实际情况进行权衡,最终进行确认。
4、制定技术规格说明
架构师在项目开发过程中,是技术权威。他需要协调所有的开发人员,与开发人员一直
保持沟通,始终保证开发者依照它的架构意图去实现各项功能。
架构师与开发者沟通的最重要的形式是技术规格说明书,它可以是UML视图、Word文
档,Visio文件等各种表现形式。通过架构师提供的技术规格说明书,保证开发者可以从不
同角度去观察、理解各自承担的子系统或者模块。
架构师不仅要保持与开发者的沟通,也需要与项目经理、需求分析员,甚至与最终用户保持
沟通。所以,对于架构师来讲,不仅有技术方面的要求,还有人际交流方面的要求。