在百度查询软件构架师的概念:“软件构架师是软件行业中一种新兴职业,工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。主导系统全局分析设计和实施、负责软件构架和关键技术决策的人员”。
在王老师的第一节课上,让我们看了《梦想改造家》,让我们根据设计师的工作过程来思考软件构架师的工作是怎样的。
设计师在进行设计的时候涉及了很多的学科,而在软件开发的过程中构架师也需要涉及很多的学科。架构师涉及最多的学科是软件设计,尽管如此,架构师也很关注其他的一些学科。例如,在需求分析里,架构师要确保对于利害关系的需求条件尤为了解,同时也懂得区分这些需求的优先次序。架构师参与实现工作,他们详细地说明用来组织源代码以及可执行的工作产品的实现结构。架构师们还参与测试工作,确保架构结构具有可测性并能通过测试。架构师负责开发环境中的一些特定元素,特别是建立一些特定的指针。架构师们还帮助制定配置管理策略,因为配置管理结构(用来支持版本管理的)经常影响已经定义好的软件架构。架构师与项目管理人紧密合作,正如这个文章系列中的第二部分所提到的,架构师已经成为项目计划中的一员。
看过节目后,设计师的设计工作并不是在设计初期一蹴而就的事情,而是贯穿整个项目的始终,也就是说设计师的工作是时刻进行的。而构架师的工作也是这样的。在整个项目里,通过交付可执行软件的一系列迭代递增的程序,软件构架也日趋成熟。在每一次的交付过程中,软件构架都会变得更加稳定完善。这就很好地解释了什么是构架师贯穿项目始终的重点。
在节目中,在工程的早期,设计师着眼于发现,理解项目所涉及的范围并识别其主要特征及所有相关的风险。构架师同样是如此。在项目刚开始的时候,架构师主要是了解系统所涉及的范围并识别主要特征及相关的风险、所有的要素对软件构架都有显著的影响。然后是重点转向创造,主要是开发一个可以为整个实现过程提供牢固基础的、稳定的构架。最终,重点放在了实现上面,这个时候大部分的发现和创造开始起作用。应该注意到,发现、创造和实现并不是严格按照顺序来的。例如,随着架构模型的建立,在项目早期会有一些实现过程。而随着过程的深入理解和实现架构中某些元素的不同策略的提出,在项目后期将会有一些发现。在节目中,设计师是在房子装修完,给客户介绍后才是完成了他的工作,而架构师同样是这样的,直到系统交付架构过程才被完成,因此,架构师必须一直关注软件架构知道项目的结束。一旦一个项目的软件架构稳定下来,人们总是希望架构师离开项目。然而,直到项目后期仍有一些架构方面的决策需要制定。实际上,还有介于两者之间的情况,一旦影响软件架构的重大决策制定出来,架构师就成为项目组中的一名兼职人员。不管怎样,架构师不应该完全脱离这个项目。当然还有一种更加灵活的情况,那就是由一个团队来履行架构师这个角色,这个团队里的一些成员可能去参予其他的项目,而另外一些则留下来继续确保这个系统架构的完整性。