在不了解软件架构师是个怎样的东西,做什么工作的前提下,我所理解的是:软件架构师与桥梁建筑师,等一系列工程师是一样的,都是对一个项目进行分析处理,只是桥梁建筑师是对桥梁进行设计,软件架构师是对软件进行设计,有异曲同工之妙。

  在上课时老师通过让我们观看《梦想改造家》来了解,这是一个房屋改造空间的节目,看过视频后,老师出了一份问卷。发现题目问的都是一些很细节的问题,比如视频中房屋做了哪些改动等。于是,根据这个我又认为软件架构师是一个需要抓住细节的职业。

刚刚阅读了一些《架构漫谈》几篇博客,又对软件架构师有了重新的认识。软件架构师其实相当于是软件项目管理的主管,他负责设计与构筑公司的系统架构,对系统的重用、扩展、安全、性能、伸缩性、简洁等做系统级的把握。软件架构师还要跟踪架构的使用情况,以保证软件开发符合制定好的系统架构。他还负责进一步改进系统架构,以符合公司发展的业务要求。软件架构师还得给设计人员和开发人员提供系统架构的培训。这些就是一名软件架构师的职责目标。

那么,作为一名软件架构师的具体的职责有哪些呢?软件架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作。他必须对开发技术非常了解,并且具有良好的组织管理能力。可以这样说,一个架构师工作的好坏,决定了整个软件开发项目的成败。其实,软件架构师的工作职责可以分为三点。首先最重要的是负责软件项目的测试,也就是根据详细设计书,编写测试单元的用例,然后根据软件测试用例,搭建软件测试环境,进行软件测试,最后整理软件交付件,参与软件的交付工作。我们都知道软件架构师,是对一个项目整体进行架构设计的,所以如何对自己所设计的架构的系统的重用、扩展、安全、性能、伸缩性、简洁等做系统级的把握,就需要软件架构师对软件项目进行测试以发现体系结构中的优缺点。然后软件架构师还要负责软件项目的实施。也就是负责编制使用说明书,还有负责针对发现的问题或用户的要求,进行沟通并确定问题解决办法。我们在上个学期的软件需求分析的课程中,就已经学习了,什么是用户需求,所以在软件项目实施的过程中,用户的体验很重要,所以作为一名软件架构师,需要发现客户在使用的过程的一些问题,并对自己的架构或者说是整个项目进行改进。最后软件架构师还应该负责软件系统技术支持。也就是说软件架构师还应该负责软件系统的运行监控,负责软件系统日常运行过程中的技术支持,并负责解答用户疑问,还要参与软件系统日常运行过程中的问题排除并收集用户反馈的软件问题及改进需求。其实这一点也就是对上述两点的一个总结。

在了解了软件架构师的工作职能之后,我们还应该明白作为一名软件架构师的工作流程。首先,作为软件架构师要给予商务支持,提供系统解决方案和架构咨询。然后在需求阶段,软件架构师需要和需求分析师一起,参与需求的沟通,协助完成技术/业务咨询和需求模型。(好的软件架构师同时也是业务专家),就如我们刚刚在上述分析软件架构师的职责的时候所描述的一样,软件架构师要负责软件项目的实施。在做了需求分析之后,就进入了架构阶段,软件架构师需要进行系统分析和设计,进行系统抽象,设计系统模型,进行技术原型,开发架构原型等,然后在进行了设计之后,他还需要指导设计人员完成详细设计。之后在开发阶段,软件架构师需要指导开发人员按设计实现,解决技术难题。在测试阶段,他还需要指导测试人员测试工作,特别是非功能需求的测试,这一点也就是上述所说的软件架构师需要负责软件系统技术支持。然后在发布的阶段,软件架构师需要指导部署人员按照部署架构进行部署,及时解答或反馈试运行期间的架构问题。

目前,我所了解的软件架构师只有这些,以后会继续学习。