软件架构师的工作过程
在《梦想改造家》节目中建筑设计师王平仲成功的将三角空间畸形纸片屋改造成为空中花园,他的工作过程与软件架构师的工作过程大致相似。要想真正理解软件体系架构师的工作流程就先应清楚什么是软件体系架构师的以及工作内容。
软件体系架构师是软件行业中一种新兴职业,工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。主导系统全局分析设计和实施、负责软件构架和关键技术决策的人员。通俗的说,主导系统全局得分析设计和实施、负责软件构架和关键技术决策的人员就是软件架构师。
通过对软件体系架构师的认识和工作内容的理解后,下一步就该说说软件体系构造师是如何进行工作的。在观看视频《梦想改造家》后,通过设计师王平仲的工作流程我对软件架构师的工作过程有了更加直观的认识。首先是节目组对困难住户进行实地调查,接受其委托。这就相当于我们接受项目工作的委托。
王平仲设计首先到家里进行实地的走访查看他们的困难之处以及他们想要解决什么样的问题。设计师王平仲通过对这家住户的需求,进一步对该房进行规划设计。同样,软件架构师也是这样子的,首先应该理解用户的需求所在,多与用户进行交流。这时沟通就显得尤为重要,这样才能充分理解用户的需求,避免理解的偏差,为后期带来不必要的麻烦。在充分理解客户的需求之后,在此基础上开始思考如何去解决这些需求并定义它的架构。其实,架构定义过程既是让软件架构师想清楚怎么在兼顾客户需求和条件限制的情况下把问题解决好,也是将结构,方针,原则和领导力引入软件项目的技术层面,定义架构是软件架构师的工作工程中至关重要的一步。
建筑师在理解用户的困难之后开始对此进行思考,设计出解决用户需求的方案。这与软件架构师工作过程的技术选型有异曲同工之妙,软件架构师作为系统工程部与开发工程部的接口人。在系统工程部需要开发工程部的帮助以了解软件实现细节时,系统工程部会通过软件架构师获得帮助。反之,开发工程部需要系统工程部的帮助时软件架构师就是桥梁。在此阶段软件架构师为技术决策提供规则,平衡各类涉众的不同关注点,化解技术风险,并保证相关决定被有效的传达和贯彻。在架构过程中充分考虑到成本、许可、供应商关系、技术策略、兼容性、协作性、支持、部署、升级的政策以及最终用户环境等各方面的问题,最终构建出最为合适的软件架构设计。
软件架构师的后续工作包括:审查测试用例。开发工程师用于验证软件实现的测试用例需要经过软件架构师的审查、编制软件架构文档。软件架构文档描述了网元的实现包含哪些软件模块,并定义各模块的角色和模块间的消息交互。软件架构文档与网元级的需求是软件开发工程师工作的输入内容。
从整体方面来讲,软件体系架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作。他必须对开发技术非常了解,并且需要有良好的组织管理能力。主要工作是根据业务需求梳理对应的系统需求,设计由哪些系 统支撑哪些业务,各个系统的定位,系统之间的接口、关系,系统包含的功能,各种数据(如信息流、资金流等)流在系统之间的入口、出口、流转、传递、集成等。对应若干个业务系统,自然会有多个应用系统。应用系统和业务可以是一一对应的,具备相同的边界,也可以不对应。在业务架构分析结果的基础上,设计合理高效的系统整体架构,目标是更好地支撑和推动业务发展。没有对业务架构的深度理解,不可能设计完成高效稳定的系统体系架构。往往一个业务各个阶段在系统体系架构中分别对应不同的系统,一个整体业务流程是在一个系统中完成还是多个系统各管一段一定要建立在对业务深入理解的基础上,对业务有精准的定位才能做出合理的架构设计。可以这样说,一个软件体系架构师工作的好坏决定了整个软件开发项目的成败。